Arduino,esp8266, MH-Z19B - нет связи по UART

Binary Smile
Offline
Зарегистрирован: 15.05.2016

Добрый день!

Нет связи по UART с датчиком CO2 MH-Z19B.

В Арсенале есть NodeMCU ESP8266 превращенная в ардуино-плату.

Есть пара MH-Z19B, и пытаюсь самым простым скетчем считать данные по UART, но мне ничего не приходит.

У меня было подозрение, что первый датчик был перегрет при пайке, я взял второй датчик, у которого был шлейф через разъем. Но со второго датчика тоже не приходят данные.
Я проверил мультиметром аналоговый выход с датчика - датчик работает, если на него дыхнуть, показания изменяются, лампочкой внутри он мигает.

Подключаю датчик питание к 5V на Vin, земля общая.

Подскажите, пожалуйста, куда копать?

 


#include <SoftwareSerial.h>;
SoftwareSerial mySerial(13, 15); // GPIO13 D7  and GPIO15 D8 
// MySerial(RX,TX) - RX-TX платы

byte cmd[9] = {0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79};
char response[9]; // здесь будет ответ

void setup() {
delay(10000);
Serial.begin(9600); //это наш монитор
mySerial.begin(9600); //а это датчик MH-Z19(14)
delay(10000);

}

void loop()
{
mySerial.write(cmd,9);//запрос PPM CO2
mySerial.readBytes(response,9);

int responseHigh = (byte) response[2];
int responseLow = (byte) response[3];
int ppm = (256*responseHigh)+responseLow;
// ну и по мануалу из ответа считаем PPM

Serial.println(ppm);
delay(10000);
}

 

rkit
Offline
Зарегистрирован: 23.11.2016

Softwareserial не поддерживает esp8266.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016
sadman41
Offline
Зарегистрирован: 19.10.2016

Я дёрнул для себя либу из плагина ESP32. Вроде как нормально чухает.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:
Я дёрнул для себя либу из плагина ESP32. Вроде как нормально чухает.

а параметры тоже поддерживает?

sadman41
Offline
Зарегистрирован: 19.10.2016

А, нет, соврал. Почудилось что-то про ESP32 Core.

Вот это брал: https://github.com/plerup/espsoftwareserial/

 

Binary Smile
Offline
Зарегистрирован: 15.05.2016

Спасибо!
Ходил вокруг да около и не обратил на это внимание)

Поставил правильную либу и всё заработало)

Нашел в репозитории ArduinoIDE библиотеку EspSoftwareSerial, поставил. Попросил IDE выводить подробности компиляции - компилятор честно сказал, что нашел несколько библиотек SoftwareSerial и взял, конечно, не ту что для ESP.

Я банально удалил "не нужные" либы. (наверное, есть более корректный способ указать конкретную либу)
и датчик сразу заработал и всё показал.

Спасибо!

rams
Offline
Зарегистрирован: 17.02.2021

Доброго времени суток. у меня такая же проблема.  Плата ESP8266   но датчик у меня MH-Z19C

Я загрузил скетч из первог осообщения, загрузил библиотеку  https://github.com/plerup/espsoftwareserial/ б удалил ту которая была некоректная.  но у меня по прежнему ничего не выводит.

я не сильно опытный ещё правильно ли я всё сделал подключи Rx датчика -  к D7 , Tx  к D8  ( пробовал и местами поменять)

можно  както проверить может сам датчик мёртвый? или руки кривые? 

 

 

rams
Offline
Зарегистрирован: 17.02.2021

Заметил только что на контакте VIN  у меня нет напряжения!  понятно почему ничего не работало )

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

rams

на vin датчика нет напряжения? Он как вообще подключен? Земля и питание откуда взяты?

b707
Offline
Зарегистрирован: 26.05.2017

rams пишет:

Заметил только что на контакте VIN  у меня нет напряжения!  понятно почему ничего не работало )

какая связь?

У меня практически ни на одной плате на VIN нет напряжения - я пином VIN вообще никогда не пользуюсь... а все работает.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

b707 пишет:

rams пишет:

Заметил...

...все работает.

Это только потому, что не заметил. А вот если бы заметил...