MeteoPi

Exemples de scripts

Base de données

Pour inclure les données dans une base de données(celle de Meteo.py)

Get_Data.py
#!/usr/bin/env python
# coding=UTF-8
# =====================================
# Version: 2.029
# Date Version: 15/03/2015
# =====================================
# import des modules
import datetime
import time
import struct
import sys
import os
import MySQLdb
 
chemin = os.path.dirname(os.path.realpath(__file__))
sys.path.append(chemin+'/Lib')
 
try:
	from BMP085 import BMP085
except ImportError:
	print "Erreur: module Lib/BMP085.py absent"
	sys.exit(1)
try:
	import fonctions
except ImportError:
	print "Erreur: module Lib/fonctions.py absent"
	sys.exit(1)
 
# ----------------------------------------------------------------------------
# insertion dans la base Home ( sondes maison)
# ----------------------------------------------------------------------------
def insert_base(date, sonde, Type, val1, val2, val3, val4, val5, val6, Bat, Sign):
	"""
	Insert data to MySql.
	"""
 
	cx = None
	Host = cfgConf.get('MySql','serveur')
	User = cfgConf.get('MySql','user')
	Pass = cfgConf.get('MySql','pass')
	Base = cfgConf.get('MySql','base')
	Nom = cfgConf.get('i2c', 'nom')
	Table = cfgConf.get('i2c', 'table')
	sql = """ 
	INSERT INTO `%s` (`Date`, `Nom`, `Sonde`, `Type`, `val1`, `val2`, `val3`,`val4`,`val5`,`val6`,`batterie`,`signal`)
	VALUES('%s','%s','%s','%s','%.1f','%.1f','%.3f','%.3f','%s', '%s', '%s', '%s')
	""" % (Table, date, Nom, sonde, Type, val1, val2, val3, val4, val5, val6, Bat, Sign)
	try:
		cx = MySQLdb.connect(Host, User, Pass, Base)		
		cu = cx.cursor()
		cu.execute(sql)
 
	except MySQLdb.Error as e:
		fonctions.ALog (sql,cfgConf.get('Fichiers', 'errsql'),"a+")
		fonctions.ALog (e[1],cfgConf.get('Fichiers', 'erreur'),"a+")
 
	finally:
		if cx:
			cx.close()
# ----------------------------------------------------------------------------
# definition des constantes 		
# ----------------------------------------------------------------------------
configfile   = chemin+'/config/Config.ini'
cfgConf = fonctions.Get_Config(configfile)
altitude =  eval(cfgConf.get('Situation','altitude'))
Busnum = eval(cfgConf.get('i2c','busnum'))
sensor = BMP085(busnum=Busnum)
#-------------------------------------------
#   Boucle principale
#------------------------------------------
date = time.strftime('%Y-%m-%d %H:%M:%S')
temp = sensor.read_temperature()
pression = sensor.read_pressure()
psea = pression / pow(1.0 - altitude/44330.0, 5.255)
Sonde = cfgConf.get('i2c','sonde')
Type = cfgConf.get('i2c','type')
insert_base(date, Sonde, Type, float(temp), 0, float(pression)/100, float(psea)/100, 0, 0, 10, 10)

et le fichier de configuration

config.ini
[Situation]
altitude = 80  ; mettre l'altitude de votre lieu
 
[i2c]
busnum = 1             ; numéro du bus I2C (1 pour le raspberry, 2 pour le Bananapi)
sonde = Identifiant    ; identifiant que vous attribuez à la sonde 
nom = Nom              ; idem pour le nom
type = TB
table = Table
 
[Fichiers]
logs = /home/michel/logs/Logs.txt
status = /home/michel/logs/Status.txt
errsql = /home/michel/logs/ErrSQL.txt
 
[MySql]
serveur = Host
user = User
pass = Mot de passe
base = Base Mysql

Sonde virtuelle Domoticz

Get.py
#!/usr/bin/python
# coding=UTF-8
# Copyright (c) 2014 Adafruit Industries
# Author: Tony DiCola
 
import time
import sys
import os
import Adafruit_BMP.BMP085 as BMP085
 
# configuration
# ==========================================
altitude = 80 en métre
url = "IP:Port"
ID = 'identifiant de la sonde dans Domoticz'
# ==========================================
sensor = BMP085.BMP085()
date = time.strftime('%Y-%m-%d %H:%M:%S')
date_fr = time.strftime('%d/%m/%Y %H:%M:%S')
PAbsolue = sensor.read_pressure()
Pression = sensor.read_sealevel_pressure(altitude)
Tmp = sensor.read_temperature()
url = 'curl http://'+url+'/json.htm?type=command\&param=udevice\&idx='+ID+'\&nvalue=0\&svalue='+str(Tmp)+'\;0\;0\;'+str(Pression/100)+'\;0'
os.system(url)
sondes/scripts.txt · Dernière modification: 26/04/2015 17:47 par michel
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5