Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Idée viable ou farfelue
#1
Bonjour

la pompe de ma piscine étant très éloigné et de plus semi enterrée, et après de nombreux essais, il m'est impossible d'avoir du wifi.
Pas possible non plus de rajouter des cables
Donc pas de routeur pour piloter la pompe
J'ai alors tester une transmission par HC12 et NRF24L01 et là pas de problème de distance.
D'où l'idée suivante :
je parametre une sortie relais sur mon routeur interne à la maison
le GPIO correspondant, au lieu de se mettre HIGHT ou LOW envoie un ordre "ON" ou "OFF" sur un HC12 ou NRF24L01

Côté piscine, un Arduino nano + un HC12 ou NRF24L reçoit cet "ordre" et met la pompe en marche. Pour éviter des start/stop trop courts on paramètre un temps mini de fonctionnement

Pensez vous que ce soit viable ?
Répondre
#2
Oui cela est viable.

André
Répondre
#3
Merci André pour cette réponse rapide.
Côté récepteur je sais faire, côté du routeur, c'est un peu plus "hard". Je pense qu'il faut que je regarde dans Actions.cpp et RelaysOn(). Au lieu de
faire un : digitalWrite(Gpio, OutOn), tester la valeur OutOn et suivant le cas remplacer par hc12.println("ON") (ou OFF).
Je vais regarder çà mais si quelqu'un sait faire, il est le bienvenu.
Répondre
#4
Vous pilotez simplement la sortie en on/off. Et vous transmettez cet état par votre système radio.
Répondre
#5
Oui, j'y avais pensé, mais le HC12 a besoin d'une trame série et pas seulement d'un changement de niveau. D'où ma question, est ce bien dans la fonction RelaisOn() qu'il faut modifier
digitalWrite(Gpio, OutOn);
par
switch (OutOn){
case 0:
hc12.println("OFF");
case 1:
hc12.println("ON");
}
Répondre
#6
Ils ont l air bien ces modules de transmission, ca donne des idees..
Répondre
#7
Avant il faut initialiser un port série. J'ai des HC12, mais je n'ai pas encore trouvé le temps de les essayer.

André
Répondre
#8
Oui, bien sur mais je n'ai pas mis tout ce qui va autour. je voulais surtout savoir si j'étais au bon endroit dans votre programme
Effectivement il faut un:

#include <SoftwareSerial.h>
SoftwareSerial hc12(RX, TX); //les n° gpio
dans setup:
hc12.begin(9600);

puis dans les fonctions emetteurs
Hc12.println("blabla");
dans récepteur:
if (hc12.available())
String cmd= hc12.readstringUntil('\n')
cmd.trim()
puis traiter etc etc.....
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)