======== Connexion de 2 esp32 via Uart ========
=====Liaison UART entre 2 esp32 :=====
=== Commentaires ===
Le but c'est de faire clignoter une LED sur l'esp32 Slave qui sera pilotée par l'esp32 Master en envoyant 0 pour eteindre et 1 pour allumé la LED et cela via une liaison serie ou UART entre les 2 esp32 . L'UART 2 sera utilisée dans notre exemple.
=== Materiels ===
-- 2 ESP32
-- 1 breadboard
-- 1 Led 5 mm
-- 1 resistance 1/4w 1khoms
-- 2 PC avec ports USB ou 2 alimentations 5V 1A
-- Fils de cablage dupont 15 cm
===le schéma:===
^ESPMaster^ESPSlave^
| br 17 TX2 | br 16 RX2 |
| br 16 RX2 | br 17 TX2 |
| GND (A cote 5V) | GND (A cote 5V) |
| | br 15 LED verte |
| | GND ( A cote P23) |
{{ :start:esp32:0uiijxnie0vv0gq7.png?direct&300 |}}
=== Programmes Master et Slave ===
#include
HardwareSerial SerialPort(2); // use UART2
void setup()
{
SerialPort.begin(115200, SERIAL_8N1, 16, 17);
}
void loop()
{
SerialPort.print(1);
delay(5000);
SerialPort.print(0);
delay(5000);
}
#include
HardwareSerial SerialPort(2); // use UART2
char number = ' ';
int LED = 15;
void setup()
{
Serial.begin(9600);
SerialPort.begin(115200, SERIAL_8N1, 16, 17);
pinMode(LED, OUTPUT);
}
void loop()
{
if (SerialPort.available())
{
char number = SerialPort.read();
if (number == '0') {
digitalWrite(LED, LOW);
Serial.print("0"); /* verification reception 0 */
}
if (number == '1') {
digitalWrite(LED, HIGH);
Serial.print("1"); /* verification reception 1 */
}
}
}
NOTA important :
*** BRANCHER les ESP32 sur des PC ou des alimentations différentes** , branché sur la même alimentation cela ne fonctionne pas.... ????
-j ai essayé à 115200 Bauds : cela fonctionne aussi
-J ai essayé 1 secondes pour le "delay" sur l'esp32 master : cela fonctionne .
==== Liens web ====
[[https://randomnerdtutorials.com/esp32-uart-communication-serial-arduino/|esp32-uart-communication-serial-arduino EN]]
[[https://docs.espressif.com/projects/esp-idf/en/v4.3/esp32/api-reference/peripherals/uart.html|Doc UART ESP32 Expressif EN]]