Switch dipswitch to 5,6,7-load IotManaget to Esp8266 Switch dipswitch to 5,6 — configure the Connection in Esp8266 and load the configuration
File: ConfiguarationFile ForEspUartEventFormatScenario1.zip
Switch dipswitch 1,2,3,4 — and flash Mega
File: ArduinoCodeForArduino-Esp.zip
Что не ясно — читаем тут https://habr.com/ru/post/402429/
Then follow the same files with text:
//Код для Arduino Uno/Mega
include <ArduinoJson.h>
//#include <SoftwareSerial.h>
//SoftwareSerial outSerial(11, 12); // RX, TX
StaticJsonDocument<200> doc;
String bufer = "";
int analogValue = 0;
void setup() {
Serial.begin(9600);
Serial3.begin(9600);
//outSerial.begin(9600);
Serial3.println("{\"id\":\"txt\",\"val\":\"Hello, world uart\",\"int\":0}");
}
void loop() {
read_serial();
// конструкция программного таймера на 800 мс
static uint32_t tmr;
if (millis() - tmr >= 15000) {
tmr = millis();
analogValue = analogRead(A0);
Serial.print("analogValue = ");
Serial.println(analogValue);
String CMD = setValue("analogInputMega", String(analogValue), "200");
Serial.println(CMD);
Serial3.println(CMD);
}
}
void read_serial() {
if (Serial3.available() > 0) {
char ByteRead = Serial3.read(); //чтение данных с порта
if (ByteRead == '\n') { //возврат каретки
Serial.println(bufer);
analyzer(); //передача данных на обработку
bufer = "";
} else {
///накопление данных в буфер
if (ByteRead != 10) bufer = bufer + char(ByteRead); // символ "новая строка" \n, нам в буффере не нужен
}
}
}
void analyzer() {
bufer.replace("\n", "");
bufer.replace("\r", "");
String CMD;
DeserializationError error = deserializeJson(doc, bufer);
if (error) {
Serial.print(F("deserializeJson() failed: "));
Serial.println(error.f_str());
return;
}
String id = doc["id"];
String val = doc["val"];
Serial.print(id);
Serial.print(F("="));
Serial.println(val);
if (id == "SendToArduino" && val == "1") {
//Serial3.println("{\"id\":\"btn20\",\"val\":\"0\",\"int\":0}");
//Serial3.println(setValue("btn20", "0", "200"));
CMD = setValue("FeedBackFromArduino", "0", "200");
Serial.println(CMD);
Serial3.println(CMD);
} else {
CMD = setValue("FeedBackFromArduino", "1", "200");
Serial.println(CMD);
Serial3.println(CMD);
//Serial3.println("{\"id\":\"btn20\",\"val\":\"1\",\"int\":0}");
}
}
String setValue(String id, String val, String Int) {
String cmd = "{\"id\":\"";
cmd += id;
cmd += "\",\"val\":\"";
cmd += val;
cmd += "\",\"int\":\"";
cmd += Int;
cmd += "\"}";
return cmd;
}