Სარჩევი:

ESP32: M5Stack DHT22– ით: 10 ნაბიჯი
ESP32: M5Stack DHT22– ით: 10 ნაბიჯი

ვიდეო: ESP32: M5Stack DHT22– ით: 10 ნაბიჯი

ვიდეო: ESP32: M5Stack DHT22– ით: 10 ნაბიჯი
ვიდეო: ESP32, более мощная чем любая другая Ардуино 2024, ივლისი
Anonim
Image
Image
ESP32: M5Stack DHT22– ით
ESP32: M5Stack DHT22– ით
ESP32: M5Stack DHT22– ით
ESP32: M5Stack DHT22– ით

მოდით ვისაუბროთ დღეს ძალიან განსაკუთრებულ ESP32– ზე, სრულყოფილი ნივთების ინტერნეტისთვის, რომელიც არის M5Stack. იგი შეიცავს ESP32 შიგნით და კიდევ ამატებს ეკრანს, კლავიატურას, გამაძლიერებელს, დინამიკს და ბატარეას. ამრიგად, ამ მოწყობილობას შეუძლია უამრავი რამის გაკეთება. როდესაც მე მივიღე ეს აპარატურა, მე უკვე მქონდა ESP32 პროგრამული უზრუნველყოფა და მხოლოდ გადავიტანე ამ პროექტში გამოყენებული ეკრანი, რომელიც განსხვავებულია. თუმცა, საწყისი კოდი, რომელსაც ჩვენ გამოვიყენებთ, იგივეა, რაც გამოიყენება ჩვენს ვიდეო ტემპერატურასა და ტენიანობაში OLED ეკრანით.

დღევანდელ წრეში, მე კონკრეტულად მინდა ხაზი გავუსვა, რომ ჩვენ გვაქვს M5Stack დადებითი და უარყოფითი კავშირებით, რომელიც იკვებება DHT22 სენსორით. ორივე დაკავშირებულია GPIO– ით. მონაცემები ნაჩვენებია სქემაში.

ამ სტატიაში, მოდით წარმოგიდგინოთ M5Stack და განვიხილოთ მისი პროგრამები. უნდა აღვნიშნო, რომ ამ მოწყობილობას აქვს შეყვანა მიკრო SD ბარათისთვის, 1W დინამიკისთვის და ბატარეის ბუდისთვის, ასევე აქვს ურთიერთქმედების ღილაკები, i2c კონექტორი, USB ტიპის C, გამოვლენილი IO, ორ დიუმიანი 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, სტეპერიანი ძრავის კონტროლით.

ეს არის ძალიან სწრაფი გზა პროტოტიპის შესაქმნელად. ძველ დღეებში საჭირო იყო რამდენიმე ტრანზისტორი ჩიპის ყიდვა და მრავალი შეკრების შესრულება, რაც დიდ დროს და ინვესტიციას მოითხოვდა. მხოლოდ მას შემდეგ მოვიდა პროდუქტის პროტოტიპირება. სწორედ მაშინ გამოჩნდა არდუინო და ჟოლო, რომლებიც ფირფიტებია.

ახლა, ჩვენ საბოლოოდ გვაქვს 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, რომელიც იგივეა რაც მე ვიდეოში გამოვიყენე: ტემპერატურა და ტენიანობა OLED ეკრანით.

ნაბიჯი 5: Arduino IDE ბიბლიოთეკის მართვა

Arduino IDE ბიბლიოთეკის მართვა
Arduino IDE ბიბლიოთეკის მართვა

"მენიუში: ესკიზი -> ბიბლიოთეკის დამატება -> ბიბლიოთეკების მართვა", მოდით დავაყენოთ ქვემოთ მოცემულ სურათზე ნაჩვენები ორი ბიბლიოთეკა. გახსოვდეთ, რომ ამ ყველაფრის დაწყებამდე თქვენ უნდა დააინსტალიროთ ESP32- ის Arduino ბირთვი. ეს ვიდეო გიჩვენებთ თუ როგორ უნდა გააკეთოთ ეს: როგორ დააინსტალიროთ ARDUINO IDE ESP32- ში.

ნაბიჯი 6: საწყისი კოდი

წყაროს კოდი, როგორც აღვნიშნეთ, იგივეა, რაც ვიდეოში გამოვიყენე: TEMPERATURE GRAPH OLED DISPLAY. ერთადერთი ცვლილება, რაც მე შევიტანე ამ პროექტში იყო ეკრანის ზომასთან მიმართებაში.

ნაბიჯი 7: M5StackDHTGraph.ino

ჩვენ ჩავრთავთ M5Stack.h და SimpleDHT.h ბიბლიოთეკებს და ჩვენ განვსაზღვრავთ ეკრანზე გამოყენებულ ფერებს, ასევე DHT მონაცემთა პინს. ჩვენ ასევე ავაშენებთ ობიექტს სენსორთან კომუნიკაციისთვის, განვსაზღვრავთ ცვლადს, რომელიც პასუხისმგებელია კითხვაზე და მიუთითებს X ღერძის მნიშვნელობას.

// Libs do M5Stack e DHT #include #include // definição das cores que serão utilisadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #definine YELLOW 0xFFE0 #define WHITE 0xFFFF # // კონსტრუქტორი კომუნიკაციისთვის ან სენსორის SimpleDHT22 dht; // variável responsavel for contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

ჩვენ ვაგრძელებთ X ღერძის და Y ღერძის პოზიციონირების განმარტებებს, ტემპერატურისა და ტენიანობის მონაცემების ჩვენების კოორდინატებს, ასევე ცვლადებს, რომლებიც ინახავს წაკითხულ მნიშვნელობებს. ჩვენ კვლავ ვნიშნავთ ცვლადს ეკრანზე დიაგრამის დასაბეჭდად.

// დეფინიციები აკეთებენ პოზიტიურად dos eixos X e Y #განსაზღვრეთ POS_X_GRAFICO 30 #განსაზღვრეთ POS_Y_GRAFICO 3 #განსაზღვრეთ ALTURA_GRAFICO 180 #განსაზღვრეთ კომპრესი que armazenarão os valores lidos da umidade e temperatura int umidade = 0; int ტემპერატურა = 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, width, color) 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); // კონფიგურაცია 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:"); // მიუთითეთ ტემპერატურა 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); if (სტატუსი == 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. 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, შავი); 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.cc.print (temperatura); M5.cd.print ((char) 247); // კურსორის გაფართოება ამომრჩევლისთვის M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5.cd.print (umidade); M5. Lcd.print ("%"); დაგვიანება (1000); }

ნაბიჯი 10: ფაილები

მოგეწონა M5Stack? გსურთ შეიძინოთ ერთი? გადადით:

ჩამოტვირთეთ ფაილები:

PDF

ინო

გირჩევთ: