Мазмуну:
- 1 -кадам: Колдонулган ресурстар
- 2 -кадам: Дисплей
- 3 -кадам: SSD1306 китепканасы
- 4 -кадам: Анимация жана XBM файлдары
- 5 -кадам: XBM файлдарынан чыгуу
- 6 -кадам: Булак коду
- 7 -кадам: Коддун жүктөлүшүн жасоо
- 8 -кадам: Файлдар
Video: Киришүү ESP32 Lora OLED дисплейи: 8 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бул ESP32 LoRaга киришүүгө байланыштуу дагы бир видео. Бул жолу биз атайын графикалык дисплей жөнүндө сөз кылабыз (128x64 пиксел). Биз бул OLED дисплейдеги маалыматты көрсөтүү жана XBM сүрөттөрүн колдонуу менен анимациянын мисалын көрсөтүү үчүн SSD1306 китепканасын колдонобуз.
1 -кадам: Колдонулган ресурстар
1 Heltec WiFi LoRa 32
Protoboard
2 -кадам: Дисплей
Иштетүү тактасында колдонулган дисплей 0,96 дюймдук OLED болуп саналат.
Анын өлчөмү 128х64 жана монохромдуу.
Бул I2C байланышына ээ жана ESP32ге 3 зым аркылуу туташкан:
GPIO4 боюнча SDA (маалымат үчүн)
GPIO15 боюнча SCL (саат үчүн)
GPIO16 боюнча RST (баштапкы абалга келтирүү жана көрсөтүү үчүн)
3 -кадам: SSD1306 китепканасы
Муну Heltec-Aaron-Lee тарабынан берилген китепканалардын топтому менен бирге табууга болот.
Бул саптарды жазуу, сызыктарды тартуу, тик бурчтуктарды, чөйрөлөрдү жана сүрөттөрдү көрсөтүү үчүн бир нече функцияларга ээ.
github.com/Heltec-Aaron-Lee/WiFi_Kit_series
4 -кадам: Анимация жана XBM файлдары
Биз анимацияны көрсөтүү үчүн китепкананын drawXbm функциясын колдонобуз.
XBM сүрөт форматы он алтылык маани аркылуу, ар бир элемент тексттик түрдө монохроматтык пикселдердин топтомун (ар бири 1 бит) чагылдырган символдордон турат. Булар бир байтка барабар.
Бир байтты көрсөтүү үчүн бир нече символдор колдонулгандыктан, бул файлдар учурда кабыл алынган форматтардан чоңураак болот. Артыкчылыгы, алар алдын ала дарылоого муктаж болбостон түз түзүлөт.
Массивден тышкары, сүрөттүн өлчөмүн аныктоочу эки параметр камтылган.
Анимацияны куруу үчүн бизге кадрларды түзө турган сүрөттөр керек.
Биз иштөө үчүн ар кандай сүрөт түзөтүүчү программаны колдоно алабыз. Биз көрүшүбүз керек болгон бирден -бир чара - алгач дисплейге шайкеш келген өлчөмдү сактоо жана монохромдуу файлдарды колдонуу.
Файлдарды түзүү үчүн биз аларды тарта алабыз же сүрөттөрдү импорттой алабыз. Бул жерде биз PaintBrushтун жардамы менен түстүү сүрөттү түзөтүүнү чечтик жана ар бир кадрды тарттык
Түпнуска сүрөт - 960x707 пиксел --p.webp
Кийинки кадам - монохромдук битмап катары сактап монохромдуу кылуу.
Андан кийин, биз аны дисплейге туура келген өлчөмгө өзгөртөбүз.
Өлчөө бирдиктерине өзгөчө көңүл буруңуз. Бул учурда, биз сүрөттү дисплейдин бүт бийиктигин ээлегендей кылып туураладык (вертикалдуу = 64 пиксел).
Сүрөт туура өлчөмдө болгондо, биз кадрларды түзүү үчүн аны түзөтөбүз. Бул жерде биз сигналдын ар бир догосун өчүрүп, аларды тиешелүү кадрлар катары сактап жатабыз.
Эми биз BMP файлдарын XBM форматына которушубуз керек.
Бул өзгөртүүнү кыла турган бир нече программалык камсыздоо бар. Биз ошондой эле редактор катары GIMPти тандап алдык.
Биздин мисалда, биз файлдарды түзүү жана түзөтүү үчүн PaintBrush колдондук. Бирок, бул процесстердин ар бирин Gimpде (же башка редактордо) жасаса болмок.
Которуу үчүн, биз алгач файлды ачабыз.
Сүрөт ачык болгондо, биз Файл => Экспорттоону тандай алабыз …
Export Image терезесинде, биз XBM үчүн көздөгөн файл кеңейтүүсүн өзгөртүшүбүз керек. Gimp каалаган форматты аныктоо жана башка мүмкүнчүлүктөрдү көрсөтүү үчүн жооптуу болот …
Экспорттоодо Gimp башка параметрлерди көрсөтөт. Биз демейки баалуулуктарды калтыра алабыз.
Бардык файлдарды айландыргандан кийин, бизде ар бир кадр үчүн бирден XBM файлдары болот.
Эми аларды баштапкы коддун папкасына көчүрүп, кеңейтүүлөрүн.h деп өзгөртүү менен алардын атын өзгөртөлү.
5 -кадам: XBM файлдарынан чыгуу
Биз XBM файлдарын каалаган текст редакторунда ача алабыз, анда биз мурдатан эле аныкталган сүрөттөр матрицасын жана сүрөттүн өлчөмүн көрөбүз.
6 -кадам: Булак коду
Булак коду: билдирүүлөр
Биз керектүү китепканаларды, ошондой эле сүрөт файлдарын киргизебиз. Биз сүрөттүн позициясын жана өткөөл аралыгын аныктайбыз. Биз ошондой эле ESP32 менен байланышкан OLED төөнөгүчтөрүн көрсөтөбүз. Акыр -аягы, биз Display объектисин түзөбүз жана тууралайбыз.
// Incluindo as bibliotecas needárias #include #include "SSD1306.h" // Incluindo os arquivos de imagem #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // definições de posichão да imagem e intervalo de transição #define posX 21 #define posY 0 #fine interval 500 - GPIO16 #define SDA 4 #define SCL 15 #deftine RST 16 // SSD1306 дисплейи (0x3c, SDA, SCL, RST) программалык камсыздоону көзөмөлдөө; // Объективдүү дисплей
Булак коду: Орнотуу ()
Дисплейди баштапкы абалга келтирип, экранды тигинен бери оодарыңыз. Аракет милдеттүү эмес.
void setup () {display.init (); // дисплейди көрсөтүү.flipScreenVertically (); // вертикалдуу вертикалдуу тела (тандалма)}
Булак коду: Loop ()
Укурукта жасай турган биринчи нерсе - экранды тазалоо. 1 кадрды буферге posX жана posY баштапкы позицияларын колдонуу менен жүктөйбүз. Биз frame1_width жана frame1_height менен сүрөттүн өлчөмүн жана сүрөттүн биттерин камтыган массивдин аталышын билдиребиз. Биз дисплейде буферди көрсөтүп, кийинки кадрды көрсөтүүдөн мурун интервалды күтөбүз.
void loop () {display.clear (); // лимфа тела // каррега пара же буфер 1 фрейм // usando as posichões iniciais posX e posY // маалымат o raman_ da imagem com frame1_width e frame1_height // маалымат o nome da matriz que contem os bits da imagem, caso frame1_bits жок display.drawXbm (posX, posY, frame1_width, frame1_height, frame1_bits); // mostra o buffer no display display.display (); // аралыктагы убакыттын өтүшү менен кадрлардын кечиктирилиши (интервал);
Биз процессти башка бардык кадрлар үчүн кайталайбыз.
// repos o processos para todos os outros frames display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); кечигүү (интервал); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); кечигүү (интервал); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); кечигүү (интервал); }
7 -кадам: Коддун жүктөлүшүн жасоо
IDE ачык болгондо,.ino файлын эки жолу басуу менен же Файл менюсуна өтүү менен баштапкы коду бар файлды ачыңыз.
USBге туташкан Heltec менен менюсун тандаңыз Tools => Card: "Heltec_WIFI_LoRa_32"
Дагы эле Tools менюсунда, Heltec туташкан COM портун тандаңыз.
ЖҮКТӨӨ баскычын басыңыз…
… Жыйынтыгын күтө туруңуз.
8 -кадам: Файлдар
Файлдарды жүктөп алыңыз:
МЕН ЖОК
Сунушталууда:
OLED дисплейи жана Arduino менен көңүл ачуу: 12 кадам (сүрөттөр менен)
OLED Display жана Arduino менен көңүл ачуу: OLED дисплей технологиясы жөнүндө сөзсүз укканыңызга ишенем. Бул салыштырмалуу жаңы жана эски ЖК технологиясына караганда жакшыраак сапатты сунуштайт. Бул үйрөткүчтө биз эң кеңири таралган бирдиктүү маалыматты көрсөтүү үчүн керектүү кадамдарды карап чыгууну каалайбыз
Потенциометр жана OLED дисплейи менен жарк эткен LED: 6 кадам
Потенциометр жана OLED дисплейи менен LEDдин жаркылдоосун көзөмөлдөө: Бул үйрөткүчтө биз потенциометр менен жарк эткен LEDди кантип башкарууну жана OLED дисплейинде импульс жыштыгынын маанисин көрсөтүүнү үйрөнөбүз
ESP32 дисплейи Oled менен - Прогресс тилкеси: 6 кадам
ESP32 дисплейи Oled менен - Прогресс тилкеси: Бүгүн биз сүйлөшө турган ESP32 - бул буга чейин Display Oled камтылган. Бул функция биздин жашообузду бир топ жеңилдетет, анткени биз пайда болгон өзгөрмөнүн маанисине таасир эте алабыз. Сиз эч качан
Киришүү LoRa & Module RFM95 / RFM95W Hoperf: 5 кадам
Киришүү LoRa & Module RFM95 / RFM95W Hoperf: Бул мүмкүнчүлүктө биз LoRa & соода жөнүндө кыскача мүнөздөмө беребиз; жана атайын радио RFM95/96 Hoperf Electronics тарабынан чыгарылган. Бир нече ай мурун, 2 модуль келгендиктен, башында мен бул темада тааныштыргым келет
ESP32 жана OLED дисплейи: Интернет сааты - DHT22: 10 кадам (сүрөттөр менен)
ESP32 жана OLED дисплейи: Интернет сааты - DHT22: Бул Нускамалык конкурс: "GIFs Challenge 2017" конкурсуна катышат, эгер сизге жакса, жогорудагы баннерди чыкылдатып добуш бериңиз. Чоң рахмат! ;-) Бул үйрөткүч бул улуу IoT түзмөгү жөнүндө көбүрөөк билүү үчүн саякаттын уландысы