Cov txheej txheem:

ESP32: M5Stack Nrog DHT22: 10 Cov Kauj Ruam
ESP32: M5Stack Nrog DHT22: 10 Cov Kauj Ruam

Video: ESP32: M5Stack Nrog DHT22: 10 Cov Kauj Ruam

Video: ESP32: M5Stack Nrog DHT22: 10 Cov Kauj Ruam
Video: This ESP32 is on FIRE - M5Stack Core [review] 2024, Kaum ib hlis
Anonim
Image
Image
ESP32: M5Stack Nrog DHT22
ESP32: M5Stack Nrog DHT22
ESP32: M5Stack Nrog DHT22
ESP32: M5Stack Nrog DHT22

Wb tham hnub no txog qhov tshwj xeeb heev ESP32, zoo rau Internet ntawm Yam, uas yog M5Stack. Nws muaj ESP32 sab hauv thiab txawm tias ntxiv rau ntawm cov zaub, keyboard, lub suab nrov, hais lus, thiab roj teeb. Yog li, lub cuab yeej no tuaj yeem ua ntau yam. Thaum kuv tau txais cov khoom siv no, Kuv twb muaj software rau ESP32 thiab tsuas yog xa mus rau cov khoom siv hauv qhov haujlwm no, uas txawv. Txawm li cas los xij, qhov chaws uas peb yuav siv yog tib qho siv hauv peb cov vis dis aus TEMPERATURE THIAB HUMIDITY NROG OLED DISPLAY.

Hauv kab lus niaj hnub no, kuv tshwj xeeb xav hais qhia tias peb muaj M5Stack nrog kev sib txuas zoo thiab tsis zoo, uas pub nws tus kheej nrog DHT22 sensor. Ob leeg tau txuas nrog los ntawm GPIO. Cov ntaub ntawv raug tso tawm hauv kab ntawv.

Hauv kab lus no, cia peb qhia M5Stack thiab tham txog nws daim ntawv thov. Kuv yuav tsum tau hais meej tias lub cuab yeej no muaj cov lus nkag rau micro SD daim npav, 1W Tus Hais Lus, thiab lub roj teeb, thiab tseem muaj cov nyees khawm sib cuam tshuam, txuas i2c, USB hom C, nthuav tawm IOs, ob-nti TFT zaub, ntawm lwm cov yam ntxwv. Nws tau qhia hauv daim duab saum toj no. Peb tuaj yeem hais cov cuab yeej no tau npaj rau IoT, raws li nws twb los nrog Bluetooth thiab ESP32 WiFi. Nws kuj suav nrog cov hlau nplaum rau txuas rau cov hlau.

Koj puas nyiam M5Stack? Nyem:

Kauj ruam 1: M5Stack

M5 Tshooj
M5 Tshooj
M5 Tshooj
M5 Tshooj
M5 Tshooj
M5 Tshooj
M5 Tshooj
M5 Tshooj

Ib qhov kev hloov pauv tshiab ntawm M5Stack yog tias, yog tias koj tshem tawm nraub qaum, koj tuaj yeem haum rau hauv cov qauv sib txawv nrog cov haujlwm sib txawv, xws li GPS module, GSM, LoRa, thiab lwm yam. Qhov no yog qhia hauv daim duab.

Kuv muaj ntau tus piv txwv ntawm cov qauv hauv qab no, xws li los ntawm RS485, DC Tsav, Txiag, Tub Ntxhais, mus rau kev tswj lub cev muaj zog.

Qhov no yog txoj hauv kev nrawm heev los ua ke ua ib qho qauv. Hauv cov hnub qub, nws yog qhov yuav tsum tau yuav ob peb lub transistor chips thiab ua ntau lub rooj sib txoos, uas xav tau sijhawm ntau thiab peev txheej. Tsuas yog tom qab tuaj cov khoom tsim qauv. Nws yog thaum ntawd Arduino thiab Raspberry tshwm sim, uas yog cov phaj.

Tam sim no, thaum kawg peb muaj M5Stack, uas yog lub thawv npaj npaj rau siv. Qhov no tso peb dim los ntawm kev ua lwm yam suav tsis txheeb.

Lwm cov qauv M5Stack tau qhia hauv cov duab. Peb muaj cov cuab yeej siv nrog cov lej lej, lej, thiab cov keyboard game. Cov no tso cai rau koj ua haujlwm zoo li nws yog hom computer. Peb kuj muaj qhov piv txwv ntawm kev siv software, uas tuaj yeem ua haujlwm hauv MicroPython, Arduino, ESP-IDF, NodeJS, ntxiv rau Basic.

Kauj Ruam 2: M5Stack Cov Ntawv Thov Tau

M5Stack Cov Ntawv Thov Tau
M5Stack Cov Ntawv Thov Tau
M5Stack Cov Ntawv Thov Tau
M5Stack Cov Ntawv Thov Tau
M5Stack Cov Ntawv Thov Tau
M5Stack Cov Ntawv Thov Tau

Ntawm cov piv txwv ntawm daim ntawv thov M5Stack, peb muaj oscilloscope, zoo li koj tuaj yeem pom hauv daim duab. Peb kuj tseem muaj hom laij lej / txiav cov lus cuab yeej.

Yuav ua li cas txog lub tsheb kauj vab ceev?

Nws kuj tseem tuaj yeem yog qhov ntsuas qhov deb, uas tau luam tawm hauv 3D thiab saib xyuas los ntawm kev tswj hwm.

Txhua qhov no qhia tau tias kev tswj hluav taws xob muaj nqis ntau dua niaj hnub no, ib yam li cov phiaj xwm ntawm cov kab hluav taws xob no tau dhau los yooj yim dua.

Kauj Ruam 3: M5Stack - Pins

M5Stack - Pins
M5Stack - Pins

Sab nraum qab ntawm M5Stack yog hauv daim duab no, uas qhia tau tias lub zog nyob ntawm 5 volts. Cov duab qhia ntxiv qhia tias peb muaj txhua yam uas muaj nyob hauv ESP32 nrog kev sib txuas.

Kauj Ruam 4: DHT Library

DHT Library
DHT Library

Siv SimpleDHT lib, uas yog tib yam kuv tau siv hauv cov vis dis aus: TEMPERATURE THIAB HUMIDITY WITH OLED DISPLAY.

Kauj Ruam 5: Arduino IDE Library Tswj

Arduino IDE Library Tswj
Arduino IDE Library Tswj

Hauv "Menu: Sketch -> Ntxiv Library -> Manage Libraries," cia nruab ob lub tsev qiv ntawv uas pom hauv daim duab hauv qab no. Nco ntsoov tias ua ntej txhua qhov no, koj yuav tsum teeb tsa Arduino core ntawm ESP32. Cov vis dis aus no qhia koj yuav ua li cas nws: YUAV UA LI CAS INSTALL ARDUINO IDE Hauv ESP32.

Kauj ruam 6: Source Code

Qhov chaws, raws li tau hais, yog tib yam uas kuv tau siv hauv cov vis dis aus: TEMPERATURE GRAPH WITH OLED DISPLAY. Qhov kev hloov pauv nkaus xwb uas kuv tau ua rau txoj haujlwm no yog cuam tshuam nrog qhov loj me ntawm cov zaub.

Kauj Ruam 7: M5StackDHTGraph.ino

Peb yuav suav nrog M5Stack.h thiab SimpleDHT.h cov tsev qiv ntawv, thiab peb yuav txhais cov xim siv hauv cov zaub, nrog rau DHT cov ntaub ntawv tus pin. Peb tseem yuav tsim lub hom phiaj rau kev sib txuas lus nrog lub ntsuas cua, txheeb xyuas qhov sib txawv ua lub luag haujlwm rau kev nyeem, thiab qhia tus nqi ntawm X-axis.

// Libs ua M5Stack e DHT #suav nrog #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 // construtor ua objeto para comunicar com o sensor SimpleDHT22 dht; // variável responsavel por contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

Peb txuas ntxiv nrog X-axis thiab Y-axis qhov chaw txhais cov ntsiab lus, qhov kub thiab txias cov ntaub ntawv tso saib ua haujlwm, nrog rau qhov sib txawv uas yuav khaws cov txiaj ntsig nyeem. Peb tseem taw tes rau qhov sib txawv rau kev luam tawm daim duab ntawm cov zaub.

// 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_ dede dendosOS que armazenarão os valores lidos da umidade e temperatura int umidade = 0; int kub = 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 tau = 1; // indicará se somaremos ou subtrairemos uma unidade na variável linhaExemplo

Kauj Ruam 8: M5StackDHTGraph.ino - Teeb tsa

Hauv Teeb, peb pib M5Stack. Peb txhais cov lus txib rau kos duab, teeb tsa tus ntawv nrog rau xim ntawv, thiab tso tus cursor rau kev sau ntawv.

teeb tsa tsis muaj dab tsi (tsis muaj dab tsi) {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, dav, xim) linha ntsug M5. Lcd.drawFastVLine (POS_X_GRAFICO, POS_Y_GRAFICO, ALTURA_GRAFICO, WHITE); // eixo Y // drawFastHLine (x, y, dav, xim) linha kab rov tav 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); // teeb tsa tus qauv 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:"); // indicando a temperatura M5. Lcd.setCursor (POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print ("U:"); // qhia qhov tseeb}

Kauj Ruam 9: M5StackDHTGraph.ino - Loop

Hauv thawj ntu ntawm Loop, peb nyeem qhov ntsuas kub thiab av noo, qhia tus nqi ntawm qhov hloov pauv rau kev tso rau ntawm kab ntawv, thiab kos lub ntsiab lus ntawm lub vijtsam uas hais txog cov txiaj ntsig no nyeem los ntawm lub ntsuas.

void loop () {// Fazemos a leitura da temperatura e umiade float temp, umid; int xwm txheej = dht.read2 (DHTPIN, & temp, & umid, NULL); yog (xwm txheej == SimpleDHTErrSuccess) {temperatura = temp; umidade = hmuv; } // 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 = daim ntawv qhia (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = daim ntawv qhia (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, YELLOW);

Tom qab ntawd, peb txiav txim siab qhov muaj peev xwm luam tawm cov duab ntawm lub vijtsam.

// 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 partir daí, incrementa novamente if (linhaExemplo == 50) fator = -1; lwm tus yog (linhaExemplo == 10) fator = 1; // soma o valor de linhaExemplo linhaExemplo += fator; // incrementa o contador de leituras realizadas leituraAtual ++; // se leitura chegar em 270 (número máximo do eixo X) então limparemos a área do gráfico para voltarmos a desenhar. yog (leituraAtual == 270) {// limpa á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);

// reposiciona o cursor para escrever a temperatura M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (RED); M5. Lcd.print (ntsuas kub); M5. Lcd.print ((char) 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 ("%"); ncua (1000); }

Kauj ruam 10: Cov ntaub ntawv

Koj puas nyiam M5Stack? Xav yuav ib tug? Mus rau:

Rub tawm cov ntawv:

PDF

INO

Pom zoo: