Bonjour,
Tout d'abord, je dois préciser que je suis profane en programmation et en Arduino, je vois globalement mais dès qu'il faut rentrer dans le détail c'est plus dur.
J'ai passé pas mal de temps a régler mon problème avant de poster mon message, mais avec mon niveau de connaissance, je m'oriente vers vous
But/présentation du système:
Piloter des relais avec une Arduino par l'intermédiaire de commandes envoyées par Wifi à un ESP01S sous ESP Easy.
Ces relais pilotent mes volets roulants.
Ma domotique sous Jeedom pilote actuellement une carte Arduino par l'intermédiaire d'un plugin, cela fonctionne très bien.
Pour des problèmes de compatibilité, je dois trouver un moyen d'envoyer des commandes à mon Arduino depuis ma Domotique sans utiliser le système actuel (Jeeduino). Un plugin ESP Easy existe et me permet d'envoyer des infos séries à un ESP.
Apres passage en revue de beaucoup de solutions, je suis partis sur une module ESP01S (un esp8266 dédié a la com série on va dire).
Ce module a été flashé avec ESP Easy, c'est fonctionnel.
Je voudrai envoyer un numéro de relais à activer depuis ma domotique et que l'Arduino active le relais en conséquence. Si je peux mettre des noms au lieu de numéro, c'est encore mieux.
Coté Arduino, j'ai fait un montage de test avant d'installer tout ça sur le système existant. Pour l'instant je n'arrive pas à le faire fonctionner.
L'idée de ce montage est d'allumer des leds en fonction de ce que l'arduino reçoit.
Je tiens à préciser que l'ESP est connecté a l'Arduino avec des convertisseurs de tension.
Les problèmes:
Avec le programme que j'ai fait, je reçois constamment (enfin par vague) des données séries ==> est ce normal?
Problème du coté Arduino ou ESP? Je epnche pour l'Esp qui envoie régulièrement des infos non demandées...
Pour envoyer une info, j'utilise la commande suivante:
http://192.168.1.62/control?cmd=serialsend,77 ==> 77 peut être remplacé par autre chose
Voici le code de l'Arduino (réalisé a partir d'exemples glané sur internet):
int RVch1HUp = 13; //Relais volet Chambre 1 Haut Montée
int RVch1HDn = 12; //Relais volet Chambre 1 Haut Descente
int Infoserie = 0; //Variable ou sera écrit ce qui sera reçu part le port série
void setup() {
// put your setup code here, to run once:
pinMode(RVch1HUp, OUTPUT); //configuration pin13 en sortie
pinMode(RVch1HDn, OUTPUT); //configuration pin12 en sortie
Serial.begin(9600); //démarrage communication série
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available()>0){ //on regarde si le buffer a des données
Infoserie = Serial.read(); //on recopie les données dans la variable Infoserie
delay(100);
Serial.print("Info lue : ");
Serial.println(Infoserie);
//while (Serial.available()) Serial.read();
if (Infoserie == 32 ){ //si test est vrai, activation de la sortie pour 1 seconde
Serial.print("Action : ");
Serial.println("OK1");
digitalWrite(RVch1HUp, HIGH);
delay(1000);
digitalWrite(RVch1HUp, LOW);}
else if (Infoserie == 77 ){
Serial.print("Action : ");
Serial.println("OK0");
digitalWrite(RVch1HDn, HIGH);
delay(1000);
digitalWrite(RVch1HDn, LOW);
}
}
}
Voilà, si quelqu'un aurait des idées je suis preneur.
Rémi.