Բովանդակություն:

ESP32: M5Stack DHT22- ով `10 քայլ
ESP32: M5Stack DHT22- ով `10 քայլ

Video: ESP32: M5Stack DHT22- ով `10 քայլ

Video: ESP32: M5Stack DHT22- ով `10 քայլ
Video: How to setup and use ESP32 Cam with Micro USB WiFi Camera 2024, Հուլիսի
Anonim
Image
Image
ESP32: M5Stack DHT22- ով
ESP32: M5Stack DHT22- ով
ESP32: M5Stack DHT22- ով
ESP32: M5Stack DHT22- ով

Եկեք այսօր խոսենք շատ յուրահատուկ ESP32- ի մասին, որը կատարյալ է իրերի ինտերնետի համար, որը M5Stack- ն է: Այն պարունակում է ESP32 ներսում և նույնիսկ ավելացնում է դիսփլեյը, ստեղնաշարը, ուժեղացուցիչը, բարձրախոսը և մարտկոցը: Այսպիսով, այս սարքը կարող է անհամար բաներ անել: Երբ ես ստացա այս ապարատը, ես արդեն ունեի ծրագրակազմ ESP32- ի համար և միայն տեղափոխվեցի այս նախագծում օգտագործվող էկրանին, որը տարբերվում է: Այնուամենայնիվ, այն աղբյուրը, որը մենք կօգտագործենք, նույնն է, ինչ օգտագործվում է մեր տեսաերիզում EMԵՐՄԱՈՈ ANDԹՅՈ ANDՆ ԵՎ ԽՈIDՄՈ OԹՅՈՆԸ ՕԼԵԴ ISՈԱԴՐՈԹՅՈՆՈՎ:

Այսօրվա շղթայում ես հատուկ ուզում եմ շեշտել, որ մենք ունենք դրական և բացասական կապերով M5Stack, որն ինքն իրեն սնվում է DHT22 սենսորով: Երկուսն էլ միացված են GPIO- ով: Տվյալները ցուցադրվում են գծապատկերում:

Այս հոդվածում եկեք ներկայացնենք M5Stack- ը և քննարկենք դրա կիրառությունները: Պետք է շեշտեմ, որ այս սարքն ունի մուտքագրում միկրո SD քարտի, 1W բարձրախոսի և մարտկոցի վարդակի համար, ինչպես նաև ունի փոխազդեցության կոճակներ, i2c միակցիչ, USB տիպի C, բաց IOs, երկու դյույմանոց TFT էկրան, ի թիվս այլ հատկանիշների: Այն ցույց է տրված վերևի նկարում: Կարող ենք ասել, որ այս սարքը պատրաստ է IoT- ի համար, քանի որ այն արդեն գալիս է Bluetooth- ով և ESP32 WiFi- ով: Այն ներառում է նաև մագնիս `մետաղական մակերեսներին ամրացնելու համար:

Ձեզ դուր եկավ M5Stack- ը: Կտտացրեք ՝

Քայլ 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

M5Stack- ի նորամուծություններից մեկն այն է, որ մեջքը հանելիս կարող եք տեղավորվել տարբեր գործառույթներով տարբեր մոդուլներում, ինչպիսիք են GPS մոդուլը, GSM- ը, LoRa- ն և այլն: Սա պատկերված է պատկերում:

Ստորև ես ունեմ մոդուլների ավելի շատ օրինակներ ՝ RS485- ից, DC Motor- ից, Maker- ից, Core- ից մինչև stepper շարժիչի կառավարում:

Սա իրականում շատ արագ միջոց է նախատիպը հավաքելու համար: Հին ժամանակներում անհրաժեշտ էր գնել մի քանի տրանզիստորային չիպսեր և կատարել բազմաթիվ հավաքներ, ինչը պահանջում էր շատ ժամանակ և ներդրումներ: Միայն դրանից հետո եկավ արտադրանքի նախատիպը: Այդ ժամանակ հայտնվեցին Արդուինոն և Ազնվամորին, որոնք ափսեներ են:

Այժմ, վերջապես, ունենք M5Stack- ը, որն այս պատրաստի օգտագործման փակ տուփն է: Սա մեզ ազատում է այլ անհամար քայլեր կատարելուց:

M5Stack- ի այլ մոդելներ ցուցադրվում են պատկերներով: Մենք ունենք սարք, որն ունի այբբենական, թվային և խաղային ստեղնաշարեր: Սրանք թույլ են տալիս աշխատել այնպես, կարծես դա համակարգչի մի տեսակ է: Մենք ունենք նաև ծրագրակազմի գործարկման օրինակ, որը կարելի է ծրագրավորել MicroPython- ում, Arduino- ում, ESP-IDF- ում, NodeJS- ում, բացի Basic- ից:

Քայլ 2: M5Stack Հնարավոր ծրագրեր

M5Stack Հնարավոր ծրագրեր
M5Stack Հնարավոր ծրագրեր
M5Stack Հնարավոր ծրագրեր
M5Stack Հնարավոր ծրագրեր
M5Stack Հնարավոր ծրագրեր
M5Stack Հնարավոր ծրագրեր

M5Stack հավելվածների օրինակներից մենք ունենք oscilloscope, ինչպես տեսնում եք նկարում: Մենք ունենք նաև մի տեսակ հաշվիչ / կտրող գործիքների սեղան:

Ի՞նչ կասեք հեծանիվի արագաչափի մասին:

Այն կարող է լինել նաև հեռավոր փորվածք, որը տպվում է 3D ձևաչափով և վերահսկվում է հեռակառավարման վահանակով:

Այս ամենը ցույց է տալիս, որ էլեկտրոնիկայի հսկողությունն այս օրերին շատ ավելի մատչելի է, ճիշտ այնպես, ինչպես այդ սխեմաների ծրագրավորումը դարձել է ավելի դյուրին:

Քայլ 3: M5Stack - կապում

M5Stack - կապում
M5Stack - կապում

M5Stack- ի հետևը այս պատկերում է, ինչը ցույց է տալիս, որ հզորությունը 5 վոլտ է: Պատկերը հետագայում բացահայտում է, որ մենք ունենք այն ամենը, ինչ գոյություն ունի ESP32- ում `միացման հնարավորությամբ:

Քայլ 4: DHT գրադարան

DHT գրադարան
DHT գրադարան

Օգտագործեք SimpleDHT lib- ը, որը նույնն է, ինչ ես օգտագործել եմ տեսանյութում. EMերմաստիճանը և խոնավությունը ՝ OLED ցուցադրմամբ:

Քայլ 5. Arduino IDE գրադարանի կառավարում

Arduino IDE գրադարանի կառավարում
Arduino IDE գրադարանի կառավարում

«Մենյու. Ուրվագիծ -> Ավելացնել գրադարան -> կառավարել գրադարանները», եկեք տեղադրենք ստորև ներկայացված պատկերում պատկերված երկու գրադարանները: Հիշեք, որ այս ամենից առաջ անհրաժեշտ է տեղադրել ESP32- ի Arduino միջուկը: Այս տեսանյութը ցույց է տալիս, թե ինչպես դա անել: այն. ԻՆՉՊԵՍ տեղադրել ARDUINO IDE- ն ESP32- ում:

Քայլ 6: Աղբյուրի կոդ

Աղբյուրի կոդը, ինչպես նշվեց, նույնն է, ինչ ես օգտագործել եմ տեսանյութում. Այս նախագծում միակ փոփոխությունը վերաբերում էր ցուցադրման չափին:

Քայլ 7: M5StackDHTGraph.ino

Մենք կներառենք M5Stack.h և SimpleDHT.h գրադարանները, և մենք կսահմանենք ցուցադրման մեջ օգտագործվող գույները, ինչպես նաև DHT տվյալների քորոցը: Մենք նաև կկառուցենք սենսորի հետ հաղորդակցության օբյեկտ, կսահմանենք ընթերցումների համար պատասխանատու փոփոխականը և ցույց կտանք X առանցքի արժեքը:

// Libs do M5Stack e DHT #include #include // definição das cores que serão useisadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #definine YELLOW 0xFFE0 #define WHITE 0xFFFFFIN // կոնստրուկտորը պետք է օգտագործի կոմունիկատոր կամ սենսոր SimpleDHT22 dht; // variável responsavel por contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

Մենք շարունակում ենք X առանցքի և Y առանցքի դիրքավորման սահմանումները, ջերմաստիճանի և խոնավության տվյալների ցուցադրման կոորդինատները, ինչպես նաև այն փոփոխականները, որոնք կպահեն ընթերցված արժեքները: Մենք դեռ մատնանշում ենք էկրանին գծապատկերը տպելու փոփոխականը:

// definições do posicionamento dos eixos X e Y #սահմանել POS_X_GRAFICO 30 #սահմանել POS_Y_GRAFICO 3 #սահմանել ALTURA_GRAFICO 180 #սահմանել COMPRIMENTO_GRAFICO 270 // definição da koordenada onde escreveremos os dadosdeosf 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 linha Աշխատանք

Քայլ 8: M5StackDHTGraph.ino - Կարգավորում

Setup- ում մենք նախաստորագրում ենք M5Stack- ը: Մենք սահմանում ենք գրաֆիկի գծման հրամաններ, կարգավորում ենք տառատեսակը, ինչպես նաև տեքստի գույները և տեղադրում ենք կուրսորը գրելու համար:

void setup (void) {Serial.begin (115200); // Inicializa o M5Stack M5. սկսել (); // pinta a tela toda de preto M5. Lcd.fillScreen (ՍԵՎ); // 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, լայնություն, գույն) 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); // 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:»); // նշեք umidade}

Քայլ 9: M5StackDHTGraph.ino - հանգույց

Օղակի առաջին մասում մենք կարդում ենք ջերմաստիճանը և խոնավությունը, քարտեզագրում փոփոխականների արժեքը գրաֆիկի վրա տեղադրելու համար և էկրանին գծում այն կետը, որը վերաբերում է սենսորից կարդացած այս արժեքներին:

void loop () {// Fazemos a leitura da temperatura e umiade float temp, umid; int կարգավիճակ = dht.read2 (DHTPIN, & temp, & umid, NULL); եթե (կարգավիճակը == SimpleDHTErrSuccess) {temperatura = temp; umidade = umid; } // mapeando o valor das variáveis para colocar no gráfico // needá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 = քարտեզ (ջերմաստիճան, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = քարտեզ (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);

Այնուհետև մենք սահմանում ենք էկրանին գրաֆիկը տպելու հնարավորությունները:

// aqui controlamos nossa linha de exemplo, 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; այլապես եթե (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. եթե (leituraAtual == 270) {// limpa a torea toda do gráfico M5. Lcd.fillRect (POS_X_GRAFICO+1, POS_Y_GRAFICO-1, COMPRIMENTO_GRAFICO, ALTURA_GRAFICO-1, ՍԵՎ); 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, ՍԵՎ); M5. Lcd.fillRect (POS_X_DADOS+165, POS_Y_DADOS, 90, 30, ՍԵՎ);

// ցուցիչ կամ կուրսորը ջերմաստիճանի բարձրացում M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (ԿԱՐՄԻՐ); M5. Lcd.print (temperatura); M5. Lcd.print ((char) 247); // ցուցիչ կամ կուրսորը հանելու համար umidade M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.print (umidade); M5. Lcd.print («%»); ուշացում (1000); }

Քայլ 10: Ֆայլեր

Ձեզ դուր եկավ M5Stack- ը: Wantանկանում եք գնել մեկը: Գնացեք ՝

Ներբեռնեք ֆայլերը.

PDF

ԻՆՈ

Խորհուրդ ենք տալիս: