Το σκέφτηκα καλά το σκέφτηκα πολύ και αποφάσισα να φτιάξω μια λύση που θα προσπεράσει αυτό ακριβώς το πρόβλημα. Δηλαδή μια συσκευή που θα μπορεί να μου δείχνει τη θερμοκρασία και υγρασία του data room εκείνη τη στιγμή και φυσικά να μπορώ να δω τις μετρήσεις απο οποιαδήποτε συσκεύη μου οποιαδήποτε στιγμή της ημέρας.
Για να μπορέσουμε λοιπόν να φτιάξουμε τον δικό μας cloud μετρητή θερμοκρασίας/υγρασίας θα χρειαστούμε τα παρακάτω.1.Arduino UNO Development Board
Με τη χρήση του συγκεκριμένου Development Board και
του αισθητήρα που θα δούμε παρακάτω θα μπορέσουμε να διαβάσουμε τη θερμοκρασία
και την υγρασία του χώρου.
2. Arduino Ethernet shield
Το Ethernet shield θα δώσει δυνατότητα σύνδεσης στο internet για
το Arduino UNO ώστε να μπορέσουμε να στείλουμε
δεδομένα στο thinger.io. Υπάρχει η δυνατότητα σύνδεσης
και μέσω Wi-Fi αν επιλέξουμε κάποιο Wi-Fi enable shield.
3. DHT22 sensor
Ο αισθητήρας DHT22 αποτελεί
την εξέλιξη του DHT11. Είναι ένας οικονομικός αισθητήρας μέτρησης
θερμοκρασίας/υγρασίας και το εύρος λειτουργίας του είναι μεταξύ 3V και
5V. Μπορεί
να μετρήσει θερμοκρασία από -40 έως 80 βαθμούς κελσίου και η ακρίβεια του είναι
στους 0,5 βαθμούς(+/-).
4.Thinger.io
Η πλατφόρμα που θα χρησιμοποιήσουμε για να δώσουμε cloud connectivity endpoints στο
Arduino
μας. Αν και η υπηρεσία είναι premium σου δίνει τη δυνατότητα να κάνεις
free account για δοκιμή.
Συνδέουμε το Arduino Ethernet shield στο Arduino UNO, για το DHT22 θα χρειαστούμε 3 από τα 4 pin.
Τέλος στην επιλογή Data Bucket δημιουργούμε ένα structure μεταβλητής ώστε να ανεβούν οι μετρήσεις από το Arduino UNO στη σελίδα.
Παρακάτω ακολουθεί ο κώδικας που πρέπει να γίνει upload στο
Arduino Board. Μεγάλη προσοχή στο USERNAME θα πρέπει
να συμπληρώσουμε το username του account που
δημιουργήσαμε στο thinger.io. Στο Device_id συμπληρώνουμε το όνομα που δημιουργήσαμε ποιο πάνω και
στο PASSWORD βάζουμε
το credential id της συσκευής. Επίσης αλλάζουμε και τα ip address σύμφωνα με αυτό του δικτύου
μας.
// Arduino Server Room Climate Control
// Dimitris Soutas
#include <SPI.h>
#include <Ethernet.h>
#include <ThingerEthernet.h>
#include <DHT.h>
// DHT Sensor Setup
//Constants
#define DHTPIN 2 // DHT 22 (AM2302) - pin connected to digital pin2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
//Variables
float hum; //Stores humidity value
float temp; //Stores temperature value
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// the dns server ip
IPAddress dnServer(192, 168, 31, 1);
// the router's gateway address:
IPAddress gateway(192, 168, 31, 1);
// the subnet:
IPAddress subnet(255, 255, 255, 0);
//the IP address is dependent on your network
IPAddress ip(192, 168, 31, 18);
ThingerEthernet thing("USERNAME", "DEVICE_ID", "PASSWORD"); //Your credential
void setup() {
Serial.begin(9600);
// start the Ethernet connection and the server:
// initialize the ethernet device
Ethernet.begin(mac, ip, dnServer, gateway, subnet);
//print out the IP address
Serial.print("IP = ");
Serial.println(Ethernet.localIP());
dht.begin();
//start thing api dht22
thing["dht22"] >> [](pson& out){
out["temperature"] = dht.readTemperature();
out["humidity"] = dht.readHumidity();
};
}
unsigned long lastCheck = 0;
void loop() {
thing.handle();
}
Με βάση τα δεδομένα αυτά μπορούμε να φτιάξουμε ένα dashboard
επιλέγοντας την αντίστοιχη επιλογή από το μενού και να φτιάξουμε μία πολύ όμορφη
σελίδα που θα είναι προσβάσιμη από παντού.
Στο επόμενο post θα επιστρέψουμε στο κόσμο
του home assistant και
θα δούμε πως θα συνδέσουμε bluetooth συσκευές
στο έξυπνο σπίτι μας. Για
οποιοδήποτε σχόλιο η απορία περιμένω τα σχόλια σας.
0 Comments
Δημοσίευση σχολίου