#! /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(pinGPIO.OUT)  # gpio en mode output

date datetime.datetime.now() # on défini la date

humitemp Adafruit_DHT.read_retry(Adafruit_DHT.DHT22pin# 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((humitemp))               # Écriture des datas.

finally:     
    file.close()                                # Fermeture du fichier.
    
# on sort proprement
GPIO.cleanup()                                  
exit