Агуулгын хүснэгт:

ESP32: DHT22 бүхий M5Stack: 10 алхам
ESP32: DHT22 бүхий M5Stack: 10 алхам

Видео: ESP32: DHT22 бүхий M5Stack: 10 алхам

Видео: ESP32: DHT22 бүхий M5Stack: 10 алхам
Видео: Бесконтактный датчик температуры дальнего действия MLX90614-DCI с Arduino 2024, Долдугаар сарын
Anonim
Image
Image
ESP32: DHT22 -тэй M5Stack
ESP32: DHT22 -тэй M5Stack
ESP32: DHT22 -тэй M5Stack
ESP32: DHT22 -тэй M5Stack

M5Stack хэмээх зүйлсийн интернетэд төгс тохирсон маш онцгой ESP32 -ийн талаар өнөөдөр ярилцъя. Энэ нь дотор ESP32 -ийг агуулдаг бөгөөд дэлгэц, гар, өсгөгч, чанга яригч, батерей дээр нэмдэг. Тиймээс энэ төхөөрөмж нь тоолж баршгүй олон зүйлийг хийж чадна. Би энэ техник хангамжийг хүлээн авахдаа ESP32 програм хангамжтай байсан бөгөөд зөвхөн энэ төсөлд ашигладаг дэлгэц рүү зөөсөн бөгөөд энэ нь өөр юм. Гэсэн хэдий ч бидний ашиглах эх код нь OLED DISPLAY -тай ТЕМПЕРАТУР ба АГУУЛГА видео бичлэгтээ ашигласан кодтой ижил байна.

Өнөөдрийн хэлхээнд бид DHT22 мэдрэгчээр тэжээгддэг эерэг ба сөрөг холболттой M5Stack төхөөрөмжтэй болохыг онцлон хэлмээр байна. Аль аль нь GPIO -ээр холбогдсон байна. Өгөгдлийг диаграммд харуулав.

Энэ нийтлэлд M5Stack -ийг танилцуулж, түүний хэрэглээний талаар ярилцъя. Энэ төхөөрөмж нь микро SD карт, 1W чанга яригч, батерейны залгууртай, харилцан үйлчлэх товчлуур, i2c холбогч, USB төрөл C, ил гарсан IO, хоёр инчийн TFT дэлгэцтэй, бусад шинж чанаруудын дунд. Энэ нь дээрх зураг дээр харагдаж байна. Энэ төхөөрөмж нь Bluetooth болон ESP32 WiFi -тэй хамт ирдэг тул IoT -д бэлэн болсон гэж бид хэлж чадна. Түүнчлэн металл гадаргуу дээр бэхлэх соронзыг багтаасан болно.

M5Stack танд таалагдсан уу? Дарна уу:

Алхам 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

M5Stack -ийн нэг шинэлэг зүйл бол хэрэв та нуруугаа тайлвал GPS модуль, GSM, LoRa гэх мэт өөр өөр функц бүхий өөр өөр модульд багтах боломжтой юм. Үүнийг зураг дээр харуулав.

Надад RS485, DC Motor, Maker, Core, stepper motor control хүртэлх модулиудын илүү олон жишээ бий.

Энэ бол үнэндээ прототипийг нэгтгэх маш хурдан арга юм. Хуучин өдрүүдэд хэд хэдэн транзистор чип худалдаж авах, олон тооны угсралт хийх шаардлагатай байсан бөгөөд энэ нь маш их цаг хугацаа, хөрөнгө оруулалт шаарддаг байв. Зөвхөн дараа нь бүтээгдэхүүний загварчлал гарч ирэв. Яг тэр үед ялтсууд болох Ардуино ба Бөөрөлзгөнө гарч ирэв.

Одоо бидэнд M5Stack байгаа бөгөөд энэ нь ашиглахад бэлэн хаалттай хайрцаг юм. Энэ нь биднийг тоолж баршгүй олон алхам хийхээс чөлөөлдөг.

Бусад M5Stack загваруудыг зураг дээр харуулав. Бид үсэг, тоон болон тоглоомын гартай төхөөрөмжтэй. Эдгээр нь танд нэг төрлийн компьютер шиг ажиллах боломжийг олгодог. Бидэнд програм хангамжийг ажиллуулах жишээ байгаа бөгөөд үүнийг Basic програмаас гадна MicroPython, Arduino, ESP-IDF, NodeJS дээр програмчилж болно.

Алхам 2: M5Stack -ийн боломжит програмууд

M5Stack -ийн боломжит програмууд
M5Stack -ийн боломжит програмууд
M5Stack -ийн боломжит програмууд
M5Stack -ийн боломжит програмууд
M5Stack -ийн боломжит програмууд
M5Stack -ийн боломжит програмууд

M5Stack програмын жишээнүүдийн дунд зурган дээрээс харж байгаа шиг бидэнд осциллограф байна. Бидэнд нэг төрлийн тооцоолуур / хайчлах хэрэгслийн хүснэгт байдаг.

Унадаг дугуйн хурд хэмжигчийг яах вэ?

Энэ нь мөн 3D хэлбэрээр хэвлэгдэж, удирдлагаар алсаас хянадаг алсын өрөм байж болно.

Энэ бүхэн нь эдгээр хэлхээг програмчлах нь илүү хялбар болсонтой адил электроникийн хяналт нь өнөө үед хамаагүй хямд байгааг харуулж байна.

Алхам 3: M5Stack - Зүү

M5Stack - Зүү
M5Stack - Зүү

M5Stack -ийн арын хэсэг нь энэ зураг дээр байгаа бөгөөд энэ нь 5 вольтын хүчийг харуулж байна. Зураг нь ESP32 -д байгаа бүх зүйл холболттой болохыг бид харуулж байна.

Алхам 4: DHT номын сан

DHT номын сан
DHT номын сан

Видеонд ашигласан SimpleDHT lib -ийг ашиглана уу: OLED DISPLAY -тай ТЕМПЕРАТУР ба АГУУЛГА.

Алхам 5: Arduino IDE номын санг удирдах

Arduino IDE номын санг удирдах
Arduino IDE номын санг удирдах

"Цэс: Ноорог -> Номын сан нэмэх -> Номын санг удирдах" хэсэгт доорх зурагт үзүүлсэн хоёр номын санг суулгацгаая. Энэ бүхнээс өмнө та ESP32 -ийн Arduino цөмийг суулгах хэрэгтэй гэдгийг санаарай. Энэ видео нь хэрхэн яаж хийхийг танд харуулав. Энэ нь: ESP32 -д ARDUINO IDE -г хэрхэн суулгах вэ.

Алхам 6: Эх код

Эх код нь дээр дурдсанчлан видеон дээр ашигласантай ижил байна: OLED DISPLAY -тай TEMPERATURE GRAPH. Энэ төсөлд хийсэн цорын ганц өөрчлөлт бол дэлгэцийн хэмжээтэй холбоотой юм.

Алхам 7: M5StackDHTGraph.ino

Бид M5Stack.h болон SimpleDHT.h номын сангуудыг багтаах бөгөөд дэлгэц дээр ашигласан өнгө, түүнчлэн DHT өгөгдлийн зүүг тодорхойлох болно. Мөн бид мэдрэгчтэй харилцах объект барьж, уншилтыг хариуцах хувьсагчийг тодорхойлж, X тэнхлэгийн утгыг зааж өгөх болно.

// 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 #defineFEFDEFEFFEFFEFEFEFFEFFEFFEFFEFDEFFEFDEFFEFFEFFEFDEFFEFFEFDEFFEFDEFFEFFFEFDEFFEFDEFFFEFDEFFFEFDEFFFEFDEFFFEFDEFFFEFDEFFEFFEFFEFFFEFDEFFFEFDEFFDE // бүтэц зохион бүтээгч нь comunicar com эсвэл sensor SimpleDHT22 dht; // variável responsavel por or contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

Бид X тэнхлэг ба Y тэнхлэгийн байршлын тодорхойлолт, температур, чийгшлийн өгөгдлийг харуулах координат, түүнчлэн уншсан утгыг хадгалах хувьсагчдыг үргэлжлүүлнэ. Бид диаграмыг дэлгэц дээр хэвлэх хувьсагчийг зааж өгсөн хэвээр байна.

// тодорхойлолт хийх posicionamento dos eixos X e Y #POS_X_GRAFICO 30 -ийг тодорхойлох #POS_Y_GRAFICO 3 -ийг тодорхойлох #ALTURA_GRAFICO 180 -ийг тодорхойлох #COMPRIMENTO_GRAFICO 270 // тодорхойлолтыг тодорхойлох. 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

Алхам 8: M5StackDHTGraph.ino - Тохиргоо

Тохиргоонд бид M5Stack -ийг эхлүүлдэг. Бид график зурах, фонт, текстийн өнгийг тохируулах, бичих курсорыг байрлуулах командуудыг тодорхойлдог.

void setup (void) {Serial.begin (115200); // Мэдээлэл эсвэл M5Stack M5.begin (); // 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, WHO) // eixo Y // drawFastHLine (x, y, width, color) linha хэвтээ M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, ЦАГААН); // eixo X // тохиргоог хийх нь M5. Lcd.setTextSize (3) текстийг ашиглах боломжтой; // M5. Lcd.setTextColor (WHITE) текстийг тохируулах; 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:"); // зааварчилгаа}

Алхам 9: M5StackDHTGraph.ino - Loop

Loop -ийн эхний хэсэгт бид температур, чийгшлийг уншиж, хувьсагчдын утгыг график дээр байрлуулж, мэдрэгчээс уншсан эдгээр утгыг харуулсан цэгийг дэлгэц дээр зурна.

void loop () {// Fazemos a leitura da temperatura e umiade float temp, umid; int status = dht.read2 (DHTPIN, & temp, & umid, NULL); if (status == SimpleDHTErrSuccess) {temperatura = temp; umidade = найдвар; } // mapeando o valor das variáveis para colocar no gráfico // requiredá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 (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = газрын зураг (umidade, 0, 100, 0, ALTURA_GRAFICO); // M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-temperaturaMapeada, RED) мэдрэгчийг ашиглах боломжтой. M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-umidadeMapeada, CYAN); M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-linhaExemplo, ШАР) //

Дараа нь бид графикийг дэлгэц дээр хэвлэх боломжийг тодорхойлдог.

// 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; өөр бол (linhaExemplo == 10) fator = 1; // soma o valor de linhaExemplo linhaExemplo += fator; // incrementa o contador de leituras realizadas leituraAtual ++; // 270 (nixo máximo do eixo X) хязгаарлалт хийх шаардлагатай байна. 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, 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, ХАР);

// M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS) температурын горимд шилжих курсор. M5. Lcd.setTextColor (RED); M5. Lcd.хэвлэх (температур); M5. Lcd.хэвлэх ((char) 247); M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.хэвлэх (umidade); M5. Lcd.print ("%"); саатал (1000); }

Алхам 10: Файлууд

M5Stack танд таалагдсан уу? Та нэгийг худалдаж авахыг хүсч байна уу? Https://goo.gl/ruoYVj руу орно уу

Файлуудыг татаж авах:

PDF

INO

Зөвлөмж болгож буй: