Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Introdução ao ESP-NOW.
Slaves alteram a saída dos seus pinos para ficar igual aos valores recebidos do Master
Demonstração
Distância
//Mostramos no Monitor Serial o Mac Address deste ESP quando em modo station
Serial.print("Mac Address in Station: ");
Serial.println(WiFi.macAddress());
void InitESPNow() {
//Se a inicialização foi bem sucedida
if (esp_now_init() == ESP_OK) {
Serial.println("ESPNow Init Success");
}
//Se houve erro na inicialização
else {
Serial.println("ESPNow Init Failed");
ESP.restart();
}
}
ESPNowMaster.ino - send 1/2
//Pinos que iremos escrever (digitalWrite) cujos valores são recebios do Master
//É importante que o código fonte do Master tenha este mesmo array com os mesmos gpios
//na mesma ordem
uint8_t gpios[] = {23, 2};
//Mostramos no Monitor Serial o Mac Address deste ESP quando em modo station
//Se quiser que o Master mande para ESPs em específico, altere no
//array de slaves (no código fonte do Master) para que ele possua apenas os Mac Addresses printados aqui
Serial.print("Mac Address in Station: ");
Serial.println(WiFi.macAddress());
void InitESPNow() {
//Se a inicialização foi bem sucedida
if (esp_now_init() == ESP_OK) {
Serial.println("ESPNow Init Success");
}
//Se houve erro na inicialização
else {
Serial.println("ESPNow Init Failed");
ESP.restart();
}
}
ESPNowSlave.ino - OnDataRecv
//Função que serve de callback para nos avisar
//quando chegou algo do Master
void OnDataRecv(const uint8_t *mac_addr, const uint8_t *data, int data_len) {
char macStr[18];
//Copiamos o Mac Address origem para uma string
snprintf(macStr, sizeof(macStr), "%02x:%02x:%02x:%02x:%02x:%02x",
mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]);
//Mostramos o Mac Address que foi a origem da mensagem
Serial.print("Received from: ");
Serial.println(macStr);
Serial.println("");