Advertisement
Guest User

Untitled

a guest
Feb 19th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.46 KB | None | 0 0
  1. #!/usr/bin/env python
  2. #Python 2.7.9
  3.  
  4. #Ce programme recupere les valeurs de temperatures d'humidite depuis le capteur AM2302 et les envoie vers le script
  5. #PHP qui stockera ces valeurs dans la base de donnee
  6.  
  7. from time import sleep #import de la lib permettant l'usage de sleep
  8. import requests #import de la lib permettant d'effectuer des requetes POST
  9. import json #import de la lib json
  10.  
  11. import Adafruit_DHT #import de la lib de control du capteur
  12.  
  13. sensor = Adafruit_DHT.AM2302 #on definit le type de capteur, ici un AM2302
  14. pin = 4 #on definit le pin sur lequel est branche le cpateur
  15.  
  16.  
  17. #-----fonction permettant de recuperer la temperature-----#
  18. def get_temp():
  19.     humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) #on stock ce que nous retourne la lecture du capteur dans une variable pour l'hum et la temp
  20.     if temperature is not None: #securite permettant de verifier si nous avons bien une valeur
  21.             return('{0:0.1f}'.format(temperature)) #on retourne la variable de temperature sous la forme d'un float avec un seul nombre apres la virgule
  22. #-----fin de la fonction permettant de recuperer la temperature-----#
  23.  
  24. #-----fonction permettant de recuperer l'humidite-----#
  25. def get_hum():
  26.     humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) #on stock ce que nous retourne la lecture du capteur dans une variable pour l'hum et la temp
  27.         if humidity is not None: #securite permettant de verifier si nous avons bien une valeur
  28.                 return('{0:0.1f}'.format(humidity)) #on retourne la variable d'humidite sous la forme d'un float avec un seul nombre apres la virgule
  29. #----fin de la fonction permettant de recuperer l'humidite-----#
  30.  
  31. #-----fonction principale qui appele les fonction get_temp() et get_hum() puis envoie les valeurs obtenues sur le serveur-----#
  32. def main():
  33.     temp = get_temp() #on stock ce que nous retourne la fonction get_temp() dans la variable temp
  34.     hum = get_hum() #on stock ce que nous retourne la fonction get_hum() dans la variable hum
  35.     headers = {'Content-Type': 'application/json'} #on set les headers pour envoyer des donnees en JSON
  36.     requests.post('http://localhost/submit_final.php?temp=' +str(temp) + '&hum=' +str(hum), headers=headers) #requette POST qui envoie les donnees stocke au serveur
  37.  
  38.     #check si la temperature est superieure a 25*C, la led s'allume
  39.     if float(temp) > 25.0:
  40.         requests.post('http://localhost/switch.php?gpio22on=on', headers=headers) #la requete sur switch.php avec l'argument ?gpio22on=on allume la led
  41.     #check si la temperature est inferieure a 25*C, la led s'eteint
  42.     if float(temp) < 25.0:
  43.         requests.post('http://localhost/switch.php?gpio22off=off', headers=headers)#la requete sur switch.php avec l'argument ?gpio22off=off eteint la led
  44.     print ("Temperature : " +temp +"*C") #on affiche la variable temp dans la console pour le debug
  45.     print ("Humidite : " +hum +"%") #on affiche la variable hum dans la console pour le debug
  46.  
  47. #-----Boucle infine permettant de recuper et d'envoyer une nouvelle valeur toutes les 5 secondes-----#
  48. while True:
  49.         if __name__ == '__main__': #securitee permettant de verifier si le scipt est appele (import) ou execute, si il est appele, __name__ /= '__main__' et le code
  50.                    #ne s'executera pas, si il est execute, __name__ = '__main__' et le code sera execute
  51.                 main() #on apelle la fonction metier qui contient tout notre programme
  52.                 sleep(5) #on attenc 5 secondes avant de poursuivre l'execution du code, et donc de la boucle infinie
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement