Mundarija:

ESP32: DHT22 bilan M5Stack: 10 qadam
ESP32: DHT22 bilan M5Stack: 10 qadam

Video: ESP32: DHT22 bilan M5Stack: 10 qadam

Video: ESP32: DHT22 bilan M5Stack: 10 qadam
Video: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 2024, Noyabr
Anonim
Image
Image
ESP32: DHT22 bilan M5Stack
ESP32: DHT22 bilan M5Stack
ESP32: DHT22 bilan M5Stack
ESP32: DHT22 bilan M5Stack

Keling, M5Stack - narsalar Interneti uchun juda mos bo'lgan juda maxsus ESP32 haqida gapiraylik. U ESP32 -ni o'z ichiga oladi va hatto displey, klaviatura, kuchaytirgich, karnay va batareyaga qo'shiladi. Shunday qilib, bu qurilma son -sanoqsiz narsalarni qila oladi. Men bu uskunani olganimda, menda ESP32 uchun dasturiy ta'minot bor edi va men faqat ushbu loyihada ishlatilgan displeyga ko'chirilgandim. Biroq, biz ishlatadigan manba kodi OLED displeyli TEMPERATURA VA HAVOLLIK videomizda ishlatilgan koddir.

Bugungi davrda men alohida ta'kidlashni istardimki, bizda M5Stack ijobiy va salbiy ulanishlar mavjud, u o'zini DHT22 sensori bilan oziqlantiradi. Ikkalasi ham GPIO orqali ulangan. Ma'lumotlar jadvalda ko'rsatiladi.

Ushbu maqolada, keling, M5Stack -ni tanishtiramiz va uning ilovalarini muhokama qilamiz. Shuni ta'kidlash kerakki, ushbu qurilmada micro SD-karta, 1W dinamik va batareya rozetkasi uchun kirish bor, shuningdek o'zaro ta'sir tugmalari, i2c ulagichi, USB tipidagi C, ochiq IO, ikki dyuymli TFT displeyi, boshqa xususiyatlar qatorida. Bu yuqoridagi rasmda ko'rsatilgan. Aytishimiz mumkinki, bu qurilma IoT uchun tayyor, chunki u allaqachon Bluetooth va ESP32 WiFi bilan birga keladi. Shuningdek, u metall yuzalarga mahkamlash uchun magnitni o'z ichiga oladi.

Sizga M5Stack yoqdimi? Bu erni bosing:

1 -qadam: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

M5Stack -ning yangiliklaridan biri shundaki, agar siz orqa qismini echib olsangiz, siz GPS moduli, GSM, LoRa va boshqalar kabi turli funktsiyali turli modullarga sig'ishingiz mumkin. Bu rasmda ko'rsatilgan.

Quyida menda RS485, shahar dvigateli, ishlab chiqaruvchi, yadrodan tortib, step motorini boshqarishgacha bo'lgan boshqa modullar misollari bor.

Bu aslida prototipni yig'ishning juda tez usuli. Qadimgi kunlarda bir nechta tranzistorli chiplarni sotib olish va ko'p yig'ilishlarni bajarish kerak edi, bu esa ko'p vaqt va mablag 'talab qiladi. Faqat mahsulot prototipi paydo bo'ldi. Aynan o'sha paytda Arduino va Raspberry paydo bo'ldi, bu plitalar.

Endi bizda nihoyat M5Stack bor, bu foydalanishga tayyor yopiq quti. Bu bizni boshqa son -sanoqsiz qadamlarni bajarishdan ozod qiladi.

Boshqa M5Stack modellari rasmlarda ko'rsatilgan. Bizda raqamli, raqamli va o'yinli klaviaturali qurilma mavjud. Bu sizga xuddi kompyuter kabi ishlashga imkon beradi. Bizda, shuningdek, Basic-dan tashqari MicroPython, Arduino, ESP-IDF, NodeJS-da dasturlash mumkin bo'lgan dasturiy ta'minotni ishga tushirishga misol bor.

2 -qadam: M5Stack mumkin bo'lgan ilovalar

M5Stack mumkin bo'lgan ilovalar
M5Stack mumkin bo'lgan ilovalar
M5Stack mumkin bo'lgan ilovalar
M5Stack mumkin bo'lgan ilovalar
M5Stack mumkin bo'lgan ilovalar
M5Stack mumkin bo'lgan ilovalar

M5Stack ilovalariga misollar orasida biz rasmda ko'rib turganingizdek osiloskopimiz bor. Bizda kalkulyator / kesish asboblari jadvali ham bor.

Velosiped tezlik o'lchagichiga nima deysiz?

Bu, shuningdek, 3D formatida chop etiladigan va masofadan boshqarish pulti yordamida boshqariladigan masofaviy matkap bo'lishi mumkin.

Bularning barchasi shuni ko'rsatadiki, hozirgi vaqtda elektron sxemalarni boshqarish ancha qulayroq, xuddi shu sxemalarni dasturlash osonlashdi.

3 -qadam: M5Stack - pinlar

M5Stack - pinlar
M5Stack - pinlar

M5Stack -ning orqa qismi bu rasmda, bu kuch 5 voltda ekanligini ko'rsatadi. Rasm, bizda ESP32 -da mavjud bo'lgan hamma narsa borligini ko'rsatadi.

4 -qadam: DHT kutubxonasi

DHT kutubxonasi
DHT kutubxonasi

SimpleDHT lib -dan foydalaning, bu men videoda ishlatilgan: OLED displeyli harorat va namlik.

5 -qadam: Arduino IDE kutubxonasini boshqarish

Arduino IDE kutubxonasini boshqarish
Arduino IDE kutubxonasini boshqarish

"Menyu: Sketch -> Kutubxona qo'shish -> Kutubxonalarni boshqarish" bo'limida quyidagi rasmda ko'rsatilgan ikkita kutubxonani o'rnatamiz. Shuni yodda tutingki, bundan oldin siz ESP32 -ning Arduino yadrosini o'rnatishingiz kerak. Bu video sizga qanday qilishni ko'rsatib beradi. u: ESP32 -da ARDUINO ID -ni QANDAY O'RNATISH KERAK.

6 -qadam: Manba kodi

Manba kodi, yuqorida aytib o'tilganidek, men videoda ishlatganimdek: OLED displeyli TEMPERATURA GRAPHI. Men bu loyihada qilgan yagona o'zgarish displeyning o'lchamiga bog'liq edi.

7 -qadam: M5StackDHTGraph.ino

Biz M5Stack.h va SimpleDHT.h kutubxonalarini o'z ichiga olamiz va biz displeyda ishlatiladigan ranglarni, shuningdek DHT ma'lumot pinini aniqlaymiz. Shuningdek, biz sensor bilan aloqa qilish uchun ob'ekt quramiz, o'qishlar uchun javobgar o'zgaruvchini aniqlaymiz va X o'qining qiymatini ko'rsatamiz.

// Libs do M5Stack e DHT #include #include // das cores que cores que utiladadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #define YELLOW 0xFFE0 #defineFEFDEFFEFDEFFEFDEFEFFEFDEFFEFDEFFEFFEFFEFEFFEFFEFFEFFEFFEFFEFFEFEFFEFFEFFEFFEFFFEFFEFFFEFFFEFFFEFFFEFDF // konstruktor SimpleDHT22 dht; // turli xil javoblar berilgan bo'lsa, hech qanday eixo X int leituraAtual = 1;

Biz X o'qi va Y o'qining joylashishni aniqlash ta'riflari, harorat va namlik ma'lumotlarini ko'rsatish koordinatalari, shuningdek o'qilgan qiymatlarni saqlaydigan o'zgaruvchilar bilan davom etamiz. Biz hali ham displeyda jadvalni chop etish uchun o'zgaruvchiga ishora qilamiz.

// ta'riflar pozitsionamento dos eixos X e Y #POS_X_GRAFICO ni aniqlang 30 #aniqlang POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #ta'riflash COMPRIMENTO_GRAFICO 270 // ta'riflar hamjihatlikda saqlanadi POS_DOS_DOS_DOS_DOS_DOS_DOS_DOS_DOS_DOS_ que armazenarão os valores lidos da umidade e temperatura int umidade = 0; int temperatura = 0; // turli xil variantlar, masalan, koordinatalar, masalan, misollar // masalan, 1 ta linhaExemplo = 20; int fator = 1; // indará se somaremos yoki subtrairemos, na unidade na variável linhaExemplo

8 -qadam: M5StackDHTGraph.ino - O'rnatish

O'rnatishda biz M5Stack -ni ishga tushiramiz. Biz grafik chizish buyruqlarini belgilaymiz, shriftni, shuningdek matn ranglarini sozlaymiz va kursorni yozish uchun joylashtiramiz.

void setup (void) {Serial.begin (115200); // Informatsiya yoki M5Stack M5.begin (); // M5. Lcd.fillScreen (Qora); // os comandos a seuir desenhar as linxas dos eixos cartesianos na cor branca // drawFastVLine (x, y, en, rang) vertikal M5. Lcd.drawFastVLine (POS_X_GRAFICO, POS_Y_GRAFICO, ALTURA_GRAFICO, WHO). // eixo Y // drawFastHLine (x, y, kenglik, rang) chiziqli gorizontal M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, WHITE); // eixo X // konfiguratsiya M5. Lcd.setTextSize (3) matnli buyruqlar bilan amalga oshiriladi; // M5. Lcd.setTextColor (WHITE) uchun matnli konfiguratsiya; // M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS) uchun eslatma kursori; M5. Lcd.print ("T:"); // indikator temperatura M5. Lcd.setCursor (POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print ("U:"); // indando a umidda}

9 -qadam: M5StackDHTGraph.ino - Loop

Loopning birinchi qismida biz harorat va namlikni o'qiymiz, o'zgaruvchining qiymatini grafikga joylashtiramiz va ekranda sensordan o'qilgan bu qiymatlarga tegishli nuqtani chizamiz.

void loop () {// Fazemos a leitura da temperatura e umiade float temp, umid; int holati = dht.read2 (DHTPIN, & temp, & umid, NULL); if (status == SimpleDHTErrSuccess) {temperatura = temp; umid qilish = umid; } // mapeando o valor das variáveis para colocar no gráfico // needário pois o display tem 240px de altura e separamos apenas 180 para // grafika // umidade pode 0-100 int temperaturaMapeada = map (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = xarita (umidade, 0, 100, 0, ALTURA_GRAFICO); // M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-temperaturaMapeada, RED) sensorlari bilan aloqa o'rnatishingiz mumkin; M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-umiddaMapeada, CYAN); // M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-linhaExemplo, SARI) misli ko'rilmagan bo'lsa ham, bu erda hech qanday ma'lumot yo'q.

Keyin biz grafikani displeyda chop etish imkoniyatlarini aniqlaymiz.

// suvni nazorat qilish, masalan, hech qanday baho bermaslik // hech qanday ma'noga ega emas (hech qanday nosso caso 10 yo'q), a partir daí, incrementa novamente if (linhaExemplo == 50) fator = -1; aks holda (linhaExemplo == 10) fator = 1; // linhaExemplo linhaExemplo += fator; // incrementa or contador de leituras realizadas leituraAtual ++; // chegara 270 (nixo xá eixo X) bilan chegaralanmagan bo'lsa -da, bu sizning xohishingizga ko'ra. if (leituraAtual == 270) {// limpa a área toda do gráfico M5. Lcd.fillRect (POS_X_GRAFICO+1, POS_Y_GRAFICO-1, COMPRIMENTO_GRAFICO, ALTURA_GRAFICO-1, Qora); leituraAtual = 1; // volta o contador de leitura para 1 (nova coordenada X)} // limfa va temperatura ham, M5. Lcd.fillRect (POS_X_DADOS+50, POS_Y_DADOS, 60, 30, Qora); M5. Lcd.fillRect (POS_X_DADOS+165, POS_Y_DADOS, 90, 30, Qora);

// M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS) haroratini saqlash uchun kursorni saqlash; M5. Lcd.setTextColor (RED); M5. Lcd.print (temperatura); M5. Lcd.print ((char) 247); // M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS) uchun kursorni qayta yozish; M5. Lcd.setTextColor (CYAN); M5. Lcd.print (umidsiz); M5. Lcd.print ("%"); kechikish (1000); }

10 -qadam: fayllar

Sizga M5Stack yoqdimi? Birini sotib olmoqchimisiz? Boring:

Fayllarni yuklab oling:

PDF

INO

Tavsiya: