ESP8266 + Arduino Serial

taraspigo
Offline
Зарегистрирован: 08.04.2014

Здравствуйте Уважаемые форумчане! Мне нужна помощь с подсказкой по следующему:

Есть два модуля ESP8266 и одна ардуина. 

Один модуль ESP8266 отправляет UDP с показаниями температуры и влажности, другой модуль их принимает и выводит полученное в сериал.

Стоит задача в том чтоб тот модуль который принял UDP с данными отправил их ардуине подключенной по сериал к нему которая в свою очередь выводит все показания на подключенный к ней дисплей и включит или выключит реле если ето необходимо. Ето все будет управлять отоплением в квартире.

Вопрос номер 1: Не ошибаюсь ли я и можно вышеописанное реализовать ?

Вопрос номер 2: TX от ESP8266 я подключил к RX ардуины. Она в сериал на компе мне выводит кокозябры. И по тому как она выводит их я могу предположить что ето то что мне нужно но почему кокозябры вместо нормальных символов?

Большое спасибо за помощь и потраченное на меня время.

Также буду благодарен за все подсказки в виде подводных камней етой задумки.

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

1. Возможно. 

2. Скорость какая у UART ESP  и какая в сктче у Serial?

Было бы проще давать ответы если бы была приведена схема и скетч.

Опять же, по камням, ESP8266 имеет 3.3в питание, ардуина тоже 3.3 вольта? Если нет то надо согласовывать уровни RX TX.
Сразу хочу сказать что у меня и без согласования работали ESP8266 3.3в и Arduino Nano 5в. Но это не есть хорошо, сделал согласование на макетке на паре мелких MOSFET транзисторов.
Для соединения на Arduino используете Hardware Serial или Software Serial? Спрашиваю потому что Software Serial у меня на скорости более 9600 не работает стабильно, постоянно идет мусор в передаче.

Опять же по ардуине, без схемы непонятно насколько она вам нужна. ESP может вывести данные на дисплей, но весь вопрос в том какой у вас дисплей. Так же может включать и выключать реле. Но как пишут в сети, работает ESP не очень стабильно, у меня пока нет достаточной статистики чтобы делать такие заявления. Если получится собрать  и запустить устройство на ESP без Arduino то наработаю статистики и тогда могу говоритиь о глючности и нестабильности.

А так от вас желательно схему и скетч, чтобы разговаривать более предметно.

 

taraspigo
Offline
Зарегистрирован: 08.04.2014

С подключением и выводом данных разобрался. А именно что я сделал. Понизил вольтаж до 3.8V hardware serial ардуины, купленными в месном магазине конденсаторами тот что RX - D0. Подал нормальное напряжение на плату ESP8266 (получилось на лабораторном блоке питания чуть больше 3.3В). Данные с помощю нижеприведенного кода начали поступать в указанный интервал. Теперь мне нужна подсказка кода чтоб ардуина включила/выключила реле от полученной температуры в сериал. То что приходит в сериал будет ниже кода.

String a;
void setup() {

Serial.begin(115200);  //устанавливаем скорость сериал
}

void loop() {

while(Serial.available()) {

a= Serial.readString();// читаем полученные данные в сериал
Serial.println(a); // выводим данные

}

}
Пример данных полученных от ESP. Показания датчика хромают так как я немного поиздевался над ним =)
 
Received 12 bytes from 192.168.10.105, port 4097
UDP packet contents: ESP_dht_t=22
Receivedа12 bytes from 192.168.10.105, port 4097
UDP packet contents: ESP_dht_h=93
 
Буду рад если кто то подскажет мне код чтоб ардуина прочитала етот показатель температуры - ESP_dht_t=22 и отреагировала включением/выключением реле.
Постарался описать все чтоб было понятно.
Заранее спасибо за помощь.