Serial "Arduino-ESP-Arduino"
- Войдите на сайт для отправки комментариев
Добрый вечер уважаеммые ардуинщики. Возникла необходимостьв обмене информацией между Arduino UNO и ESP8266 по UART. Начал пробоватьс малого, отправляя текст с ESP8266 на ардуинку и там его выводя через HardwareSerial в IDE. Все прекрасно работало. Но когда усложнил задачу: теперь нужно отправлятьс ардуинку на ESP там читать запрос и отправлять ответ назад. Возникла проблемка. Ломаются сообщения.
Приведу примеры скетчей: Это скетч на Ардуине, он отправляет сообщение и ждет ответа:
#include <SoftwareSerial.h> String inString; bool waitResponse = false; SoftwareSerial esp8266(3, 4); void setup() { Serial.begin(115200); esp8266.begin(115200); esp8266.flush(); Serial.flush(); } void loop() { if (!waitResponse) { esp8266.println("Hello ESP!"); esp8266.flush(); Serial.println("Hello ESP!"); waitResponse = true; } delay(2000); if (esp8266.available() > 0) { waitResponse = false; inString = esp8266.readStringUntil('\r\n'); Serial.println(inString); } }
Это скетч на ESP:
void setup() { Serial.begin(115200); } void loop() { String inString = ""; if (Serial.available() > 0) { inString = Serial.readStringUntil('\r\n'); delay(2000); if (String(inString) == String('Hello ESP!')) { Serial.println("Hello Arduino!"); } else { Serial.println("I`m sorry! I don`t uderstand!"); } Serial.flush(); } }
Сдесь мы просто читаем и отправляем назад ответ в зависимости от того правильно ли мы прочитаели его. И вот тут начинаются проблемы. Во превых всегда приходит "I`m sorry! I don`t uderstand!", а во вторых, в мониторе порта я вижу:
Нашел эту темку: http://arduino.ru/forum/programmirovanie/softwareserial-ne-rabotaet-na-115200
Проблемку c передачей данных решил перевев все на 9600 бод. Однако по прежнему срабатывает ответ только I`m sorry! I don`t uderstand!
I`m sorry! I don`t uderstand!
Вот правильный скетч для ESP: