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

Έξυπνο βύσμα ελεγχόμενης θερμοκρασίας με δυνατότητα WiFi: 4 βήματα
Έξυπνο βύσμα ελεγχόμενης θερμοκρασίας με δυνατότητα WiFi: 4 βήματα

Βίντεο: Έξυπνο βύσμα ελεγχόμενης θερμοκρασίας με δυνατότητα WiFi: 4 βήματα

Βίντεο: Έξυπνο βύσμα ελεγχόμενης θερμοκρασίας με δυνατότητα WiFi: 4 βήματα
Βίντεο: 💦Blackview BV9200 HONEST Αντικραδασμική ΚΡΙΤΙΚΗ 2024, Νοέμβριος
Anonim
Έξυπνο βύσμα ελεγχόμενης θερμοκρασίας με δυνατότητα WiFi
Έξυπνο βύσμα ελεγχόμενης θερμοκρασίας με δυνατότητα WiFi

Σε αυτό το σετ οδηγιών θα εξετάσουμε πώς να φτιάξουμε έναν αισθητήρα θερμοκρασίας με δυνατότητα 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
Ρύθμιση του έξυπνου βύσματος 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: Τελικά βήματα

Image
Image
Τελικά βήματα
Τελικά βήματα
Τελικά βήματα
Τελικά βήματα

Τώρα με τη διαμόρφωση του οικιακού βοηθού σας και τον κωδικό Arduino που έχετε ρυθμίσει, θα είστε έτοιμοι να ενεργοποιήσετε ολόκληρο το σύστημα. Έτσι, τοποθετήστε το βύσμα του θερμαντήρα/ανεμιστήρα/ψύκτη στο έξυπνο βύσμα και συνδέστε το έξυπνο βύσμα. Μόλις είναι έτοιμο, θα χρειαστεί να συνδέσετε έναν μικρό φορτιστή USB και στη συνέχεια τον αισθητήρα θερμοκρασίας με δυνατότητα WiFi. Μόλις όλα είναι συνδεδεμένα, θα πρέπει να μπορείτε να κοιτάξετε τον πίνακα ελέγχου του βοηθού στο σπίτι σας και να δείτε τη νέα θερμοκρασία που αναφέρεται.

Σας ευχαριστώ πολύ για όλη τη βοήθεια και την υποστήριξή σας. Φροντίστε να αφήσετε ένα like και να επισκεφθείτε το κανάλι στη διεύθυνση https://www.youbue.com/misperry και να δείτε τι έχουμε όλα εκεί για εσάς. Βεβαιωθείτε ότι έχετε εγγραφεί και μοιραστείτε με τους φίλους σας για να βοηθήσετε το κανάλι.

Συνιστάται: