Indholdsfortegnelse:

ESP32: M5Stack med DHT22: 10 trin
ESP32: M5Stack med DHT22: 10 trin

Video: ESP32: M5Stack med DHT22: 10 trin

Video: ESP32: M5Stack med DHT22: 10 trin
Video: Измерьте температуру и влажность Wi-Fi с помощью ESP32 DHT11 и DHT22 - Robojax 2024, November
Anonim
Image
Image
ESP32: M5Stack med DHT22
ESP32: M5Stack med DHT22
ESP32: M5Stack med DHT22
ESP32: M5Stack med DHT22

Lad os tale i dag om en meget speciel ESP32, perfekt til tingenes internet, som er M5Stack. Den indeholder ESP32 indeni og tilføjer endda et display, tastatur, forstærker, højttaler og batteri. Således kan denne enhed gøre utallige ting. Da jeg modtog denne hardware, havde jeg allerede software til ESP32 og kun portet til det display, der blev brugt i dette projekt, hvilket er anderledes. Den kildekode, vi vil bruge, er dog den samme, som blev brugt i vores video TEMPERATUR OG Fugtighed med OLED -DISPLAY.

I dagens kredsløb vil jeg specifikt understrege, at vi har M5Stack med positive og negative forbindelser, som føder sig selv med en DHT22 -sensor. Begge er forbundet med en GPIO. Dataene vises i diagrammet.

I denne artikel, lad os introducere M5Stack og diskutere dens applikationer. Jeg er nødt til at understrege, at denne enhed har en indgang til et micro SD-kort, en 1W højttaler og en batteristik, og også har interaktionsknapper, et i2c-stik, en USB type C, udsatte IO'er, en to-tommer TFT-skærm, blandt andre funktioner. Det er vist på billedet ovenfor. Vi kan sige, at denne enhed er klar til IoT, da den allerede leveres med Bluetooth og ESP32 WiFi. Det indeholder også en magnet til fastgørelse til metaloverflader.

Kan du lide M5Stack? Klik:

Trin 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

En nyskabelse af M5Stack er, at hvis du tager bagsiden af, kan du passe ind i forskellige moduler med forskellige funktioner, f.eks. GPS -modulet, GSM, LoRa. Dette er vist på billedet.

Jeg har flere eksempler på moduler herunder, lige fra RS485, DC Motor, Maker, Core, til trinmotorstyring.

Dette er faktisk en meget hurtig måde at sammensætte en prototype på. I gamle dage var det nødvendigt at købe flere transistorchips og udføre adskillige samlinger, hvilket krævede meget tid og investering. Først efter kom produktprototypen. Det var dengang Arduino og Hindbær dukkede op, som er plader.

Nu har vi endelig M5Stack, som er denne lukkede boks, der er klar til brug. Dette befrier os fra at skulle udføre andre utallige trin.

Andre M5Stack -modeller er vist på billeder. Vi har en enhed med alfanumeriske, numeriske og spiltastaturer. Disse giver dig mulighed for at arbejde, som om det er en slags computer. Vi har også et eksempel på software, der kører, som kan programmeres i MicroPython, Arduino, ESP-IDF, NodeJS, ud over Basic.

Trin 2: M5Stack mulige applikationer

M5Stack Mulige applikationer
M5Stack Mulige applikationer
M5Stack Mulige applikationer
M5Stack Mulige applikationer
M5Stack Mulige applikationer
M5Stack Mulige applikationer

Blandt eksemplerne på M5Stack -applikationer har vi oscilloskopet, som du kan se på billedet. Vi har også en slags lommeregner / skæreværktøjsbord.

Hvad med et cykelhastighedsmåler?

Det kan også være en fjernboremaskine, der udskrives i 3D og fjernovervåges af en kontrol.

Alt dette viser, at elektronikstyring er meget mere overkommelig i disse dage, ligesom programmeringen af disse kredsløb er blevet lettere.

Trin 3: M5Stack - pins

M5Stack - Pins
M5Stack - Pins

Bagsiden af M5Stack er på dette billede, hvilket viser, at strømmen er ved 5 volt. Billedet afslører yderligere, at vi har alt, hvad der findes i ESP32 med forbindelse.

Trin 4: DHT -bibliotek

DHT -bibliotek
DHT -bibliotek

Brug SimpleDHT lib, som er den samme, som jeg brugte i videoen: TEMPERATUR OG Fugtighed med OLED DISPLAY.

Trin 5: Administrer Arduino IDE -bibliotek

Arduino IDE Library Administrer
Arduino IDE Library Administrer

I "Menu: Skitse -> Tilføj bibliotek -> Administrer biblioteker", lad os installere de to biblioteker vist på billedet herunder. Husk, at før alt dette skal du installere Arduino -kernen i ESP32. Denne video viser dig, hvordan du gør it: SÅDAN INSTALLERER DU ARDUINO IDE I ESP32.

Trin 6: Kildekode

Kildekoden er som nævnt den samme, som jeg brugte i videoen: TEMPERATURGRAF MED OLED -DISPLAY. Den eneste ændring, jeg foretog i dette projekt, var i forhold til skærmens størrelse.

Trin 7: M5StackDHTGraph.ino

Vi vil inkludere bibliotekerne M5Stack.h og SimpleDHT.h, og vi vil definere farver, der bruges på displayet, samt DHT -datapinden. Vi vil også konstruere et objekt til kommunikation med sensoren, definere variablen, der er ansvarlig for målingerne, og angive værdien af X-aksen.

// 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 0xFFFF #define DHTPIN 5 // pino // construtor do objeto para comunicar com o sensor SimpleDHT22 dht; // variabel responsavel por contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

Vi fortsætter med X-akse og Y-akses positioneringsdefinitioner, temperatur- og fugtighedsdata viser koordinater samt de variabler, der gemmer de læste værdier. Vi peger stadig på variablen til udskrivning af diagrammet på displayet.

// 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 coordenada onde escreveremos os dados de Temperatur e umidade #define POS_X_DADOS 30 #define POS_Y_DADOS 200 // variáveis 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 exemplo // 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

Trin 8: M5StackDHTGraph.ino - Opsætning

I Setup initialiserer vi M5Stack. Vi definerer kommandoer til at tegne grafen, konfigurerer skrifttypen samt tekstfarver og placerer markøren til at skrive.

void setup (void) {Serial.begin (115200); // Inicializa o M5Stack M5.begin (); // pinta a tela toda de preto M5. Lcd.fillScreen (SORT); // os comandos a seguir irão desenhar as linhas dos eixos cartesianos na cor branca // drawFastVLine (x, y, bredde, farve) linha vertical M5. Lcd.drawFastVLine (POS_X_GRAFICO, POS_Y_GRAFICO, ALTURA_GRAFICO; // eixo Y // drawFastHLine (x, y, bredde, farve) linha vandret M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, WHITE); // eixo X // konfiguration o tamnaho do texto que escreveremos em tela M5. Lcd.setTextSize (3); // konfiguration a cor branca para o texto M5. Lcd.setTextColor (WHITE); // posiciona o cursor para escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // angiver en temperatur på M5. Lcd.setCursor (POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print ("U:"); // indicando a umidade}

Trin 9: M5StackDHTGraph.ino - Loop

I den første del af sløjfen læser vi temperatur og fugtighed, kortlægger værdien af variablerne for placering på grafen og tegner det punkt på skærmen, der refererer til disse værdier, der er læst fra sensoren.

void loop () {// Fazemos a leitura da temperatura e umiade float temp, umid; int status = dht.read2 (DHTPIN, & temp, & umid, NULL); hvis (status == SimpleDHTErrSuccess) {temperatura = temp; umidade = umid; } // mapeando o valor das variáveis para colocar no gráfico // necessário pois o display tem 240px de altura e separamos apenas 180 para o gráfico // umidade pode ser lida de 0-100 int temperaturaMapeada = map (temperatur, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = map (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 exemplo que fica variando M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-linhaExemplo, GUL);

Derefter definerer vi mulighederne for at udskrive grafikken på displayet.

// aqui controlamos nossa linha de exemplo, quando chega no valor máximo decrementamos o valor // até um valor mínimo determinado (no nosso caso 10), e a partir daí, incrementa novamente if (linhaExemplo == 50) fator = -1; ellers hvis (linhaExemplo == 10) fator = 1; // soma o valor de linhaExemplo linhaExemplo += fator; // incrementa 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. hvis (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, SORT); M5. Lcd.fillRect (POS_X_DADOS+165, POS_Y_DADOS, 90, 30, SORT);

// reposiciona o cursor para escrever a temperatura M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (RØD); M5. Lcd.print (temperatura); M5. Lcd.print ((tegn) 247); // reposiciona o cursor para escrever a umidade M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.print (umidade); M5. Lcd.print ("%"); forsinkelse (1000); }

Trin 10: Filer

Kan du lide M5Stack? Vil du købe en? Gå til:

Download filerne:

PDF

INO

Anbefalede: