Bonjour je reviens vers vous pour vous demandé de l'aide.
Comme j'avais expliqué ici
http://linuxfr.org/forums/programmation-c/posts/comment-capturer-et-stocker-image-provenant-de-camera-ip#comment-1587709
avec un émetteur je capte des codes en 433Mhz a l'aide d'un raspberry et un fichier en C++ , Mon système n'est pas du tout stable , mon CPU utilise trop de ressource.
j'ai trouvé une autre solution , j'ai branché sur le raspberry en USB , un arduino avec un récepteur 433 Mhz ,celui ci capte tous les codes émis et les envoie au raspberry . Il me faut donc maintenant lire et exploité ces codes avec mon raspberry a l'aide d'un fichier python .Comment faire ?
Ce code python lit tout les codes capté par l'arduino, je voudrais que si le code 35 est détecté ça aille me faire une action .
#!/usr/bin/env python
# -*- coding: latin-1 -*-
import serial
ser = serial.Serial('/dev/ttyACM0', 9600)
while 1 :
print(ser.readline())
end
# reflexion de base
Posté par NeoX . Évalué à 4.
ton symptome :
la cause :
quoique tu fasses une boucle qui tourne en permanence pour lire une info est une tres mauvaise idée en terme de cpu.
et c'est pour cela que ton cpu consomme,
deporter la reception du signal sur un arduino, mais continuer à faire un boucle permanente ne changera rien.
il faut commencer à regarder la programmation evenementielle
qui va detecter un signal et lancer une action
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1. Dernière modification le 08 mars 2015 à 16:40.
Bonjour NeoX et merci pour ta rapidité de réponse Quand je dis ''mon CPU utilise trop de ressource''je parlais de mon fichier en C++ qui etait sur le raspberry.
Ma boucle Python qui tourne en permanence sur le raspberry ne consomme presque rien .
Comment faire alors ?
Il faut mettre l'integralité de mon fichier C++ sur l'arduino?
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 4.
si ton fichier C++ consomme sur le raspberry, il est probable qu'il consommera sur l'arduino
il faut peut-etre revoir l'algorythme que tu as repris,
pour optimiser ce qui peut l'etre.
comme evoqué dans le sujet precedent, tu as un programme en C++ qui :
- va attendre un signal 433Mhz
- à l'arrivée du signal, va ouvrir un shell pour prendre un fichier dans une URL
- a la reception du fichier, ca ouvrir un shell pour lancer un script shell/python pour envoyer un email
faudrait verifier qu'il declenche la lecture URL et le mail uniquement quand le signale 433Mhz est recu.
mais il y a des etapes consommatrices de ressources (les ouvertures de shell) qui ne sont pas forcement necessaires.
il avait été evoqué le fait d'aller lire l'URL ou envoyer l'email directement en C++
ca devrait deja alléger la charge
ensuite revoir la partie attente du signal, si on peut eviter ou simplifier la boucle d'attente pour l'alleger, ce sera encore mieux.
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1. Dernière modification le 08 mars 2015 à 17:19.
mon arduino branché sur le raspberry me sert uniquement pour capter les codes , Je voulais posté mon fichier C++ ici mais impossible trop gros
( 279 lignes ) il voila un lien pour le téléchargé
http://dl.free.fr/getfile.pl?file=/q6R1ctFx ,
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 2.
le code pour permettre aux autres de l'anlyser
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1. Dernière modification le 08 mars 2015 à 17:36.
Voila c'est cette grosse chose qui utilise 70% du CPU de mon raspberry. que je voudrais mettre sur l'arduino.
comme tu vois je n'exploite pas qu'un seul code c'est pour cela qu'il faut que ca tourne en permanence.
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 3.
mon analyse rapidement :
1°) ta boucle c'est une boucle toutes les ⅓ secondes (soit 3 tours par secondes), definie par la variable delay.tv_nsec ligne 53.
dans une boucle il y a beaucoup d'ouverture/ecriture/fermeture de fichier
vu que tu demandes 3 boucles par secondes, ton CPU passe son temps à ouvrir des fichiers et à les fermer.
tu peux commencer par faire une boucle par seconde en commentant la ligne 53 (ajouter // au debut)
et en decommentant la ligne 55 (en enlevant les //)
ensuite, pour le fichier de logs, tu pourrais ouvrir le fichier de log au debut, le fermer à la fin
plutot que de l'ouvrir, ecrire, fermer le fichier à chaque fois.
2°) petites optimisations, tu peux remonter ton appelle à gmail.py (ligne 149/150) et mettre juste l'appelle system ligne 145
sinon, bah bienvenu dans le monde de l'embarqué, ou il faut parfois faire revoir plusieurs fois son code afin de l'optimiser.
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Ouf tu as compris le fonctionnement ! Il y at'il un moyen de faire exécuter ce code avec l'arduino pour libérer le raspberry ?
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 3. Dernière modification le 08 mars 2015 à 18:43.
ca doit etre possible, mais il doit falloir recompiler specifiquement pour l'arduino
dans ton cas avant de vouloir compiler pour envoyer sur l'arduino, je ferais deja les reglages :
- 1 test par seconde (voire plus etalé, par exemple 1 test toutes les 5 secondes)
- revoir l'algo pour n'ouvrir qu'une fois le fichier de log en debut de programme, le fermer en cloture
- voire ne pas tout logger si ce n'est pas necessaire.
sinon tu partais dans l'idée de refaire ca en python, en lisant ce qui sort de l'arduino,
c'est une voie aussi.
lire le port serie,
filtrer pour recuperer le code 35,
aller lire l'URL pour prendre l'image
envoyer l'email
mais là encore tu fais une boucle "while 1: … end"
ce qui veut dire que tu n'as pas de limiteur, tu tournes et repetes ta lecture tant que le CPU peut le faire.
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1. Dernière modification le 08 mars 2015 à 19:14.
Je ne suis pas trop pour 1 test par seconde (voire plus étalé, par exemple 1 test toutes les 5 secondes), j'ai déjà testé ça fait baisser le CPU mais je perds souvent la réception des codes.
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 3. Dernière modification le 08 mars 2015 à 19:37.
alors il faut revoir l'algo,
et passer à la programmation evenementielle plutot que sequentielle (avec un boucle qui se repete sans arret)
avoir une boucle qui cherche l'evenement,
qui pose l'info et juste une info dans un fichier
et qui ne fait que ca.
puis des astuces systemes comme inotify qui surveille le dossier/fichier,
et execute un script quand le dossier/fichier a changé
faut peut-etre regarder aussi du coté de la programmation avec interruption materiel
ainsi tu ne declenches l'action que s'il y a un evenement materiel (un truc sur le port serie, ou un reception RF)
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1. Dernière modification le 08 mars 2015 à 19:51.
La ça deviens vraiment trop compliqué pour moi avec mes faibles connaissances .!! Merci quand même de m'avoir orienter
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 2.
J'ai essayé de reecrire le code C proposé plus tot, en reorganisant le contenu, en le simplifiant par endroit.
Si j'ai pas trop fait de fautes, et que l'indentation n'est pas trop mal faite (bien qu'inutile en C, elle rend le code plus lisible),
ca doit donner ca (evidemment je ne l'ai pas compilé n'ayant pas le RCswitch.h)
ATTENTION : ce code ne fait plus l'alerting SMS ou le log du capteur declenché
ca ne devait deja pas fonctionner puisqu'on lisait le code DI0/DI1 puis on le comparait à 5592320 pour en determiner le lieu
je relirais mon code demain pour corriger la detection des lieux des capteurs.
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Bonsoir NeoX et félicitation pour ce travail
Concernant les alertes SMS ça fonctionnais , je recevais les alertes distincte pour chaque détecteurs d'alarme ,de DI et de mise en Marche et Arret de l'alarme avec l'heure. c'est le fichier ALARM-state.txt ou DI-state.txt qui se rempli et qui déclenche l'envoie des SMS avec SMS2send.py .Une fois le SMS envoyé le fichier ALARM-state.txt ou DI-state.txt est vidé par SMS2send.py et j'ai une trace de ce qui as été envoyé avec le fichier SMS.log
14/08/14 12:44-Activation de l'Alarme (Clavier)
01/08/14 16:29-ALARME capteur Chambre
01/08/14 16:29-ALARME capteur Cuisine
01/08/14 16:30-ALARME capteur Salon
20/08/14 09:01-Desactivation de l'Alarme (PiHome)
SMS envoye a +336000000
Pour les autres fichiers Log
Dans RADIO_TEST.log il y a tout les codes que capte le récepteur 433 Mhz 24/24( c'est pour tester le bon fonctionnement de mes émetteurs )
03/01/15 06:21:22 : Code radio 5592341
03/01/15 06:21:26 : Code radio 5592320
03/03/15 03:02:17 : Etat initial BL : 5592323
Dans ALARM.log il y a toutes les Marches/Arrêts de l'alarme Intrusion.
21/12/14 11:26:44 : Activation de l'Alarme (PiHome)
21/12/14 11:28:11 : Desactivation del'Alarme PiHome)
29/12/14 17:41:08 : Desactivation del'AlarmeClavier)
06/01/15 18:03:28 : Activation de l'Alarme (Clavier)
Dans ALARM-cumul.txt il ya toutes les déclenchement de détecteur alarmes ainsi que la DI. ( je recupere les données de ce fichier sur une page Html)
27/12/14 16:09:37 | ALARME capteur Garage
27/12/14 16:19:20 | ALARME detecteur Incendie RdC
27/12/14 16:09:23 | ALARME capteur Atelier
18/01/15 20:37:09 | ALARME detecteurIncendie Etage
Pour la sonnette je n'ai plus besoin du fichier SO-state.txt. c’était ma première idée et ça ne me sert pas .
// Sonnette Capture des photos depuis camera IP Nord
if (radio_code==BPSO){system("python /home/www/py/gmail.py");
}
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Juste pour info j'ai essayé de compiler le fichier , il y a des erreurs .
RFSniffer.cpp: In function âint main()â:
RFSniffer.cpp:119:30: error: âBL_pleinâ cannot appear in a constant-expression
RFSniffer.cpp:126:30: error: âBL_videâ cannot appear in a constant-expression
RFSniffer.cpp:133:30: error: âBPSOâ cannot appear in a constant-expression
RFSniffer.cpp:144:30: error: âDI0â cannot appear in a constant-expression
RFSniffer.cpp:153:30: error: âDI1â cannot appear in a constant-expression
: recipe for target 'RFSniffer.o' failed
make: *** [RFSniffer.o] Error 1
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 3.
meaculpa, j'utilise les Variables au lieu des Valeurs dans les cases (pour remplacer les multiples if).
avec ce code, ca doit compiler,
j'ai modifié la partie BPSO pour faire directement le lancement du script python
et toujours, pour l'instant, sans faire les alarmes SMS/mail
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Je viens de compiler le fichier super ça a fonctionné . Sinon si tu n'as pas tout compris concernant les fichier log n’hésite pas .
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 2.
J'ai juste commenté la partie log car j'ai remanié la gestion des codes.
et je penses que j'ai du faire sortir la gestion des alarmes/sms de la bonne section de code.
faut que je regardes ou mettre la gestion des alarmes. pour que ce soit correct.
Je te fais ca dans un moment.
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 2. Dernière modification le 09 mars 2015 à 23:01.
J'y suis presque, mais je ne comprend pas la gestion des alarmes et SMS,
en simplifiant le code, on voit que ca remplit :
- ALARM-cumul.txt quand c'est un incendie
- ALARM-SMS.txt avec l'info de l'alerte
- ca envoie un SMS si file_DI_size (qui n'existe pas) est superieur à 300
puis ca teste et ecrit dans
- ALARM-state.txt s'il y a un emplacement (sensor_loc!="")
- ALARM-SMS.txt avec l'info de l'alerte
- ca envoie un SMS si file_ALARM_size est superieur à 300 et ca fait sonner une alarme "A 2 close 60"
et si l'emplacement est le "garage"
ca fait aussi sonner une alarme "A 4 close 30"
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 2.
ok j'ai fait une pause, j'y suis revenu,
je comprend maintenant le distingo entre "alarme incendie" et "autres alarmes"
et dans autres alarmes, finalement on alerte immediatement si c'est le garage,
sinon on attend que la file d'attente soit pleine à 300 pour envoyer et faire sonner.
par contre l'envoi de SMS conditionné par un log >= 300
l'idée est bonne mais il est vidé de temps en temps ce fichier ?
sinon il va se remplir sans cesse,
et quand la taille sera de 301, le SMS partira des la premiere alerte.
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Ce n'est effectivement pas simple , il y a 3 types de détecteurs,
Les détecteurs incendie .
Les détecteurs d'alarme intrusion ( Capteur magnétique sur une porte dans le garage et Infra rouge pour les autres), tous ces capteurs envoie des codes 24 /24 quand on passe devant ou que l'on ouvre la porte dans le garage .Ça on ne peux rien y faire , c'est le matériel qui est comme ça.
Le contact magnétique si on ouvre la porte il Émet environ 8 fois le code a suivre
5592320 5592320 5592320 5592320 5592320 5592320 5592320 5592320 puis s’arrête d’émettre.
Les capteurs Infra rouge font la même chose mais avec une trame plus longue environ 20 fois le code puis s’arrête d’émettre..
Afin de limiter les fausses alarmes du au soleil ou aux parasites j'avais prévu une constance temps de quelques secondes.
Pour faire simple une trame de code ne suffit pas pour déclencher la Sirene et l'envoi du SMS .
Pour le contact de la porte dans le garage c'est différent une seule trame de code suffit .
Mon clavier pour mettre l'alarme en marche ou arrêt est dans le garage a coté de cette fameuse porte , des fois ça m'arrive d'oublier que l'alarme est en marche donc
A 4 close 30" c'est la tempo du buzzer qui sonne 30 secondes si je rentre en oubliant de couper l'alarme . ( Uniquement sur ce contact ) si l'alarme n'est pas mis a l’arrêt dans les 30 secondes il faut que la sirène s'enclenche pour 60 secondes A 2 close 60 ,ainsi que l'envoie de SMS. .
Si l'alarme est en marche et qu’une personne est piégé par un infra rouge la sirène doit se déclenche instantanément ainsi que l'envoie de SMS.
Sur cette dernière partie il y avait une boulette , le buzzer devait être actif sur tout les détecteurs .
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 3.
je verrais ce que je peux faire avec le code restant à retravailler.
probablement pas ce soir, mais ca va venir.
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Bonsoir Néox , prend ton temps ,De mon coté ,la semaine , je n’ai pas beaucoup de temps libre.
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Bonjour Néox , ça y est je suis en week end , donc je suis a ton écoute si tu as des questions, ou des points mal compris.
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Bonjour Néox , je viens de tester la modif du code optimiser sur mon raspberry , malheureusement ,je ne trouve aucune baisse de consommation des ressources CPU ,et de temps en temps le fichier s'arrette , je me demande si ce n'est pas plus simple d’écouter les codes capter avec un arduino et ensuite exploité les codes.
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 3.
pour l'instant ca reste un code qui "tourne en rond" et fait 3 tests par seconde.
l'optimisation actuelle consiste à reecrire le code pour comprendre ce qu'il fait en rangeant les choses de maniere logique.
1°) detection d'un code
2°) tri sur le numero du code pour determiner les actions
3°) action
et en essayant d'eviter des doublons.
ce qu'il faut verifier dans la doc par exemple, c'est à combien l'arduino rafraichit le code recu
ca si les capteurs envoient 1 trame / sec, ca ne sert à rien de rafraichir 3x par seconde.
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Je viens de faire un test je suis passé devant un un détecteur ,et voila ce qu'il y a d’écrit dans Radio_Test.log
14/03/15 11:31:08 : Code radio 517593
14/03/15 11:31:08 : Code radio 517593
14/03/15 11:31:08 : Code radio 517593
14/03/15 11:31:09 : Code radio 517593
Donc en 1 seconde il y a plusieurs codes d’émis .
Ça veux dire que l'on peux diminuer le nombre de tests par seconde.
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 3.
voila deja un point d'amelioration,
en commentant la ligne 53 (mettre // devant)
delay.tv_nsec = 330000000L; // tts les 1/3 sec (3/s)
et en decommentant la 55 (en enlevant le // devant)
apres faudra recalculer les cycles d'alertes car on se basait sur X code / sec ou N lignes dans le logs
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Rien a faire , ça ne baisse pas j'ai essayé 1/2 sec et 1 sec . Toujours pareil entre 35% et 30 %
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 3.
c'est normal, ton programme ne s'arrete jamais, et dans ta capture on voit 17.2% de WA (ioWait)
il attend donc beaucoup apres les disques et les entrées sorties.
le meme programme sur une machine autre qu'un raspberry fonctionne mieux ?
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Bon ben ce n'est pas gagné !!! il y a donc RFSniffer qui consomme ainsi que les écritures sur la carte SD
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 2.
ah ben deja, faudrait pas ecrire sur la carte SD mais dans un ramfs ou tmpfs,
ce serait plus rapide
mais on risque de perdre les logs en cas de reboot du boitier
ca limiterait les IOWait, et soulagerait ton CPU
pour ca, il faut creer un dossier en tmpfs,
il me semble qu'il suffit de faire un dossier tmpfs personnalisé comme indiqué ici
http://doc.ubuntu-fr.org/tmpfs
mount -t tmpfs tmpfs /le-point-de-montage/ -o size=16Mo
le point de montage sera alors l'emplacement ou tu vas mettre les logs des alarms
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Voila j'ai créer un dossier tmpfs de 16M.
home/www/montmpfs
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 2.
bien,
plus qu'a modifier le code pour creer/lire les fichiers logs, so-state, bl-state, di-state dans ce dossier,
recompiler et relancer le programme
voir si ca reduit les iowait et donc l'utilisation cpu
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Je me demande si on ne tourne pas en rond ! iowait bouge sans cesse , et je me demande si ce n'est pas du a autre chose, ( rafraichissement de ma page PHP ) j'ai bien peur que ça ne serve pas a grand chose de mettre les fichiers log sur tmpfs ,quand il n'y a pas de détection des codes ,rien n'est écrit et la consommation des ressources CPU est toujours entre 30 et 35 % ,j'ai réussi a la faire baisser a 25 en modifiant a 1/4 sec
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 2.
et ca dit quoi si tu passes de 3 tests par seconde (lignes 53)
à 1 test par seocnde (ligne 55)
elle sert à quoi ta page php par rapport au projet alarme/detecteur/radio
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
ça empire ça monte a 80 % quand je regle sur 1/2 sec et a 90 % sur 1 sec.
Mes pages Php me servent a gérer tout le reste ( Température , chauffage camera . c'est pour cela que je voudrais mettre toute la détection 433Mhz sur l'Arduino
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 2.
ca empire en CPU ou en IOwait ?
parce que normalement s'il ne fait plus la boucle qu'une seule fois par seconde au lieu de 3x par seconde,
ca devrait etre plus econome.
si ca empire, faut tester dans l'autre sens,
passer de 3 par secondes à 4 voire 5 par secondes
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
J'ai tout tester depuis ce matin ,quand je suis a 1/10 sec le CPU descend a 28 %, mais bien sur je rate des codes , pour preuve , je n'ai pas reçu de code de BAL alors qu'il y avais du courrier Quand je Kill RFSniffer ,la charge CPU descend pour IOwait les valeurs sont semblable avec RFSniffer qui tourne ou est a l'arret ( Çà change tout le temps )
iowait
1,83
1,01
1,13
1,25
1,09
0,62
0,64
0,68
0,96
0,92
1,01
0,80
1,00
1,34
1,11
1,37
0,87
0,88
2,36
3,64
3,00
3,26
3,30
2,52
2,38
2,08
2,18
2,37
1,68
1,70
1,74
1,94
1,76
1,80
2,60
1,74
1,69
1,30
15,17
1,92
1,42
2,23
2,89
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 2.
ok donc les iowait c'est pas rfsniffer
par contre je ne comprend pas, tu pars de 1/10sec, pour moi ca veut dire faire 1 test, toutes les 10 sec
on a vu qu'en passant de 3 tests pour 1 seconde (intervalle de 330000 Nanoseconde) à 1 test par seconde, ca augmentait la charge,
donc en passant à 1 test toutes les 10 sec, ca n'ira pas beaucoup mieux.
d'ailleurs plutot que d'utiliser nanosleep, tu dois pouvoir utiliser la ligne sleep(1);
pour lui dire de dormir 1 seconde entre chaque traitement
sleep(2) pour dormir 2 secondes, etc…
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Exact pour les iowait c'est pas rfsniffer
Pourquoi lui dire de dormir dire de dormir 1 ou 2 secondes?
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 2.
en general on fait dormir un process pour le faire attendre entre 2 actions,
evitant aussi que le process prennent 100% du CPU meme s'il ne fait rien.
si tu veux tu peux tester en commenant le sleep ou le nanosleep à la fin de ton code,
[^] # Re: reflexion de base
Posté par b.gwen . Évalué à 1.
Bonjour Néox je viens de tester avec sleep(1)et tts les 1/3 sec , j'ai une toute petites amélioration CPU 27,0 % ,'ai aussi fait le test avec 1/2 et 1 sec la ce n'est pas bon je perd de temps en temps la reception des codes .
J'ai chercher partout sur le forum , et je ne trouve pas la possibilité de te parler en MP , Peux t’ont se parlez par mail ? car j'ai l'impression de passez pour un boulet ici .
[^] # Re: reflexion de base
Posté par NeoX . Évalué à 2.
j'ai ouvert un chan #rfsniff sur irc.freenode.net
# Code python
Posté par max22 . Évalué à 3. Dernière modification le 08 mars 2015 à 21:12.
Pour ton code python, sauf erreur de ma part, ça pourrait se faire tout simplement comme ça je pense :
sinon si tu veux faire plus propre, tu peux utiliser la librairie Firmata qui va te permettre d'envoyer des messages au raspberry pi via le port série (avec un protocole fait pour ça), et de déclencher un callback. Mais ce sera un peu plus compliqué.
sinon un exemple de communication arduino/raspberry pi pas mal ici
[^] # Re: Code python
Posté par b.gwen . Évalué à 1. Dernière modification le 14 mars 2015 à 18:52.
Bonjour max22 , dans mon cas ,il faut faire simple ! il faut que le fichier python tourne sans arret et que je trouve une solution pour que la réception du code faite par l'arduino aille écrire un fichier txt sur le raspberry.
Exemple je reçois le code 5592332 il faut que ça m’écrire PLEIN dans BL-state.txt.
# Version Python avec RF433Mhz sur l'arduino
Posté par NeoX . Évalué à 3.
[^] # Re: Version Python avec RF433Mhz sur l'arduino
Posté par b.gwen . Évalué à 1.
Bonsoir ce code a encore quelques petit probleme , je suis en train de le mettre au point avec Néox , quand il fonctionnera sans probleme je posterais la version finale
[^] # Re: Version Python avec RF433Mhz sur l'arduino
Posté par max22 . Évalué à 2.
si je me trompe pas, radio_code est une chaine de caractères et elle est comparée avec un entier.
il faudrait d'abord la transformer en entier.
[^] # Re: Version Python avec RF433Mhz sur l'arduino
Posté par NeoX . Évalué à 3.
on n'a pas fait de retour, mais l'aspect :
chaine de caractere avec \n => entier sans \n
a été traité,
il reste à ce que bggwen teste plus en detail.
par exemple ses codes sont emis plusieurs fois, meme pour une seule pression sur un bouton,
il faut donc filtrer pour eviter d'avoir 25 SMS, ou 15 emails pour un seul appui.
[^] # Re: Version Python avec RF433Mhz sur l'arduino
Posté par b.gwen . É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
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.