ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Пользовательские блоки для вывода текста.

Пользовательские блоки для вывода информации на дисплеи и индикаторы, управления тачскрином, различными клавиатурами, добавления русских шрифтов для вывода на дисплеи типа HD44780
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#1

Сообщение aidar_i » 05.02.2019{, 13:04}

Пользовательские блоки (ПБ) для вывода текста для дисплеев на SSD1306 и SH1106 I2C. Можно допилить главный блок и под SPI, по аналогии. Блоки работают с ESP8266 и с ESP32.
Пример с блоками :
ESP8266_Oled_SSD1306_display2.flp
(170.36 КБ) 1248 скачиваний
Пример с ПБ для переноса длинных текстов в следующую строку.Если заданная строка шире указанной ширины текст будет перенесен на следующую строку через пробел или тире.
ESP8266_Oled_перенос текста.flp
(66.77 КБ) 500 скачиваний
ЗДЕСЬ изменил главные блоки, появился выбор размера дисплея 128х32.

Пример Бегущая строка
Библиотека измененная под кириллицу, по рекомендациям Vsevolod61 из форума https://esp8266.ru/forum/
esp8266-oled-ssd1306.rar
(313 КБ) 1292 скачивания
Архив в zip в 22 сообщении.

Добавил еще 3 шрифта,
DialogRus_Italic_10,
ArialRus_Italic_14,
ArialRus_Italic_26
замените в библиотеке файл:
OLEDDisplayFonts_rus.h
(415.11 КБ) 820 скачиваний
Добавил блок очистки выбранного участка дисплея сюда.

Скетч добавил в примеры библиотеки (SSD1306Cyrillic_text_output).
Прочитайте и это viewtopic.php?p=64141#p64141

Подключение OLED к ESP-01 viewtopic.php?p=80849#p80849.
Блок с выводом графика ТУТ.
FontEditor.rar
(376.83 КБ) 271 скачивание
Видео про FontEditor
СпойлерПоказать
Последний раз редактировалось aidar_i 08.01.2022{, 18:29}, всего редактировалось 29 раз.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#61

Сообщение edyapd » 08.10.2019{, 20:20}

Rovki писал(а):
08.10.2019{, 18:47}
А когда выбираю плату WIFI Kit 8 - то компиляция не идет
Я у себя вообще такой платы найти не смог.
На этой плате стоит CP2104, а на Вемос у вас что установлено? Такое ощущение, что здесь не формируются состояние ESP для загрузки.

Аватара пользователя
Rovki
Полковник
Сообщения: 4872
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#62

Сообщение Rovki » 08.10.2019{, 20:34}

edyapd писал(а):
08.10.2019{, 20:20}
Rovki писал(а):
08.10.2019{, 18:47}
А когда выбираю плату WIFI Kit 8 - то компиляция не идет
Я у себя вообще такой платы найти не смог.
На этой плате стоит CP2104, а на Вемос у вас что установлено? Такое ощущение, что здесь не формируются состояние ESP для загрузки.
На вемос стоит чип СН340, кит8 специально добавлял плату с хабра
Электронщик до мозга костей и не только

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#63

Сообщение edyapd » 19.10.2019{, 13:11}

Подскажите, ставлю значок градусов "°С", но на дисплей 1306 выводится "В°С". То есть перед этим значком буква В. Как это можно поправить?
И ещё. Можно как то в шрифты засунуть значки сети Wifi, Bluetooth может ещё какие, например как это выводится на смартфоне?

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#64

Сообщение aidar_i » 19.10.2019{, 13:29}

Значки можно как рисунки вставлять. Посмотрите ещё тему viewtopic.php?p=77802#p54992

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#65

Сообщение aidar_i » 16.11.2019{, 10:57}

Использование модулей WiFi_Kit 8 и WiFi_Kit 32 со встроенными OLED дисплеями данными ПБ.
Плату ESP8266 в Ардуино Иде ставьте Nodemcu 0,9 или 1.
СпойлерПоказать
WIFI Kit 8.png
СпойлерПоказать
WIFI Kit 32.png
WiFi Kit series (ESP8266 and ESP32 + OLED).flp
(83.44 КБ) 148 скачиваний
В описании главного блока я дал ссылки. Модули с ESP8266 могут быть еще другого типа (TTGO-WIFI-OLED). Их запускать изменением в параметрах подключение выводов.
При желании, можно запустить их со своими библиотеками и платами (https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series)
СпойлерПоказать
IMG_20191116_132202.jpg

golloper
Рядовой
Сообщения: 39
Зарегистрирован: 28.09.2018{, 17:16}
Репутация: 7
Имя: Дмитрий

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#66

Сообщение golloper » 20.11.2019{, 19:31}

edyapd писал(а):
19.10.2019{, 13:11}
Подскажите, ставлю значок градусов "°С", но на дисплей 1306 выводится "В°С". То есть перед этим значком буква В. Как это можно поправить?
И ещё. Можно как то в шрифты засунуть значки сети Wifi, Bluetooth может ещё какие, например как это выводится на смартфоне?
Присоединяюсь к вопросу про вывод B вместе со значком градуса . Как с этим бороться?

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#67

Сообщение aidar_i » 20.11.2019{, 21:06}

golloper писал(а):
20.11.2019{, 19:31}
Присоединяюсь к вопросу про вывод B вместе со значком градуса . Как с этим бороться?
В шрифте стоит 0x05, 0x64, 0x07, 0x04, // 176=В°:1380.
Нарисуйте окружность в нужном месте вместо этого символа.
Вот ПБ для него
Рисование_окружности_(CODE).ubi
(13.99 КБ) 170 скачиваний

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#68

Сообщение aidar_i » 21.11.2019{, 15:56}

edyapd писал(а):
19.10.2019{, 13:11}
Можно как то в шрифты засунуть значки сети Wifi, Bluetooth может ещё какие, например как это выводится на смартфоне?
Сделал ПБ для вывода картинок на дисплей.
Нужно конвертировать изображение в XBM с помощью онлайн конвертера.
Загрузите свою картинку (Выберите файл) и нажмите Конвертировать и сохранить.
Сохраненный файл откройте, например в Notepad++. Выделите код внутри
СпойлерПоказать
код.png
, (там возьмите значения - ширину и высоту картинки и вставьте в параметры блока)
скопируйте и вставьте в ПБ
СпойлерПоказать
Вставка кода в ПБ.png
,
сохраните ПБ в проекте (можете в пользовательских блоках, если нужно)
ESP8266_Oled_XBM.flp
(66.32 КБ) 191 скачивание
Отправлено спустя 6 минут 19 секунд:
Картинка с примера
СпойлерПоказать
IMG_20191121_175658.jpg

Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11.10.2019{, 23:19}
Репутация: 0
Имя: Виталий

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#69

Сообщение Mozgoklui » 23.01.2020{, 18:49}

aidar_i, можете взглянуть на проект, вдруг обнаружите в чем дело?
Ваши проекты на голом nodemcu работают, дисплей исправно всё отображает. Но когда ввожу блоки дисплея в свой проект - есп не работает, а каждую секунду дважды моргает встроенным светодиодом. Сам проект без блоков дисплея работает исправно.
n1exp.flp
(1.12 МБ) 91 скачивание
а вот что выдает циклично в монитор порта:
СпойлерПоказать
Exception (28):
epc1=0x40206332 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000035 depc=0x00000000

>>>stack>>>

ctx: cont
sp: 3ffffd20 end: 3fffffc0 offset: 01a0
3ffffec0: 00000000 00000002 00000020 00000035
3ffffed0: 3fff06f4 00000384 00000bc0 00000000
3ffffee0: 00000004 00000000 00000040 00000005
3ffffef0: 00000000 00000000 00000009 00000035
3fffff00: 00000000 00000020 000000f2 402152a3
3fffff10: 3ffe8e1a 3fffff70 3ffef14c 00000000
3fffff20: 0000000d 3fff06f4 3ffef14c 402066f7
3fffff30: 00000000 00000000 ffff00f2 4020e110
3fffff40: 00000040 00000004 3fff06f4 4020e260
3fffff50: 3ffef13c 3ffef624 3ffef14c 00000000
3fffff60: 3ffef13c 3ffef624 3ffef14c 40203a18
3fffff70: f2f1e5f2 00000000 00fef600 b5d082d1
3fffff80: 82d181d1 0000a800 feefeffe feefeffe
3fffff90: feefeffe feefeffe feefeffe 3ffef894
3fffffa0: 3fffdad0 00000000 3ffef864 4020e8fc
3fffffb0: feefeffe feefeffe 3ffe8570 4010144d
<<<stack<<<

ets Jan 8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v8b899c12
~ld

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#70

Сообщение edyapd » 23.01.2020{, 20:27}

Mozgoklui, у вас идет конфликт с матрицей. Матрица и дисплей используют для вывода D2

Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11.10.2019{, 23:19}
Репутация: 0
Имя: Виталий

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#71

Сообщение Mozgoklui » 23.01.2020{, 20:59}

edyapd писал(а):
23.01.2020{, 20:27}
Mozgoklui, у вас идет конфликт с матрицей. Матрица и дисплей используют для вывода D2
весьма странно, ведь матрица висит на D4, а экран я уже пробовал перецепить с D1D2 на D5D6 с тем же результатом..

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#72

Сообщение edyapd » 23.01.2020{, 21:09}

Mozgoklui, мало подцепить физически, надо ещё и переназначить выводы в блоке.
У вас в обоих случаях используется D2 (GPIO4)
СпойлерПоказать
1.jpg
2.jpg

Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11.10.2019{, 23:19}
Репутация: 0
Имя: Виталий

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#73

Сообщение Mozgoklui » 23.01.2020{, 21:33}

edyapd писал(а):
23.01.2020{, 21:09}
мало подцепить физически, надо ещё и переназначить выводы в блоке.
понятное дело, я это скурпулезно изучил. И в блоке матрицы это ни что иное, как номер пина D4 (он же GPIO2), я сейчас без всяких дисплеев поставил константу 2, хотя матрица висит на D4, и ничего не работает.
Обратил внимание, что при компиляции выскакивает:
СпойлерПоказать
In file included from C:\Users\Vintjara\AppData\Local\Temp\flprog\pr25\pr25.ino:10:0:

c:\Program Files (x86)\FLProg\ideV3\libraries\FastLED-3.2.9/FastLED.h:14:21: note: #pragma message: FastLED version 3.002.009

# pragma message "FastLED version 3.002.009"

^

In file included from c:\Program Files (x86)\FLProg\ideV3\libraries\FastLED-3.2.9/FastLED.h:65:0,

from C:\Users\Vintjara\AppData\Local\Temp\flprog\pr25\pr25.ino:10:

c:\Program Files (x86)\FLProg\ideV3\libraries\FastLED-3.2.9/fastspi.h:115:23: note: #pragma message: No hardware SPI pins defined. All SPI access will default to bitbanged output

# pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output"

^

C:\Users\Vintjara\AppData\Local\Temp\flprog\pr25\pr25.ino: In function 'void setup()':

C:\Users\Vintjara\AppData\Local\Temp\flprog\pr25\pr25.ino:561:17: note: #pragma message: Wrong matrix parameters! Set to default

#pragma message "Wrong matrix parameters! Set to default"

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#74

Сообщение aidar_i » 23.01.2020{, 23:02}

Экран оставьте на D2, D1, а матрицу попробуйте к D3 (0).В блоках можете писать напрямую D0, D1, D2 итп.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#75

Сообщение edyapd » 24.01.2020{, 06:11}

Mozgoklui писал(а):
23.01.2020{, 21:33}
И в блоке матрицы это ни что иное, как номер пина D4
Да, точно, я уже сам запутался. В разных библиотеках по разному эти пины обозначаются. В одном случаи просто откидывается D, в другом это обозначение GPIO.
Тогда способ только один. Отключать всё по очереди. Попробуйте создать простой проект только с одним дисплеем. Посмотрите, что на него выводится информация. Потом вставьте в этот проект три блока от Матрицы (Main, Show и любой блок), можно даже без подключения ленты. Посмотрите, будет выводится на дисплей? Если да, то подключите ленту и как в этом случаи будет себя вести?
Mozgoklui писал(а):
23.01.2020{, 21:33}
#pragma message "Wrong matrix parameters! Set to default
Такое вроде выводится когда у вас неправильно выбран угол или направление или тип матрицы

Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11.10.2019{, 23:19}
Репутация: 0
Имя: Виталий

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#76

Сообщение Mozgoklui » 24.01.2020{, 20:14}

aidar_i, не хотелось бы делать громких заявлений, но похоже что блоки дисплея у меня работают исключительно с одним только дисплеем. Как только добавляется вход (любой, пробовал все) в коде (даже без подключения устройств), мк уходит в ребут с ошибкой (3,6)
СпойлерПоказать
ets Jan 8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v8b899c12
~ld
Перепробовал несколько еспшек (nodemcu), благо у меня их целая коробка.
Вот к примеру, беру ваш скетч (***_display2.flp), все четыре строчки отображаются, всё четко. Сношу оттуда лишнее, пишу условие по приему данных с датчика CO2 MH-Z19B (там просто счетчик длительности импульсов), вывод на экран. Всё, цикл ребут. Какой бы не ставил вход скоростного счетчика. Сам датчик даже подключать нет смысла..
111.flp
(139.62 КБ) 82 скачивания

Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11.10.2019{, 23:19}
Репутация: 0
Имя: Виталий

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#77

Сообщение Mozgoklui » 24.01.2020{, 22:04}

Vladislaveu писал(а):
24.01.2020{, 21:43}
Скинь фото esp8266
Вот
СпойлерПоказать
A4A18FBA-8C71-43D5-886D-7D494FEF3D71.jpeg
C117FDA2-F1D8-4009-9EFC-255984F3F255.jpeg

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#78

Сообщение aidar_i » 26.01.2020{, 07:00}

Mozgoklui писал(а):
24.01.2020{, 20:14}
aidar_i, не хотелось бы делать громких заявлений, но похоже что блоки дисплея у меня работают исключительно с одним только дисплеем. Как только добавляется вход (любой, пробовал все) в коде (даже без подключения устройств), мк уходит в ребут с ошибкой (3,6)
Проверил, блоки работают. Только этот главный блок так не работает , как у Вас в проекте, по изменению строки он не будет работать. В главном блоке есть команда очистки дисплея, который в каждом цикле очищает экран. Выкладываю проект с главным блоком, где эта команда убрана.
111_1.flp
(157.51 КБ) 88 скачиваний

Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11.10.2019{, 23:19}
Репутация: 0
Имя: Виталий

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#79

Сообщение Mozgoklui » 26.01.2020{, 15:08}

aidar_i, увы, ваш проект не заработал..
СпойлерПоказать
ets Jan 8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v8b899c12
~ld
Даже не знаю куда копать теперь..
И заметил вот что: та же история и циклический ребут наблюдается при работе с датчиком BME/BMP280. То есть сам датчик работает если он один подключен к есп8266. Если же на любой другой пин подключить устройство/кнопку/датчик, то МК уходит в ребут. Следовательно это какая-то проблема работы i2c, конфликт с обычными пинами. Значит либо это китайский мк какой-то косячный, либо где-то есть какая-то скрытая настройка для i2c

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

#80

Сообщение edyapd » 26.01.2020{, 17:49}

Mozgoklui, какая версия FLProg? Какое ядро для ESP? Какой модуль выбираете при программирование ESP?
Так же надо учитывать, что некоторые пины должны быть в определённом состоянии при старте.

Ответить

Вернуться в «Дисплеи, индикаторы и клавиатуры»