Bonjour,
L'inscription sur ce forum et les premiers messages sont modérés par un Administrateur.
Ce n'est pas très convivial mais malheureusement nécessaire suite au spam intensif de nos amis russes.
Cordialement,
Dominique

Communication inter-Esp

Concerne la réalisation de projets Makers / Electroniques autour d'une carte MicroPython.
Forum rules
La PYBStick est supporté par MC Hobby (MicroPython) et Garatronic (Arduino IDE).
Merci de suivre les recommandations suivantes.
Pensez à:
  • Titre claire: permettant d'identifier le produit et le problème
  • Contenu complet: schema, message d'erreur, etc (tout ce qui permet d'aider à distance).
  • Fichier joint: Max 300 Ko
  • Courtoisie et précision
Post Reply
User avatar
Coyotte
Posts: 27
Joined: Mon 12 Apr 2021 16:42
Location: Liège (Belgium)

Communication inter-Esp

Post by Coyotte »

Bonjour à toutes et tous,

J'ai une petite (enfin ...petite...) question à soumettre à vos expériences respectives :

Je suis occupé à me créer un mini (très mini: 120x60cm) réseau de train en HOe qui sera commandé en digital sur base d'un ESP8266.
(Pour ceux que cela intéresserait voici le lien : http://udelmas.e-monsite.com/pages/cent ... i-d17.html )

En parallèle à cette centrale et sans aucune communication (en tous cas dans un premier temps), je voudrais implémenter quelques fonctionnalités telles qu'une horloge en temps accéléré(Date/heure/Lever et coucher du soleil), des modules qui utiliseraient l'horloge pour jouer des fichiers mp3 en fonction de l'heure, gérer les éclairages, ... le tout programmé en micropython sur des modules ESP8266 et/ou ESP32.

J'en viens à mes questions :
1a) Quel standard de communication utiliser entre les modules ?
I2C ou CAN ?
Il semble que la distance limite en I2C soit de l'ordre du mètre, ce qui pourrait être un peu juste.

1b) Si j'opte pour l'I2C, je trouve beaucoup de doc expliquant comment utiliser I2C en tant que master (capteur de température, ...) mais je n'ai rien trouvé qui explique comment implémenter l'écoute et la réponse à une requête d'un master.

2) Quel mode de fonctionnement implémenteriez-vous ?
2a) L'horloge fonctionne en mode "Push" et diffuse l'heure à tout qui est sur le réseau ?
2b) L'horloge fonctionne en mode "Pull" et ne fait que répondre aux demandes d'heure des différents modules ?
2C) Autrement encore ?

Vos réponse amèneront certainement d'autres questions mais je serais déjà ravi de pouvoir défricher ce sujet avec votre aide.
En vous remerciant d'avance pour vos conseils,

Coyotte
totorock
Posts: 10
Joined: Mon 11 Oct 2021 15:02

Re: Communication inter-Esp

Post by totorock »

Salut salut.
Je n'y suis pas encore la en programmation, mais dans le cadre d'un futur projet domotique, un pote m'a dit que esp now a été porté sur MPY.
Des fois que ca puisse t'aider: https://micropython-glenn20.readthedocs ... spnow.html
A ce que j'en ai compris, tu peux établir une connection entre plusieurs ESP en y mettant leurs adresses.
La un exemple de bi directionnel: https://www.raspberryme.com/communicati ... tes-esp32/
Bye
User avatar
Coyotte
Posts: 27
Joined: Mon 12 Apr 2021 16:42
Location: Liège (Belgium)

Re: Communication inter-Esp

Post by Coyotte »

Hello,

Je vais jeter un oeil sur tout cela.
Merci à toi,

Coyotte
User avatar
Coyotte
Posts: 27
Joined: Mon 12 Apr 2021 16:42
Location: Liège (Belgium)

Re: Communication inter-Esp

Post by Coyotte »

Hello,

Une autre piste serait d'utiliser un "Cloud IOT".
Je dois regarder s'il est possible d'un héberger un en local sur un Raspberry pi par exemple (Ok c'est plus un "cloud" alors :D , mais la technologie reste applicable)

Mais la solution de Totorock reste un bonne candidate....

Coyotte
User avatar
Dominique
Administrateur du site
Posts: 249
Joined: Sun 17 May 2020 22:43

Re: Communication inter-Esp

Post by Dominique »

@coyotte
Je penses qu'il faut laisser I2C pour ce qu'il fait de mieux: un bus de données entre Microcontroleur et ses Capteurs

Réseau de communication
Donc RS485 (plus simple à implémenter car il passe via un UART) ou Canbus (plus rapide, plus longue distance mais le protocole est plus complet).
RS485 travaille aussi avec des adresses (comme I2C) mais si je ne me trompe pas, il y a aussi une adresse BroadCast.

Pour du RS485, tu trouvera un excellent module RS485 chez Olimex.
En voici la description en Français.

1 x OLI-MOD-RS485
Module communication RS485, non isolé, UEXT
4.08 Eur TTC/p (indicatif)
https://shop.mchobby.be/product.php?id_product=2103

Alors le mieux est d'avoir un "Pull" qui annonce l'heure sur le réseau. Cela fera moins de trafic sur le réseau (request + response de chaque module).

ESP ou Pico ?
Quitte à ne pas exploiter le WiFi... le mieux est encore d'opter pour des Raspberry-Pi PICO (prix vraiment trèèèèèssss attractif) et supportant MicroPython.

Un meilleur bus I2C
Enfin, toujours utile à savoir, il existe des module permettant d'améliorer activement la transition des signaux du bus I2C et donc d'en augmenter la longueur et la fiabilité (il n'en faut qu'un en début de réseau).
1 x LTC4311-I2C-EXTENDER
Extension / Terminaison bus I2C, LTC4311
9.07 Eur TTC/p (indicatif)
https://shop.mchobby.be/product.php?id_product=2058
Dominique, MC Hobby.
User avatar
Dominique
Administrateur du site
Posts: 249
Joined: Sun 17 May 2020 22:43

Re: Communication inter-Esp

Post by Dominique »

@totorock,
Vraiment très intéressant! Merci pour cette info!
totorock wrote: Thu 10 Mar 2022 22:14 Salut salut.
Je n'y suis pas encore la en programmation, mais dans le cadre d'un futur projet domotique, un pote m'a dit que esp now a été porté sur MPY.
Des fois que ca puisse t'aider: https://micropython-glenn20.readthedocs ... spnow.html
A ce que j'en ai compris, tu peux établir une connection entre plusieurs ESP en y mettant leurs adresses.
La un exemple de bi directionnel: https://www.raspberryme.com/communicati ... tes-esp32/
Bye
Dominique, MC Hobby.
User avatar
Coyotte
Posts: 27
Joined: Mon 12 Apr 2021 16:42
Location: Liège (Belgium)

Re: Communication inter-Esp

Post by Coyotte »

Merci Dominique pour cette réponse complète et circonstanciée.

Là, j'ai un bateau sur le feu avec de l'Arduino pour contrôler les lumière mais dès que ceci est en ordre, je prend le boulot sur le réseau de train...
Bonne journée,

Coyotte
Post Reply