Turinys:

ESP32: M5 Dėklas su DHT22: 10 žingsnių
ESP32: M5 Dėklas su DHT22: 10 žingsnių

Video: ESP32: M5 Dėklas su DHT22: 10 žingsnių

Video: ESP32: M5 Dėklas su DHT22: 10 žingsnių
Video: Equipment Corner - Steppers 2024, Liepa
Anonim
Image
Image
ESP32: M5Stack su DHT22
ESP32: M5Stack su DHT22
ESP32: M5Stack su DHT22
ESP32: M5Stack su DHT22

Šiandien pakalbėkime apie labai ypatingą ESP32, puikiai tinkantį daiktų internetui, tai yra „M5Stack“. Jame yra ESP32 viduje ir netgi papildomas ekranas, klaviatūra, stiprintuvas, garsiakalbis ir baterija. Taigi, šis prietaisas gali atlikti daugybę dalykų. Kai gavau šią aparatinę įrangą, jau turėjau programinę įrangą ESP32 ir perkeliau tik į šiame projekte naudojamą ekraną, kuris skiriasi. Tačiau šaltinio kodas, kurį naudosime, yra tas pats, kuris buvo naudojamas vaizdo įraše TEMPERATŪRA IR DRĖGMĖ SU OLED EKRANU.

Šiandienos grandinėje konkrečiai noriu pabrėžti, kad turime „M5Stack“su teigiamomis ir neigiamomis jungtimis, kurios maitina save DHT22 jutikliu. Abu yra sujungti GPIO. Duomenys rodomi diagramoje.

Šiame straipsnyje pristatysime „M5Stack“ir aptarkime jo taikymo sritis. Turiu pabrėžti, kad šiame įrenginyje yra „micro SD“kortelės įvestis, 1 W garsiakalbis ir akumuliatoriaus lizdas, taip pat yra sąveikos mygtukai, „i2c“jungtis, C tipo USB, atviros IO, dviejų colių TFT ekranas, be kitų savybių. Tai parodyta aukščiau esančiame paveikslėlyje. Galime pasakyti, kad šis įrenginys yra paruoštas daiktų internetui, nes jame jau yra „Bluetooth“ir ESP32 „WiFi“. Jame taip pat yra magnetas, skirtas tvirtinti prie metalinių paviršių.

Ar jums patiko „M5Stack“? Spustelėkite:

1 žingsnis: „M5Stack“

„M5Stack“
„M5Stack“
„M5Stack“
„M5Stack“
„M5Stack“
„M5Stack“
„M5Stack“
„M5Stack“

Viena „M5Stack“naujovė yra ta, kad jei nuimsite nugarą, galėsite tilpti į skirtingus modulius su skirtingomis funkcijomis, pavyzdžiui, GPS modulį, GSM, „LoRa“. Tai parodyta paveikslėlyje.

Žemiau turiu daugiau modulių pavyzdžių, pradedant RS485, DC varikliu, gamintoju, branduoliu ir baigiant žingsninio variklio valdymu.

Tai iš tikrųjų yra labai greitas prototipo surinkimo būdas. Senais laikais reikėjo nusipirkti keletą tranzistorių lustų ir atlikti daugybę surinkimų, o tai pareikalavo daug laiko ir investicijų. Tik po to atsirado produkto prototipas. Būtent tada pasirodė „Arduino“ir „Raspberry“, kurios yra lėkštės.

Dabar pagaliau turime „M5Stack“, tai yra paruošta naudoti uždaryta dėžutė. Tai išlaisvina mus nuo kitų nesuskaičiuojamų veiksmų.

Kiti „M5Stack“modeliai rodomi paveikslėliuose. Turime įrenginį su raidinėmis ir skaitmeninėmis, skaitmeninėmis ir žaidimų klaviatūromis. Tai leidžia jums dirbti taip, tarsi tai būtų tam tikras kompiuteris. Taip pat turime programinės įrangos veikimo pavyzdį, kurį, be „Basic“, galima užprogramuoti „MicroPython“, „Arduino“, ESP-IDF, „NodeJS“.

2 veiksmas: „M5Stack“galimos programos

„M5Stack“galimos programos
„M5Stack“galimos programos
„M5Stack“galimos programos
„M5Stack“galimos programos
„M5Stack“galimos programos
„M5Stack“galimos programos

Tarp „M5Stack“programų pavyzdžių turime osciloskopą, kaip matote paveikslėlyje. Mes taip pat turime tam tikrą skaičiuoklės / pjovimo įrankių lentelę.

O kaip dviračio spidometras?

Tai taip pat gali būti nuotolinis grąžtas, atspausdintas 3D formatu ir valdomas nuotoliniu būdu.

Visa tai rodo, kad elektronikos valdymas šiais laikais yra daug pigesnis, kaip ir šių grandinių programavimas tapo lengvesnis.

3 žingsnis: „M5Stack“- smeigtukai

M5Stack - smeigtukai
M5Stack - smeigtukai

„M5Stack“galinė dalis yra šiame paveikslėlyje, o tai rodo, kad galia yra 5 voltai. Vaizdas taip pat atskleidžia, kad mes turime viską, kas egzistuoja ESP32 su ryšiu.

4 žingsnis: DHT biblioteka

DHT biblioteka
DHT biblioteka

Naudokite „SimpleDHT lib“, tą patį, kurį naudoju vaizdo įraše: TEMPERATŪRA IR DRĖGMĖ SU OLED EKRANU.

5 veiksmas: valdykite „Arduino IDE“biblioteką

„Arduino IDE“bibliotekos valdymas
„Arduino IDE“bibliotekos valdymas

Skiltyje „Meniu: eskizas -> Pridėti biblioteką -> Tvarkyti bibliotekas“įdiekime dvi bibliotekas, parodytas žemiau esančiame paveikslėlyje. Atminkite, kad prieš visa tai turite įdiegti ESP32 „Arduino“branduolį. Šiame vaizdo įraše parodyta, kaip tai padaryti it: KAIP ĮRENGTI ARDUINO IDE ESP32.

6 žingsnis: šaltinio kodas

Šaltinio kodas, kaip minėta, yra tas pats, kurį naudojau vaizdo įraše: TEMPERATŪROS GRAFIKA SU OLED DISPLAY. Vienintelis šio projekto pakeitimas buvo susijęs su ekrano dydžiu.

7 žingsnis: M5StackDHTGraph.ino

Įtrauksime M5Stack.h ir SimpleDHT.h bibliotekas, apibrėžsime ekrane naudojamas spalvas, taip pat DHT duomenų smeigtuką. Mes taip pat sukonstruosime objektą ryšiui su jutikliu, nustatysime kintamąjį, atsakingą už rodmenis, ir nurodysime X ašies vertę.

// 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 GELTONA 0xFFE0 #define WHITE 0xFFFFf # # // construtor do objeto para comunicar com o sensor SimpleDHT22 dht; // varável responseavel por contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

Tęsiame X ašies ir Y ašies padėties apibrėžimus, temperatūros ir drėgmės duomenų rodymo koordinates, taip pat kintamuosius, kurie išsaugos nuskaitytas vertes. Mes vis dar nurodome kintamąjį, kad diagramą spausdintume ekrane.

// apibrėžimai, padedantys nustatyti padėtį X e Y #apibrėžti POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 // definição da coordenada onde escredeados POS que armazenarão os valores lidos da umidade e temperatura int umidade = 0; int temperatura = 0; // varável que armazenará o valor da coordenada Y para desenharmos uma linha de examplelo // que varia os valores de 1 em 1 int linhaExemplo = 20; int fator = 1; // indicará se somaremos ou subtrairemos uma unidade na variável linhaExemplo

8 veiksmas: „M5StackDHTGraph.ino“- sąranka

Sąrankoje inicijuojame „M5Stack“. Mes apibrėžiame grafiko piešimo komandas, sukonfigūruojame šriftą ir teksto spalvas bei nustatome žymeklį rašymui.

void setup (void) {Serial.begin (115200); // Inicializa o M5Stack M5.begin (); // pinta a tela toda de preto M5. Lcd.fillScreen (BLACK); // os comandos a seguir irão desenhar as linhas dos eixos cartesianos na cor branca // drawFastVLine (x, y, width, color) linha vertical M5. Lcd.drawFastVLine (POS_X_GRAFICO, POS_Y_GRAFICO, ALTURA_GRAFICO, WHITE); // eixo Y // drawFastHLine (x, y, plotis, spalva) linha horizontal M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, WHITE); // eixo X // configura o tamnaho do texto que escreveremos em tela M5. Lcd.setTextSize (3); // konfigūruoti tekstą M5. Lcd.setTextColor (BALTA); // pozicija arba žymeklis, escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // indicando a temperatura M5. Lcd.setCursor (POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print ("U:"); // indicando a umidade}

9 veiksmas: „M5StackDHTGraph.ino“- kilpa

Pirmoje ciklo dalyje mes skaitome temperatūrą ir drėgmę, priskiriame kintamųjų vertę, kad jie būtų išdėstyti grafike, ir ekrane nupiešiame tašką, nurodantį šias vertes, nuskaitytas iš jutiklio.

void loop () {// Fazemos a leitura da temperatura e umiade float temp, umid; int būsena = dht.read2 (DHTPIN, & temp, & umid, NULL); if (status == SimpleDHTErrSuccess) {temperatura = temp; umidade = umid; } // mapeando o valor das variáveis para colocar no gráfico // būtinasis vaizdas arba ekrano rodymas 240 pikselių ir atskiros apramos 180 para arba gráfico // umidade pode ser lida de 0-100 int temperaturaMapeada = map (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = žemėlapis (umidade, 0, 100, 0, ALTURA_GRAFICO); // desenha na tela o ponto referente aos valores lidos do sensor M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-temperaturaMapeada, RED); M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-umidadeMapeada, CYAN); // desenha na tela o ponto referente a nossa linha de examplelo que fica variando M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-linhaExemplo, GELTONA);

Tada mes apibrėžiame grafikos spausdinimo ekrane galimybes.

// aqui controlamos nossa linha de examplelo, quando chega no valor máximo decmentamos o valor // até um valor mínimo determinado (no nosso caso 10), e a partir daí, Incrementa novamente if (linhaExemplo == 50) fator = -1; else if (linhaExemplo == 10) fator = 1; // soma o valor de linhaExemplo linhaExemplo += fator; // padidėjimas o contador de leituras realizadas leituraAtual ++; // se a leitura chegar em 270 (número máximo do eixo X) então limparemos a área do gráfico para voltarmos a desenhar. 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, BLACK); leituraAtual = 1; // volta o contador de leitura para 1 (nova coordenada X)} // limpa a área onde colocamos o valor da temperatura e da umidade 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, BLACK);

// repozicija arba žymeklis, norint išgauti temperatūrą M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (RAUDONA); M5. Lcd.print (temperatūra); M5. Lcd.print ((char) 247); // repozicionavimas arba žymeklio paleidimas umidade M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.print (umidade); M5. Lcd.print ("%"); vėlavimas (1000); }

10 veiksmas: failai

Ar jums patiko „M5Stack“? Norite nusipirkti? Eikite į:

Atsisiųskite failus:

PDF

AŠ NE

Rekomenduojamas: