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

SPηφιακό θερμόμετρο ESP8266 με οθόνη LCD: 7 βήματα
SPηφιακό θερμόμετρο ESP8266 με οθόνη LCD: 7 βήματα

Βίντεο: SPηφιακό θερμόμετρο ESP8266 με οθόνη LCD: 7 βήματα

Βίντεο: SPηφιακό θερμόμετρο ESP8266 με οθόνη LCD: 7 βήματα
Βίντεο: TinkerCad Arduino Greek - Μάθημα 13ο. Ψηφιακό θερμόμετρο LCD 16X2 με κώδικα κειμένου. 2024, Νοέμβριος
Anonim
Image
Image
Μονάδα γραφικών LCD 128x128 RGB TFT ILI 9163C
Μονάδα γραφικών LCD 128x128 RGB TFT ILI 9163C

Σήμερα, θα σας δείξω πώς να χρησιμοποιήσετε μια οθόνη TFT LCD στο ESP8266 NodeMCU για να εμφανίσετε δεδομένα θερμοκρασίας και υγρασίας για ένα δεδομένο περιβάλλον σε πραγματικό χρόνο. Κάνω ένα παράδειγμα χρήσης της οθόνης με DHT22, που είναι ο μετρητής θερμοκρασίας και υγρασίας. Σε αυτό το βίντεο, συγκεκριμένα, χρησιμοποιώ μια συμπαγή οθόνη για το ψηφιακό μας θερμόμετρο, η οποία είναι γραφική και επιτρέπει την παρακολούθηση του ίδιου του συστήματος. Ο στόχος του σήμερα, λοιπόν, είναι να μάθουμε για τον χειρισμό της οθόνης υγρών κρυστάλλων χρησιμοποιώντας το ESP8266.

Βήμα 1: Μονάδα γραφικών LCD 128x128 RGB TFT ILI 9163C

Η οθόνη που χρησιμοποιούμε σε αυτό το έργο είναι 128x128 εικονοστοιχεία. Το 0, 0 βρίσκεται στην επάνω αριστερή γωνία και αυτό το μοντέλο έχει λειτουργίες εκτύπωσης κειμένου και γραφικής εκτύπωσης, με τις οποίες θα ασχοληθούμε αργότερα.

Βήμα 2: Αισθητήρας υγρασίας και θερμοκρασίας AM2302 DHT22

Αισθητήρας υγρασίας και θερμοκρασίας AM2302 DHT22
Αισθητήρας υγρασίας και θερμοκρασίας AM2302 DHT22

Θα χρησιμοποιήσουμε το AM2302 DHT22 στη συναρμολόγησή μας, ο οποίος είναι ένας αισθητήρας που μου αρέσει πολύ, καθώς είναι πολύ ακριβής.

Βήμα 3: Κύκλωμα

Κύκλωμα
Κύκλωμα

Στο έργο, έχουμε έναν ESP8266 που είναι ήδη προγραμματισμένος και χρησιμοποιεί την τροφοδοσία USB. Το DHT22 είναι συνδεδεμένο με τα Δεδομένα και η αντίσταση έλξης με το ESP8266, το οποίο ελέγχει την οθόνη LCD.

Βήμα 4: Συναρμολόγηση

Συνέλευση
Συνέλευση

Εδώ, έχουμε το ηλεκτρικό διάγραμμα της διάταξής μας, το οποίο δείχνει το NodeMCU, τον αισθητήρα και την οθόνη. Θυμηθείτε ότι πρόκειται για μια σειριακή οθόνη, i2c, η οποία είναι ευκολότερη στη χρήση επειδή έχει περισσότερες καρφίτσες.

Βήμα 5: Βιβλιοθήκη

Βιβλιοθήκη
Βιβλιοθήκη
Βιβλιοθήκη
Βιβλιοθήκη

Δεδομένου ότι πρόκειται να προγραμματίσουμε την οθόνη με γλώσσα Arduino C, χρειαζόμαστε τη βιβλιοθήκη DHT22, καθώς και την οθόνη LCD.

Αρχικά, προσθέστε την ακόλουθη βιβλιοθήκη "DHT sensor sensor" για επικοινωνία με τον αισθητήρα υγρασίας και θερμοκρασίας.

Απλώς αποκτήστε πρόσβαση στο "Sketch >> Include Libraries >> Manage Libraries …"

Τώρα, προσθέστε την ακόλουθη βιβλιοθήκη, "Adafruit-GFX-Library-master."

Απλώς αποκτήστε πρόσβαση στο "Sketch >> Include Libraries >> Manage Libraries …"

Επίσης, προσθέστε τη βιβλιοθήκη "TFT_ILI9163C" για επικοινωνία με τη μονάδα γραφικών LCD.

Αποκτήστε πρόσβαση στον σύνδεσμο ((((((https://github.com/sumotoy/TFT_ILI9163C)))) και κατεβάστε τη βιβλιοθήκη.

Αποσυμπιέστε το αρχείο και επικολλήστε το στο φάκελο βιβλιοθηκών του Arduino IDE.

C: / Αρχεία προγράμματος (x86) / Arduino / βιβλιοθήκες

Βήμα 6: Κωδικός

Αρχικά ας προσθέσουμε τις βιβλιοθήκες που θα χρησιμοποιηθούν στον κώδικά μας.

#include // utilizada para se comunicar com o módulo LCD#include // utilizada para se comunicar com o sensor de umidade e temperatura

Ορισμοί

Θα δούμε παρακάτω τις μεταβλητές που θα χρησιμοποιήσουμε κατά τη διάρκεια του προγράμματος και την παρουσία των αντικειμένων.

#define DHTPIN D6 // pino que conectaremos o sensor DHT22#define DHTTYPE DHT22 // DHT22 é o tipo do sensor que utilizaremos (importante para or construtor) DHT dht (DHTPIN, DHTTYPE); // construtor do objeto que utilizaremos para se comunicar com o sensor // Έννοιες χρωμάτων #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFEFFEFFEFEFF 0FF ορίστε _CS D1 // pino que conectaremos o CS do módulo LCD #define _DC D4 // pino que conectaremos o RS do módulo LCD TFT_ILI9163C display = TFT_ILI9163C (_ CS, _DC); // construtor do objeto que utilizaremos para se comunicar com o módulo LCD

Ρύθμιση

Στη συνάρτηση setup (), αρχικοποιούμε τη μεταβλητή "dht", η οποία είναι υπεύθυνη για την επικοινωνία με τον αισθητήρα υγρασίας και τη θερμοκρασία. Θα ξεκινήσουμε επίσης τη μεταβλητή "display" που χρησιμοποιείται για την επικοινωνία με τη μονάδα LCD.

Θα διαμορφώσουμε επίσης το αντικείμενο ώστε να αρχίζει να σχεδιάζεται στην οθόνη.

void setup (void) {dht.begin (); // inicialização para se comunicar com o sensor display.begin (); // επισήμανση για την επικοινωνία με την οθόνη LCD.clearScreen (); // limpa a tela, removendo todos os desenhos display.fillScreen (ΜΑΥΡΟ); // pinta a tela toda de preto display.setTextSize (2); // configura o tamanho do texto com o tamanho 2 display.setTextColor (ΠΡΑΣΙΝΟ); // configura a cor do texto como verde display.setCursor (5, 10); // posiciona o cursor para começar a escrita a partir do (x, y) display.print ("TEMPERATUR"); // escreve em tela display.setCursor (22, 70); // reposiciona o cursor display.print ("UMIDADE"); // escreve em tela display.setTextColor (ΛΕΥΚΟ); // configura a cor do texto como branco (a partir de agora) καθυστέρηση (1000). // espera de 1 segundo}

Βρόχος

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

void loop () {int h = dht.readHumidity (); // faz a leitura da umidade do sensor int t = dht.readTemperature (); // faz a leitura da temperatura do sensor // as 2 linhas seguintes utilisando ή metodo “fillRect”, για να σας βοηθήσουμε να κάνετε τοπικές εκδηλώσεις για τον αέρα και τη θερμοκρασία, για να αποκτήσετε μια αξιοσημείωτη αντίσταση για την αρχή. display.fillRect (5, 32, 120, 20, ΜΑΥΡΟ); // fillRect (x, y, πλάτος, ύψος, χρώμα); display.fillRect (5, 92, 120, 20, ΜΑΥΡΟ); display.setCursor (40, 35); // reposiciona o cursor para escrever display.print (t); // escreve a temperatura em tela display.print ((char) 247); // escreve o símbolo de grau ° através de código display.print ("C"); // coloca o “C” para indicar que é graus Celcius display.setCursor (40, 95); // reposiciona o cursor para escrever display.print (h); // escreve a umidade em tela display.print ("%"); // επισημάνετε το σύμβολο "porcentagem" για την ένδειξη μιας καθυστέρησης umidade (5000). }

Βήμα 7: Ορισμένες άλλες ενδιαφέρουσες λειτουργίες

// Περιστρέφει το περιεχόμενο της οθόνης (παράμετροι 0, 1, 2 ή 3)

display.setRotation (uint8_t);

// Αντιστρέφει τα χρώματα της οθόνης (κάνει αρνητικό)

display.invertDisplay (boolean);

// Σχεδιάζει ένα μόνο pixel στην οθόνη στη θέση (x, y)

display.drawPixel (x, y, χρώμα);

// Σχεδιάζει κάθετη γραμμή στη θέση

display.drawFastVLine (x, y, πλάτος, χρώμα);

// Σχεδιάζει κάθετη γραμμή στην καθορισμένη θέση

display.drawFastHLine (x, y, πλάτος, χρώμα);

// Σχεδιάζει μια οριζόντια γραμμή στην καθορισμένη θέση

display.drawRect (x, y, πλάτος, ύψος, χρώμα);

// Σχεδιάζει έναν κύκλο στην καθορισμένη θέση

display.drawCircle (x, y, ακτίνα, χρώμα).

Συνιστάται: