Оглавление:

ESP32: M5Stack с DHT22: 10 шагов
ESP32: M5Stack с DHT22: 10 шагов

Видео: ESP32: M5Stack с DHT22: 10 шагов

Видео: ESP32: M5Stack с DHT22: 10 шагов
Видео: IOT Standing Desk (ESP32 M5 Stack) 2024, Июль
Anonim
Image
Image
ESP32: M5Stack с DHT22
ESP32: M5Stack с DHT22
ESP32: M5Stack с DHT22
ESP32: M5Stack с DHT22

Давайте сегодня поговорим об очень особенном ESP32, идеально подходящем для Интернета вещей, которым является M5Stack. Он содержит ESP32 внутри и даже добавляет дисплей, клавиатуру, усилитель, динамик и аккумулятор. Таким образом, это устройство может делать бесчисленное множество вещей. Когда я получил это оборудование, у меня уже было программное обеспечение для ESP32, и я был перенесен только на дисплей, используемый в этом проекте, а это другое. Однако исходный код, который мы будем использовать, тот же, что и в нашем видео ТЕМПЕРАТУРА И ВЛАЖНОСТЬ С OLED DISPLAY.

В сегодняшней схеме я специально хочу подчеркнуть, что у нас есть M5Stack с положительными и отрицательными соединениями, который питается от датчика DHT22. Оба подключены через GPIO. Данные отображаются на диаграмме.

В этой статье давайте познакомимся с M5Stack и обсудим его приложения. Я должен подчеркнуть, что это устройство имеет вход для карты micro SD, динамик мощностью 1 Вт и гнездо для аккумулятора, а также имеет кнопки взаимодействия, разъем i2c, разъем USB типа C, открытые разъемы ввода-вывода, двухдюймовый 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 и заканчивая управлением шаговым двигателем.

На самом деле это очень быстрый способ собрать прототип. Раньше приходилось покупать несколько транзисторных микросхем и производить многочисленные сборки, что требовало много времени и вложений. Только после этого появилось прототипирование продукта. Именно тогда появились 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: Управление библиотекой Arduino IDE

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

В «Меню: Эскиз -> Добавить библиотеку -> Управление библиотеками» давайте установим две библиотеки, показанные на изображении ниже. Помните, что перед всем этим вам необходимо установить ядро Arduino ESP32. В этом видео показано, как это сделать. it: КАК УСТАНОВИТЬ ARDUINO IDE В ESP32.

Шаг 6: Исходный код

Исходный код, как уже упоминалось, тот же, что я использовал в видео: ГРАФИК ТЕМПЕРАТУРЫ С OLED DISPLAY. Единственное изменение, которое я внес в этот проект, касалось размера дисплея.

Шаг 7: M5StackDHTGraph.ino

Мы включим библиотеки M5Stack.h и SimpleDHT.h и определим цвета, используемые на дисплее, а также вывод данных DHT. Мы также построим объект для связи с датчиком, определим переменную, отвечающую за показания, и укажем значение оси X.

// Библиотеки для M5Stack и DHT # включают #include // определение ядер для использования #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define pTPados // // конструктор объекта для коммуникационного датчика SimpleDHT22 dht; // изменяемые ответы на номера реализаций и индикаторов do valor no eixo X int leituraAtual = 1;

Мы продолжим работу с определениями позиционирования по осям X и Y, координатами отображения данных температуры и влажности, а также с переменными, в которых будут храниться считанные значения. Мы по-прежнему указываем на переменную для печати графика на дисплее.

// определения позиции для заданий X и Y # определить POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 // определить температуру_COMPRIMENTO_GRAFICO 270 // определить температуру_COPRIMENTO_GRAFICO 270 // определить температуру_CoordenadaOS 30 # изменить OS_AD_OS_AD_DES_DES_ADOS // изменить OS_AD_OSDOS 200 # ESC_DOS_DES_ADOSEADOS 200 # ESCROWEMOSDOS 200 # ESC_DOSDOSEADOS 200 # ESC_RADOSDOS 200 que armazenarão os valores lidos da umidade e temperatura int umidade = 0; int temperatura = 0; // varia que armazenará o valor da coordenada Y для 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 varável linhaExemplo

Шаг 8: M5StackDHTGraph.ino - Настройка

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

установка void (void) {Serial.begin (115200); // Инициализация M5Stack M5.begin (); // добавить тело до M5. Lcd.fillScreen (BLACK); // операционная система выполняет команду перехода к изображению на карте // drawFastVLine (x, y, width, color) вертикальная линия M5. Lcd.drawFastVLine (POS_X_GRAFICO, POS_Y_GRAFICO, ALTURA_GRAFICO, ALTURA_GRAFICO); // eixo Y // drawFastHLine (x, y, width, color) linha по горизонтали M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO + 1, COMPRIMENTO_GRAFICO, WHITE); // eixo X // конфигурирует текст, который нужно изменить в теле M5. Lcd.setTextSize (3); // настройка основного текста M5. Lcd.setTextColor (WHITE); // установка курсора на экран M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("Т:"); // указать температуру M5. Lcd.setCursor (POS_X_DADOS + 105, POS_Y_DADOS); M5. Lcd.print ("U:"); // индикация умидаде}

Шаг 9: M5StackDHTGraph.ino - цикл

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

void loop () {// Fazemos a leitura da temperatura e umiade float temp, umid; int status = dht.read2 (DHTPIN, & temp, & umid, NULL); если (статус == SimpleDHTErrSuccess) {температура = темп; умидаде = умид; } // mapeando o valor das varáveis para colocar no gráfico // необходимо 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); // 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 or ponto referente a nossa linha de exemplo que ficaariando 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ínimoterminado (no nosso caso 10), e a partir daí, incrementa novamente if (linhaExemplo == 50) fator = -1; иначе, если (linhaExemplo == 10) fator = 1; // Сома о доблести linhaExemplo linhaExemplo + = fator; // увеличение количества реализаций 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) {// нет области, чтобы сделать графику 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)} // слабая зона на цвете o доблесть температуры и 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 (температура); 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

Я НЕТ

Рекомендуемые: