Ημέρα 7 - Ενότητα 5 - Διαβάζοντας τη Θερμοκρασία και την Υγρασία
Ρυθμίζοντας τον αισθητήρα DHT11
Ο αισθητήρας DHT11 είναι ένας Ψηφιακός αισθητήρας Θερμοκρασίας και Υγρασίας ο οποίος μπορεί να συνδεθεί και να στέλνει περιβαλλοντικά δεδομένα στο NodeMCU.
Εδώ, θα δημιουργήσουμε ένα κύκλωμα που θα στέλνει δεδομένα στον Blynk εξυπηρετητή και από κει στο κινητό μας τηλέφωνο. Δημιουργήστε λοιπόν πρώτα το κύκλωμα ακολουθώντας το παρακάτω διάγραμμα:
Σ' αυτό το διάγραμμα, παρατηρούμε ότι συνδέουμε τον ακροδέκτη σήματος S(ignal) του DHT11 στον ακροδέκτη D4 του NodeMCU. Έτσι τα δεδομένα θα κατευθύνονται στο GPIO2.
Και τώρα, είναι η ώρα να δημιουργήσουμε ένα νέο έργο στην εφαρμογή Blynk. Ανοίξτε λοιπόν την εφαρμογή Blynk, συνδεθείτε στον εξυπηρετητή αν δεν έχετε συνδεθεί ήδη και δημιουργήστε όπως πριν ένα νέο έργο με την ονομασία "DHT11".
Η επόμενη εργασία είναι να προσθέσουμε μερικά widgets για την οπτικοποίηση των δεδομένων που θα λαμβάνει η εφαρμογή Blynk. Πατώντας το διαλέγουμε ένα gauge widget (εικονικό όργανο) για τη Θερμοκρασία και άλλο ένα για την Υγρασία.
Μετά από όλα τα παραπάνω, τώρα πρέπει να ονοματίσουμε τους μετρητές και να ρυθμίσουμε τις ακίδες που θα ακούσουν.
Following all the above, now we have to label the gauges and adjust the pins that the will "listen to". Ο πρώτος μετρητής θα ονομάζεται Θερμοκρασία, θα ακούει στο Virtual Pin 6 και τα όριά του θα είναι από 0 έως 50 βαθμούς Κελσίου.
και οι ρυθμίσεις της Υγρασίας:
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "????????????????????????????";
// Your WiFi credentials.
char ssid[] = "XXXXXXXXXXXXXXXXXXXXXXX";
char pass[] = "YYYYYYYYYYYYYYYYYYYYYYYYY";
#define DHTPIN 2 // What digital pin we're connected to
// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21 // DHT 21, AM2301
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
}
void setup()
{
// Debug console
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
dht.begin();
// Setup a function to be called every second
timer.setInterval(1000L, sendSensor);
}
void loop()
{
Blynk.run();
timer.run();
}
Αντιγράψτε τον παραπάνω κώδικα, επικολλήστε τον στο Arduino IDE, εισάγετε το Authentication code που ήρθε στο email σας πριν, το όνομα του WiFi και τον κωδικό και πατήστε το κουμπί . Τώρα, παρακολουθήστε τις αλλαγές της Θερμοκρασίας και της Υγρασίας του περιβάλλοντος χώρου που ανιχνέυει ο αισθητήρας DHT11, κατευθείαν στο κινητό σας τηλέφωνο όπως στην παρακάτω εικόνα:
Μπορείτε επίσης να προσθέσετε και ένα γράφημα Ιστορικού όπως παρακάτω, επιλέγοντας το Superchart και κάνοντας τις κατάλληλες ρυθμίσεις σύμφωνα με την τρέχουσα εγκατάσταση!