Bonjour Après multiple tentative de réglage et avec l'aide de Néox voila le code fonctionnel
#!/usr/bin/env python# -*- coding: latin-1 -*-# DEBUG active (1) ou desactive (0) les messages d'erreurs à l'ecran (ou dans nohup.out)DEBUG=0# LOG active (1) ou desactive (0) le log dans RADIO_TEST.logLOG=1importosimporttimeimportserialser=serial.Serial('/dev/ttyACM0',9600)# envoie les SMS et alarmes apres MAXLOG octet d'alerte# 4 codes = 172octetsMAXLOG=10# DELAY entre 2 tours de boucle, en secondes, # peut etre une fraction, exemple 0.5 secondesDELAY=1# MAXCODE definit le nombre maxi de code à laisser passerMAXCHRONO=20# initialisation des compteursOLDCODE=0CHRONO=0while1:message=ser.readline()radio_code=int(message.rstrip())#radio_code=input("votre code ? ")## L'action REELLE COMMENCE ICIsensor_loc=""sensor_type=""CHRONO+=1ifradio_code!=0:# on recoit un codeifDEBUG:print"=========="print"Ancien/Nouveau code : "+str(OLDCODE)+"/"+str(radio_code)print"compteur : "+str(CHRONO)+"/"+str(MAXCHRONO)if(OLDCODE==radio_codeandCHRONO<MAXCHRONO):# un code deja recu, on laisse tomberpassprint"code deja vu"else:CHRONO=0ifDEBUG:print" nouveau code, on reinitialise le compteur"OLDCODE=radio_codeevent=time.strftime("%d/%m/%y %H:%M:%S")+" : Code radio >>"+str(radio_code)+"<<\n"ifLOG:file_TEST=open("/home/www/logs/RADIO_TEST.log","a+")file_TEST.write(str(event))file_TEST.close()ifDEBUG:print"==========\n"+str(event)# Fin ecriture dans les logs# BL Pleineifradio_code==55232:ifDEBUG:print"je dois ecrire >>PLEIN<< dans BL-state"file=open("/home/www/logs/BL-state.txt","r+")file.write("PLEIN")old_BL=radio_codefile.close()# BL Videifradio_code==5923:ifDEBUG:print"je dois ecrire >>VIDE << dans BL-state"file=open("/home/www/logs/BL-state.txt","r+")file.write("VIDE ")old_BL=radio_codefile.close()ifradio_code==13499:# Sonnette ifDEBUG:print"je dois envoyer un email avec gmail.py"# 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 RDCifradio_code==1317:ifDEBUG:print"je dois ecrire >>Feu RDC<< dans DI-state"file=open("/home/www/logs/DI-state.txt","w")file.write("Feu RdeCh")sensor_loc="Incendie RdC"sensor_type="detecteur"file.close();#DI1 : detection incendie Etage ifradio_code==7373:ifDEBUG:print"je dois ecrire >>Feu Etage<< dans DI-state"file=open("/home/www/logs/DI-state.txt","w")file.write("Feu Etage")sensor_loc="Incendie Etage"sensor_type="detecteur"file.close()ifradio_code==522:sensor_loc="Garage"sensor_type="contact"ifradio_code==5544:sensor_loc="Salon"sensor_type="radar"ifradio_code==5545:sensor_loc="Sejour"sensor_type="radar"ifradio_code==5231:sensor_loc="Entree"sensor_type="radar"ifradio_code==5989:sensor_loc="Chambre"sensor_type="radar"ifradio_code==:3658sensor_loc="Atelier"sensor_type="radar"ifradio_code==511:sensor_loc="Cuisine"sensor_type="radar"# Remplissage fichier incidents Detecteur Incendieifsensor_type=='detecteur':file_ALARM=open("/home/www/logs/ALARM-cumul.txt","a+")# le log# mef horodatage --> timestamp_strevent=time.strftime("%d/%m/%y %H:%M:%S")+" | ALARME detecteur "+sensor_loc+"\n"ifDEBUG:print"je dois ecrire >>"+str(event).rstrip()+"<< dans ALARM-cumul.txt"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 IncendieifDEBUG:print"je dois ecrire >>"+str(event).rstrip()+"<< dans ALARM-SMS.txt"# log pour envoi SMSfile_SMS=open("/home/www/logs/ALARM-SMS.txt","a+")file_SMS.write(str(event))file_SMS.close();# envoi SMS si file_DI >= MAXLOGiffile_ALARM_size>=MAXLOG:ifDEBUG:print"je dois envoyer un SMS si "+str(file_ALARM_size)+">="+str(MAXLOG)# copier/coller ici le code contenu dans le fichier SMS2send.pyos.system("python /home/www/py/SMS2send.py >> /home/www/logs/SMS.log & ")# Fin envoi SMS Detecteur Incendie# Autres Alarmestry:file_ALARM=open("/home/www/logs/ALARM-state.txt","r")exceptIOError:ifDEBUG:print"pas de fichier ALARM-state.txt"else:file_ALARM.close()ifsensor_loc!="":file_ALARM=open("/home/www/logs/ALARM-state.txt","a+")# le logevent=time.strftime("%d/%m/%y %H:%M:%S")+" | ALARME capteur "+sensor_loc+"\n"ifDEBUG:print"je dois ecrire >>"+str(event).rstrip()+"<< dans ALARM-state.txt"file_ALARM.write(str(event))file_ALARM_size=os.path.getsize("/home/www/logs/ALARM-state.txt")file_ALARM.close();# log pour envoi SMSifDEBUG:print"je dois ecrire >>"+str(event).rstrip()+"<< dans ALARM-SMS.txt"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 >= 300iffile_ALARM_size>=MAXLOG:ifDEBUG:print"je dois envoyer un SMS si "+str(file_ALARM_size)+">="+str(MAXLOG)# copier/coller le code d'envoi de SMS et celui de Expander-setos.system("python /home/www/py/SMS2send.py >> /home/www/logs/SMS.log & ")ifDEBUG:print"je dois declencher l'alarme"os.system("python /home/www/py/Expander-set.py A 2 close 60 & ")# declenchement buzzer (GPA4) si sensor_loc=garageifsensor_loc=="Garage":ifDEBUG:print"je dois declencher le buzzer du garage"# copier/coller le code du Exapnder-set.pyos.system("python /home/www/py/Expander-set.py A 4 close 30 & ")# fin autres alarmes# attend DELAY secondes avant de faire la prochaine boucletime.sleep(DELAY)
[^] # Re: Version Python avec RF433Mhz sur l'arduino
Posté par b.gwen . En réponse au message Fichier python pour lecture Arduino. Évalué à 1. Dernière modification le 20 mars 2015 à 17:59.
Bonjour Après multiple tentative de réglage et avec l'aide de Néox voila le code fonctionnel