Satura rādītājs:

ESP32: M5 Kaudze ar DHT22: 10 soļi
ESP32: M5 Kaudze ar DHT22: 10 soļi

Video: ESP32: M5 Kaudze ar DHT22: 10 soļi

Video: ESP32: M5 Kaudze ar DHT22: 10 soļi
Video: Credit Card-Sized ESP32 Computer 2024, Jūlijs
Anonim
Image
Image
ESP32: M5Sakot ar DHT22
ESP32: M5Sakot ar DHT22
ESP32: M5Sakot ar DHT22
ESP32: M5Sakot ar DHT22

Parunāsim šodien par ļoti īpašu ESP32, kas ideāli piemērots lietu internetam, kas ir M5Stack. Tas satur ESP32 iekšpusē un pat papildina displeju, tastatūru, pastiprinātāju, skaļruni un akumulatoru. Tādējādi šī ierīce var darīt neskaitāmas lietas. Kad es saņēmu šo aparatūru, man jau bija programmatūra ESP32, un tā tika pārnesta tikai uz šajā projektā izmantoto displeju, kas ir atšķirīgs. Tomēr avota kods, ko izmantosim, ir tas pats, kas tika izmantots mūsu video TEMPERATŪRA UN MITRUMS AR OLED DISPLAY.

Šodienas ķēdē es īpaši vēlos uzsvērt, ka mums ir M5Stack ar pozitīviem un negatīviem savienojumiem, kas barojas ar DHT22 sensoru. Abus savieno GPIO. Dati tiek parādīti diagrammā.

Šajā rakstā iepazīstināsim ar M5Stack un apspriedīsim tā pielietojumu. Man jāuzsver, ka šai ierīcei ir ieeja mikro SD kartei, 1 W skaļrunis un akumulatora ligzda, kā arī mijiedarbības pogas, i2c savienotājs, C tipa USB, atklāti IO, divu collu TFT displejs, starp citām funkcijām. Tas ir parādīts attēlā iepriekš. Mēs varam teikt, ka šī ierīce ir gatava IoT, jo tai jau ir Bluetooth un ESP32 WiFi. Tas ietver arī magnētu, lai to piestiprinātu pie metāla virsmām.

Vai jums patika M5Stack? Noklikšķiniet:

1. darbība: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

Viens no M5Stack jauninājumiem ir tāds, ka, noņemot aizmuguri, jūs varat ievietot dažādus moduļus ar dažādām funkcijām, piemēram, GPS moduli, GSM, LoRa. Tas ir parādīts attēlā.

Tālāk ir vairāk moduļu piemēru, sākot no RS485, līdzstrāvas motora, veidotāja, kodola un beidzot ar pakāpju motora vadību.

Tas patiesībā ir ļoti ātrs veids, kā salikt prototipu. Vecajās dienās bija jāiegādājas vairākas tranzistoru mikroshēmas un jāveic neskaitāmas montāžas, kas prasīja daudz laika un ieguldījumu. Tikai pēc tam nāca produkta prototips. Toreiz parādījās Arduino un Raspberry, kas ir šķīvji.

Tagad mums beidzot ir M5Stack, kas ir šī lietošanai gatava slēgtā kaste. Tas atbrīvo mūs no nepieciešamības veikt citas neskaitāmas darbības.

Citi M5Stack modeļi ir parādīti attēlos. Mums ir ierīce ar burtciparu, ciparu un spēļu tastatūru. Tie ļauj strādāt tā, it kā tas būtu sava veida dators. Mums ir arī programmatūras darbības piemērs, ko papildus Basic var ieprogrammēt MicroPython, Arduino, ESP-IDF, NodeJS.

2. darbība: M5Stack iespējamās lietojumprogrammas

M5Stack iespējamie lietojumi
M5Stack iespējamie lietojumi
M5Stack iespējamie lietojumi
M5Stack iespējamie lietojumi
M5Stack iespējamie lietojumi
M5Stack iespējamie lietojumi

Starp M5Stack lietojumprogrammu piemēriem mums ir osciloskops, kā redzams attēlā. Mums ir arī sava veida kalkulators / griezējinstrumentu tabula.

Kā ar velosipēda spidometru?

Tas var būt arī attāls urbis, kas tiek drukāts 3D formātā un tiek kontrolēts attālināti ar vadības pulti.

Tas viss liecina, ka elektronikas vadība mūsdienās ir daudz pieejamāka, tāpat kā šo shēmu programmēšana ir kļuvusi vieglāka.

3. darbība: M5Stack - tapas

M5Stack - tapas
M5Stack - tapas

M5Stack aizmugure ir šajā attēlā, kas parāda, ka jauda ir 5 volti. Tālāk attēls atklāj, ka mums ir viss, kas pastāv ESP32, ar savienojamību.

4. solis: DHT bibliotēka

DHT bibliotēka
DHT bibliotēka

Izmantojiet SimpleDHT lib, kas ir tas pats, ko es izmantoju videoklipā: TEMPERATURE AND HIDIDITY WITH OLED DISPLAY.

5. darbība: pārvaldiet Arduino IDE bibliotēku

Arduino IDE bibliotēkas pārvaldība
Arduino IDE bibliotēkas pārvaldība

Sadaļā "Izvēlne: Skice -> Pievienot bibliotēku -> Pārvaldīt bibliotēkas" instalēsim divas bibliotēkas, kas parādītas zemāk esošajā attēlā. Atcerieties, ka pirms visa tā ir jāinstalē ESP32 Arduino kodols. Šis video parāda, kā to izdarīt it: KĀ UZSTĀDĪT ARDUINO IDE ESP32.

6. darbība: avota kods

Avota kods, kā jau minēts, ir tas pats, ko izmantoju videoklipā: TEMPERATŪRAS GRAFIKA AR OLED DISPLAY. Vienīgās izmaiņas, ko veicu šajā projektā, bija displeja izmērs.

7. darbība: M5StackDHTGraph.ino

Mēs iekļausim bibliotēkas M5Stack.h un SimpleDHT.h, un mēs definēsim displejā izmantotās krāsas, kā arī DHT datu tapu. Mēs arī izveidosim objektu saziņai ar sensoru, definēsim par rādījumiem atbildīgo mainīgo un norādīsim X ass vērtību.

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

Mēs turpinām ar X un Y ass pozicionēšanas definīcijām, temperatūras un mitruma datu attēlošanas koordinātām, kā arī mainīgajiem, kas saglabās nolasītās vērtības. Mēs joprojām norādām uz mainīgo diagrammas drukāšanai displejā.

// definições do posicionamento dos eixos X e Y #define POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 // definição da koordinaada onde que armazenarão os valores lidos da umidade e temperatura int umidade = 0; int temperatura = 0; // variá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. solis: M5StackDHTGraph.ino - iestatīšana

Iestatīšanas laikā mēs inicializējam M5Stack. Mēs definējam grafika zīmēšanas komandas, konfigurējam fontu, kā arī teksta krāsas un novietojam kursoru rakstīšanai.

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, platums, krāsa) 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); // configura a cor branca para o texto M5. Lcd.setTextColor (WHITE); // pozicionēšana vai kursora 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. solis: M5StackDHTGraph.ino - cilpa

Cilpas pirmajā daļā mēs lasām temperatūru un mitrumu, kartējam mainīgo vērtību izvietošanai diagrammā un uzzīmējam ekrānā punktu, kas attiecas uz šīm no sensora nolasītajām vērtībām.

void loop () {// Fazemos a leitura da temperatura e umiade float temp, umid; int statuss = dht.read2 (DHTPIN, & temp, & umid, NULL); ja (statuss == SimpleDHTErrSuccess) {temperatura = temp; umidade = umid; } // mapeando o valor das variáveis para colocar no gráfico // needário pois o display display 240px de altura e separamos apenas 180 para o gráfico // umidade pode ser lida de 0-100 int temperaturaMapeada = karte (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = karte (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, YELLOW);

Pēc tam mēs definējam grafikas drukāšanas iespējas displejā.

// 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í, inkrementa novamente if (linhaExemplo == 50) fator = -1; cits if (linhaExemplo == 10) fator = 1; // soma o valor de linhaExemplo linhaExemplo += fator; // pieaugums 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);

// repozicionēšana vai kursora parādīšana temperatūras M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (RED); M5. Lcd.print (temperatūra); M5. Lcd.print ((char) 247); // repozicionēšana vai kursora atkopšana un mitrināšana M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.print (umidade); M5. Lcd.print ("%"); kavēšanās (1000); }

10. darbība: faili

Vai jums patika M5Stack? Vai vēlaties tādu iegādāties? Dodieties uz vietni:

Lejupielādējiet failus:

PDF

ES NĒ

Ieteicams: