bonjour à tous, J'ai 2 arduino D1 mini, le premier je voudrais le faire communiquer en émetteur (tx), le 2em en récepteur (rx) => simple ? hé bien, je n'y arrive pas ! et pourtant cela fait des années que j'utilise ces cartes.
je vous explique, ce que j'ai fait :
pour le premier : émetteur (programme )
#include <SoftwareSerial.h>
SoftwareSerial mySerial(4, 5); //--> D2 (Rx)> GPIO4 et D1(Tx) > GPIO5
void setup() {
mySerial.begin(9600);
pinMode(4, INPUT); // je ne sais pas si cela est nécessaire ?
pinMode(5, OUTPUT);
}
void loop() {
char x [] ="toto"; // je ne sais pas s'il va envoyer toto ou juste le 1er caractère ?
mySerial.write(x);
delay (1000);
}
pour le second : récepteur (programme )
#include <SoftwareSerial.h>
SoftwareSerial mySerial(4, 5); //--> D2 (Rx)> GPIO4 et D1(Tx) > GPIO5
void setup() {
Serial.begin(115200); // vitesse moniteur serie du pc
mySerial.begin(9600); // vitesse transmission
pinMode(4, INPUT);
pinMode(5, OUTPUT);
}
void loop()
{
Serial.print("debut");
char x = mySerial.read();
Serial.print (x);
}
bien sûr, j'ai relier D1 de l’émetteur à D2 du récepteur.
j'ai alimenté mes 2 cartes en 5v
et j'ai mon PC sur le recepteur, en moniteur serie 115200 bauds
en conclusion : j'ai "x" "debut" suivie d'un point d'interrogation à l'envers toutes les secondes une multitude de fois ? si je débranche le fils de transmission (D1 / D2), j'ai idem ! ! !
donc cela ne fonctionne pas !
d'où vient le problème ? cela fait des heures que je recherche (pas fort le garçon)
=> Idem ! je n'avance pas ! ! !
nota : je fais cela pour m'assurer que la liaison série fonctionne pour la suite de mon projet.
merci de votre aide.
mes esp sont-ils HS ? possible, j'en ai pas d'autres . . .
merci, j'ai trouvé ! ! ! !
pour ceux qui ont le même problème :
programme emetteur :
#include <SoftwareSerial.h>
SoftwareSerial mySerial(4, 5); //--> D2 (Rx)> GPIO4 et D1(Tx) > GPIO5
void setup() {
mySerial.begin(9600);
}
void loop() {
char x [] ="maison 2"; // va envoyer maison 2 et le "2" va me servir pour retour ligne
mySerial.write(x);
delay (1000);
}
pour le recepteur :
#include <SoftwareSerial.h>
SoftwareSerial mySerial(4, 5); //--> D2 (Rx)> GPIO4 et D1(Tx) > GPIO5
void setup() {
Serial.begin(115200); // vitesse moniteur serie du pc
mySerial.begin(9600); // vitesse transmission
}
void loop()
{
if (mySerial.available()>0) {
char x = mySerial.read();
if (x==32){Serial.println("");} // 32 => code ascci du chiffre "2"
Serial.print (x);
}
}
C'est un programme simple et non structuré, mais c'est juste pour voir si cela communique !
ce programme fonctionne et affiche =>
2maison
2maison
...
merci pour votre aide kamill ! et excusez du dérangement.
Pour le futur merci de ne pas poster les questions dans la catégorie projets finis…. J’ai déplacé le post
Sinon Si vous voulez comprendre comment bien écouter le port série (ou gérer un flux asynchrone genre keypad) vous pouvez jeter un oeil à mon petit tuto sur le sujet
merci beaucoup, et excusez du mauvais placement du sujet.
j'ai loin d'avoir fini, mon but est de récupérer les infos du compteur linky. je sais qu'il y a pas mal de sujet la dessus, mais perso, je recherche juste à avoir les valeurs des index et P app actuelle ainsi que la couleur des jours tempos sans relais ni délestage.
tu as 100% raison !
j'ai essayé avec la notation ascii, mais j'avais fait l'erreur de '2' avec "2" ! cela ne fonctionner pas bien évidemment ! et j'ai pas capté l'erreur ! ! !
pour le code du retour ligne ? je n'ai pas le code ? ? ?
merci pour tes remarques, mais mon but ici était de juste vérifier si mes esp8266 pouvaient envoyer des choses sur une broche en tx et de les recevoir sur un autre esp en rx.
mon but est de réaliser un décodage du compteur linky, pour envoyer sur un boitier réception dans ma cuisine => je vais donc ouvrir un autre sujet, car j'en suis loin (je n'arrive pas à recevoir les infos du linky ?)
je ferme donc ce sujet (merci à tous)