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

HRV Temperature to OpenHAB Via ESP8266 (Serial Code Παράδειγμα!): 3 βήματα
HRV Temperature to OpenHAB Via ESP8266 (Serial Code Παράδειγμα!): 3 βήματα

Βίντεο: HRV Temperature to OpenHAB Via ESP8266 (Serial Code Παράδειγμα!): 3 βήματα

Βίντεο: HRV Temperature to OpenHAB Via ESP8266 (Serial Code Παράδειγμα!): 3 βήματα
Βίντεο: Tour a Smart Home GeenStar Gut rehab with OA Awesome Wall (Corrected) 2024, Ιούλιος
Anonim
Θερμοκρασία HRV στο OpenHAB μέσω ESP8266 (Παράδειγμα σειριακού κώδικα!)
Θερμοκρασία HRV στο OpenHAB μέσω ESP8266 (Παράδειγμα σειριακού κώδικα!)
Θερμοκρασία HRV στο OpenHAB μέσω ESP8266 (Παράδειγμα σειριακού κώδικα!)
Θερμοκρασία HRV στο OpenHAB μέσω ESP8266 (Παράδειγμα σειριακού κώδικα!)
Θερμοκρασία HRV στο OpenHAB μέσω ESP8266 (Παράδειγμα σειριακού κώδικα!)
Θερμοκρασία HRV στο OpenHAB μέσω ESP8266 (Παράδειγμα σειριακού κώδικα!)

HRV - Ασύρματο στο OpenHAB

Αυτό το εκπαιδευτικό είναι ειδικά για εκείνους που διαθέτουν σύστημα HRV (εξαερισμός ανακυκλοφορίας θέρμανσης) - αν και τμήματα της πλακέτας κυκλώματος, διαμόρφωση openhab ή κώδικας Arduino (όπως η ανάγνωση σειριακών δεδομένων TTL) θα μπορούσαν να είναι χρήσιμα για τα δικά σας έργα ή να χρησιμεύσουν καλά για μάθηση. Υποθέτει ότι έχετε μια λογική γνώση του Arduino IDE και τι είναι ένα τσιπ ESP8266.

Εισαγωγή

Τα παρακάτω περιγράφουν πώς να φτιάξετε ένα ESP8266 που συνδέεται σε σύστημα HRV και στέλνει θερμοκρασίες οροφής και σπιτιού, θερμοκρασία πίνακα ελέγχου και ταχύτητα ανεμιστήρα μέσω μηνυμάτων MQTT στο OpenHAB. Αυτό έχει σχεδιαστεί για να λειτουργεί με έναν πίνακα ESP8266-01 (αν και θα πρέπει να λειτουργεί με οποιαδήποτε έκδοση ESP8266 3.3V) Εάν έχετε παρόμοιο σύστημα τύπου HRV από εναλλακτικό προμηθευτή, θα πρέπει να καθορίσετε εάν τα δεδομένα αποστέλλονται ως σειριακά TTL και αν ναι, με ποια δομή αποστέλλονται τα δεδομένα.

OpenHAB και Mosquitto

Ο κωδικός ESP8266 έχει γραφτεί ειδικά για να λειτουργεί με OpenHAB (λογισμικό αυτοματισμού οικιακού κώδικα ανοιχτού κώδικα) και μεσίτη MQTT όπως το Mosquitto (πρωτόκολλο τύπου εγγραφής/δημοσίευσης μηνυμάτων που είναι ελαφρύ και ιδανικό για επικοινωνία μεταξύ συσκευών) Μην αφήνετε τα ονόματα ή τα ακρωνύμια σας τρομάζουν, είναι πολύ απλά στη χρήση τους μόλις μάθετε πώς λειτουργούν. Χρησιμοποιώ το OpenHAB σε υπολογιστή NTC C. H. I. P (υπολογιστής 9 $), ωστόσο πολλοί άνθρωποι χρησιμοποιούν Raspberry Pi ή παρόμοιο. Αυτό το σεμινάριο υποθέτει ότι έχετε εφαρμόσει το OpenHAB (εάν χρειάζεστε βοήθεια για τη ρύθμιση του OpenHAB, ακολουθήστε αυτό το εξαιρετικό άρθρο από το makeuseof web site) Πρέπει επίσης να κατεβάσετε και να εγκαταστήσετε το Mosquitto (μεσίτης MQTT) και τη σχετική σύνδεση OpenHAB. Μπορείτε να το εγκαταστήσετε αλλού στο δίκτυό σας, ωστόσο οι περισσότεροι απλώς το εγκαθιστούν στο ίδιο μηχάνημα με το OpenHAB για να είναι απλό.

Για να εγκαταστήσετε το Mosquitto, ακολουθώντας αυτόν τον σύνδεσμο, επιλέξτε τον τύπο συσκευής που χρησιμοποιείτε και ακολουθήστε τις οδηγίες. Επειδή το C. H. I. P τρέχει το Debian (Jessie), μπορείτε να ακολουθήσετε τις οδηγίες του Raspberry Pi εάν χρησιμοποιείτε το C. H. I. P για τη συσκευή οικιακού αυτοματισμού (σημειώστε επίσης, το καλύτερο είναι να διαμορφώσετε ξανά το CHIP για εκκίνηση από το CLI. Υπάρχουν οδηγίες για αυτό εδώ)

Μόλις έχετε OpenHAB και Mosquitto σε λειτουργία, πρέπει να προετοιμάσετε το Arduino IDE για το ESP8266 και τον κωδικό. Αρχικά, πρέπει να προσθέσετε τη βιβλιοθήκη "PubSubClient". Στο Arduino IDE, από το μενού πηγαίνετε στο Sketch, Include Library, Manage Libraries Στο πλαίσιο αναζήτησης φίλτρου, πληκτρολογήστε PubSubClient, στη συνέχεια επισημάνετε το αποτέλεσμα αναζήτησης και κάντε κλικ στο Install (κατά την εγγραφή, η τελευταία έκδοση είναι 2.6.0) πρέπει επίσης να προσθέσετε τον πίνακα ESP8266 στο Arduino IDE, κάτι που μπορεί να γίνει ακολουθώντας τις οδηγίες εδώ

Τι μου δίνει αυτό;

Όπως προαναφέρθηκε, αυτό το έργο θα σας επιτρέψει να δείτε την οροφή του πίνακα ελέγχου HRV, το σπίτι, τις θερμοκρασίες του πίνακα ελέγχου και την ταχύτητα του ανεμιστήρα στο OpenHAB GUI (σε πραγματικό χρόνο!) Οι εικόνες δείχνουν πώς φαίνεται από το iPhone μου, καθώς και τα γραφήματα που θα φτάσει με διάτρηση στις διαφορετικές θερμοκρασίες.

Για να λάβετε τα γραφήματα, θα πρέπει επίσης να εγκαταστήσετε και να διαμορφώσετε τη σύνδεση RRD4J (αυτό είναι πολύ απλό) Αυτό θα σας επιτρέψει να κάνετε κλικ είτε στο 'House' είτε στο 'Roof' και να λάβετε ένα ιστορικό θερμοκρασιών HRV για κάθε ένα στο παρελθόν ώρα, ημέρα ή εβδομάδα (ή περισσότερο, αν αλλάξετε τη διαμόρφωση που ταιριάζει) Οι εικόνες που εμφανίζονται είναι σε βαθμούς κελσίου και είναι σαφώς ο χειμώνας του στο νότιο ημισφαίριο όταν το έφτιαξα!

Επιπλέον, δημιούργησα μια προβολή OpenHAB που δείχνει μια σύγκριση μεταξύ της εξωτερικής θερμοκρασίας (παρέχεται από το πρόσθετο δέσμευσης καιρού, στην περίπτωσή μου χρησιμοποιώντας το Wunderground) με τις θερμοκρασίες της στέγης και του σπιτιού κάνοντας κλικ στην επιλογή "Έλεγχος" (η εικόνα δείχνει το γράφημα με σπίτι, στέγη και εξωτερική θερμοκρασία). Σκοπεύω να χρησιμοποιήσω αυτά τα δεδομένα σε κανόνες για να ενεργοποιήσω τις συσκευές θέρμανσης όπως απαιτείται. Απλώς προσθέστε το στοιχείο Καιρός στη διεύθυνση URL εικόνας στο αρχείο χάρτη ιστότοπου και συμπεριλάβετε αυτό στο ίδιο γράφημα (π.χ.:… στοιχεία = houseTemp, roofTemp, weatherTemp…)

Βήμα 1: Απαιτούνται εξαρτήματα / Συναρμολόγηση

Απαιτούμενα μέρη / Συναρμολόγηση
Απαιτούμενα μέρη / Συναρμολόγηση
Απαιτούμενα μέρη / Συναρμολόγηση
Απαιτούμενα μέρη / Συναρμολόγηση
Απαιτούμενα μέρη / Συναρμολόγηση
Απαιτούμενα μέρη / Συναρμολόγηση

Θα χρειαστείτε τα παρακάτω μέρη

  • Ένας διαχωριστής RJ11 (αυτό χωρίζει το σήμα από το χειριστήριο στην οροφή, στον πίνακα ελέγχου και το ESP8266)
  • Κάποιο καλώδιο κορδέλας και ένα βύσμα RJ11 (για να τρέξετε καλώδια από διαχωριστή σε ESP8266)
  • ESP8266-01 (πρέπει να λειτουργούν άλλες εκδόσεις 3.3V)
  • Μετατροπέας λογικού επιπέδου TTL (για αλλαγή δεδομένων από 5V -> 3.3V)
  • AMS1117 ρυθμιστής τάσης 3.3V (ή παρόμοιο, για αλλαγή τάσης από HRV 5V -> 3.3V σε ισχύ ESP8266)
  • 1N5817 δίοδος schottky (για κάποιο λόγο αυτό βοήθησε να σταματήσει η επαναφορά του πίνακα ελέγχου HRV στην ενεργοποίηση ESP)
  • Αντίσταση 10K ohm (αντίσταση έλξης μεταξύ ρυθμιστή τάσης 3,3 και ESP CH_PD)
  • Πυκνωτής 10V 10uF (ή παρόμοιος, για εξομάλυνση και σταθεροποίηση της εισερχόμενης ισχύος από HRV)
  • Πυκνωτής 10V 1uF (ή παρόμοιος, για εξομάλυνση και σταθεροποίηση της εξερχόμενης ισχύος στο ESP)
  • Προαιρετικό κουμπί διαφάνειας για τον προγραμματισμό του ESP (διαφορετικά, πρέπει να τραβήξετε το GPIO0 στο GND με μη αυτόματο τρόπο για να προγραμματίσετε)
  • Προσαρμογέας FTDI (για προγραμματισμό του ESP, μετατρέπει το USB σε σειριακό)

Συναρμολογήστε σύμφωνα με το Σχήμα

Η εικόνα του breadboard δείχνει πώς πρέπει να συναρμολογηθούν τα μέρη. Σημειώστε ότι υπάρχουν 6 ακίδες που κατεβαίνουν το καλώδιο κορδέλας από τη μονάδα ελεγκτή HRV στην οροφή:

Οι ακίδες 1 και 6 είναι 5V VCC

Οι ακίδες 2 και 5 είναι GND

Οι ακίδες 3 και 4 είναι δεδομένα.

Χρειάζεται μόνο να χρησιμοποιήσετε τις ακίδες 1, 2, 3 και 6 (1 και 6 δυνάμεις VCC ESP8266 και η υψηλή πλευρά του λογικού μετατροπέα TTL, 2 είναι κοινή βάση και 3 για ανάγνωση σειριακών δεδομένων TTL)

Ο διαχωριστής που χρειάζεστε θα είναι απλώς ένας διαχωριστής RJ11, βεβαιωθείτε ότι είναι ένας διαχωριστής όπου οι ακίδες είναι κατευθείαν (π.χ.: ο πείρος 1 πηγαίνει στον πείρο 1, ο πείρος 2 στον ακροδέκτη 2 και ούτω καθεξής) Σημειώστε ότι οι επιπλέον θηλυκές καρφίτσες (όπως φαίνεται στις εικόνες) είναι για τη σύνδεση ενός FTDI για επαναπρογραμματισμό του ESP αργότερα και ο διακόπτης που εμφανίζεται το θέτει σε λειτουργία "προγραμματισμού". Αυτά είναι προαιρετικά, αλλά συνιστώνται (π.χ.: αν αλλάξετε τον κωδικό πρόσβασης WiFi καθώς το AP και ο κωδικός πρόσβασης WiFi είναι σκληρά προγραμματισμένοι στον κώδικα, τον οποίο θα χρειαστεί να ανεβάσετε μόλις κατασκευαστεί το ESP8266)

Βήμα 2: Μεταφόρτωση κώδικα και δοκιμή

Αποστολή κώδικα και δοκιμή
Αποστολή κώδικα και δοκιμή
Αποστολή κώδικα και δοκιμή
Αποστολή κώδικα και δοκιμή
Αποστολή κώδικα και δοκιμή
Αποστολή κώδικα και δοκιμή
Αποστολή κώδικα και δοκιμή
Αποστολή κώδικα και δοκιμή

Αλλαγές κώδικα

Εναλλακτικός σύνδεσμος λήψης για τον κωδικό Arduino ΕΔΩ

Ανοίξτε το Arduino IDE, βεβαιωθείτε ότι η πλακέτα ESP είναι εγκατεστημένη καθώς και το PubSubClient και ότι έχετε επιλέξει την πλακέτα ESP8266 (Εργαλεία, Πίνακας, Γενικός πίνακας ESP8266) Επεξεργαστείτε τον κωδικό και αλλάξτε το όνομα και τον κωδικό πρόσβασης WiFi WiFi και τη διεύθυνση IP του τον μεσίτη MQTT (αυτά είναι τα μόνα πράγματα που πρέπει να αλλάξετε) όπως φαίνεται παρακάτω. Κάντε κλικ στο κουμπί "Επαλήθευση" για να βεβαιωθείτε ότι μεταγλωττίζεται εντάξει και βεβαιωθείτε ότι έχει επιλεγεί η σωστή θύρα COM (Εργαλεία, Θύρα) και ανεβάστε τον κωδικό στο ESP8266. Υπάρχουν πολλά άρθρα γύρω από το πώς να το κάνετε αυτό, δεν θα ανακαλύψω ξανά τον τροχό εδώ.

// Wifi

const char* ssid = "your_wifi_ssid_here"; const char* password = "your_wifi_password_here"; // MQTT Broker IPAddress MQTT_SERVER (192, 168, 222, 254);

Δοκιμή MQTT

Για δοκιμή, μπορείτε να αφήσετε τον προσαρμογέα FTDI συνδεδεμένο και να ανοίξετε τη Σειριακή οθόνη στο Arduino IDE, θα πρέπει να δείτε μηνύματα που εκτυπώνουν τις πληροφορίες θερμοκρασίας στην κονσόλα. Εάν πρέπει να αντιμετωπίσετε τα εισερχόμενα μηνύματα MQTT από το ESP8266 στον μεσίτη MQTT, τότε στον διακομιστή Mosquitto εκτελέστε μία από τις ακόλουθες εντολές για να εγγραφείτε στα εισερχόμενα μηνύματα:

mosquitto_sub -d -t openhab/hrv/status

Θα πρέπει να βλέπετε εισερχόμενα PUBLISH μηνύματα που έρχονται από το ESP8266 κάθε 30 δευτερόλεπτα περίπου με τον αριθμό "1" (που σημαίνει "είμαι ζωντανός") Αν βλέπετε σταθερά "0" (ή τίποτα απολύτως), τότε δεν υπάρχει επικοινωνία. Μόλις δείτε τον αριθμό 1 να έρχεται, τότε σημαίνει ότι το ESP8266 επικοινωνεί με τον μεσίτη MQTT (αναζητήστε "MQTT Last Will and Testament" για περισσότερες πληροφορίες σχετικά με το πώς λειτουργεί αυτό, ή δείτε αυτήν την πραγματικά καλή καταχώρηση ιστολογίου)

Τώρα μπορείτε να παρακολουθείτε δεδομένα θερμοκρασίας και ταχύτητας ανεμιστήρα, εγγραφείτε σε ένα από τα παρακάτω. Ωστόσο, σημειώστε ότι ο κωδικός στέλνει τα δεδομένα θερμοκρασίας μόνο εάν άλλαξαν δεδομένα. Παρακολουθεί τα δεδομένα της τελευταίας θερμοκρασίας, ταχύτητας ανεμιστήρα κ.λπ. που στάλθηκαν, ώστε να μην βλέπετε αμέσως πληροφορίες.

mosquitto_sub -d -t openhab/hrv/rooftemp

mosquitto_sub -d -t openhab/hrv/housetemp

mosquitto_sub -d -t openhab/hrv/controltemp

mosquitto_sub -d -t openhab/hrv/fanspeed

Υπόδειξη: εγγραφείτε στη θερμοκρασία του πίνακα ελέγχου παραπάνω και, στη συνέχεια, πατήστε το κουμπί θερμοκρασίας στον ίδιο τον πίνακα ελέγχου, για να δείτε τη νέα ρύθμιση θερμοκρασίας να μπαίνει.

Όταν πλησιάζετε στη συγκόλληση, ένα PCB 3cm x 7cm ταιριάζει όμορφα στο φουσκωτό κουτί πίσω από τον πίνακα ελέγχου HRV. Θα συνιστούσα να το κάνετε μόνο εάν πρόκειται για πλαστικό πλαστικό κουτί, καθώς ένα μεταλλικό κουτί μπορεί να επηρεάσει τα σήματα Wifi ή ενδεχομένως βραχυκυκλώστε τις συνδέσεις στην πλακέτα PCB. Εναλλακτικά, μπορείτε να εκτυπώσετε μια πλαστική θήκη 3D για να τοποθετήσετε την πλακέτα.

Βήμα 3: Αλλαγές OpenHAB

Διαμόρφωση OpenHAB

Οι αλλαγές OpenHAB που απαιτούνται είναι οι εξής:

αρχείο "αντικειμένων":

/* HRVNumber hrvStatus "HRV Status [MAP (status.map):%d]" (gHRV) {mqtt = "<[mqttbroker: openhab/hrv/status: state: default]"} Number houseTemp "House [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/housetemp: state: default] "} Number houseTemp_Chart_Period" Chart Period "Number roofTemp" Roof [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/rooftemp: state: default] "} Αριθμός roofTemp_Chart_Period" Chart Period "Number controlTemp" Control [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/controltemp κατάσταση: προεπιλογή] "} String fanSpeed" Ταχύτητα ανεμιστήρα [%s] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/fanspeed: κατάσταση: προεπιλογή] "}*/

αρχείο 'sitemap':

Frame label = "HRV Temperature" {Text item = roofTemp {Frame {Switch item = roofTemp_Chart_Period label = "Period" mappings = [0 = "Hour", 1 = "Day", 2 = "Week"] URL url = "https:// localhost: 8080/rrdchart-p.webp

Περιλαμβάνονται επιπλέον εικονίδια για το OpenHAB (δεξί κλικ και αποθήκευση εικόνων)

Αποθηκεύστε αυτά τα αρχεία στο φάκελο.. / OpenHAB Home / webapps / images στο διακομιστή OpenHAB

Συνιστάται: