Inhaltsverzeichnis:

ESP32: M5Stack mit DHT22 - Gunook
ESP32: M5Stack mit DHT22 - Gunook

Video: ESP32: M5Stack mit DHT22 - Gunook

Video: ESP32: M5Stack mit DHT22 - Gunook
Video: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 2024, November
Anonim
Image
Image
ESP32: M5Stack mit DHT22
ESP32: M5Stack mit DHT22
ESP32: M5Stack mit DHT22
ESP32: M5Stack mit DHT22

Lassen Sie uns heute über einen ganz besonderen ESP32 sprechen, der perfekt für das Internet der Dinge geeignet ist, nämlich M5Stack. Es enthält den ESP32 im Inneren und fügt sogar ein Display, eine Tastatur, einen Verstärker, einen Lautsprecher und eine Batterie hinzu. Somit kann dieses Gerät unzählige Dinge tun. Als ich diese Hardware erhielt, hatte ich bereits Software für ESP32 und wurde nur auf das in diesem Projekt verwendete Display portiert, was anders ist. Der Quellcode, den wir verwenden werden, ist jedoch derselbe, der in unserem Video TEMPERATURE AND HUMIDITY WITH OLED DISPLAY verwendet wird.

In der heutigen Schaltung möchte ich besonders hervorheben, dass wir den M5Stack mit positiven und negativen Anschlüssen haben, der sich mit einem DHT22-Sensor speist. Beide sind über ein GPIO verbunden. Die Daten werden im Diagramm angezeigt.

In diesem Artikel stellen wir M5Stack vor und diskutieren seine Anwendungen. Hervorzuheben ist, dass dieses Gerät über einen Eingang für eine Micro-SD-Karte, einen 1-W-Lautsprecher und eine Batteriebuchse verfügt sowie über Interaktionstasten, einen i2c-Anschluss, einen USB-Typ-C-Anschluss, freiliegende IOs, ein zwei Zoll großes TFT-Display, unter anderen Funktionen. Es ist im Bild oben gezeigt. Wir können sagen, dass dieses Gerät bereit für IoT ist, da es bereits mit Bluetooth und ESP32 WiFi ausgestattet ist. Es enthält auch einen Magneten zum Anbringen an Metalloberflächen.

Hat dir M5Stack gefallen? Klicken Sie auf:

Schritt 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

Eine Neuerung des M5Stack ist, dass man, wenn man die Rückseite abnimmt, verschiedene Module mit unterschiedlichen Funktionen, wie unter anderem GPS-Modul, GSM, LoRa, unterbringen kann. Dies wird im Bild gezeigt.

Ich habe unten weitere Beispiele für Module, die von RS485, DC-Motor, Maker, Core bis hin zur Schrittmotorsteuerung reichen.

Dies ist eigentlich eine sehr schnelle Möglichkeit, einen Prototyp zusammenzustellen. Früher war es notwendig, mehrere Transistorchips zu kaufen und zahlreiche Baugruppen durchzuführen, was viel Zeit und Investitionen erforderte. Erst danach kam das Produkt-Prototyping. Damals erschienen Arduino und Raspberry, die Platten sind.

Jetzt haben wir endlich den M5Stack, diese gebrauchsfertige geschlossene Box. Dies befreit uns von unzähligen weiteren Schritten.

Andere M5Stack-Modelle werden in Bildern gezeigt. Wir haben ein Gerät mit alphanumerischen, numerischen und Spieltastaturen. Diese ermöglichen es Ihnen, wie eine Art Computer zu arbeiten. Wir haben auch ein Beispiel für laufende Software, die zusätzlich zu Basic in MicroPython, Arduino, ESP-IDF, NodeJS programmiert werden kann.

Schritt 2: M5Stack Mögliche Anwendungen

M5Stack Mögliche Anwendungen
M5Stack Mögliche Anwendungen
M5Stack Mögliche Anwendungen
M5Stack Mögliche Anwendungen
M5Stack Mögliche Anwendungen
M5Stack Mögliche Anwendungen

Unter den Beispielen für M5Stack-Anwendungen haben wir das Oszilloskop, wie Sie im Bild sehen können. Wir haben auch eine Art Taschenrechner / Schneidwerkzeugtabelle.

Wie wäre es mit einem Fahrradtacho?

Es kann sich auch um eine Remote-Bohrmaschine handeln, die in 3D gedruckt und von einer Steuerung fernüberwacht wird.

All dies zeigt, dass die elektronische Steuerung heutzutage viel günstiger ist, ebenso wie die Programmierung dieser Schaltungen einfacher geworden ist.

Schritt 3: M5Stack - Pins

M5Stack - Stifte
M5Stack - Stifte

Die Rückseite des M5Stack befindet sich in diesem Bild, was zeigt, dass die Spannung bei 5 Volt liegt. Das Bild zeigt weiter, dass wir alles haben, was in ESP32 mit Konnektivität existiert.

Schritt 4: DHT-Bibliothek

DHT-Bibliothek
DHT-Bibliothek

Verwenden Sie die SimpleDHT-Bibliothek, die dieselbe ist, die ich im Video verwendet habe: TEMPERATUR UND FEUCHTIGKEIT MIT OLED-DISPLAY.

Schritt 5: Arduino IDE-Bibliothek verwalten

Arduino IDE-Bibliothek verwalten
Arduino IDE-Bibliothek verwalten

Im "Menü: Sketch -> Add Library -> Manage Libraries" installieren wir die beiden im Bild unten gezeigten Bibliotheken. Denken Sie daran, dass Sie zuvor den Arduino-Kern von ESP32 installieren müssen. Dieses Video zeigt Ihnen, wie es geht it: SO INSTALLIEREN SIE ARDUINO IDE IN ESP32.

Schritt 6: Quellcode

Der Quellcode ist, wie erwähnt, derselbe, den ich im Video verwendet habe: TEMPERATURE GRAPH WITH OLED DISPLAY. Die einzige Änderung, die ich an diesem Projekt vorgenommen habe, war die Größe des Displays.

Schritt 7: M5StackDHTGraph.ino

Wir werden die Bibliotheken M5Stack.h und SimpleDHT.h einbeziehen und die im Display verwendeten Farben sowie den DHT-Daten-Pin definieren. Wir werden auch ein Objekt für die Kommunikation mit dem Sensor konstruieren, die für die Messwerte verantwortliche Variable definieren und den Wert der X-Achse angeben.

//Libs do M5Stack und DHT#include #include // definiere die Kerne, die verwendet werden müssen #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define DHTPIN do //pino de dados // Konstruktor tun Objekt für comunicar com o Sensor SimpleDHT22 dht; //variável responsavel por contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

Wir fahren mit den Positionierungsdefinitionen der X- und Y-Achse, den Anzeigekoordinaten der Temperatur- und Feuchtigkeitsdaten sowie den Variablen fort, die die gelesenen Werte speichern. Wir zeigen noch auf die Variable zum Drucken des Diagramms auf dem Display.

//definições do posicionamento dos eixos X e Y#define POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 //definição da coordenada ondeDOS escreveremos os dados de temperatura que armazenarão os valores lidos da umidade e temperature int umidade = 0; int-Temperatur = 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 linhaExemplo

Schritt 8: M5StackDHTGraph.ino - Setup

Im Setup initialisieren wir den M5Stack. Wir definieren Befehle zum Zeichnen des Graphen, konfigurieren die Schriftart sowie Textfarben und positionieren den Cursor zum Schreiben.

Void setup (void) { Serial.begin (115200); // Initialisierung von M5Stack M5.begin(); // Pinta a tela toda de preto M5. Lcd.fillScreen (SCHWARZ); // kommandos und seguir irão desenhar as linhas dos eixos cartesianos na cor branca //drawFastVLine(x, y, width, color) linha vertikal M5. Lcd.drawFastVLine(POS_X_GRAFICO, POS_Y_GRAFICO, ALTURA_GRAFICO, WHITE); //eixo Y //drawFastHLine(x, y, Breite, Farbe) linha horizontal M5. Lcd.drawFastHLine(POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, WHITE); //eixo X //konfiguriere oder tamnaho mache einen Text, der auf M5. Lcd.setTextSize(3); //Konfiguriere eine Corbranca für den Text M5. Lcd.setTextColor(WHITE); //Position des Cursors für die Schrift M5. Lcd.setCursor(POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print("T:"); //Anzeige einer Temperatur M5. Lcd.setCursor(POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print(" U: "); //indicando a umidade}

Schritt 9: M5StackDHTGraph.ino - Schleife

Im ersten Teil der Schleife lesen wir die Temperatur und Luftfeuchtigkeit ab, bilden den Wert der Variablen für die Platzierung in der Grafik ab und zeichnen den Punkt auf dem Bildschirm, der sich auf diese vom Sensor gelesenen Werte bezieht.

Void loop () {//Fazemos a leitura da temperature e umiade float temp, umid; int status = dht.read2(DHTPIN, &temp, &umid, NULL); if (status == SimpleDHTErrSuccess) { temperatura = temp; umidade = umid; } //mapeando o valor das variáveis para colocar no gráfico //necessá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 = map(umidade, 0, 100, 0, ALTURA_GRAFICO); // desenha na tela oder 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 oder ponto referente a nossa linha de exemplo que fica variando M5. Lcd.drawPixel(POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-linhaExemplo, YELLOW);

Anschließend definieren wir Möglichkeiten zum Drucken der Grafik auf dem Display.

//aqui controlamos nossa linha de exemplo, quando chega no valor máximo decrementamos o valor //até um valor minimo determinado (no nosso caso 10), e a partir daí, inkrementa novamente if(linhaExemplo == 50) fator = -1; else if(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, BLACK); leituraAtual = 1; //volta o contador de leitura para 1 (nova coordenada X) } //limpa a rea onde coocamos o valor de 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, SCHWARZ);

// Cursor auf Temperatur speichern M5. Lcd.setCursor(POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor(RED); M5. Lcd.print (Temperatur); M5. Lcd.print((Zeichen)247); // Position des Cursors für die Umidade M5. Lcd.setCursor(POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor(CYAN); M5. Lcd.print (umidade); M5. Lcd.print("%"); Verzögerung (1000); }

Schritt 10: Dateien

Hat dir M5Stack gefallen? Möchten Sie einen kaufen? Gehe zu:

Laden Sie die Dateien herunter:

PDF

INO

Empfohlen: