#! /usr/bin/env python
#-*- coding: utf-8 -*-
# import des librairies
import Adafruit_DHT # pour lire la sonde DHT22
import RPi.GPIO as GPIO # pour utiliser les GPIO
import MySQLdb # pour utiliser les BDD
import datetime # pour utiliser la date et l'heure
import csv # Pour manipuler les fichiers CSV
GPIO.setmode(GPIO.BCM) # gpio numérotation BCM
pin = 22 # gpio utilisé
GPIO.setup(pin, GPIO.OUT) # gpio en mode output
date = datetime.datetime.now() # on défini la date
humi, temp = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, pin) # lecture de la sonde
# on arrondi
humi = round(humi,1)
temp = round(temp,1)
################ partie pour le graphe, envoi des datas dans la base de donnée #################
# Connexion à la base de donnée DHT22
bdd = MySQLdb.connect(host="localhost", # en local
user="manu", # l'utilisateur
passwd="soundsysteme", # son mot de passe
db="DHT22") # la base de donnée
req = bdd.cursor()
# insert la date, la température et l'humidité dans la table temphumi
try:
req.execute("""insert into temphumi (`dateetheure`,`temp`,`humi`) values (%s,%s,%s)""",(date,temp,humi))
bdd.commit()
except:
bdd.rollback()
# Fermeture de la connexion
bdd.close()
################ partie pour les jauges, écriture dans un fichier CSV #################
fname = "/var/www/html/sonde/sonde.csv" # on créer le fichier sonde.csv dans notre dossier web.
file = open(fname, "wb") # on ouvre le fichier.
try:
writer = csv.writer(file) # on prépare l'écriture
writer.writerow(('Humidité','Température')) # Écriture de la ligne d'en-tête avec le titre des colonnes.
writer.writerow((humi, temp)) # Écriture des datas.
finally:
file.close() # Fermeture du fichier.
# on sort proprement
GPIO.cleanup()
exit