• # Version Python avec RF433Mhz sur l'arduino

    Posté par . En réponse au message Fichier python pour lecture Arduino. Évalué à 3.

    #!/usr/bin/env python
    # -*- coding: latin-1 -*-
    import os
    import time
    import serial
    ser = serial.Serial('/dev/ttyACM0', 9600)
    # envoie les SMS et alarmes apres MAXLOG octet d'alerte
    # 4 codes = 172octets
    MAXLOG=300
    # DELAY entre 2 tours de boucle, en secondes, 
    # peut etre une fraction, exemple 0.5 secondes
    DELAY=1
    while 1 :
     radio_code=ser.readline()
     #radio_code=input("votre code ? ")
     ## L'action REELLE COMMENCE ICI
     sensor_loc=""
     sensor_type=""
     if radio_code != 0 : # on a recu un code
     file_TEST = open("/home/www/logs/RADIO_TEST.log", "a+")
     event=time.strftime("%d/%m/%y %H:%M:%S")+" : Code radio "+str(radio_code)+"\n"
     file_TEST.write(str(event))
     file_TEST.close()
     # Fin ecriture dans les logs
     # BL Pleine
     if radio_code == 5592332 :
     file=open("/home/www/logs/BL-state.txt", "r+")
     file.write("PLEIN")
     old_BL=radio_code
     file.close()
     # BL Vide
     if radio_code == 5592323 :
     file=open("/home/www/logs/BL-state.txt", "r+")
     file.write("VIDE ")
     old_BL=radio_code
     file.close()
     if radio_code == 13487999 : # BPSO - Sonnette
     # Envoie de mail avec gmail.pi
     # copier/coller le code python pour l'envoie d'email à partir du fichier : 
     os.system("python /home/www/py/gmail.py")
     # DI0 : detection incendie RDC
     if radio_code == 1381717 :
     file=open("/home/www/logs/DI-state.txt", "w")
     file.write("Feu RdeCh")
     sensor_loc="Incendie RdC"
     sensor_type="detecteur"
     file.close();
     if radio_code == 7673173 : #DI1 : detection incendie Etage
     file=open("/home/www/logs/DI-state.txt", "w")
     file.write("Feu Etage")
     sensor_loc="Incendie Etage"
     sensor_type="detecteur"
     file.close()
     if radio_code == 5592320 :
     sensor_loc="Garage"
     sensor_type="contact"
     if radio_code == 5592404 :
     sensor_loc="Salon"
     sensor_type="radar"
     if radio_code == 5592405 :
     sensor_loc="Sejour"
     sensor_type="radar"
     if radio_code == 5592341 :
     sensor_loc="Entree"
     sensor_type="radar"
     if radio_code == 5592389 :
     sensor_loc="Chambre"
     sensor_type="radar"
     if radio_code == 5592149 :
     sensor_loc="Atelier"
     sensor_type="radar"
     if radio_code == 5591381 :
     sensor_loc="Cuisine"
     sensor_type="radar"
     # Remplissage fichier incidents Detecteur Incendie
     if sensor_type == 'detecteur' :
     file_ALARM = open("/home/www/logs/ALARM-cumul.txt", "a+")
     # le log
     # mef horodatage --> timestamp_str
     event=time.strftime("%d/%m/%y %H:%M:%S")+" | ALARME detecteur "+sensor_loc+"\n" 
     file_ALARM.write(str(event))
     file_ALARM_size = os.path.getsize("/home/www/logs/ALARM-cumul.txt")
     file_ALARM.close()
     # Fin Remplissage fichier incidents Detecteur Incendie
     # log pour envoi SMS
     file_SMS = open("/home/www/logs/ALARM-SMS.txt", "a+")
     file_SMS.write(str(event))
     file_SMS.close();
     # envoi SMS si file_DI >= MAXLOG
     if file_ALARM_size >= MAXLOG :
     # copier/coller ici le code contenu dans le fichier SMS2send.py
     os.system("python /home/www/py/SMS2send.py >> /home/www/logs/SMS.log & "); 
     # Fin envoi SMS Detecteur Incendie
     # Autres Alarmes
     try:
     file_ALARM = open("/home/www/logs/ALARM-state.txt","r")
     except IOError:
     print "pas de fichier ALARM-state.txt"
     else :
     file_ALARM.close()
     if sensor_loc != "" :
     file_ALARM = open("/home/www/logs/ALARM-state.txt","a+")
     # le log
     event=time.strftime("%d/%m/%y %H:%M:%S")+" | ALARME capteur "+sensor_loc+"\n" 
     file_ALARM.write(str(event))
     file_ALARM_size = os.path.getsize("/home/www/logs/ALARM-state.txt")
     file_ALARM.close();
     # log pour envoi SMS
     file_SMS = open("/home/www/logs/ALARM-SMS.txt", "a+")
     file_SMS.write(str(event))
     file_SMS.close()
     # declenchement sirene et envoi SMS si file_ALARM >= 300
     if file_ALARM_size >= MAXLOG :
     # copier/coller le code d'envoi de SMS et celui de Expander-set
     os.system("python /home/www/py/SMS2send.py >> /home/www/logs/SMS.log & ");
     os.system("python /home/www/py/Expander-set.py A 2 close 60 & ");
     # declenchement buzzer (GPA4) si sensor_loc=garage
     if sensor_loc=="Garage" :
     # copier/coller le code du Exapnder-set.py
     os.system("python /home/www/py/Expander-set.py A 4 close 30 & ");
     # fin autres alarmes
     # attend DELAY secondes avant de faire la prochaine boucle
     time.sleep(DELAY)