Spisu treści:
- Krok 1: Stos M5
- Krok 2: M5Stosuj możliwe aplikacje
- Krok 3: Stos M5 - szpilki
- Krok 4: Biblioteka DHT
- Krok 5: Zarządzanie biblioteką Arduino IDE
- Krok 6: Kod źródłowy
- Krok 7: M5StackDHTGraph.ino
- Krok 8: M5StackDHTGraph.ino - konfiguracja
- Krok 9: M5StackDHTGraph.ino - pętla
- Krok 10: Pliki
Wideo: ESP32: Stos M5 z DHT22: 10 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
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
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
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
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
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
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:
JA NIE
Zalecana:
Zbuduj urządzenie Apple HomeKit Temperature Sensor (DHT22) za pomocą RaspberryPI i DHT22: 11 kroków
Zbuduj urządzenie Apple HomeKit Temperature Sensor (DHT22) Używając RaspberryPI i DHT22: szukałem taniego czujnika temperatury/wilgotności, którego mógłbym użyć do monitorowania tego, co dzieje się w mojej przestrzeni indeksowanej, ponieważ tej wiosny było bardzo mokro i miał dużo wilgoci. Szukałem więc czujnika w rozsądnej cenie, który mógłbym p
Lusterka Hexagon Infinity do układania w stos: 5 kroków (ze zdjęciami)
Stackable Hexagon Infinity Mirrors: Mam więc Arduino i jest to pierwszy projekt, który wykonałem. Swoją inspirację czerpałem, gdy przeglądałem tę stronę i próbowałem zrobić dla siebie prosty projekt. Kodowanie nie jest moją mocną stroną, więc musiałem zachować prostotę i chciałem, aby było bardziej złożone
Kostki LED z możliwością układania w stos (RGB): 11 kroków
Stack-Able LED Cubes (RGB): Zrobiłem ten projekt na konkurs make it glow 2018. Chodzi o to, aby była to podstawa, na której można by umieścić małe kostki LED, które się zapalą. Sklejają się za pomocą magnesów
Jak zrobić gobo do układania w stos: 15 kroków (ze zdjęciami)
How to Make Stackable Gobos: Instructable by Jim Robert (Death By Protools) Gobo to naprawdę przydatne rzeczy, szczególnie jeśli pracujesz w słabszym środowisku nagrywania (np. w swoim salonie). Czym właściwie jest Gobo? Przegroda - obiekt fizyczny, który pochłania lub w inny sposób
Stwórz fałszywy stos w OS X 10.4: 3 kroki
Zrób fałszywy stos w OS X 10.4: masz Leoparda na swoim Macintoshu? Ani ja Dlatego uczyniłem to pouczającym Tylko dlatego, że chcę, aby wszystkie moje bzdury były łatwo dostępne! Jedyne, czego potrzebujesz, to komputer Mac i niezbędny sprzęt (mysz, klawiatura, ekran…)