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

Пользовательские блоки для вывода информации на дисплеи и индикаторы, управления тачскрином, различными клавиатурами, добавления русских шрифтов для вывода на дисплеи типа HD44780
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
Rovki
Полковник
Сообщения: 5722
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 68 раз
Поблагодарили: 217 раз
Контактная информация:

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

Сообщение Rovki »

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

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

Сообщение edyapd »

Подскажите, ставлю значок градусов "°С", но на дисплей 1306 выводится "В°С". То есть перед этим значком буква В. Как это можно поправить?
И ещё. Можно как то в шрифты засунуть значки сети Wifi, Bluetooth может ещё какие, например как это выводится на смартфоне?
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Значки можно как рисунки вставлять. Посмотрите ещё тему viewtopic.php?p=77802#p54992
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

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

[spoiler]
IMG_20191116_132202.jpg
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
golloper
Сержант
Сообщения: 140
Зарегистрирован: 28 сен 2018, 17:16
Имя: Дмитрий
Благодарил (а): 5 раз
Поблагодарили: 28 раз

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

Сообщение golloper »

edyapd писал(а): 19 окт 2019, 13:11 Подскажите, ставлю значок градусов "°С", но на дисплей 1306 выводится "В°С". То есть перед этим значком буква В. Как это можно поправить?
И ещё. Можно как то в шрифты засунуть значки сети Wifi, Bluetooth может ещё какие, например как это выводится на смартфоне?
Присоединяюсь к вопросу про вывод B вместе со значком градуса . Как с этим бороться?
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

golloper писал(а): 20 ноя 2019, 19:31 Присоединяюсь к вопросу про вывод B вместе со значком градуса . Как с этим бороться?
В шрифте стоит 0x05, 0x64, 0x07, 0x04, // 176=В°:1380.
Нарисуйте окружность в нужном месте вместо этого символа.
Вот ПБ для него
Рисование_окружности_(CODE).ubi
У вас нет необходимых прав для просмотра вложений в этом сообщении.
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

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

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

Сообщение Mozgoklui »

[ref]aidar_i[/ref], можете взглянуть на проект, вдруг обнаружите в чем дело?
Ваши проекты на голом nodemcu работают, дисплей исправно всё отображает. Но когда ввожу блоки дисплея в свой проект - есп не работает, а каждую секунду дважды моргает встроенным светодиодом. Сам проект без блоков дисплея работает исправно.
n1exp.flp
а вот что выдает циклично в монитор порта:
[spoiler]
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
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

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

Сообщение edyapd »

[ref]Mozgoklui[/ref], у вас идет конфликт с матрицей. Матрица и дисплей используют для вывода D2
Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11 окт 2019, 23:19
Имя: Виталий

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

Сообщение Mozgoklui »

edyapd писал(а): 23 янв 2020, 20:27 Mozgoklui, у вас идет конфликт с матрицей. Матрица и дисплей используют для вывода D2
весьма странно, ведь матрица висит на D4, а экран я уже пробовал перецепить с D1D2 на D5D6 с тем же результатом..
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

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

Сообщение edyapd »

[ref]Mozgoklui[/ref], мало подцепить физически, надо ещё и переназначить выводы в блоке.
У вас в обоих случаях используется D2 (GPIO4)
[spoiler]
1.jpg
2.jpg
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11 окт 2019, 23:19
Имя: Виталий

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

Сообщение Mozgoklui »

edyapd писал(а): 23 янв 2020, 21:09 мало подцепить физически, надо ещё и переназначить выводы в блоке.
понятное дело, я это скурпулезно изучил. И в блоке матрицы это ни что иное, как номер пина D4 (он же GPIO2), я сейчас без всяких дисплеев поставил константу 2, хотя матрица висит на D4, и ничего не работает.
Обратил внимание, что при компиляции выскакивает:
[spoiler]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"[/spoiler]
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Экран оставьте на D2, D1, а матрицу попробуйте к D3 (0).В блоках можете писать напрямую D0, D1, D2 итп.
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

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

Сообщение edyapd »

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

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

Сообщение Mozgoklui »

[ref]aidar_i[/ref], не хотелось бы делать громких заявлений, но похоже что блоки дисплея у меня работают исключительно с одним только дисплеем. Как только добавляется вход (любой, пробовал все) в коде (даже без подключения устройств), мк уходит в ребут с ошибкой (3,6)
[spoiler]
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[/spoiler]
Перепробовал несколько еспшек (nodemcu), благо у меня их целая коробка.
Вот к примеру, беру ваш скетч (***_display2.flp), все четыре строчки отображаются, всё четко. Сношу оттуда лишнее, пишу условие по приему данных с датчика CO2 MH-Z19B (там просто счетчик длительности импульсов), вывод на экран. Всё, цикл ребут. Какой бы не ставил вход скоростного счетчика. Сам датчик даже подключать нет смысла..
111.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11 окт 2019, 23:19
Имя: Виталий

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

Сообщение Mozgoklui »

Vladislaveu писал(а): 24 янв 2020, 21:43 Скинь фото esp8266
Вот
[spoiler]
A4A18FBA-8C71-43D5-886D-7D494FEF3D71.jpeg
C117FDA2-F1D8-4009-9EFC-255984F3F255.jpeg
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Mozgoklui писал(а): 24 янв 2020, 20:14 aidar_i, не хотелось бы делать громких заявлений, но похоже что блоки дисплея у меня работают исключительно с одним только дисплеем. Как только добавляется вход (любой, пробовал все) в коде (даже без подключения устройств), мк уходит в ребут с ошибкой (3,6)
Проверил, блоки работают. Только этот главный блок так не работает , как у Вас в проекте, по изменению строки он не будет работать. В главном блоке есть команда очистки дисплея, который в каждом цикле очищает экран. Выкладываю проект с главным блоком, где эта команда убрана.
111_1.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11 окт 2019, 23:19
Имя: Виталий

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

Сообщение Mozgoklui »

[ref]aidar_i[/ref], увы, ваш проект не заработал..
[spoiler]
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[/spoiler]
Даже не знаю куда копать теперь..
И заметил вот что: та же история и циклический ребут наблюдается при работе с датчиком BME/BMP280. То есть сам датчик работает если он один подключен к есп8266. Если же на любой другой пин подключить устройство/кнопку/датчик, то МК уходит в ребут. Следовательно это какая-то проблема работы i2c, конфликт с обычными пинами. Значит либо это китайский мк какой-то косячный, либо где-то есть какая-то скрытая настройка для i2c
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

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

Сообщение edyapd »

[ref]Mozgoklui[/ref], какая версия FLProg? Какое ядро для ESP? Какой модуль выбираете при программирование ESP?
Так же надо учитывать, что некоторые пины должны быть в определённом состоянии при старте.
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

У меня нет этого датчика, я поставил кнопку и нажимая получал данные. Датчик запитайте с другого источника.
Проверял в последней версии программы на внешней иде 1.8.10. Попробуйте на 2.4.2 плате есп проверить.
Обновлял ОТА, была ошибка компиляции. Модуль Вемос мини про.
Последний раз редактировалось aidar_i 26 янв 2020, 21:21, всего редактировалось 1 раз.
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей