Page 1 sur 2
Communication filaire (ethernet) entre 3 raspberry [RESOLU]
Posté : dim. 27 sept. 2020 18:22
par Melchior59
Bonjour tout le monde,
L'hiver revenant (plutot précocement!), on se replonge (avec délice!) dans le monde du Raspberry Pi et de Python.
J'ai en tête un petit projet mais il me faut de l'aide. D'aucuns diront qu'il me faut passer des heures à chercher sur le Net et que c'est comme ça qu'on apprend et je leur répond que, les solutions existant probablement, il est inutile de perdre du temps à les refaire!
Donc, pour ceux qui voudraient bien me fournir gracieusement les pistes (pour affiner les recherches), voici ci-dessous mon tout petit projet :
- une sonde (S1) connectée à un Raspberry (rp1)
- une sonde (S2) connectée à un autre Raspberry (rp2)
- une sonde (S3) connectée à un troisième Raspberry (rp3)
- rp1, rp2 et rp3 relié en filaire pour communiquer entre eux (rp3 étant le maitre)(je préfèrerais du filaire direct, sans routeur)
- avec un petit prog en python, rp3 récupère à certains intervalles les données de rp1 et rp2.
Je sais gérer les sondes connectées mais c'est la partie "communication" entre les Raspberry qui me pose problème.
Prenez votre temps, l'hiver ne fait que commencer! Je plaisante!!
Merci d'avance et ..... protégez-vous!
Yannick
Re: Communication filaire (ethernet) entre 3 raspberry
Posté : dim. 27 sept. 2020 22:40
par destroyedlolo
Salut,
Si tu ne vaut pas passer par de l'éthernet, la solution le plus simple est de mettre des 2 adaptateurs USB -> Séries sur le PI maitre et de le connecter sur la sortie "console" des PI esclave.
Prenez votre temps, l'hiver ne fait que commencer! Je plaisante!!
faut surtout que finisse tout ce que j'ai a faire avant que mes W.E. soit entièrement pris
A+
Re: Communication filaire (ethernet) entre 3 raspberry
Posté : lun. 28 sept. 2020 11:44
par Melchior59
Bonjour destroyedlolo,
Merci pour ta réponse rapide.
Je me suis mal exprimé dans mon premier post. Je ne veux pas que les 2 esclaves soient sur le réseau wifi de la maison, uniquement le rp3.
Mais ils peuvent communiquer entre eux avec de l'ethernet via un switch. Dans ce cas là, les branchements sont simples.
Peux-tu me tuyauter sur la com (en python) des 3 rpi ?
Merci et bonne journée.
Re: Communication filaire (ethernet) entre 3 raspberry
Posté : lun. 28 sept. 2020 12:23
par destroyedlolo
Salut,
Je ne pourrais te donner d'exemple en Python ... vu que je n'en fait pas (enfin de manière sérieuse).
Mais tu devrais pouvoir faire comme en C(++), c'est a dire ouvrir des sockets IP d'une machine à l'autre : il y a plein d'exemples sur le web.
Par contre, si tu veux faire plus simple (au niveau de ton code du moins), tu peux passer par des bus de messages : par exemple installer
Mosquitto sur le PI maitre et les faire communiquer par des librairies comme
https://pypi.org/project/paho-mqtt/ (premiere lib trouvée, à nouveau, je ne programme pas en python).
L'avantage est qu'un tel bus de donnée prend en charge toute la partie "grasse" de la communication et te permet d'avoir une archi plus flexible que de hardcoder les sondes (en clair, tu peux ajouter, enlever autant de sondes que tu veux sans changer quoi que ce soit a ta com).
L'autre avantage, c'est que ca devient de la programmation "événementielle" donc plus facile a conceptualiser.
A+
Re: Communication filaire (ethernet) entre 3 raspberry(RESOLU)
Posté : lun. 28 sept. 2020 13:18
par Melchior59
Merci destroyedlolo.
J'étudie ta réponse.
Bonne journée
Melchior59
Re: Communication filaire (ethernet) entre 3 raspberry
Posté : lun. 28 sept. 2020 18:56
par jelopo
Re: Communication filaire (ethernet) entre 3 raspberry
Posté : mar. 29 sept. 2020 14:56
par Melchior59
Bonjour destroyedlolo,
Merci pour tes réponses.
Mes explications risquent d'être un peu longues.
L'été dernier, j'ai essayé de câbler 3 sondes de température type DS18B20 sur un PI 3B+. Sur la carte d'essai ça fonctionnait très bien mais ..... le temps des essais!
Les sondes mises en place dans la maison, ça ne fonctionne plus en permanence. Je perdais de temps en temps une sonde ce qui est plus que gênant dans la gestion d'une chaudière!!!
Bref, trois sondes sur une même entrée, c'est un peu le bordel!
J'ai donc pensé mettre une sonde sur chaque PI (2 PI zéro W ( à 10€) en esclave et mon PI 3B+ en maître).
Le tout c'est de faire communiquer les 3 PI. J'ai besoin des infos des 2 PI zéro W toutes les 15mn.
Qu'en penses-tu ?
Merci
Re: Communication filaire (ethernet) entre 3 raspberry
Posté : mar. 29 sept. 2020 15:37
par mike913
Bonjour,
A la place des pi 0 tu peux utiliser des ESP8266 qui communiquent en WIFI avec le maître
Re: Communication filaire (ethernet) entre 3 raspberry
Posté : mar. 29 sept. 2020 16:23
par Melchior59
Merci mike913. Je vais étudier les ESP8266.
Re: Communication filaire (ethernet) entre 3 raspberry
Posté : mar. 29 sept. 2020 16:52
par destroyedlolo
Salut,
Melchior59 a écrit : ↑mar. 29 sept. 2020 14:56
L'été dernier, j'ai essayé de câbler 3 sondes de température type DS18B20 sur un PI 3B+. Sur la carte d'essai ça fonctionnait très bien mais ..... le temps des essais!
C'est ce dont j'avais peur
C'est en effet bien pour faire des tests, mais pas plus : il vaut mieux utiliser un coupleur I2C -> 1Wire comme je l'explique sur mon site (en signature). Déjà, ca évitera de griller les GPIO de ton PI, mais les connections seront plus fiables. Par exemple, mon réseau comporte une 20e de sondes sur plus de 70m sans pb.
Il y a meme des soft pour publier les températures par MQTT (voir
https://github.com/destroyedlolo/Marcel).
Tu auras aussi des exemples avec des ESP8266 même si ca ne me sert pas spécialement utile dans ton cas.
Sauf que ca sera pour plus tards, il semblerait que ma ligne ADSL soit tombée
[edit]Bon, ca remarchouille ... mais comme c'est un truc qui commence a lacher, on ne sait pas jusqu'a quand

[/edit]