Բովանդակություն:
- Քայլ 1: Օգտագործված ռեսուրսներ
- Քայլ 2: Theուցադրել
- Քայլ 3. SSD1306 գրադարանը
- Քայլ 4: Շարժապատկերներ և XBM ֆայլեր
- Քայլ 5: Ելք XBM ֆայլերից
- Քայլ 6: Աղբյուրի կոդ
- Քայլ 7: Կոդի վերբեռնում կատարելը
- Քայլ 8: Ֆայլեր
Video: Ներածություն ESP32 Lora OLED էկրան ՝ 8 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Սա ևս մեկ տեսանյութ է ESP32 LoRa- ի ներածության վերաբերյալ: Այս անգամ մենք հատուկ կխոսենք գրաֆիկական ցուցադրման մասին (128x64 պիքսել): Մենք կօգտագործենք SSD1306 գրադարանը `այս OLED էկրանին տեղեկատվություն ցուցադրելու և XBM պատկերների միջոցով անիմացիայի օրինակ ներկայացնելու համար:
Քայլ 1: Օգտագործված ռեսուրսներ
1 Heltec WiFi LoRa 32
Նախատախտակ
Քայլ 2: Theուցադրել
Boardարգացման տախտակի վրա օգտագործվող էկրանը OLED է ՝ 0,96 դյույմ:
Այն ունի 128x64 և մոնոխրոմ է:
Այն ունի I2C հաղորդակցություն և միացված է ESP32- ին 3 լարերի միջոցով.
SDA GPIO4- ում (տվյալների համար)
SCL GPIO15- ի վրա (ժամացույցի համար)
RST GPIO16- ում (վերակայման և ցուցադրման մեկնարկի համար)
Քայլ 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- ում (կամ որևէ այլ խմբագրի):
Փոխակերպելու համար մենք նախ բացում ենք ֆայլը:
Բաց պատկերով մենք կարող ենք ընտրել Ֆայլ => Արտահանել որպես…
Արտահանման պատկերի պատուհանում մենք պետք է փոխենք նպատակակետի ֆայլի ընդլայնումը XBM- ի համար: Gimp- ը պատասխանատու կլինի ցանկալի ձևաչափը բացահայտելու և ավելի շատ տարբերակներ ներկայացնելու համար…
Արտահանելիս Gimp- ը կներկայացնի այլ տարբերակներ: Մենք կարող ենք թողնել կանխադրված արժեքները:
Բոլոր ֆայլերը փոխակերպելուց հետո մենք կունենանք չորս XBM ֆայլ ՝ մեկը յուրաքանչյուր շրջանակի համար:
Այժմ եկեք պատճենենք դրանք աղբյուրի կոդի թղթապանակում և վերանվանենք դրանք ՝ փոխելով դրանց ընդլայնումները.h:
Քայլ 5: Ելք XBM ֆայլերից
Մենք կարող ենք բացել XBM ֆայլերը ցանկացած տեքստային խմբագրիչում, որտեղ մենք կտեսնենք պատկերի մատրիցան և պատկերի չափի տեղեկատվությունը, որոնք արդեն սահմանված էին:
Քայլ 6: Աղբյուրի կոդ
Աղբյուրի ծածկագիր
Մենք կներառենք անհրաժեշտ գրադարանները, ինչպես նաև պատկերային ֆայլերը: Մենք սահմանում ենք պատկերի դիրքերը և անցումային միջակայքը: Մենք նաև մատնանշում ենք ESP32- ին միացված OLED կապում: Վերջապես, մենք ստեղծում և կարգավորում ենք Display օբյեկտը:
// Ներառել որպես մատենագիտական անհրաժեշտություն #ներառել #ներառել «SSD1306.h» // ներառել պատկերների #ներառել «frame1.h» #include «frame2.h» #include «frame3.h» #include «frame4.h» // definições de posição da imagem e intervalo de transição #define posX 21 #define posY 0 #define intervalo 500 // Pinos do OLED estão conctados ao ESP32: I2C // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLE - GPIO16 #սահմանել SDA 4 #սահմանել SCL 15 #սահմանել RST 16 // OST RST ծրագրեր ՝ ծրագրային ապահովման SSD1306 էկրանով (0x3c, SDA, SCL, RST); // Cria e ajusta o Objeto ցուցադրում
Աղբյուրի ծածկագիր. Setup ()
Նախագծեք էկրանը և ուղղահայաց շրջեք էկրանը: Գործողությունը պարտադիր չէ:
void setup () {display.init (); // ցուցադրում display.flipScreenVertically (); // inverte verticalmente a tela (ըստ ցանկության)}
Աղբյուրի կոդ ՝ Loop ()
Օղակի մեջ առաջին բանը, որ պետք է անել, էկրանը մաքրելն է: Մենք բեռնում ենք շրջանակը 1 բուֆերի մեջ ՝ օգտագործելով posX և posY սկզբնական դիրքերը: Մենք հայտնում ենք պատկերի չափը frame1_width և frame1_height- ով, և պատկերի բիթերը պարունակող զանգվածի անունը: Մենք ցուցադրում ենք բուֆերը էկրանին և սպասում ենք միջակայքի ՝ հաջորդ շրջանակը ցուցադրելուց առաջ:
void loop () {display.clear (); // limpa tela // carrega para o buffer o frame 1 // usando as posições iniciais posX e posY // informa o tamanho da imagem com frame1_width e frame1_height // informa o nome da matriz que modern os bits da imagem, no caso frame1_bits display.drawXbm (posX, posY, frame1_width, frame1_height, frame1_bits); // mostra o buffer no display display.display (); // aguarda um intervalo antes de mostrar o próximo շրջանակի հետաձգում (intervalo);
Մենք կրկնում ենք գործընթացը մնացած բոլոր շրջանակների համար:
// կրկնել այս ընթացակարգից դուրս գտնվող շրջանակներից display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); հետաձգում (intervalo); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); հետաձգում (intervalo); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); հետաձգում (intervalo); }
Քայլ 7: Կոդի վերբեռնում կատարելը
Բաց IDE- ով, բացեք աղբյուրի կոդով ֆայլը.ino ֆայլը կրկնակի սեղմելով, կամ անցնելով Ֆայլի ընտրացանկ:
USB- ին միացված Heltec- ով ընտրեք ընտրացանկ Գործիքներ => Քարտ ՝ «Heltec_WIFI_LoRa_32»
Դեռ Գործիքների ցանկում ընտրեք COM նավահանգիստը, որտեղ միացված է Heltec- ը:
Կտտացրեք «ԲԱՌՆԵԼ» կոճակը…
… Եվ սպասեք եզրակացությանը:
Քայլ 8: Ֆայլեր
Ներբեռնեք ֆայլերը.
ԻՆՈ
Խորհուրդ ենք տալիս:
Arduino Ինչպես օգտագործել 1.3 դյույմ OLED էկրան SH1106: 7 քայլ
Arduino Ինչպես օգտագործել 1.3 դյույմ OLED էկրան SH1106. Այս ձեռնարկում մենք կսովորենք, թե ինչպես օգտագործել 1.3 դյույմ OLED էկրան SH1106 Arduino և Visuino ծրագրակազմը: Դիտեք տեսանյութը:
Arduino Control DC շարժիչի արագությունը և ուղղությունը ՝ օգտագործելով պոտենցիոմետր, OLED էկրան և կոճակներ. 6 քայլ
Arduino Control DC շարժիչի արագությունը և ուղղությունը ՝ օգտագործելով պոտենցիոմետր, OLED էկրան և կոճակներ. Այս ձեռնարկում մենք կսովորենք, թե ինչպես օգտագործել L298N DC MOTOR CONTROL վարորդ և պոտենցիոմետր ՝ երկու կոճակով DC շարժիչի արագությունն ու ուղղությունը վերահսկելու և պոտենցիոմետրի արժեքը ցուցադրելու համար: OLED էկրանին: Դիտեք ցուցադրական տեսանյութ
ESP32- ի ներածություն. 10 քայլ
ESP32- ի ներածություն. Այս հոդվածում մենք խոսելու ենք ESP32- ի մասին, որը ես համարում եմ ESP8266- ի ավագ եղբայրը: Ինձ շատ դուր է գալիս այս միկրոկոնտրոլերը, քանի որ այն ունի WiFi: Պարզապես գաղափար ունենալու համար ՝ նախքան ESP- ի գոյությունը, եթե WiFi- ի համար Arduino- ի կարիք ունեիք, դուք
Ներածություն LoRa & մոդուլ RFM95 / RFM95W Hoperf: 5 քայլ
Ներածություն LoRa & մոդուլ RFM95 / RFM95W Hoperf. Այս հնարավորության դեպքում մենք կարճ բնութագրում ենք LoRa ™ և մասնավորապես RFM95/96 ռադիոկայանը, որն արտադրվում է Hoperf Electronics- ի կողմից: Քանի որ մի քանի ամիս առաջ եկավ 2 մոդուլ, սկզբում ես ուզում եմ ներկայացնել ներածություն թեմայի վերաբերյալ
ESP32 և OLED էկրան. Ինտերնետ ժամացույց - DHT22: 10 քայլ (նկարներով)
ESP32 և OLED էկրան. Ինտերնետ ժամացույց - DHT22. Այս հրահանգը մրցում է «GIFs Challenge 2017» մրցույթում: Շատ շնորհակալություն!;-) Այս ձեռնարկը ճանապարհորդության շարունակությունն է ՝ IoT- ի այս հիանալի դևիկի մասին ավելին իմանալու համար