RaspFR :: Forum

Version complète : Interférences GPIO?
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
Bonjour,

J'utilise ma raspnerry avec le logiciel Domoticz installé sur raspbian.
Je tente de mettre en place une installation uniquement filaire, donc en utilisant exclusivement les gpio, sans RFXCOM ni Zwave ou autre capteur EnOcean.
J'ai donc paramètré différents GPIO en sorties (aucun problème, tout marche!) et d'autres en entrées (là problème...)
Je m'explique : les matériels y étant reliés sont un capteur d'ouverture magnétique, un bouton poussoir et un inter va et vient.
Prenons l'exemple du capteur d'ouverture: fermé il reste à OFF, ouvert il passe à ON (via le paramètrage sur domoticz)
Mais, même s'il n'est pas manipulé et reste fermé (voire sctoché pour mes tests), il se réactualise de façon aléatorie en m'envoyant du OFF de façon anarchique. Le problème est que les scripts basés sur le OFF se mettent en route à chaque fois...
Je ne sais pas si le problème vient de Domoticz ou de mes GPIO qui capteraient des interférences (je précise que des relais ainsi que mon tableau électrique sont à proximité)

J'aimerais donc savoir si il existe une façon de lire l'historique d'un GPIO afin de voir si ces "interférences" viennent de la partie logicielle (domoticz) ou de la partie matéreille (mes gpio)
Un GPIO readall affiche l'état actuel à l'instant T des gpio, mais est il possible d'afficher tous les changements d'état qu'un gpio a subit sur une période donnée?

Merci d'avance pour votre aide!

Poopeye
Bonsoir,

Poopeye a écrit :... les matériels y étant reliés sont un capteur d'ouverture magnétique, un bouton poussoir et un inter va et vient.

Est-il possible de connaître les branchements exacts de ces périphériques sur les GPIO ?
Respectent t-il ce genre de préconisation: Physical computing with Raspberry Pi ?
Absolument. Je respecte scrupuleusement ce type de schéma (résistance de tirage type pull down de 10k et résistance de protection du gpio de 1 k, exactement comme sur le schéma )
Lors de changement d'État du capteur, le gpio réagit sans problème, mais parfois il m'envoie du off à répétition. .. ou du on s'il est ouvert...
Je me disais donc que ca serait lié à des interférences issues de l'extérieur. Pour analyser cela, il faudrait que je puisse voir l'historique du gpio afin de le comparer à celui de domoticz pour cibler le probleme: gpio ou logiciel domoticz??
Y a t'il un solution pour cela?
Bonjour,
Poopeye a écrit :Absolument. Je respecte scrupuleusement ce type de schéma (résistance de tirage type pull down de 10k et résistance de protection du gpio de 1 k, exactement comme sur le schéma )
Parfait...
Je pencherais effectivement pour "des interférences issues de l'extérieur", surtout que tu précises "des relais ainsi que mon tableau électrique sont à proximité".
Essaie de regarder: Problème de masse avec le Raspberry qui ressemble à ton problème.
Il est possible qu'il y ait des remontées par la masse qui devient "flottante" lors d'une circulation de courants forts à proximité.
Une autre solution est peut être d'interposer des opto-coupleurs sur les entrées afin de réaliser une isolation qui est toujours bonne pour la sécurité du RPi...

NB: J'exclus des dysfonctionnements de Domoticz car cela se saurait ;-)
Merci pour ta réponse. Je vais essayer de mettre en place une liaison de la masse avec la terre de ma maison comme c'est indiqué sur le lien.
Concernant le fait d'interposer des opto coupleur sur les entrées, je ne comprends pas l'utilitié. Si une interférénce arrive au porte de l'optocoupleur, elle va bien créer une tension, qui sera percue par l'opto coupleur, qui lui-même allumera sa LED pour fermer le "relai" qu'il représente? Non?
Autre précision: pour faire des tests, j'ai mis un GPIO en entrée dans domoticz mais je ne l'ai relié à rien (ni bouton poussoir, ni capteur d'ouverture, ni à la breadboard donc pas de pull up ou autre pull down, RIEN). Il est à 0 à l'état initial. Et lui aussi, dans son log de domoticz il envoie du OFF de façon aléatoire. Ce qui confirme bien ces interférences extérieures. En je pense!
Il faudrait donc en quelques sortes un filtre qui stope ces interférences extérieures avant qu'elles n'arrivent sur le GPIO qui , d'après le lien que tu m'as donné, agit comme une véritable antenne à interférences... Est-ce dans cette optique que tu me propose l'opto coupleur? (Si oui, pourrais tu m'expliquer le principe stp?)
Dernière précision, les GPIO configurés en sortie n'ont aucun problème de ce type et marchent parfaitement.
Bonsoir,
Poopeye a écrit :Concernant le fait d'interposer des opto coupleur sur les entrées, je ne comprends pas l’utilité. Si une interférence arrive au porte de l'optocoupleur, elle va bien créer une tension, qui sera perçue par l'opto coupleur, qui lui-même allumera sa LED pour fermer le "relais" qu'il représente? Non?
Par expérience, l'opto-coupleur améliore grandement le fonctionnement entre des équipements dits "courant faible" avec d'autres dits "courant fort" et s'agissant de "Si une interférence arrive au porte de l'optocoupleur, elle va bien créer une tension", et bien non car celui-ci travaille en courant et non en tension.

Enfin, dans le monde industriel (car ici tu es dans ce cas; dixit: "des relais ainsi que mon tableau électrique sont à proximité"), il est fortement conseillé de s'isoler du monde extérieur mais il y a d'autres solutions comme le filtrage 50 Hz / 100 Hz avec inductances (ou selfs) type Schaffner ou Wurth ... ou autres que l'on trouve dans des câbles USB par exemple (pas beau et relativement encombrant mais très efficace ;-).

Poopeye a écrit :Dernière précision, les GPIO configurés en sortie n'ont aucun problème de ce type et marchent parfaitement.
La différence, c'est que dans ce cas là, c'est le RPi qui impose sa tension et donc son courant, mais là encore je suis partisan ... d'une isolation par opto-coupleur.

Tu vas me dire que suis paranoïaque et tu auras raison car j'ai vécu des plantages de serveurs Unix à cause d'un simple arbre de Noël qui ... clignotait à proximité et était branché sur la même prise 220 V / 50 Hz que les serveurs ;-(
Re-bonsoir,

Merci pour toutes ces informations!
Je vais me pencher sur les différentes solutions (relier masse du Pi à la terre, et opto coupleurs en pagaille ;-)), et posterai pour faire part du résultat.

@+

Poopeye
Bon,
Première partie de réponse: j'ai relié la masse à la terre: plus de problème sur le GPIO non rélié mais déclaré en entrée.
En revanche, toujours les même soucis sur le GPIO declaré en entrée et cablé avec un détecteur d'ouverture.
Je vais donc essayé d'y mettre un optocoupleur. Mais petite question de novice en électronique:
-Je dois intercaler cet optocoupleur entre la résistance de 1K et mon GPIO?
Pour rappel, je suis cablé en pull up comme le schéma du dessus:
https://www.cl.cam.ac.uk/projects/raspbe...tected.jpg
-Autre question:le fait de mettre un condensateur (10nf) à la place de l'optocoupleur ne permettrait il pas de filtrer ces interférences?
Bonsoir,

- Pour le cas du "GPIO déclaré en entrée et câblé avec un détecteur d'ouverture", tu peux essayer effectivement de mettre un condensateur non polarisé d'au moins 100 nF (10 nF me semble faible) entre l'entrée et la masse (c'est relativement simple à faire et moins "lourd" qu'un opto-coupleur)
- Par rapport à https://www.cl.cam.ac.uk/projects/raspbe...tected.jpg, je te propose d'interposer l'opto-coupleur comme sur cette image mais en gardant la résistance R2 de 1 K contrairement à: Je dois intercaler cet optocoupleur entre la résistance de 1K et mon GPIO? => l'opto-coupleur et sa quincaillerie remplaçant R1, le Switch et le Vcc de 3.3 V

Question: Qu'entends-tu par "GPIO non relié mais déclaré en entrée" par rapport à "GPIO déclaré en entrée "dans "Première partie de réponse: j'ai relié la masse à la terre: plus de problème sur le GPIO non rélié mais déclaré en entrée. En revanche, toujours les même soucis sur le GPIO déclaré en entrée et câblé avec un détecteur d'ouverture"
Tout d'abord, merci pour tes réponses qui vont bien l'aider!
Qu'entends-tu par "GPIO non relié mais déclaré en entrée" par rapport à "GPIO déclaré en entrée "dans "Première partie de réponse: j'ai relié la masse à la terre: plus de problème sur le GPIO non rélié mais déclaré en entrée. En revanche, toujours les même soucis sur le GPIO déclaré en entrée et câblé avec un détecteur d'ouverture":

Alors, j'ai 2 GPIO déclarés en entrée, je les vois donc dans l'interface de domoticz (ils sont en "input", tous les autre sont "not exported") (j'ai un troisième exporté, ou déclaré, comme tu veux, en output pour une LED)
Sur ces 2 GPIO en input, seul 1 est cablé, cad relié à mon détecteur d'ouverture et résitance de tirage. Le second "GPIO input", lui n'est relié à rien (j'avais fait des tests avec un pouton pourssoir mais les problèmes de rebonds me dérangeaient trop. j'y reviendrai une fois que j'aurai règlé le souci d'interférence.... Chaque chose en son temps!!)

Petite précision, quand tu dis "tu peux essayer effectivement de mettre un condensateur non polarisé d'au moins 100 nF (10 nF me semble faible) entre l'entrée et la masse", je dois comprendre "juste avant le GPIO", ou "juste avant la masse", ou "pas d'importance"?
Personnellement, je pencherais pour "juste avant le GPIO" histoire de le filtrer au plus proche... (mais je ne suis que novice...)
Bonjour,
Poopeye a écrit :...
Personnellement, je pencherais pour "juste avant le GPIO" histoire de le filtrer au plus proche... (mais je ne suis que novice...)
Oui, exactement cela; donc sur la broche GPIO et la masse également la plus proche.
Bon, le condensateur de 100nf sur la broche GPIO ne fonctionne pas. Toujours ces parasites. Je vais donc essayer l'optocoupleur.
J'ai vu également un système avec trigger de schmidt qui semblerait répondre à mes besoins, si l'optocoupleur n'apporte rien de plus.
Je continue mes tests...
Nouvelle piste de réponse: je me suis dit que mon capteur d'ouverture (en 2 parties dont une étant un aimant) pouvait être source de mon problème par rapport au "champ magnétique" qu'il génère.
Comme il représente finalement un inter normalement fermé (quand la porte est fermée) je l'ai enlevé et remplacé par une vis et un écrou permettant de lier les 2fils initialement connectés à ce capteur (je reproduis donc la position normalement fermé).
Et là, il me semble que les inerférences disparraissent!
Ma question est donc la suivante: est ce que ce capteur peut vraiement être la causse de mon problème? Si oui, est ce que l'option de placer un optocoupleur sur l'entrée du GPIO résoudra ce problème à coup sûr?
Bonjour,

Mais quel est donc cet interrupteur (type ILS ?) qui perturberait à ce point là le RPi ?
Et à quelle distance du RPi, l'aimant est-il situé ?

Au vu de ce que tu écris, je crains que cela ne soit pas des interférences électriques mais plutôt magnétiques...
Salut,
Je m'étais un peu enflammé... Malgré mon test sans le capteur magnétique, les interférences persistent...
Cela confirme donc le postulat de départ: interférences électriques.
Sur une autre forum, quelqu'un a été confronté au même problème qu'il a résolu en soft via un script python.
J'ai déjà contourné ce problème en soft via l'ajout d'un bouton virtuel dans Domoticz (qui s'active uniquement en cas de différences de statut avec le capteur réel), mais j'aimerais bien avoir un truc propre, c'est à dire régler ce problème d'interférence au niveau matériel.
Je vais donc maintenant me pencher sur la mise en place d'un opto coupleur.
Selon toi, ça devrait régler le problème?
A mon hypothèse : "Si une interférence arrive au porte de l'optocoupleur, elle va bien créer une tension, qui sera perçue par l'opto coupleur, qui lui-même allumera sa LED pour fermer le "relais" qu'il représente? Non?", tu avais répondu "et bien non car celui-ci travaille en courant et non en tension."
Novice en électronique, je me demande si ces interférences créent juste une tension, ou un léger courant qui ferait basculer l'optocoupleur?;
Dans l'idée je pense faire un petit montage avec condensateur + trigger de schmidt + optocoupleur pour mon GPIO paramétré en entrée afin de faire un "piège à parasite". Qu'en dit tu?
Bonsoir,
Poopeye a écrit :...
Novice en électronique, je me demande si ces interférences créent juste une tension, ou un léger courant qui ferait basculer l'optocoupleur?;
Dans l'idée je pense faire un petit montage avec condensateur + trigger de schmidt + optocoupleur pour mon GPIO paramétré en entrée afin de faire un "piège à parasite". Qu'en dit tu?
Cela devrait le faire mais je suis comme Saint Thomas (coté Logiciel ET coté Électronique ;-)...
Par hasard, tu n'aurais sous la main pas un oscilloscope et si possible à mémoire qui permettrait vraiment de "voir" ce qui se passe.
À défaut, pourquoi ne pas investir essentiellement en temps (je te le concède) car en argent c'est pratiquement gratuit maintenant dans un oscilloscope pour PC avec un kit Arduino ... ou autre.
Salut,

Je vais essayer mes tests dans la semaine. Concernant le trigger de schmidt, j'ai cru comprendre qu'il est possible de l'activer en software, au même titre que les résistances pull up ou down.
J'ai beau fouiner, je trouve pas comment faire...
Si quelqu'un sait comment faire pour activer cet élément... Je suis preneur de toute information.
Je précise que j'utilise la libraire wiring pi.
En attendant je teste avec un optocoupleur et posterai mes résultats (en espérant que ça le fasse!!)
excuse moi de immiscer ..
a l'arrivée du pi, as tu essayé une ferrite autour de ton câble ? ( http://sine.ni.com/nips/cds/view/p/lang/fr/nid/211645 )
Ton capteur d'ouverture , s'il est ils, est bien réglé ?
Sinon, en principe, une capa céramique de 100nf en // sur l'entrée qui déconne devrait résoudre le pb !
Tu peux mettre vite fait un schéma de ton entrée qui déconne ?
Salut,
Merci de t'immiscer!! Je n'arrive pas à mettre mes schémas. "le fichier est trop volumineux"
Pourtant il s'agit d'un image .gif de seulement 3 ko...
envoie le moi par mail ..
Poopeye a écrit :Je n'arrive pas à mettre mes schémas. "le fichier est trop volumineux"
Pourtant il s'agit d'un image .gif de seulement 3 ko...
Ca marche pas en passant par le site ...
Bonjour,
[email protected] a écrit :envoie la [image .gif de seulement 3 ko] moi par mail ...
A l'occasion, je suis également intéressé ;-)
ok je vous envoie ça très vite!
Merci!
Mail envoyé...
reçu ... tu t'es compliqué la tâche !!!
tu as créé une antenne .
il suffisait d'une seul résistance pour ton montage .
Le plus simple marche le mieux !

pour mettre un schema ici, il te faut passer par un hôte style hostingpics ( hébergeur d'images )
Pages : 1 2