Мазмуну:

ESP32: DHT22 менен M5Stack: 10 кадам
ESP32: DHT22 менен M5Stack: 10 кадам

Video: ESP32: DHT22 менен M5Stack: 10 кадам

Video: ESP32: DHT22 менен M5Stack: 10 кадам
Video: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 2024, Ноябрь
Anonim
Image
Image
ESP32: DHT22 менен M5Stack
ESP32: DHT22 менен M5Stack
ESP32: DHT22 менен M5Stack
ESP32: DHT22 менен M5Stack

Бүгүн M5Stack болгон нерселердин Интернети үчүн эң сонун ESP32 жөнүндө сүйлөшөлү. Анын ичинде ESP32 бар, ал тургай дисплейге, клавиатурага, күчөткүчкө, динамикке жана батареяга кошулат. Ошентип, бул аппарат сансыз көп нерселерди жасай алат. Мен бул жабдыкты алганымда, менде ESP32 үчүн программалык камсыздоо болгон жана бул долбоордо колдонулган дисплейге гана которулган, башкача. Бирок, биз колдоно турган баштапкы код биздин OLED дисплейи менен ТЕМПЕРАТУРА ЖАНА НЫМДУУЛУКТА колдонулган код.

Бүгүнкү схемада мен DHT22 сенсору менен азыктанган оң жана терс байланыштары бар M5Stackке ээ экенибизди өзгөчө белгилегим келет. Экөө тең GPIO аркылуу туташкан. Маалыматтар диаграммада көрсөтүлөт.

Бул макалада, келгиле, M5Stackти киргизели жана анын колдонмолорун талкуулайлы. Бул түзмөктө микро SD карта, 1 Вт динамик жана батарея розеткасы бар экенин, ошондой эле өз ара аракеттенүү баскычтары, i2c туташтыргычы, USB түрү С, ачык 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 моделдери сүрөттөрдө көрсөтүлгөн. Бизде тамгалык -сандык, сандык жана оюндук баскычтоптору бар аппарат бар. Бул компьютердин бир түрү сыяктуу иштөөгө мүмкүндүк берет. Бизде программалык камсыздоонун мисалы бар, аны Basicтен тышкары MicroPython, Arduino, ESP-IDF, NodeJSте программалоого болот.

2 -кадам: M5Stack Мүмкүн болгон тиркемелер

M5Stack Мүмкүн болгон колдонмолор
M5Stack Мүмкүн болгон колдонмолор
M5Stack Мүмкүн болгон колдонмолор
M5Stack Мүмкүн болгон колдонмолор
M5Stack Мүмкүн болгон колдонмолор
M5Stack Мүмкүн болгон колдонмолор

M5Stack тиркемелеринин мисалдарынын арасында биз сүрөттө көрүнүп тургандай, бизде осциллограф бар. Ошондой эле бизде калькулятор / кесүүчү куралдар столу бар.

Велосипеддин спидометрине кандай дейсиз?

Бул ошондой эле 3D форматында басылган жана алыстан башкаруу пульту аркылуу башкарыла турган алыскы бургулоо болушу мүмкүн.

Мунун баары, бул схемаларды программалоо жеңил болуп калгандай эле, электрониканы көзөмөлдөө ушул күндөрү алда канча жеткиликтүү экенин көрсөтүп турат.

3 -кадам: M5Stack - Pins

M5Stack - Pins
M5Stack - Pins

M5Stackтин арткы тарабы бул сүрөттө, ал 5 вольтто экенин көрсөтүп турат. Сүрөт андан ары ESP32де туташуу менен бар нерсенин баары бар экенин көрсөтөт.

4 -кадам: DHT китепканасы

DHT китепканасы
DHT китепканасы

SimpleDHT libди колдонуңуз, ал видеодо мен колдонгон: ТЕМПЕРАТУРА ЖАНА ОЛИМДИ ДИПЛАЙМДУУ НЫМ.

5 -кадам: Arduino IDE китепканасын башкаруу

Arduino IDE китепканасын башкаруу
Arduino IDE китепканасын башкаруу

"Меню: Эскиз -> Китепкана кошуу -> Китепканаларды башкаруу" бөлүмүндө, келгиле, төмөндөгү сүрөттө көрсөтүлгөн эки китепкананы орнотолу. Мунун алдында ESP32нин Arduino өзөгүн орнотушуңуз керек экенин унутпаңыз. Бул видео сизге кантип жасоону көрсөтөт. ал: ESP32де ARDUINO IDE КАНТИП ОРНОТУЛАТ.

6 -кадам: Булак коду

Булак коду, жогоруда айтылгандай, мен видеодо колдонгон нерсе: 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 utilizadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #define YELLOW 0xFFE0 #define WHITE pxFFEFDEFin // конструктор SimpleDHT22 dht; // варианттардын жооптору, алар эч кандай оңдоолорду көрсөтпөйт, eixo X int leituraAtual = 1;

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

// аныктамалар posixionamento dos eixos X e Y #аныктоо POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #deffine COMPRIMENTO_GRAFICO 270 // definção da coordenada onde escreveremos PD_DOS_DOS_de que armazenarão os valores lidos da umadeade e temperatura int umidade = 0; int temperatura = 0; // координаттардын өзгөрүлмөлүүлүгү Y мисал боюнча // мисалдардын тизмеси 1 эм 1 int linhaExemplo = 20; int fator = 1; // indará se somaremos ou subtrairemos una unadeade na variavevel linhaExemplo

8 -кадам: M5StackDHTGraph.ino - Орнотуу

Орнотууда биз M5Stackти баштайбыз. Биз графикти тартуу үчүн буйруктарды аныктайбыз, шрифтти, ошондой эле тексттин түстөрүн конфигурациялайбыз жана жазуу үчүн курсорду жайгаштырабыз.

void setup (void) {Serial.begin (115200); // M5Stack M5.begin (); // M5. Lcd.fillScreen (КАРА); // os comandos a segir desenhar as linhas dos eixos cartesianos na cor branca // drawFastVLine (x, y, туурасы, түсү) линиялык вертикалдуу M5. Lcd.drawFastVLine (POS_X_GRAFICO, POS_Y_GRAFICO, ALTURA_GRAFICO, WHO) // eixo Y // drawFastHLine (x, y, туурасы, түсү) линия горизонталдуу M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, АК); // eixo X // конфигурациялоо үчүн M5. Lcd.setTextSize (3) менен текстти алмаштыруу керек; // M5. Lcd.setTextColor (АК) үчүн текстти конфигурациялоо; // 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:"); // indicando a umidade}

9 -кадам: M5StackDHTGraph.ino - 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 // needário pois o display tem 240px de altura e separamos apenas 180 para para 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, САРЫ) экстемплингге шилтеме жасоо менен байланышкан эмес;

Андан кийин, биз графикти дисплейге басып чыгаруу мүмкүнчүлүгүн аныктайбыз.

// акысыз көзөмөлдөө, мисалы, эч кандай эрдик жокко эсе // эч кандай эрдик кылбайт // атаандаштыкты аныктоо (10 жолу жок), жана дагы бир жолу, эгерде (linhaExemplo == 50) fator = -1; else if (linhaExemplo == 10) fator = 1; // linhaExemplo linhaExemplo += fator; // incrementa or contador de leituras realizadas leituraAtual ++; // 270 чек аранын чекитине (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)} // лимфа жана температура дагы 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.print (температура); M5. Lcd.print ((char) 247); // M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS) боюнча курсорду өчүрүү; M5. Lcd.setTextColor (CYAN); M5. Lcd.print (үмүдөдө); M5. Lcd.print ("%"); кечигүү (1000); }

10 -кадам: Файлдар

Сизге M5Stack жактыбы? Бир сатып алгыңыз келеби? Баруу:

Файлдарды жүктөп алыңыз:

PDF

МЕН ЖОК

Сунушталууда: