Spisu treści:

ESP32: Stos M5 z DHT22: 10 kroków
ESP32: Stos M5 z DHT22: 10 kroków

Wideo: ESP32: Stos M5 z DHT22: 10 kroków

Wideo: ESP32: Stos M5 z DHT22: 10 kroków
Wideo: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 2024, Lipiec
Anonim
Image
Image
ESP32: Stos M5 z DHT22
ESP32: Stos M5 z DHT22
ESP32: Stos M5 z DHT22
ESP32: Stos M5 z DHT22

Porozmawiajmy dzisiaj o bardzo szczególnym ESP32, idealnym dla Internetu Rzeczy, jakim jest M5Stack. Zawiera ESP32 wewnątrz, a nawet dodaje wyświetlacz, klawiaturę, wzmacniacz, głośnik i baterię. Dzięki temu to urządzenie może robić niezliczone rzeczy. Kiedy otrzymałem ten sprzęt, miałem już oprogramowanie dla ESP32 i tylko przeportowałem się do wyświetlacza używanego w tym projekcie, co jest inne. Jednak kod źródłowy, którego użyjemy, jest taki sam, jak w naszym filmie TEMPERATURA I WILGOTNOŚĆ Z WYŚWIETLACZEM OLED.

W dzisiejszym układzie szczególnie chcę podkreślić, że mamy M5Stack z połączeniami dodatnim i ujemnym, który sam się zasila czujnikiem DHT22. Oba są połączone GPIO. Dane są wyświetlane na wykresie.

W tym artykule przedstawmy M5Stack i omówmy jego zastosowania. Muszę podkreślić, że to urządzenie ma wejście na kartę micro SD, głośnik 1W i gniazdo baterii, a także ma przyciski interakcji, złącze i2c, USB typu C, odsłonięte IO, dwucalowy wyświetlacz TFT, między innymi. Pokazuje to powyższy obrazek. Można powiedzieć, że to urządzenie jest gotowe na IoT, ponieważ jest już wyposażone w Bluetooth i ESP32 WiFi. Zawiera również magnes do mocowania do metalowych powierzchni.

Podobał Ci się M5Stack? Kliknij:

Krok 1: Stos M5

Stos M5
Stos M5
Stos M5
Stos M5
Stos M5
Stos M5
Stos M5
Stos M5

Jedną z innowacji M5Stack jest to, że po zdjęciu tyłu można zmieścić różne moduły o różnych funkcjach, takie jak między innymi moduł GPS, GSM, LoRa. Jest to pokazane na obrazku.

Poniżej mam więcej przykładów modułów, począwszy od RS485, DC Motor, Maker, Core, po sterowanie silnikiem krokowym.

W rzeczywistości jest to bardzo szybki sposób na złożenie prototypu. W dawnych czasach trzeba było kupić kilka chipów tranzystorowych i wykonać liczne montaże, co wymagało dużo czasu i inwestycji. Dopiero potem przyszło prototypowanie produktu. Wtedy pojawiły się Arduino i Raspberry, czyli płytki.

Teraz w końcu mamy M5Stack, czyli gotowe do użycia zamknięte pudełko. To uwalnia nas od konieczności wykonywania innych niezliczonych kroków.

Inne modele M5Stack są pokazane na ilustracjach. Posiadamy urządzenie z klawiaturą alfanumeryczną, numeryczną i do gier. Pozwalają one pracować tak, jakby to był rodzaj komputera. Mamy też przykład uruchomienia oprogramowania, które oprócz Basica można programować w MicroPython, Arduino, ESP-IDF, NodeJS.

Krok 2: M5Stosuj możliwe aplikacje

Możliwe zastosowania M5Stack
Możliwe zastosowania M5Stack
Możliwe zastosowania M5Stack
Możliwe zastosowania M5Stack
Możliwe zastosowania M5Stack
Możliwe zastosowania M5Stack

Wśród przykładów zastosowań M5Stack mamy oscyloskop, jak widać na obrazku. Posiadamy również rodzaj kalkulatora/stołu narzędzi skrawających.

Co powiesz na prędkościomierz rowerowy?

Może to być również wiertarka zdalna, która jest drukowana w 3D i monitorowana zdalnie przez sterowanie.

Wszystko to pokazuje, że sterowanie elektroniką jest obecnie znacznie bardziej przystępne cenowo, podobnie jak łatwiejsze stało się programowanie tych obwodów.

Krok 3: Stos M5 - szpilki

M5Stack - Szpilki
M5Stack - Szpilki

Tył M5Stack znajduje się na tym zdjęciu, co pokazuje, że napięcie wynosi 5 woltów. Obraz dalej pokazuje, że mamy wszystko, co istnieje w ESP32 z łącznością.

Krok 4: Biblioteka DHT

Biblioteka DHT
Biblioteka DHT

Użyj biblioteki SimpleDHT, tej samej, której użyłem w filmie: TEMPERATURA I WILGOTNOŚĆ Z WYŚWIETLACZEM OLED.

Krok 5: Zarządzanie biblioteką Arduino IDE

Zarządzanie biblioteką Arduino IDE
Zarządzanie biblioteką Arduino IDE

W „Menu: Szkic -> Dodaj bibliotekę -> Zarządzaj bibliotekami” zainstalujmy dwie biblioteki pokazane na obrazku poniżej. Pamiętaj, że przed tym wszystkim musisz zainstalować rdzeń Arduino ESP32. Ten film pokazuje, jak to zrobić it: JAK ZAINSTALOWAĆ ARDUINO IDE W ESP32.

Krok 6: Kod źródłowy

Kod źródłowy, jak wspomniano, jest taki sam, jak w filmie: WYKRES TEMPERATURY Z WYŚWIETLACZEM OLED. Jedyna zmiana, jaką wprowadziłem do tego projektu, dotyczyła wielkości wyświetlacza.

Krok 7: M5StackDHTGraph.ino

Zawrzemy biblioteki M5Stack.h i SimpleDHT.h, a także zdefiniujemy kolory używane na wyświetlaczu, a także pin danych DHT. Skonstruujemy również obiekt do komunikacji z czujnikiem, zdefiniujemy zmienną odpowiedzialną za odczyty oraz wskażemy wartość osi X.

//Libs do M5Stack e DHT#include #include // Definiowanie rdzeni do obsługi sera #define BLACK 0x0000 #Define RED 0xF800 #Define CYAN 0x07FF #Define YELLOW 0xFFE0 #Define WHITE 0xFFFF #Define DHTTPIN 5 // Definiowanie DHTTPIN 5 // //construtor do objeto para 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;

Kontynuujemy definiowanie pozycji na osi X i Y, współrzędne wyświetlania danych temperatury i wilgotności, a także zmienne, które będą przechowywać odczytane wartości. Wciąż wskazujemy na zmienną do drukowania wykresu na wyświetlaczu.

//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 onde escreveremos os POS_Y_GRAFICO #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 que armazenarão os valores lidos da umidade e temperatura int umidade = 0; temperatura wewnętrzna = 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 lub subtrairemos uma unidade na variável linhaExemplo

Krok 8: M5StackDHTGraph.ino - konfiguracja

W Instalatorze inicjujemy M5Stack. Definiujemy polecenia do rysowania wykresu, konfigurujemy czcionkę i kolory tekstu oraz ustawiamy kursor do pisania.

void setup(void) { Serial.begin(115200); //Zainicjuj M5Stack M5.begin(); //Pinta a tela toda de preto M5. Lcd.fillScreen(BLACK); //drawFastVLine(x, y, width, color) linha vertical M5. Lcd.drawFastVLine(POS_X_GRAFICO, POS_Y_GRAFICO, ALTURAHITEGRAFICO,); //eixo Y //drawFastHLine(x, y, szerokość, kolor) linha poziomo M5. Lcd.drawFastHLine(POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, WHITE); //eixo X //konfiguruj, aby tekst był przechowywany w M5. Lcd.setTextSize(3); //skonfiguruj odpowiedni fragment tekstu M5. Lcd.setTextColor(WHITE); //położenie kursora na escrita 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 umidade }

Krok 9: M5StackDHTGraph.ino - pętla

W pierwszej części Pętli odczytujemy temperaturę i wilgotność, mapujemy wartości zmiennych do umieszczenia na wykresie i rysujemy na ekranie punkt, który odnosi się do tych wartości odczytanych z czujnika.

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 = 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 = mapa(umidade, 0, 100, 0, ALTURA_GRAFICO); //desenha na tele 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 o ponto referente a nossa linha de exemplo que fica variando M5. Lcd.drawPixel(POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-linhaExemplo, YELLOW);

Następnie określamy możliwości drukowania grafiki na wyświetlaczu.

//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í, incrementa novamente if(linhaExemplo ==-1 50) fator = -1 w przeciwnym razie if(linhaExemplo == 10) fator = 1; //soma o valor de linhaExemplo linhaExemplo += los; //przyrost o contador de leituras realizadas leituraAtual++; //se a leitura chegar em 270 (número maximo do eixo X) então limparemos a area do grafico para voltarmos a desenhar. if(leituraAtual == 270) { //powstrzymaj obszar do wykonania grafiki M5. Lcd.fillRect(POS_X_GRAFICO+1, POS_Y_GRAFICO-1, COMPRIMENTO_GRAFICO, ALTURA_GRAFICO-1, BLACK); leitura Rzeczywiste = 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(POZ_X_DADOS+165, POZ_Y_DADOS, 90, 30, CZARNY);

//reposiciona lub kursor do odtworzenia temperatury M5. Lcd.setCursor(POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor(RED); M5. Lcd.print(temperatura); M5. Lcd.print((char)247); //repozycja kursora w celu odtworzenia polecenia M5. Lcd.setCursor(POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.print(umidade); M5. Lcd.print("%"); opóźnienie (1000); }

Krok 10: Pliki

Podobał Ci się M5Stack? Chcesz go kupić? Wejdź na:

Pobierz pliki:

PDF

JA NIE

Zalecana: