• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Решено NodeMCU с опцией u8g

OlegRnD

New member
Добрый день, уважаемые! Наигравшись на модуле esp8266 от Amica с получением температуры с ds18b20 и отправкой по mqtt, решил так же выводить температуру на oled ssd1306 по i2c с использованием команд u8g. Собрал прошивку NodeMcu c u8g и I2C, дописал вывод на экран и... получил неоднозначный результат:
1) модуль, с подключенным дисплейчиком и запитанным 3.3v от самого модуля, вообще не стартует и в терминал есплорера ничего не пишет, видимо не хватает питания в момент включения. Обошел включением модуля и последующим подключением питания дисплея.
2) в таком порядке запускаю скрипт (руками из есплорера, а не через unit.lua) все норм, температура отправляется на брокер и выводится на экранчик, но стоит (предварительно отключив экран) передернуть модуль кнопкой Rst или просто отключив питание и больше он до конца не запускается: идет попытка старта, мигает светодиод, в терминал есплорера выводится какая-то инфа о чексуммах, которой обычно нет и снова мигание, снова чексуммы и так до бесконечности. Перепрошивка этой же прошивкой с опцией u8g проходит из этого состояния успешно, но после нее опять аналогичные попытки старта, при этом и экран отключен и скрипт не в автомате стоит. Лечится такое состояние перепрошивкой на прошивку без опции u8g, при этом после первого старта автоматом запускается форматирование и длится около минуты, дальше модуль ведет себя отлично. Снова ставлю прошивку с u8g и все первый раз запускается, работает, после рестарта опять та же песня.
Может у кого-то будут мысли, в чем может быть проблема?
Пины данных для экранчика висят на D7, D8.
 
Последнее редактирование:

OlegRnD

New member
@OlegRnD D8 - это gpio15. nodemcu распиновка
Для нормального старта должен быть притянут к земле через резистор, а Вы на него повесили экран с высоким уровнем.
Спасибо за информацию. Однако, пробовал и D6, D7 с аналогичным результатом. Более того, войдя в режим постоянных рестартов модуль и с электрически полностью отключенным дисплеем не загружается.
 

OlegRnD

New member
Решил вернуться к этой проблеме, немного поигрался отключением/подключением дисплея в разные моменты работы модуля, в итоге повесил пины данных на 1 и 2 пин и проблема ушла. Попутно возник вопрос хоть и не по теме: линии данных ds18b20 и dht22 повесил на один пин модуля и все вроде работает, насколько это криминально?
 

Jury_78

New member
ds18b20 и dht22 повесил на один пин модуля и все вроде работает, насколько это криминально?
dht22 это же не адресуемый модуль - ему нужна независимая линия. Если так случайно получилось, что временные интервалы не совпадают с требуемыми то он не реагирует.
 

tretyakov_sa

Moderator
Команда форума
Решил вернуться к этой проблеме, немного поигрался отключением/подключением дисплея в разные моменты работы модуля, в итоге повесил пины данных на 1 и 2 пин и проблема ушла. Попутно возник вопрос хоть и не по теме: линии данных ds18b20 и dht22 повесил на один пин модуля и все вроде работает, насколько это криминально?
Не криминально. Так как опросы датчиков идут в разное время.
 
Сверху Снизу