Comment faire communiquer simplement deux modules situés sur un même réseau IP ? On peut déclencher une connexion SSH depuis l’un des modules, envoyer un ordre, et couper la connexion, mais c’est lourd, très lourd.

En ce moment, je teste l’envoi de simples trames UDP, émises d’un module vers un autre module, ce dernier étant à l’écoute des informations reçues et capable de les traiter selon leur contenu.

Pour tester l’idée, j’utilise l’application UDP SENDER sur Android, et je lui fais émettre des trames vers l’IP 192.168.1.124, un Raspberry Pi chargé d’écouter les trames UDP sur le port 54345 :

UDP raspberry

Envoi du mot “ON” sur le port 54345

Sur le Raspberry Pi, un simple script python3 :

import socket
sock = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
sock.bind( ('',54345) )
code = "on";
while True:
    data, addr = sock.recvfrom(1024)
    data = str(data, encoding='utf8')
    print(data)
    print (addr)
    if "on" in data:
      print ("ON")

Simple non ? On vérifie si “on” est contenu dans les données reçues (variable data), si oui on affiche ON à l’écran du terminal. Les données reçues et l’adresse IP d’origine sont également affichées, à des fins de test.

A nous maintenant de venir traiter les données reçues. On peut imaginer par exemple :

  • “porteon” = porte ouverte
  • “porteoff” = porte fermée
  • “rfidon” = trame RFID authentifiée reçue du lecteur extérieur

etc…

L’envoi des trames UDP peut également se faire en multicast, de façon à être reçues par n’importe quel périphérique de votre réseau IP, laissant la porte ouverte à des tas d’applications domotiques plutôt sympa 😉

Là, j’attends de pouvoir tester sur un ESP8266 : relié en WiFi, il va pouvoir se positionner n’importe où au bureau et venir délivrer en UDP ses informations : température, code RFID reçu, etc.

Tenez, un exemple trouvé au fil du web :

MFRC522-ESP8266

ESP8266 câble sur une platine RFID MFRC522

Le programme proposé ici lit les trames, mais on peut y ajouter une communication supplémentaire, en envoyant les codes reçus sur notre réseau, détectables par toute l’installation domotique. Ca vous donne des idées ? Moi oui !! 🙂