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

Θερμοστάτης δωματίου - Arduino + Ethernet: 3 βήματα
Θερμοστάτης δωματίου - Arduino + Ethernet: 3 βήματα

Βίντεο: Θερμοστάτης δωματίου - Arduino + Ethernet: 3 βήματα

Βίντεο: Θερμοστάτης δωματίου - Arduino + Ethernet: 3 βήματα
Βίντεο: Open Sesame (Arduino) [28/09/2012] 2024, Σεπτέμβριος
Anonim
Θερμοστάτης δωματίου - Arduino + Ethernet
Θερμοστάτης δωματίου - Arduino + Ethernet

Όσον αφορά το υλικό, το έργο χρησιμοποιεί:

  • Arduino Uno / Mega 2560
  • Ethernet shield Wiznet W5100 / Ethernet module Wiznet W5200-W5500
  • Αισθητήρας θερμοκρασίας DS18B20 στο δίαυλο OneWire
  • Ρελέ SRD-5VDC-SL-C που χρησιμοποιείται για την αλλαγή λέβητα

Βήμα 1: Περιγραφή του θερμοστάτη Ethernet

Περιγραφή του θερμοστάτη Ethernet
Περιγραφή του θερμοστάτη Ethernet

Το Arduino είναι μια εύχρηστη πλατφόρμα που μπορεί να χρησιμοποιηθεί, για παράδειγμα, για την κατασκευή ενός θερμοστάτη χώρου, τον οποίο θα δείξουμε σήμερα. Ο θερμοστάτης είναι προσβάσιμος από το δίκτυο LAN στο οποίο βρίσκεται, ενώ είναι εξοπλισμένο με διεπαφή ιστού που χρησιμοποιείται για τη διαμόρφωση όλων των στοιχείων του θερμοστάτη. Η διεπαφή ιστού εκτελείται απευθείας στο Arduino σε λειτουργία διακομιστή ιστού. Ο διακομιστής ιστού επιτρέπει την εκτέλεση αρκετών ανεξάρτητων σελίδων HTML, οι οποίες μπορεί να είναι ενημερωτικές ή ακόμη και λειτουργικές. Ο διακομιστής ιστού εκτελείται στη θύρα 80 -

Το ηλεκτρομαγνητικό ρελέ SRD-5VDC-SL-C, το οποίο χρησιμοποιείται στο έργο, επιτρέπει την εναλλαγή έως και 10Α στα 230V-ισχύ 2300W. Σε περίπτωση αλλαγής κυκλώματος DC (φορτίο) είναι δυνατή η εναλλαγή 300W (10A σε 30V DC). Εναλλακτικά, το ρελέ OMRON G3MB-202P SSR είναι πλήρως συμβατό για το διάγραμμα καλωδίωσης, το οποίο είναι κατάλληλο μόνο για μη επαγωγικά φορτία και αποκλειστικά για κυκλώματα AC. Μέγιστη ισχύς μεταγωγής 460W (230V, 2A). Η κατανάλωση Arduino με ασπίδα Ethernet και άλλα περιφερειακά είναι στα 100-120mA με ανοιχτό το ρελέ. Όταν είναι κλειστό, κάτω από 200mA σε παροχή 5V.

Βήμα 2: Διασύνδεση Ιστού

Διασύνδεση Ιστού
Διασύνδεση Ιστού

Η διεπαφή ιστού για τον θερμοστάτη επιτρέπει:

  • Δείτε τη θερμοκρασία σε πραγματικό χρόνο από τον αισθητήρα DS18B20
  • Προβολή κατάστασης ρελέ σε πραγματικό χρόνο με δυναμική αλλαγή εξόδου στη σελίδα
  • Τροποποιήστε τη θερμοκρασία -στόχο (αναφορά) στην περιοχή από 5 έως 50 ° C με ένα βήμα 0,25 ° C
  • Τροποποιήστε την υστέρηση στην περιοχή 0 έως 10 ° C με βήμα 0,25 ° C

Η διεπαφή ιστού έχει σχεδιαστεί για να φιλοξενεί μεγαλύτερες και μικρότερες οθόνες. Είναι ευαίσθητο, υποστηρίζει οθόνες υψηλής ευκρίνειας ευρείας οθόνης, αλλά και φορητές συσκευές. Η διεπαφή χρησιμοποιεί εισαγόμενα στυλ CSS του πλαισίου Bootstrap από έναν εξωτερικό διακομιστή CDN, ο οποίος φορτώνει τη συσκευή από την πλευρά του πελάτη όταν ανοίγει μια σελίδα που εκτελείται στο Arduino. Επειδή το Arduino Uno έχει περιορισμένη μνήμη, μπορεί να εκτελέσει μόνο σελίδες μεγέθους μερικών kB. Με την εισαγωγή στυλ CSS από έναν εξωτερικό διακομιστή, θα μειώσει την απόδοση και το φορτίο μνήμης του Arduino. Η εφαρμογή λογισμικού (για Arduine Uno) χρησιμοποιεί το 70% της μνήμης flash (32kB - 4kB Bootloader) και το 44% της μνήμης RAM (2kB).

Τα στατικά μέρη μιας ιστοσελίδας (κεφαλίδα και υποσέλιδο εγγράφου HTML, σύνδεση Bootstrap CSS, μεταετικέτες, κεφαλίδα απόκρισης HTTP, τύπος περιεχομένου, φόρμα και άλλα) αποθηκεύονται απευθείας στη μνήμη flash του Arduino, η οποία μπορεί να μειώσει σημαντικά την ποσότητα RAM που χρησιμοποιείται για τον χρήστη -δημιουργημένο περιεχόμενο. Ο διακομιστής ιστού είναι επομένως πιο σταθερός και μπορεί να χειριστεί ταυτόχρονα πολλαπλές συνδέσεις πολλών συσκευών στο δίκτυο.

Για να διατηρηθούν οι καθορισμένες τιμές ακόμη και μετά από διακοπή ρεύματος, αποθηκεύονται στη μνήμη EEPROM του Arduino. Θερμοκρασία αναφοράς σε μετατόπιση 10, υστέρηση σε μετατόπιση 100. Κάθε μία από τις τιμές καταλαμβάνει το πολύ 5Β στη μνήμη EEPROM. Το όριο μεταγραφής EEPROM είναι στο επίπεδο των 100.000 μεταγραφών. Τα δεδομένα αντικαθίστανται μόνο όταν υποβληθεί η φόρμα HTML. Σε περίπτωση που η συσκευή δεν έχει αποθηκευμένο τίποτα στις αναφερόμενες αντισταθμίσεις EEPROM κατά την πρώτη εκκίνηση, θα πραγματοποιηθεί αυτόματη εγγραφή με προεπιλεγμένες τιμές - αναφορά: 20.25, υστέρηση 0.25 ° C

Η μετα -ετικέτα Ανανέωση ανανεώνει ολόκληρη τη σελίδα Arduino κάθε 10 δευτερόλεπτα. Μέχρι αυτή τη στιγμή είναι απαραίτητο να γράψετε την αλλαγή για τον θερμοστάτη, διαφορετικά τα παράθυρα εισόδου θα επαναρυθμιστούν όταν ανανεωθεί η σελίδα. Επειδή η βιβλιοθήκη Ethernet δεν περιλαμβάνει τη χρήση ασύγχρονου διακομιστή ιστού, ολόκληρη η σελίδα πρέπει να ξαναγραφεί. Τα δυναμικά δεδομένα που αλλάζουν κυρίως είναι η τρέχουσα τιμή της εξόδου - On / Off.

Βήμα 3: Σελίδες HTML που εκτελούνται σε διακομιστή ιστοσελίδων, σχήματα, πηγαίος κώδικας

Σελίδες HTML που εκτελούνται σε διακομιστή ιστοσελίδων, σχήματα, πηγαίος κώδικας
Σελίδες HTML που εκτελούνται σε διακομιστή ιστοσελίδων, σχήματα, πηγαίος κώδικας

Σελίδες HTML που εκτελούνται στο Arduino:

  • / - ριζική σελίδα που περιέχει τη φόρμα, τρέχουσα λογική έξοδο εξόδου για το ρελέ, θερμοκρασία
  • /action.html - επεξεργάζεται τιμές από τη φόρμα, τις γράφει στη μνήμη EEPROM, ανακατευθύνει τον χρήστη πίσω στη βασική σελίδα
  • / get_data/ - διανέμει δεδομένα σχετικά με την τρέχουσα θερμοκρασία, τη θερμοκρασία αναφοράς και την υστέρηση σε τρίτο μέρος (υπολογιστής, μικροελεγκτής, άλλος πελάτης…) σε μορφή JSON

Υπάρχει επίσης μια εκτεταμένη έκδοση αυτού του θερμοστάτη που περιλαμβάνει:

  • Χειροκίνητη λειτουργία για ρελέ (απεριόριστος χρόνος, σκληρή ενεργοποίηση / απενεργοποίηση)
  • Χρονόμετρο Watchdog
  • Διαθέσιμοι περισσότεροι αισθητήρες, για παράδειγμα: SHT21, SHT31, DHT22, BME280, BMP280 και άλλοι
  • Λειτουργία ψύξης
  • Έλεγχος και διαμόρφωση μέσω RS232 / UART ανεξάρτητα από Ethernet
  • Έλεγχος θερμοκρασίας PID για θερμοστάτη
  • Δυνατότητα χρήσης πλατφορμών ESP8266, ESP32 για θερμοστάτη

Η υλοποίηση του προγράμματος για το έργο βρίσκεται στη διεύθυνση: https://github.com/martinius96/termostat-ethernet/ Η υλοποίηση περιέχει προγράμματα για τη στατική/δυναμική διεύθυνση IPv4 που έχει εκχωρηθεί στην ασπίδα Ethernet.

Ο θερμοστάτης προορίζεται μόνο για εσωτερικές θερμοκρασίες! (πάνω από 0 ° C), στο οποίο προσαρμόζεται η λογική του συστήματος. Είναι δυνατή η αντικατάσταση ενός υπάρχοντος θερμοστάτη χώρου με έναν θερμοστάτη, είναι δυνατόν να αντικατασταθεί προσωρινά ένας θερμοστάτης σε ένα ψυγείο, να διατηρηθεί μια σταθερή θερμοκρασία σε ένα terrarium και τα παρόμοια.

Συνιστάται: