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

i2c и ESP8266

Здравствуйте. Нужно подключить lcd экран 1602 к плате ESP8266. Потом будет стоять другой экран, покрупнее, но пока что этот. Я с i2c дел не имел. До этого подключал экран обычным способом, с кучей проводов. Почитал разные инструкции, как это сделать. Ничего не получается. Сейчас нашел вот такую инструкцию. Кто подскажет, как правильно подключить экран по i2c?
 
На самом экране квадратики светятся. Это есть. Но вот слова (латиница) не пишет. Библиотека не подходит? Или, не знаю, код не правильный? Как вообще правильно программировать i2c подключение экрана? Может какой образец есть? Я читал, что есть команда i2c.setup, i2c.start и прочие. Но как и где их прописывать?
 

CodeNameHawk

Moderator
Команда форума
Для начала запустите i2c сканер и определите адрес, на котором сидит дисплей.
 

CodeNameHawk

Moderator
Команда форума
Я это уже сделал
Пытался написать код как написано здесь, но ничего не вышло.
Если это работает, то осталось только взять библиотеку и запустить, если конечно не забыли согласовать уровни есп и переходника i2c, хотя надо смотреть, может он может работать на 3.3 в.
 
Нашел один пример использования i2c. Теперь научился просто выводить слова на экран по этой шине. Решил вывести на экран данные с датчика dht11. И вот тут то у меня вместо надписи типа "t 23 h 78" выводятся слова "nan nan". Что я делаю не так?
 

Вложения

Со словами "nan nan" я разобрался. Купил для этого проекта (метеостанция) экран побольше. А именно "I2C ST7567S" . Обычная библиотека "Liquid crystal i2C" похоже не подходит. Мне казалось, что эта библиотека подходит для любого экрана с i2c. Скачал библиотеку "U8g2.h", - где-то прочитал, что нужна она (я ее пытался прописать вместо "Liquid crystal i2C"). Но что-то Arduino ide пишет, что не видит ее. Кто сможет подсказать, в чем проблема?
 

CodeNameHawk

Moderator
Команда форума
Библиотека должна быть для есп.
Вбейте в поиск "esp8266 lcd st7567 i2c library".
 
Последнее редактирование:
Пока никакой библиотеки специально для esp не нашел. Все пишут только по вышеобозначенной "U8g2.h" Ещё, правда, нашел такое описание. Попробую хотя бы по нему что-то сообразить. Правда, мне не совсем понятно, что такое id и sla
 

Вложения

Я поперепробовал уже целую кучу вариантов работы экрана с i2c. Реально через i2c заработал только экран lcd 1602. А остальные, как ни пробовал, и какие библиотеки не использовал, не хотят работать. Пробовал образцы из Arduino ide, но компилятор пишет, что для платы ESP8266 скомпилировать не может. Кто сможет подсказать, не знаю, хотя бы алгоритм запуска других экранов по i2c?
 

Вложения

Пытался использовать библиотеку "i2c.h", "u8g2.h" и "adafruit ssd1305". Не, я уверен, с библиотеками все нормально. Это я не могу с ними совладать. А вот подключить экран lcd 1602 по i2c через библиотеку "liquid crystal i2C" сумел без проблем.
 
На первой картинке ... контроллер SSD1305.
Верно. А вот на второй, как было написано у продавца, экран ST7567S COG. Под него я вообще никаких библиотек не нашел. Правда где-то читал, что вроде умельцы как-то через библиотеку "u8g2.h" как-то заставляют работать, но у меня не вышло
 
В общем, перепробовал я целую кучу вариантов подключения этих двух экранов (из поста #15) по i2c. Ничего не получается. А вот обычный lcd 1602 работает на ура. И что-то я не пойму, что не так. И библиотеки разные пробовал, и программы по разному писал, уже половину интернета пересмотрел на эту тему. Может быть есть какие-то тонкости? Или может плата esp8266 не все экраны воспринимает?
 
И ещё вопрос, - а можно ли взять, к примеру, какую-нибудь библиотеку для экрана lcd1602, и переписать в ней, к примеру, габариты экрана на 128*64? Тогда эта библиотека заставит работать экран ST7567S? Но это так, гипотетически.
 
Сверху Снизу