Communication wifi entre deux Raspberry

Bonjour à tous,
Je démarre avec la Raspberry pour un projet lié à l’astrophoto, mes connaissances dans le domaine sont donc assez sommaires. J’ai besoin de faire un détecteur de pluie qui me réveillerait afin de pouvoir mettre rapidement mon matériel à l’abri au cas où car je dors pendant que le télescope travaille !
J’ai réussi à faire fonctionner un petit programme à base de Water Sensor sur un RPI3B+, celui qui sera à côté du matériel. Ce Water Sensor sera remplacé par un détecteur de pluie optique (celui des essuie-glace automatique) une fois le système validé : Hydreon RG-11 Rain Sensor – Lunático Astronomía

J’aimerai maintenant que l’alarme soit envoyée sur un RPI distant avec buzzer et LED. La communication entre les deux serait en wifi car les deux RPI ne sont pas très éloignés de ma box ou d’un répétiteur wifi. Le RPI distant ne sera que récepteur, aucune interaction avec le RPI local n’est nécessaire.

Tout d’abord, est-ce que ce genre d’application est possible ?
Si ça l’est, pourriez-vous m’orienter sur des tutos afin de commencer cette phase au mieux, je ne trouve rien qui m’aide vraiment pour l’instant faute de savoir poser correctement ma question…

Merci d’avance à ceux qui voudront bien m’aider !
Jean-Marc

Plusieurs options…

  • PI envoi un appel via curl ou wget, sur un URL distant, qui est celui du Pi distant, quand le URL est appelé, un script ce lance.
  • Pi envoie une demande en SSH/Telnet, exécute la commande désiré à distance sur le Pi distant.
  • Via signal RF (non Wifi) et deux modules l’un émetteur l’autre récepteur

Option #1
Le Pi Distant il te faut un serveur Web (Apache par exemple) , tu lui donne un script PHP qui lui va lancer la commande requise ou qui va laisser une trace de la demande pour qu’un script, bash ou python en « loop » le voit et lance les commandes requise (si tu as besoin d’un niveau utilisateur plus élevé). Le Pi qui envoie la demande n’a qu’a avoir « wget » d’installé et de pointer la sortie sur le /dev/null.

Option #2
Le Pi qui envoie la demande au Pi Distant va ce connecter via une commande telnet/ssh, exécuter les commandes ou le script, et va fermer la session, La commande doit être bien formaté, idéalement c’est de faire une seul commande qui lancera un script qui lui a tout les codes.

Option #3
Plus complexe, mais plus « sécuritaire et fiable », est d’utiliser des modules RF, comme une manette de porte de garage, et ainsi communiquer par « relay distant ». Il faudra un bon tuto sur l’utilisation de module RF.


Pour l’option #1 & #2 il te faudra un IP statique pour le IP distant, pour s’assurer de toujours le voir et bien le contacter.

hello,

ça peut aussi se faire avec deux scripts python

  • le client sur le rpi qui détecte la pluie et communique alors avec le serveur
  • le serveur sur le « led+buzzer » qui écoute en permanence et qui quand le client se connecte fait son show :wink:

comme le précise levelKro c’est plus sûr si le serveur a une adresse fixe.

un exemple là :
https://python.antoinepernot.fr/cours.php?course=chap7

En effet, c’est le même principe qu’avec le serveur Web et WGET, mais tu crée le serveur (python) et initialise une connection selon ta « norme » avec l’autre script Python. Après c’est de savoir avec tes connaissances ce qui te semble le mieux :slight_smile:

Bonjour,

Pour ma part, je pencherais sur une commande ssh envoyée du PI serveur vers le client. Il me parait que c’est le plus simple à mettre en place.

Un peu hors sujet, mais quand même, si tu veux être réveillé avant le début de l’averse, il existe ce projet, qui permet d’interroger MeteoFr’ance pour savoir si il va pleuvoir dans l’heure.

Bonnes bidouilles.

A+

1 J'aime

Merci à tous pour vos réponses très techniques mais qui me montrent la solution à mon niveau !
Meteofrance-api et le signal RF entre un émetteur et un récepteur me rappellent que j’ai fait une box domotique Jeedom avec un RPI4… Des petits modules émetteur et récepteur RF433MHz vont grandement me simplifier la conception du système.
Encore merci à vous :wink: