Уважаемые пользователи! Наш сайт и форум содержится на средства полученные от рекламы. Если вы хотите и дальше продолжать общаться, скачивать, и т.п. пожалуйста отключите блокировку рекламы для нашего сайта/форума. Можно и покликать по рекламным ссылкам, так будут больше выплаты. Спасибо за понимание!

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

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

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

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 КБ) 329 скачиваний
Пример с ПБ для переноса длинных текстов в следующую строку.Если заданная строка шире указанной ширины текст будет перенесен на следующую строку через пробел или тире.
ESP8266_Oled_перенос текста.flp
(66.77 КБ) 153 скачивания
ЗДЕСЬ изменил главные блоки, появился выбор размера дисплея 128х32.

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

Добавил еще 3 шрифта,
DialogRus_Italic_10,
ArialRus_Italic_14,
ArialRus_Italic_26
замените в библиотеке файл:
OLEDDisplayFonts_rus.h
(415.11 КБ) 256 скачиваний

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

Подключение OLED к ESP-01 viewtopic.php?p=80849#p80849
Последний раз редактировалось aidar_i 04.12.2019{, 08:16}, всего редактировалось 25 раз.

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

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

#61

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

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

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

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
Лейтенант
Сообщения: 609
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 43
Имя: Эдуард

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

#63

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

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

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

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

#64

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

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

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

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 КБ) 25 скачиваний
В описании главного блока я дал ссылки. Модули с ESP8266 могут быть еще другого типа (TTGO-WIFI-OLED). Их запускать изменением в параметрах подключение выводов.
При желании, можно запустить их со своими библиотеками и платами (https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series)
СпойлерПоказать
IMG_20191116_132202.jpg

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

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
Подполковник
Сообщения: 1431
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 155
Откуда: Уфа
Имя: Айдар
Контактная информация:

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 КБ) 22 скачивания

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

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 КБ) 33 скачивания
Отправлено спустя 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 МБ) 14 скачиваний
а вот что выдает циклично в монитор порта:
СпойлерПоказать
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
Лейтенант
Сообщения: 609
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 43
Имя: Эдуард

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
Лейтенант
Сообщения: 609
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 43
Имя: Эдуард

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
Подполковник
Сообщения: 1431
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 155
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#74

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

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

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

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 КБ) 8 скачиваний

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
Подполковник
Сообщения: 1431
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 155
Откуда: Уфа
Имя: Айдар
Контактная информация:

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 КБ) 9 скачиваний

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
Лейтенант
Сообщения: 609
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 43
Имя: Эдуард

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

#80

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

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

Ответить

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