Mündəricat:

ESP32: DHT22 ilə M5Stack: 10 addım
ESP32: DHT22 ilə M5Stack: 10 addım

Video: ESP32: DHT22 ilə M5Stack: 10 addım

Video: ESP32: DHT22 ilə M5Stack: 10 addım
Video: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 2024, Iyul
Anonim
Image
Image
ESP32: DHT22 ilə M5Stack
ESP32: DHT22 ilə M5Stack
ESP32: DHT22 ilə M5Stack
ESP32: DHT22 ilə M5Stack

Bu gün M5Stack olan Əşyaların İnterneti üçün mükəmməl olan çox xüsusi bir ESP32 haqqında danışaq. İçərisində ESP32 var və hətta ekrana, klaviaturaya, gücləndiriciyə, dinamikə və batareyaya əlavə edir. Beləliklə, bu cihaz saysız -hesabsız işlər görə bilər. Bu aparatı alanda artıq ESP32 üçün proqram təminatım var idi və yalnız bu layihədə istifadə olunan ekrana köçürülürdüm ki, bu da fərqlidir. Ancaq istifadə edəcəyimiz mənbə kodu OLED EKRANLI VİDEO SICAKLIĞI VƏ NEMLİYİMİZdə istifadə olunan kodla eynidir.

Bugünkü dövrədə, xüsusi olaraq vurğulamaq istəyirəm ki, özünü DHT22 sensoru ilə bəsləyən müsbət və mənfi əlaqələri olan M5Stack -ə sahibik. Hər ikisi bir GPIO ilə bağlanır. Məlumatlar qrafikdə göstərilir.

Bu yazıda M5Stack -i təqdim edək və tətbiqlərini müzakirə edək. Vurğulamaq lazımdır ki, bu cihazda mikro SD kart, 1W dinamik və batareya yuvası üçün giriş var, eyni zamanda qarşılıqlı əlaqə düymələri, i2c konnektoru, USB tip C, ifşa edilmiş IOs, iki düymlük TFT ekranı, digər xüsusiyyətlər arasında. Yuxarıdakı şəkildə göstərilmişdir. Bu cihazın artıq Bluetooth və ESP32 WiFi ilə birlikdə gəldiyi üçün IoT üçün hazır olduğunu söyləyə bilərik. Metal səthlərə yapışdırmaq üçün bir maqnit də daxildir.

M5Stack xoşunuza gəldi? Basın:

Addım 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

M5Stack -in bir yeniliyi, arxadan çıxarsanız, GPS modulu, GSM, LoRa və digərləri kimi fərqli funksiyaları olan fərqli modullara sığa bilərsiniz. Bu görüntüdə göstərilir.

Aşağıda RS485, DC Motor, Maker, Core, step motor nəzarətinə qədər daha çox modul nümunəm var.

Bu, əslində bir prototip hazırlamaq üçün çox sürətli bir yoldur. Köhnə günlərdə bir neçə tranzistor çipi almaq və çox vaxt və investisiya tələb edən çoxsaylı montajlar etmək lazım idi. Məhsulun prototiplənməsi yalnız bundan sonra baş verdi. Məhz o zaman plitələr olan Arduino və Raspberry ortaya çıxdı.

İndi nəhayət M5Stack var, bu istifadəyə hazır qapalı qutu. Bu, bizi digər saysız -hesabsız addımlar atmaq məcburiyyətindən azad edir.

Digər M5Stack modelləri şəkillərdə göstərilmişdir. Alfasayısal, sayısal və oyun klaviaturaları olan bir cihazımız var. Bunlar sanki bir növ kompüter kimi işləməyə imkan verir. Basic-ə əlavə olaraq MicroPython, Arduino, ESP-IDF, NodeJS-də proqramlaşdırıla bilən proqram çalışan bir nümunəmiz də var.

Addım 2: M5Stack Mümkün Proqramlar

M5Stack Mümkün Tətbiqlər
M5Stack Mümkün Tətbiqlər
M5Stack Mümkün Tətbiqlər
M5Stack Mümkün Tətbiqlər
M5Stack Mümkün Tətbiqlər
M5Stack Mümkün Tətbiqlər

M5Stack tətbiqlərinin nümunələri arasında, şəkildə gördüyünüz kimi osiloskopumuz var. Həm də bir növ kalkulyator / kəsici alət masamız var.

Bəs velosiped sürəti haqqında nə demək olar?

Həm də 3D -də çap olunan və bir idarəetmə vasitəsi ilə uzaqdan izlənilən uzaqdan qazma ola bilər.

Bütün bunlar göstərir ki, elektronik idarəetmə bu dövrələrin proqramlaşdırılması asanlaşdığı kimi, bu günlərdə də daha əlverişlidir.

Addım 3: M5Stack - Pins

M5Stack - Sancaqlar
M5Stack - Sancaqlar

M5Stack -in arxası bu görüntüdədir ki, bu da gücün 5 volt olduğunu göstərir. Görüntü, ESP32 -də əlaqəli olan hər şeyə sahib olduğumuzu göstərir.

Addım 4: DHT Kitabxanası

DHT Kitabxanası
DHT Kitabxanası

Videoda istifadə etdiyim eyni olan SimpleDHT libini istifadə edin: OLED EKRANLI SICAKLIQ VE NEMLİK.

Addım 5: Arduino IDE Kitabxana İdarə Edin

Arduino IDE Kitabxanasını İdarə Edin
Arduino IDE Kitabxanasını İdarə Edin

"Menyu: Eskiz -> Kitabxana Əlavə et -> Kitabxanaları İdarə et" bölməsində, aşağıda göstərilən şəkildə göstərilən iki kitabxananı quraşdıraq. Unutmayın ki, bütün bunlardan əvvəl ESP32 -nin Arduino nüvəsini quraşdırmalısınız. Bu video bunu necə edəcəyinizi göstərir. it: ESP32 -də ARDUINO IDE NECƏ QURULUR.

Addım 6: Mənbə Kodu

Mənbə kodu, qeyd edildiyi kimi, videoda istifadə etdiyim kimidir: OLED EKRANLI TEMPERATURE GRAPH. Bu layihədə etdiyim tək dəyişiklik ekranın ölçüsü ilə əlaqədar idi.

Addım 7: M5StackDHTGraph.ino

M5Stack.h və SimpleDHT.h kitabxanalarını daxil edəcəyik və ekranda istifadə olunan rəngləri, həmçinin DHT məlumat pinini təyin edəcəyik. Sensorla ünsiyyət üçün bir obyekt quracağıq, oxunuşlardan məsul olan dəyişəni təyin edəcəyik və X oxunun dəyərini göstərəcəyik.

// Libs do M5Stack e DHT #include #include // definição das cores que serão utilizadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #define SARI 0xFFE0 #defineDefineDefineDefineDefineDefineDefineDefineDefineDefineDefineDefine5d // SimpleDHT22 texnologiyası ilə əlaqəli qurucular; // dəyişikliyə cavab vermək üçün heç bir nəticə əldə edilməmişdir, heç bir X X leituraAtual = 1;

X oxu və Y oxu yerləşdirmə tərifləri, temperatur və rütubət məlumatlarının göstərilmə koordinatları və oxunan dəyərləri saxlayacaq dəyişənlərlə davam edirik. Diaqramı ekranda çap etmək üçün hələ də dəyişənə işarə edirik.

// pososionamento dos eixos X e Y #müəyyən POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 // defineção da coordenada onde escreveremos PD_DOS_DOS_DOS_DOS_Design hər hansı bir problemi həll etmək mümkün deyil = 0; int temperatura = 0; // dəyişmədən əvvəl hər hansı bir iş görməməzlikdən gəlinməmişdir // məsələn, hər biri 1 dəfə linhaExemplo = 20; int fator = 1; // indará se somaremos ou subtrairemos induá unidade na variável linhaExemplo

Addım 8: M5StackDHTGraph.ino - Quraşdırma

Quraşdırmada M5Stack -i işə salırıq. Qrafiki çəkmək, yazı tipini, mətn rənglərini konfiqurasiya etmək və yazmaq üçün kursoru yerləşdirmək üçün əmrlər təyin edirik.

void setup (void) {Serial.begin (115200); // Məlumatlandırma və ya M5Stack M5.begin (); // əvvəllər M5. Lcd.fillScreen (SİYAH) yazmaq lazımdır; // os comandos a desinhar as many as a linchas dos eixos cartesianos na corban // drawFastVLine (x, y, width, color) linha vertical M5. Lcd.drawFastVLine (POS_X_GRAFICO, POS_Y_GRAFICO, ALTURA_GRAFICO, WHO) // eixo Y // drawFastHLine (x, y, en, rəng) linha üfüqi M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, BEYAZ); // eixo X // konfiqurasiya etmək üçün M5. Lcd.setTextSize (3) ilə əlaqə qurun; // M5. Lcd.setTextColor (BEYAZ) üçün mətnin konfiqurasiyası; // M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS) üçün işarələr; M5. Lcd.print ("T:"); // bir temperatur M5. Lcd.setCursor göstərin (POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print ("U:"); // indicando a umidade}

Addım 9: M5StackDHTGraph.ino - Döngə

Döngənin birinci hissəsində temperatur və rütubəti oxuyuruq, qrafikə yerləşdirmək üçün dəyişənlərin dəyərini xəritəyə qoyuruq və ekrandan sensordan oxunan bu dəyərlərə aid olan nöqtəni çəkirik.

void loop () {// Fazemos a leitura da temperatura və bir neçə dəfə üzmək tempi, ümid; int statusu = dht.read2 (DHTPIN, & temp, & umid, NULL); if (status == SimpleDHTErrSuccess) {temperatura = temp; ümidad = ümid; } // 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 // grafiko // umidade pode 0-100 int temperaturaMapeada = xəritə (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = xəritə (umidade, 0, 100, 0, ALTURA_GRAFICO); // M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-temperaturaMapeada, QIRMIZI) sensoru ilə əlaqəli hər hansı bir məlumat yoxdur; M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-umidadeMapeada, CYAN); M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-linhaExemplo, SARI);

Sonra qrafiki ekranda çap etmək imkanlarını müəyyənləşdiririk.

// sui linro de exemplo, quando chega no valirá máximo decrementamos o valor // até um valor mínimo determinado (no no caso 10), a partir daí, incrementa novamente if (linhaExemplo == 50) fator = -1; başqa əgər (linhaExemplo == 10) fator = 1; // linhaExemplo linhaExemplo += fator; // artım və ya artım realizadas leituraAtual ++; // 270 (eixo do eixo X) əməliyyat sistemini məhdudlaşdırmaq üçün bir məhdudiyyət qoyun. if (leituraAtual == 270) {// limfa aárea toda do gráfico M5. Lcd.fillRect (POS_X_GRAFICO+1, POS_Y_GRAFICO-1, COMPRIMENTO_GRAFICO, ALTURA_GRAFICO-1, BLACK); leituraAtual = 1; // volta o contador de leitura para 1 (nova coordenada X)} // m5. Lcd.fillRect (POS_X_DADOS+50, POS_Y_DADOS, 60, 30, BLACK); M5. Lcd.fillRect (POS_X_DADOS+165, POS_Y_DADOS, 90, 30, SİYAH);

// M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS) temperatura keçmək üçün imlecin saxlanılması; M5. Lcd.setTextColor (QIRMIZI); M5. Lcd. çap (temperatura); M5. Lcd.print ((char) 247); // M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS) üçün bir imlecin saxlanılması; M5. Lcd.setTextColor (CYAN); M5. Lcd.çap (ümidad); M5. Lcd.print ("%"); gecikmə (1000); }

Addım 10: Fayllar

M5Stack xoşunuza gəldi? Bir almaq istəyirsiniz? Gedin:

Faylları yükləyin:

PDF

MƏN YOX

Tövsiyə: