Мазмуну:
- 1 -кадам: Китепкана
- 2 -кадам: Wemos Lolin ESP32 OLED
- 3 -кадам: Мисал
- 4 -кадам: Ассамблея
- 5 -кадам: Код
- 6 -кадам: Кээ бир башка кызыктуу функциялар
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Бүгүн биз сүйлөшө турган ESP32, буга чейин Display Oled камтылган. Бул функция биздин жашообузду бир топ жеңилдетет, анткени биз пайда болгон өзгөрмөнүн маанисине таасир эте алабыз. Сиз мүчүлүштүктөрдү оңдоо терезесин кароонун кажети жок. Ошондой эле, сиз башка нерселердин ичинде өкүлчүлүктөрдү чогултуп, аткаруу диаграммаларын тарта аласыз. Бул артыкчылыктардан улам, мен бул моделди фантастикалык продукт деп эсептейм жана биз аны бүгүн Arduino IDE аркылуу программалайбыз.
Ошентип, бул видеодо биз прогресс тилкесин программалайбыз. Эгер ESP32де дисплей жок болсо, аны өзүнчө сатып алса болорун эстен чыгарбоо керек. Ошондой эле, эгер сиз эч качан ESP32 программасын программалабаган болсоңуз, анда мен сизге бул видеону көрүүнү сунуштайм: бул темага кененирээк токтолгон ESP32ге ВИДЕО КИРИШҮҮ.
1 -кадам: Китепкана
Олед дисплейди колдонуу үчүн, биз Arduino IDEдеги китепкананы конфигурациялашыбыз керек. Бул үчүн китепкананы шилтеме аркылуу жүктөп алыңыз.
Файлды ачып, Arduino IDEнин китепканалар папкасына чаптаңыз.
C:/ProgramFiles (x86)/Arduino/китепканалары
2 -кадам: Wemos Lolin ESP32 OLED
Wemos Lolin - бул ESPтин аты. Сүрөттө кара бөлүк дисплей болуп саналат жана аппараттын жанында биз бүт пинту көрсөтөбүз. Көрсөтүлгөндөй, ар кандай элементтерди күйгүзүүгө жана өчүрүүгө мүмкүндүк берген бир нече IO бар. Мындан тышкары, бул моделдин акыркы мууну WiFi жана Bluetooth бар.
3 -кадам: Мисал
Видеодо сиз биздин даяр проектибизди жана потенциометр менен башкарылган прогресс тилкесин көрсөтүү үчүн oled дисплейди кантип колдонууну көрө аласыз.
4 -кадам: Ассамблея
Биздин жыйын үчүн мен 10k потенциометрди колдондум жана курсордун GPIO25ти күйгүздүм. Бизде 3v3 жана GND да бар, муну төмөндөгү сүрөттө көрүп турасыз. Кубат USBден келет.
5 -кадам: Код
Биринчиден, биз "SSD1306.h" китепканасын кошобуз. Муну менен биз oled дисплейине киребиз. Андан кийин, биз SSD1306 түрүндөгү дисплей объектин түзөбүз, ал дисплейде көрсөтүлгөн мазмунду көзөмөлдөө үчүн жооп берет.
#include "SSD1306.h" // "SSD1306Wire.h" үчүн башка ылакап аталыштар // led /* 0x3c дисплейдеги дисплейдин экраны: 5 жана 4 são os de comunicação (SDA, SDC)) */ SSD1306 экраны (0x3c, 5, 4); // pino que ligamos o potenciometro #define PINO_POTENCIOMETRO 25 // ар кандай шарттар бар;
Жайгашуу
Setup () функциясында, биз дисплей объектибизди инициализациялайбыз, ошондо биз эмнени көрсөтүүнү көзөмөлдөй алабыз. Бул объект аркылуу биз көрсөтүлө турган тексттердин жазуу булагын конфигурациялайбыз. Акырында, биз бааны окуу үчүн пинди (тактап айтканда, биз потенциометрди бурган пинди) INPUT деп койдук.
void setup () {Serial.begin (115200); Serial.println (); Serial.println (); // Түшүндүрүүчү экрандын экраны же экраны.init (); // дисплей 180º (deixa de ponta cabeça) // display.flipScreenVertically (); // configure a fonte de escrita "ArialMT_Plain_10" screen.setFont (ArialMT_Plain_10); // конфигурациялоо үчүн керектүү нерселерди жасаңыз. pinMode (PINO_POTENCIOMETRO, INPUT); }
Loop
Цикл () функциясында биз учурдагы потенциометрдин маанисин окуйбуз. Биз "карта" функциясын маанини окугандан көп өтпөй байкай алабыз, анткени окуу мааниси прогресс тилкесине коюу үчүн өтө жогору, андыктан биз 0дөн 100гө чейинки диапазондо карта түзөбүз.
void loop () {// leitura do valor do potenciometro int valor = analogRead (PINO_POTENCIOMETRO); //Serial.println(valor); // mapeando o valor do potenciometro para o valor da barra de progresso // potenciometro faz a leitura do valor no intervalo de a a 4095 // a barra de progresso espera um valor entre 0 e 100 contador = map (valor, 0, 4095, 0, 100); // дисплейди көрсөтүү, экранды тазалоо.clear (); // ++ эсептегич; // эсептегич> 100? counter = 0: counter = counter; // прогресс тилкеси drawProgressBar (); // эквивалентти конфигурациялоо. screen.display (); кечигүү (10); }
"DrawProgress ()" функциясында биз прогресс тилкесине орнотуу үчүн "percProgress" өзгөрмөсүндө сакталган потенциометрден окулган маанини колдонобуз. Биз ошондой эле прогресс тилкесинин үстүнө учурдагы пайызды көрсөтүүчү текстти жайгаштырабыз.
// funcão para desenhar a progress bar no displayvoid drawProgressBar () {Serial.print (">>"); Serial.println (contador); // прогресс тилкеси / * * drawProgressBar (x, y, туурасы, бийиктиги, мааниси); parametros (p): p1: x coordenada X no plano cartesiano p2: y coordenada Y no plano cartesiano p3: туурасы курамы да барра де прогресс p4: бийиктиги алтура да барра де прогресси p5: баалуулуктун эрдигин жана ылдамдыгын жогорулатуу */ screen.drawProgressBar (10, 32, 100, 10, contador); // конфигурация же текстти жазуу үчүн // экинчисинин экосистемасын экранга коюу.setTextAlignment (TEXT_ALIGN_CENTER); // escreve o texto de porcentagem / * * drawString (x, y, text); parametros (p): p1: x coordenada X no plano cartesiano p2: y coordenada Y no plano cartesiano p3: string texto que será exibido */ screen.drawString (64, 15, String (contador) + "%"); // нөлгө барабар болсо, "valor mínimo" сабын чыгарыңыз if (contador == 0) {screen.drawString (64, 45, "Valor mínimo"); } // se 100 contár está em 100, if "contor == 100" {screen.drawString (64, 45, "Valor máximo"); }}
6 -кадам: Кээ бир башка кызыктуу функциялар
Дисплей
// дисплейди тескери карайт
void flipScreenVertically ();
Чийүү
// экрандан бир пикселди тартат
боштук setPixel (int16_t x, int16_t y);
// сызык тартуу
жараксыз drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1);
// тик бурчтук тартуу
жараксыз drawRect (int16_t x, int16_t y, int16_t туурасы, int16_t бийиктиги);
// тегерек тартуу
жараксыз DrawCircle (int16_t x, int16_t y, int16_t радиусу);
// тегеректи толтуруңуз
боштук fillCircle (int16_t x, int16_t y, int16_t радиусу);
// горизонталдык сызык тартуу
void drawHorizontalLine (int16_t x, int16_t y, int16_t узундугу);
// вертикалдуу сызык тартуу
жараксыз DrawVerticalLine (int16_t x, int16_t y, int16_t узундугу);
Текст
// тексттин тегизделишин жазат
// TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER_BOTH
жараксыз setTextAlignment (OLEDDISPLAY_TEXT_ALIGNMENT textAlignment);
Сунушталууда:
OLED дисплейи жана Arduino менен көңүл ачуу: 12 кадам (сүрөттөр менен)
OLED Display жана Arduino менен көңүл ачуу: OLED дисплей технологиясы жөнүндө сөзсүз укканыңызга ишенем. Бул салыштырмалуу жаңы жана эски ЖК технологиясына караганда жакшыраак сапатты сунуштайт. Бул үйрөткүчтө биз эң кеңири таралган бирдиктүү маалыматты көрсөтүү үчүн керектүү кадамдарды карап чыгууну каалайбыз
DIY LED тилкеси: Кантип кесүү, туташуу, ширетүү жана кубаттоочу LED тилкеси: 3 кадам (сүрөттөр менен)
DIY LED Strip: кантип кесип, туташтыруу, Solder жана Power LED Strip: LED strip.Flexible ишенимдүү жана колдонууга жеңил, LED тилкелерин колдонуу менен өз жарык долбоорлорду кабыл алуу үчүн башталгычтар үчүн колдонмо ар кандай мыкты тандоо болуп саналат. жөнөкөй жабык 60 LED/m LED тилкесин орнотуунун негиздери, бирок
Raspberry Pi менен веб -сайт/WiFi көзөмөлдөгөн LED тилкеси: 9 кадам (сүрөттөр менен)
Веб -сайт/WiFi Raspberry Pi менен башкарылган LED тилкеси: Негизги маалымат: Мен өспүрүммүн жана акыркы бир нече жылдан бери робототехника боюнча мелдештерге катышуу менен бирге кичинекей электроника долбоорлорун иштеп чыгып, программалап келе жатам. Мен жакында столумдун конфигурациясын жаңыртуунун үстүндө иштеп жаттым, жана жакшы кошумча деп чечтим
Таймер менен Motion Sensor иштетилген LED тилкеси: 6 кадам (сүрөттөр менен)
Таймер менен Motion Sensor иштетилген LED тилкеси: салам баарына! Мен азыр дагы бир көрсөтмө жазуу үчүн абдан кубанычтамын. Бул долбоор мага бир нече ай мурун бир нускоочу-эр (?!) (Дэвид @dducic) менен байланышып, дизайн боюнча жардам сурап кайрылганда пайда болгон. Ошентип, бул жерде оригиналдуу спецификация болгон: & q
ESP32 жана OLED дисплейи: Интернет сааты - DHT22: 10 кадам (сүрөттөр менен)
ESP32 жана OLED дисплейи: Интернет сааты - DHT22: Бул Нускамалык конкурс: "GIFs Challenge 2017" конкурсуна катышат, эгер сизге жакса, жогорудагы баннерди чыкылдатып добуш бериңиз. Чоң рахмат! ;-) Бул үйрөткүч бул улуу IoT түзмөгү жөнүндө көбүрөөк билүү үчүн саякаттын уландысы