Съдържание:

ESP32: M5 Подредете с DHT22: 10 стъпки
ESP32: M5 Подредете с DHT22: 10 стъпки

Видео: ESP32: M5 Подредете с DHT22: 10 стъпки

Видео: ESP32: M5 Подредете с DHT22: 10 стъпки
Видео: Credit Card-Sized ESP32 Computer 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 двигател, Maker, Core до управление на стъпков двигател.

Това всъщност е много бърз начин за съставяне на прототип. В старите времена беше необходимо да се купят няколко транзисторни чипа и да се извършат множество сглобки, което изискваше много време и инвестиции. Едва след като дойде прототипирането на продукта. Тогава се появиха Arduino и Raspberry, които са чинии.

Сега най-накрая имаме M5Stack, който е тази готова за употреба затворена кутия. Това ни освобождава от необходимостта да извършваме други безброй стъпки.

Други модели M5Stack са показани на изображения. Имаме устройство с буквено -цифрова, цифрова и игрална клавиатура. Те ви позволяват да работите така, сякаш е вид компютър. Имаме и пример за работещ софтуер, който може да бъде програмиран в MicroPython, Arduino, ESP-IDF, NodeJS, в допълнение към Basic.

Стъпка 2: M5Stack Възможни приложения

M5Stack Възможни приложения
M5Stack Възможни приложения
M5Stack Възможни приложения
M5Stack Възможни приложения
M5Stack Възможни приложения
M5Stack Възможни приложения

Сред примерите за приложения M5Stack имаме осцилоскоп, както можете да видите на изображението. Имаме и един вид таблица с калкулатор / режещ инструмент.

Какво ще кажете за скоростомер на велосипед?

Това може да бъде и дистанционна тренировка, която се отпечатва в 3D и се наблюдава дистанционно от контрола.

Всичко това показва, че управлението на електрониката е много по -достъпно в наши дни, точно както програмирането на тези схеми стана по -лесно.

Стъпка 3: M5Stack - Игли

M5Stack - Игли
M5Stack - Игли

Гърбът на M5Stack е на това изображение, което показва, че мощността е при 5 волта. Изображението допълнително разкрива, че имаме всичко, което съществува в ESP32 с свързаност.

Стъпка 4: DHT библиотека

Библиотека на DHT
Библиотека на DHT

Използвайте библиотеката SimpleDHT, която е същата, която използвах във видеото: ТЕМПЕРАТУРА И ВЛАЖНОСТ С OLED ДИСПЛЕЙ.

Стъпка 5: Управление на библиотеката на IDE на Arduino

Arduino IDE библиотека Управление
Arduino IDE библиотека Управление

В „Меню: Sketch -> Добавяне на библиотека -> Управление на библиотеки“, нека инсталираме двете библиотеки, показани на изображението по -долу. Не забравяйте, че преди всичко това трябва да инсталирате ядрото Arduino на ESP32. Това видео ви показва как да направите it: КАК ДА ИНСТАЛИРАТЕ ARDUINO IDE В ESP32.

Стъпка 6: Изходен код

Изходният код, както бе споменато, е същият, който използвах във видеото: ТЕМПЕРАТУРЕН ГРАФ С OLED ДИСПЛЕЙ. Единствената промяна, която направих в този проект, беше по отношение на размера на дисплея.

Стъпка 7: M5StackDHTGraph.ino

Ще включим библиотеките M5Stack.h и SimpleDHT.h и ще определим цветовете, използвани на дисплея, както и пина за данни на DHT. Също така ще конструираме обект за комуникация със сензора, ще определим променливата, отговорна за показанията, и ще посочим стойността на оста X.

// Libs do M5Stack e DHT #включват #include // определят das ядра que serão utilizadas #дефинират ЧЕРНО 0x0000 #дефинират ЧЕРВЕНО 0xF800 #дефинират CYAN 0x07FF #дефинират ЖЪЛТО 0xFFE0 #дефинират БЯЛО 0xFFFIN дефиниране // конструктор прави обект за comunicar com o сензор 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, координатите за показване на данните за температурата и влажността, както и променливите, които ще съхраняват прочетените стойности. Все още посочваме променливата за отпечатване на диаграмата на дисплея.

// дефинираме позицията на докосването X e Y #дефинираме POS_X_GRAFICO 30 #дефинираме POS_Y_GRAFICO 3 #дефинираме ALTURA_GRAFICO 180 #дефинираме COMPRIMENTO_GRAFICO 270 // дефинираме coordenada onde escrevereDos_OSOS PADOS que armazenarão os valores lidos da umidade e температура 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 на variável linhaExemplo

Стъпка 8: M5StackDHTGraph.ino - Настройка

В настройката инициализираме M5Stack. Определяме команди за рисуване на графиката, конфигурираме шрифта, както и цветовете на текста и позиционираме курсора за писане.

void setup (void) {Serial.begin (115200); // Inicializa o M5Stack M5.begin (); // 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 хоризонтално M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, БЯЛ); // eixo X // конфигурация за tamnaho do texto que escreveremos em tela M5. Lcd.setTextSize (3); // конфигуриране на cor branca за texto M5. Lcd.setTextColor (БЯЛ); // позиция за курсор за 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:"); // indicando a umidade}

Стъпка 9: M5StackDHTGraph.ino - Цикъл

В първата част на цикъла четем температурата и влажността, картографираме стойността на променливите за поставяне върху графиката и начертаваме точката на екрана, която се отнася до тези стойности, отчетени от сензора.

void loop () {// Fazemos a leitura da temperature e umiade float temp, umid; int status = dht.read2 (DHTPIN, & temp, & umid, NULL); if (status == SimpleDHTErrSuccess) {температура = temp; umidade = umid; } // mapeando o valor das variáveis para colocar no gráfico // необходимост pois за показване темп 240px de altura и separamos apenas 180 para o gráfico // umidade pode ser lida de 0-100 int temperatureMapeada = map (температура, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = карта (umidade, 0, 100, 0, ALTURA_GRAFICO); // десенха на тела за понто референтни aos valores lidos до сензор M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-температураMapeada, ЧЕРВЕН); 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 decrementamos o valor // até um valor mínimo deterado (no nosso caso 10), e a partir daí, incrementa novamente if (linhaExemplo == 50) fator = -1; иначе if (linhaExemplo == 10) fator = 1; // soma o valor de linhaExemplo linhaExemplo += fator; // добавяне на 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 параграф 1 (nova coordenada X)} // limpa a área onde colocamos o valor da temperature 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 (ЧЕРВЕНО); M5. Lcd.принт (температура); M5. Lcd.print ((char) 247); // преместване на курсора за ескревер и мимида M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.print (umidade); M5. Lcd.print ("%"); забавяне (1000); }

Стъпка 10: Файлове

Хареса ли ви M5Stack? Искате ли да си купите такъв? Отидете на:

Изтеглете файловете:

PDF

АЗ НЕ

Препоръчано: