Talaan ng mga Nilalaman:

ESP32: M5Stack With DHT22: 10 Hakbang
ESP32: M5Stack With DHT22: 10 Hakbang

Video: ESP32: M5Stack With DHT22: 10 Hakbang

Video: ESP32: M5Stack With DHT22: 10 Hakbang
Video: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 2024, Hulyo
Anonim
Image
Image
ESP32: M5Stack With DHT22
ESP32: M5Stack With DHT22
ESP32: M5Stack With DHT22
ESP32: M5Stack With DHT22

Pag-usapan natin ngayon ang tungkol sa isang napaka-espesyal na ESP32, perpekto para sa Internet of Things, na kung saan ay M5Stack. Naglalaman ito ng ESP32 sa loob at nagdaragdag pa sa isang display, keyboard, amplifier, speaker, at baterya. Kaya, ang aparato na ito ay maaaring gumawa ng hindi mabilang na mga bagay. Kapag natanggap ko ang hardware na ito, mayroon na akong software para sa ESP32 at nai-port sa display lamang na ginamit sa proyektong ito, na iba. Gayunpaman, ang gagamitin naming source code ay pareho sa ginamit sa aming video na TEMPERATURE AT HUMIDITY WITH OLED DISPLAY.

Sa circuit ngayon, partikular na nais kong bigyang-diin na mayroon kaming M5Stack na may positibo at negatibong mga koneksyon, na pinapakain ang sarili nito gamit ang isang sensor ng DHT22. Parehong konektado sa pamamagitan ng isang GPIO. Ang data ay ipinapakita sa tsart.

Sa artikulong ito, ipakilala natin ang M5Stack at talakayin ang mga aplikasyon nito. Kailangan kong bigyang diin na ang aparato na ito ay may isang input para sa isang micro SD card, isang 1W Speaker, at isang socket ng baterya, at mayroon ding mga pindutan ng pakikipag-ugnay, isang konektor ng i2c, isang uri ng USB C, nakalantad na mga IO, isang dalawahang display na TFT, bukod sa iba pang mga tampok. Ipinapakita ito sa larawan sa itaas. Masasabi nating handa ang aparato na ito para sa IoT, dahil mayroon na itong Bluetooth at ESP32 WiFi. May kasamang magnet din para sa paglakip sa mga metal na ibabaw.

Nagustuhan mo ba ang M5Stack? I-click ang:

Hakbang 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

Ang isang pagbabago ng M5Stack ay iyon, kung aalisin mo ang likod, maaari kang magkasya sa iba't ibang mga module na may iba't ibang mga pag-andar, tulad ng module ng GPS, GSM, LoRa, bukod sa iba pa. Ipinapakita ito sa imahe.

Mayroon akong higit pang mga halimbawa ng mga module sa ibaba, mula sa RS485, DC Motor, Maker, Core, hanggang sa stepper motor control.

Ito ay talagang isang napakabilis na paraan upang pagsamahin ang isang prototype. Sa mga nakaraang araw, kinakailangan upang bumili ng maraming mga transistor chip at magsagawa ng maraming mga pagpupulong, na nangangailangan ng maraming oras at pamumuhunan. Pagkatapos lamang dumating ang prototyping ng produkto. Noon lumitaw ang Arduino at Raspberry, na mga plato.

Ngayon, sa wakas ay mayroon kaming M5Stack, na kung saan ito ay handa nang gamitin na saradong kahon. Pinalaya tayo nito mula sa pagkakaroon upang maisagawa ang iba pang mga hakbang.

Ang iba pang mga modelo ng M5Stack ay ipinapakita sa mga imahe. Mayroon kaming isang aparato na may mga alphanumeric, numeric, at mga keyboard ng laro. Pinapayagan kang magtrabaho na parang isang uri ng computer. Mayroon din kaming isang halimbawa ng pagpapatakbo ng software, na maaaring mai-program sa MicroPython, Arduino, ESP-IDF, NodeJS, bilang karagdagan sa Basic.

Hakbang 2: M5Stack Mga Posibleng Aplikasyon

M5Stack Mga Posibleng Aplikasyon
M5Stack Mga Posibleng Aplikasyon
M5Stack Mga Posibleng Aplikasyon
M5Stack Mga Posibleng Aplikasyon
M5Stack Mga Posibleng Aplikasyon
M5Stack Mga Posibleng Aplikasyon

Kabilang sa mga halimbawa ng mga application ng M5Stack, mayroon kaming oscilloscope, tulad ng nakikita mo sa imahe. Mayroon din kaming isang uri ng calculator / cutting tool table.

Kumusta naman ang isang speedometer ng bisikleta?

Maaari rin itong isang remote drill, na naka-print sa 3D at sinusubaybayan nang malayuan ng isang kontrol.

Ipinapakita ng lahat ng ito na ang kontrol sa electronics ay mas abot-kayang mga araw na ito, tulad din ng naging madali ang pagprogram ng mga circuit na ito.

Hakbang 3: M5Stack - Pins

M5Stack - Mga Pin
M5Stack - Mga Pin

Ang likod ng M5Stack ay nasa imaheng ito, na nagpapakita na ang lakas ay nasa 5 volts. Inilalantad pa ng imahe na mayroon kaming lahat na mayroon sa ESP32 na may pagkakakonekta.

Hakbang 4: DHT Library

Library ng DHT
Library ng DHT

Gamitin ang SimpleDHT lib, na pareho sa ginamit ko sa video: TEMPERATURE AT HUMIDITY WITH OLED DISPLAY.

Hakbang 5: Pamahalaan ang Arduino IDE Library

Pamahalaan ang Arduino IDE Library
Pamahalaan ang Arduino IDE Library

Sa "Menu: Sketch -> Magdagdag ng Library -> Pamahalaan ang Mga Aklatan," i-install natin ang dalawang mga aklatan na ipinapakita sa imahe sa ibaba. Tandaan na bago ang lahat ng ito, kailangan mong i-install ang Arduino core ng ESP32. Ipinapakita sa iyo ng video na ito kung paano gawin ito: PAANO MAG-INSTALL NG ARDUINO IDE SA ESP32.

Hakbang 6: Source Code

Ang source code, tulad ng nabanggit, ay pareho sa ginamit ko sa video: TEMPERATURE GRAPH WITH OLED DISPLAY. Ang nag-iisang pagbabago na ginawa ko sa proyektong ito ay kaugnay sa laki ng display.

Hakbang 7: M5StackDHTGraph.ino

Isasama namin ang mga aklatan ng M5Stack.h at SimpleDHT.h, at tutukuyin namin ang mga kulay na ginamit sa display, pati na rin ang data pin ng DHT. Magagawa rin namin ang isang bagay para sa komunikasyon sa sensor, tukuyin ang variable na responsable para sa mga pagbasa, at ipahiwatig ang halaga ng X-axis.

// Libs do M5Stack e DHT # isama ang # isama // 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; // variável responsavel por contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

Nagpapatuloy kami sa mga kahulugan ng pagpoposisyon ng X-axis at Y-axis, display ng temperatura at halumigmig na nagpapakita ng data, pati na rin ang mga variable na maiimbak ang mga halagang nabasa. Itinuturo pa rin namin ang variable para sa pag-print ng tsart sa display.

// definições do posicionamento dos eixos X e Y # tukuyin ang POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 // definição da coordenada onde escreverine iOS 30 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; // indará se somaremos ou subtrairemos uma unidade na variável linhaExemplo

Hakbang 8: M5StackDHTGraph.ino - Pag-setup

Sa Pag-setup, sinisimulan namin ang M5Stack. Tinutukoy namin ang mga utos para sa pagguhit ng grap, i-configure ang font pati na rin ang mga kulay ng teksto, at iposisyon ang cursor para sa pagsusulat.

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, lapad, kulay) linha pahalang 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); // posiciona o cursor para escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // nagpapahiwatig a temperatura M5. Lcd.setCursor (POS_X_DADOS + 105, POS_Y_DADOS); M5. Lcd.print ("U:"); // nagpapahiwatig ng isang umidade}

Hakbang 9: M5StackDHTGraph.ino - Loop

Sa unang bahagi ng Loop, binasa namin ang temperatura at halumigmig, mapa ang halaga ng mga variable para sa pagkakalagay sa grap, at iguhit ang point sa screen na tumutukoy sa mga halagang ito na nabasa mula sa sensor.

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

Pagkatapos, tinutukoy namin ang mga posibilidad ng pag-print ng graphic sa display.

// 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; kung hindi man kung (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. kung (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);

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

Hakbang 10: Mga File

Nagustuhan mo ba ang M5Stack? Nais bang bumili ng isa? Pumunta sa:

I-download ang mga file:

PDF

INO

Inirerekumendang: