RobotDyn-Uno/Mega-ESP8266

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;

}

Leave a Comment

Supported the project — saved a DIY maker! And we accept gifts...

X