Πίνακας περιεχομένων:
- Βήμα 1: Προσθήκη του κωδικού στο ESP8266
- Βήμα 2: Ρύθμιση του έξυπνου βύσματος TP-LINK
- Βήμα 3: Ρύθμιση του Home Assistant
- Βήμα 4: Τελικά βήματα
Βίντεο: Έξυπνο βύσμα ελεγχόμενης θερμοκρασίας με δυνατότητα WiFi: 4 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Σε αυτό το σετ οδηγιών θα εξετάσουμε πώς να φτιάξουμε έναν αισθητήρα θερμοκρασίας με δυνατότητα WiFi χρησιμοποιώντας ένα απλό ESP8266 για την άρση βαρών και έναν αισθητήρα θερμοκρασίας/υγρασίας DHT11. Θα χρησιμοποιήσουμε επίσης την πλακέτα κυκλώματος που έχω δημιουργήσει και είναι επίσης προς πώληση τώρα στο κατάστημα tindie του καναλιού, αν θέλετε να αγοράσετε.
Ας ξεκινήσουμε με τον λογαριασμό υλικών που θα χρειαστείτε:
ESP8266 WiFi Module
amzn.to/2pkGPoa
Αισθητήρας DHT11
amzn.to/2phwfhO
Έξυπνο βύσμα TP-Link
amzn.to/2GElQUz
Μπορείτε επίσης να παραλάβετε ολόκληρη τη μονάδα στο κατάστημα tindie για το κανάλι:
www.tindie.com/products/misperry/wifi-enab…
Δείτε επίσης το JLCPCB για PCB Fabriction. Είναι αυτοί που χρησιμοποιούσα για να φτιάξω το PCB:
Δωρεάν αποστολή για πρώτη παραγγελία & πρωτότυπο PCB $ 2 στη διεύθυνση
Βήμα 1: Προσθήκη του κωδικού στο ESP8266
Τώρα θα πρέπει να αναβοσβήσουμε τον ακόλουθο κώδικα στο ESP8266. Αυτός ο κώδικας μπορεί να βρεθεί στο ακόλουθο αποθετήριο github:
Στον παρακάτω κώδικα θα πρέπει να ρυθμίσετε μόνο τις κορυφαίες ενότητες ορισμού:
Διακομιστής MQTT:
Χρήστης MQTT:
Κωδικός πρόσβασης MQTT:
MQTT_sensor_topic:
-WiFi
Είπε: το εν λόγω δίκτυο wifi στο οποίο συνδέεστε
Κωδικός πρόσβασης: ο κωδικός πρόσβασης WiFi.
Μόλις συμπληρώσετε αυτόν τον παρακάτω κώδικα, μπορείτε στη συνέχεια να μεταγλωττίσετε και να ελέγξετε για σφάλματα και αν 0 σφάλματα μπορείτε να το αναβοσβήνετε στο ESP8266.
/ * * Όνομα αρχείου: TempHumSensor.ino * * Εφαρμογή: Θερμοστάτης HomeAssistant Space Heater * * Περιγραφή: Αυτός ο κωδικός είναι για συμβατή συσκευή arduino * με δυνατότητα ενεργοποίησης WiFi ESP8266. Αυτό θα μεταδώσει τις πληροφορίες θερμοκρασίας * της συσκευής DHT11 στην πρόσοψη HASS για επεξεργασία. * * Συγγραφέας: M. Sperry - https://www.youtube.com/misperry * Ημερομηνία: 03/ * Αναθεώρηση: 1.0 * * */
#περιλαμβάνω
#Include #include #include #include #include
#define CON_TIME_OUT 20 // Λήξη χρόνου χωρίς σύνδεση στο wifi
#define MQTT_TIME_OUT 10 // Χρονικό όριο μη σύνδεσης με διακομιστή MQTT
#define DHTPIN 0 // Καρφίτσα που είναι συνδεδεμένη στον αισθητήρα DHT
#define DHTTYPE DHT11 // Ο τύπος αισθητήρα είναι ο DHT11, μπορείτε να τον αλλάξετε σε DHT22 (AM2302), DHT21 (AM2301)
#define mqtt_server "" // Εισαγάγετε τους προσθήκες ή την IP διακομιστή MQTT. Χρησιμοποιώ την προσθήκη DuckDNS (yourname.duckdns.org) σε αυτό το πεδίο
#define mqtt_user "" // εισαγάγετε το όνομα χρήστη MQTT #define mqtt_password "" // εισαγάγετε τον κωδικό πρόσβασής σας #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" // Εισαγάγετε θέμα για το MQTT σας
// Wifi: SSID και κωδικός πρόσβασης
const char* ssid = ""; const char* password = "";
// DHT SEtup
DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;
WiFiClient wifiClient;
Πελάτης PubSubClient (wifiClient).
// συνάρτηση που καλείται να δημοσιεύσει τη θερμοκρασία και την υγρασία
void publishedData (float p_temperature) {// δημιουργία αντικειμένου JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // ΠΛΗΡΟΦΟΡΙΕΣ: τα δεδομένα πρέπει να μετατραπούν σε συμβολοσειρά. προκύπτει πρόβλημα κατά τη χρήση floats… // μετατροπή σε Φαρενάιτ p_temperature = (p_temperature * 1.8) + 32; // μετατροπή σε ρίζα φαρενάιτ ["θερμοκρασία"] = (συμβολοσειρά) p_temperature; root.prettyPrintTo (Σειριακό); Serial.println ("");
στοιχεία char [200];
root.printTo (δεδομένα, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, data, true); }
// συνάρτηση που καλείται όταν έφτασε ένα μήνυμα MQTT
άκυρη επανάκληση (char* p_topic, byte* p_payload, unsigned int p_length) {}
άκυρη επανασύνδεση () {
// Βρόχος μέχρι να επανασυνδεθούμε ενώ (! Client.connected ()) {Serial.print ("ΠΛΗΡΟΦΟΡΙΕΣ: Προσπάθεια σύνδεσης MQTT …"); // Προσπάθεια σύνδεσης if (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("ΠΛΗΡΟΦΟΡΙΕΣ: συνδεδεμένο"); } else {Serial.print ("ΣΦΑΛΜΑ: απέτυχε, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: δοκιμάστε ξανά σε 5 δευτερόλεπτα"); // Περιμένετε 5 δευτερόλεπτα πριν επαναλάβετε την καθυστέρηση (5000). }}}
void setup (void) {
Serial.begin (9600);
// Ξεκινάμε συνδέοντας ένα δίκτυο WiFi
Serial.println (); Serial.println (); Serial.print ("Σύνδεση σε"); Serial.println (ssid);
WiFi.begin (ssid, κωδικός πρόσβασης);
ενώ (WiFi.status ()! = WL_CONNECTED) {
καθυστέρηση (800)? Serial.print ("."); }
Serial.println ("");
Serial.println ("WiFi συνδεδεμένο"); Serial.println ("Διεύθυνση IP:"); Serial.println (WiFi.localIP ()); // init το client.setServer σύνδεσης MQTT (mqtt_server, 1883); client.setCallback (επανάκληση);
// Αρχικοποίηση αισθητήρα DHT
dht.begin (); Serial.println ("DHT11 Unified Sensor Data");
// Εκτύπωση λεπτομερειών αισθητήρα θερμοκρασίας
sensor_t sensor? dht.temperature (). getSensor (& αισθητήρας); Serial.println ("----------------------------------------"); Serial.println ("Θερμοκρασία"); Serial.print ("Αισθητήρας:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("Μοναδικό αναγνωριστικό:"); Serial.println (sensor.sensor_id); Serial.print ("Μέγιστη τιμή:"); Serial.print (sensor.max_value); Serial.println (" *C"); Serial.print ("Ελάχιστη τιμή:"); Serial.print (sensor.min_value); Serial.println (" *C"); Serial.print ("Resolution:"); Serial.print (sensor.resolution); Serial.println (" *C"); Serial.println ("----------------------------------------"); // Εκτύπωση λεπτομερειών αισθητήρα υγρασίας. dht.humidity (). getSensor (& αισθητήρας); Serial.println ("----------------------------------------"); Serial.println ("Υγρασία"); Serial.print ("Αισθητήρας:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("Μοναδικό αναγνωριστικό:"); Serial.println (sensor.sensor_id); Serial.print ("Μέγιστη τιμή:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Ελάχιστη τιμή:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Resolution:"); Serial.print (sensor.resolution); Serial.println ("%"); Serial.println ("----------------------------------------");
// Ορίστε καθυστέρηση μεταξύ των μετρήσεων του αισθητήρα με βάση τις λεπτομέρειες του αισθητήρα
delayMS = sensor.min_delay / 1000; }
void loop (void) {
θερμοκρασία πλωτήρα?
εάν (! client.connected ())
{επανασύνδεση (); }
καθυστέρηση (delayMS)?
// Λάβετε το συμβάν θερμοκρασίας και εκτυπώστε την τιμή του.
sensors_event_t event? dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Σφάλμα ανάγνωσης θερμοκρασίας!"); θερμοκρασία = 0,00; } else {θερμοκρασία = event.temperature; Serial.print ("Θερμοκρασία:"); Serial.print (θερμοκρασία) Serial.println (" *C"); } // δημοσίευση σε MQTT δημοσίευση δεδομένων (θερμοκρασία); }
Βήμα 2: Ρύθμιση του έξυπνου βύσματος TP-LINK
Θα χρειαστεί να ρυθμίσετε το έξυπνο βύσμα TP-LINK ή οποιοδήποτε έξυπνο βύσμα για αυτό το υλικό, με τον τρόπο που συνιστά ο κατασκευαστής.
Βεβαιωθείτε ότι έχετε λάβει υπόψη τη διεύθυνση MAC στη συσκευή. Εάν η συσκευή σας είναι σαν τη συσκευή μου TP-LINK, δεν μπορείτε να καθορίσετε μια στατική διεύθυνση IP. Έτσι, θα χρειαστεί να ρυθμίσετε το δρομολογητή σας για DHCP Reservation. Αυτό θα πάρει τη διεύθυνση MAC της συσκευής σας και όταν αυτή η συσκευή ζητήσει μια διεύθυνση, ο δρομολογητής θα του δίνει την ίδια διεύθυνση κάθε φορά.
Ακολουθεί ένας σύνδεσμος για τον τρόπο ρύθμισης αυτού με το Linksys
www.linksys.com/us/support-article?article…
Βήμα 3: Ρύθμιση του Home Assistant
Τώρα για να ρυθμίσετε το Home Assistant. Για αυτό θα χρειαστεί να προσθέσετε τις ακόλουθες διαμορφώσεις στο αρχείο configuration.yaml που βρίσκεται στη δομή φακέλου /home/homeassistant/.homeassistant στη συσκευή στην οποία το εγκαταστήσατε.
Μόλις ολοκληρώσετε την προσθήκη στη διαμόρφωση του βοηθού σπιτιού σας, θα χρειαστεί να κάνετε επανεκκίνηση του λογισμικού του βοηθού σπιτιού για να επηρεαστούν οι αλλαγές.
Επίσης, θα χρησιμοποιήσω το έξυπνο βύσμα TP-LINK για τη συσκευή μεταγωγής και ο ορισμός είναι παρακάτω στο αρχείο διαμόρφωσης. Η διεύθυνση IP που χρησιμοποιείται για τη συσκευή είναι αυτή που ορίσατε για την κράτηση DHCP στο προηγούμενο βήμα.
Αυτή η διαμόρφωση μπορεί επίσης να βρεθεί στο ακόλουθο repo github:
mqtt: switch: - platform: tplink name: Bedroom Heater host: 192.168.2.11
αισθητήρας 1:
πλατφόρμα: mqtt state_topic: 'ha/bedroom_temp' name: Bedroom Temp unit_of_measurement: '° F' value_template: '{{value_json.temperature}}'
αυτοματοποίηση:
- ψευδώνυμο: _Temp Υπνοδωμάτιο Temp Υψηλή σκανδάλη: - πλατφόρμα: numeric_state οντότητα_ιδ: αισθητήρας. Bedroom_Temp παραπάνω: 73
δράση:
υπηρεσία: homeassistant.turn_off units_id: switch. Bedroom_Heater
- ψευδώνυμο: _Temp Bedroom Temp Low
σκανδάλη: - πλατφόρμα: numeric_state unit_id: sensor. Bedroom_Temp παρακάτω: 73 δράση: υπηρεσία: homeassistant.turn_on persona_id: switch. Bedroom_Heater
Βήμα 4: Τελικά βήματα
Τώρα με τη διαμόρφωση του οικιακού βοηθού σας και τον κωδικό Arduino που έχετε ρυθμίσει, θα είστε έτοιμοι να ενεργοποιήσετε ολόκληρο το σύστημα. Έτσι, τοποθετήστε το βύσμα του θερμαντήρα/ανεμιστήρα/ψύκτη στο έξυπνο βύσμα και συνδέστε το έξυπνο βύσμα. Μόλις είναι έτοιμο, θα χρειαστεί να συνδέσετε έναν μικρό φορτιστή USB και στη συνέχεια τον αισθητήρα θερμοκρασίας με δυνατότητα WiFi. Μόλις όλα είναι συνδεδεμένα, θα πρέπει να μπορείτε να κοιτάξετε τον πίνακα ελέγχου του βοηθού στο σπίτι σας και να δείτε τη νέα θερμοκρασία που αναφέρεται.
Σας ευχαριστώ πολύ για όλη τη βοήθεια και την υποστήριξή σας. Φροντίστε να αφήσετε ένα like και να επισκεφθείτε το κανάλι στη διεύθυνση https://www.youbue.com/misperry και να δείτε τι έχουμε όλα εκεί για εσάς. Βεβαιωθείτε ότι έχετε εγγραφεί και μοιραστείτε με τους φίλους σας για να βοηθήσετε το κανάλι.
Συνιστάται:
Ηλιακό "Έξυπνο" σύστημα ελεγχόμενης άρδευσης WiFi: 6 βήματα (με εικόνες)
Ηλιακό "Έξυπνο" σύστημα ελεγχόμενης άρδευσης WiFi: Αυτό το έργο χρησιμοποιεί τυπικά ηλιακά DIY και εξαρτήματα 12v από το ebay, μαζί με συσκευές Shelly IoT και κάποιους βασικούς προγραμματισμούς στο openHAB για να δημιουργήσει ένα σπιτικό, πλήρως ηλιακά, έξυπνο δίκτυο κήπου και άρδευση setup.System Highlights: Fu
Έξυπνο βύσμα ESP8266: 6 βήματα
Smart Plug ESP8266: Bienvenue sur cet article qui a pour but de vous montrer un projet de domotique que j'ai réalisé. Ayant toujours adoré les choses automatiques et optimisées, j'ai décidé de créer moi-même mes prises connectées. Celles-ci sont commandées μέσω WiFi. Λα
ESP32 NTP Θερμόμετρο μαγειρέματος θερμοκρασίας ανιχνευτή θερμοκρασίας με διόρθωση και συναγερμό θερμοκρασίας Steinhart-Hart .: 7 βήματα (με εικόνες)
ESP32 NTP Θερμόμετρο Θερμόμετρο μαγειρέματος με διόρθωση και συναγερμό θερμοκρασίας Steinhart-Hart .: Ακόμα στο ταξίδι για να ολοκληρώσετε ένα «επερχόμενο έργο», ", ESP32 NTP Temperature Probe Cooking Thermometer With Steinhart-Hart Correction and Temperature Alarm " είναι ένας οδηγός που δείχνει πώς προσθέτω έναν αισθητήρα θερμοκρασίας NTP, piezo b
Alexa Echo + ESP 8266 = Έξυπνο βύσμα τροφοδοσίας: 4 βήματα (με εικόνες)
Alexa Echo + ESP 8266 = Έξυπνο βύσμα τροφοδοσίας: Αυτός ο οδηγός χρήσης απευθείας ελέγχου ALEXA ECHO ESP8266. Ο διακομιστής μου υποστηρίζει απλώς την εξουσιοδότηση ESP8266 στον διακομιστή Amazon. Ο διακομιστής μου δεν δημιουργεί αντίγραφα ασφαλείας των δεδομένων σας. Oteηφίστε για εμένα: D Ευχαριστώ
Παρακολούθηση θερμοκρασίας δωματίου ελεγχόμενου Raspberry Pi με έξοδο εικόνας Gnuplot και δυνατότητα ειδοποίησης μέσω email: 7 βήματα
Raspberry Pi ελεγχόμενη παρακολούθηση θερμοκρασίας δωματίου με δυνατότητα εξόδου εικόνας Gnuplot και δυνατότητα ειδοποίησης μέσω ηλεκτρονικού ταχυδρομείου: Εκεί που εργάζομαι, υπάρχει ένα πολύ σημαντικό δωμάτιο που φιλοξενεί πολλούς υπολογιστές. Η θερμοκρασία περιβάλλοντος αυτού του δωματίου πρέπει να είναι πολύ δροσερή για να βελτιστοποιηθεί η απόδοση αυτών των συστημάτων. Μου ζητήθηκε να βρω ένα σύστημα παρακολούθησης το οποίο έχει τη δυνατότητα να