Πίνακας περιεχομένων:

ESP32: M5Stack με DHT22: 10 βήματα
ESP32: M5Stack με DHT22: 10 βήματα

Βίντεο: ESP32: M5Stack με DHT22: 10 βήματα

Βίντεο: ESP32: M5Stack με DHT22: 10 βήματα
Βίντεο: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 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 και να συζητήσουμε τις εφαρμογές του. Πρέπει να τονίσω ότι αυτή η συσκευή διαθέτει είσοδο για κάρτα micro 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 Motor, Maker, Core, έως έλεγχο βηματικού κινητήρα.

Αυτός είναι στην πραγματικότητα ένας πολύ γρήγορος τρόπος για να δημιουργήσετε ένα πρωτότυπο. Τα παλιά χρόνια, ήταν απαραίτητο να αγοράσετε πολλά τσιπ τρανζίστορ και να εκτελέσετε πολυάριθμες συναρμολογήσεις, οι οποίες απαιτούσαν πολύ χρόνο και επένδυση. Μόνο μετά ήρθε το πρωτότυπο του προϊόντος. Thenταν τότε που εμφανίστηκαν τα 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

Χρησιμοποιήστε το lib SimpleDHT, το οποίο είναι το ίδιο που χρησιμοποίησα στο βίντεο: ΘΕΡΜΟΚΡΑΣΙΑ ΚΑΙ ΥΓΡΑΣΙΑ ΜΕ OLED DISPLAY.

Βήμα 5: Διαχείριση βιβλιοθήκης Arduino IDE

Διαχείριση βιβλιοθήκης Arduino IDE
Διαχείριση βιβλιοθήκης Arduino IDE

Στο "Μενού: Σκίτσο -> Προσθήκη βιβλιοθήκης -> Διαχείριση βιβλιοθηκών", ας εγκαταστήσουμε τις δύο βιβλιοθήκες που εμφανίζονται στην παρακάτω εικόνα. Θυμηθείτε ότι πριν από όλα αυτά, πρέπει να εγκαταστήσετε τον πυρήνα Arduino του ESP32. Αυτό το βίντεο σας δείχνει πώς να το κάνετε αυτό: ΠΩΣ ΝΑ ΕΓΚΑΤΑΣΤΑΣΕΤΕ ΤΟ ARDUINO IDE ΣΤΟ ESP32.

Βήμα 6: Πηγαίος κώδικας

Ο πηγαίος κώδικας, όπως αναφέρθηκε, είναι ο ίδιος που χρησιμοποίησα στο βίντεο: ΓΡΑΦΕΙΟ ΘΕΡΜΟΚΡΑΣΙΑΣ ΜΕ OLED DISPLAY. Η μόνη αλλαγή που έκανα σε αυτό το έργο ήταν σε σχέση με το μέγεθος της οθόνης.

Βήμα 7: M5StackDHTGraph.ino

Θα συμπεριλάβουμε τις βιβλιοθήκες M5Stack.h και SimpleDHT.h και θα ορίσουμε τα χρώματα που χρησιμοποιούνται στην οθόνη, καθώς και την καρφίτσα δεδομένων DHT. Θα κατασκευάσουμε επίσης ένα αντικείμενο για επικοινωνία με τον αισθητήρα, θα ορίσουμε τη μεταβλητή που είναι υπεύθυνη για τις ενδείξεις και θα υποδείξουμε την τιμή του άξονα Χ.

// Libs do M5Stack e DHT #include #include // definição das cores que serão utilisadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #define YELLOW 0xFFE0 #define WHITE 0xFFFFFINDFINDOFFIN_FFIN // 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;

Συνεχίζουμε με τους ορισμούς τοποθέτησης του άξονα Χ και του άξονα Υ, τις συντεταγμένες εμφάνισης δεδομένων θερμοκρασίας και υγρασίας, καθώς και τις μεταβλητές που θα αποθηκεύσουν τις τιμές που διαβάζονται. Ακόμα δείχνουμε τη μεταβλητή για την εκτύπωση του γραφήματος στην οθόνη.

// 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 babosdeosfosos que armazenarão os valores lidos da umidade e temperatura int umidade = 0; int temperatura = 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

Βήμα 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, WHITE) // eixo Y // drawFastHLine (x, y, πλάτος, χρώμα) linha horizontal M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, WHITE); // eixo X // configura o tamnaho do texto que escreveremos em tela M5. Lcd.setTextSize (3); // configura a cor branca para o texto M5. Lcd.setTextColor (ΛΕΥΚΟ); // posiciona o cursor para 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 a umidade}

Βήμα 9: M5StackDHTGraph.ino - Βρόχος

Στο πρώτο μέρος του βρόχου, διαβάζουμε τη θερμοκρασία και την υγρασία, χαρτογραφούμε την τιμή των μεταβλητών για τοποθέτηση στο γράφημα και σχεδιάζουμε το σημείο στην οθόνη που αναφέρεται σε αυτές τις τιμές που διαβάζονται από τον αισθητήρα.

void loop () {// Fazemos a leitura da temperatura e umiade float temp, umid; int status = dht.read2 (DHTPIN, & temp, & umid, NULL); εάν (κατάσταση == SimpleDHTErrSuccess) {temperatura = temp; umidade = umid; } // mapeando o valor das variáveis para colocar no gráfico // needá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 = χάρτης (θερμοκρασία, 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 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 decmentamos o valor // até um valor mínimo determinado (no nosso caso 10), e a partir daí, incrementa novamente if (linhaExemplo == 50) fator = -1; αλλιώς αν (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, ΜΑΥΡΟ)? leituraAtual = 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, ΜΑΥΡΟ); M5. Lcd.fillRect (POS_X_DADOS+165, POS_Y_DADOS, 90, 30, ΜΑΥΡΟ);

// reposiciona o cursor para escrever a temperatura M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (RED); M5. Lcd.print (temperatura); M5. Lcd.print ((char) 247); // reposiciona o cursor para escrever a umidade 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

ΕΓΩ ΔΕΝ

Συνιστάται: