- Απαιτούμενα υλικά:
- Μεθοδολογία εργασίας:
- Προαπαιτούμενα:
- Εργασία τηλεχειριστηρίου AC:
- Διάγραμμα κυκλώματος και επεξήγηση:
- Αποκωδικοποίηση των απομακρυσμένων σημάτων AC:
- Κύριο πρόγραμμα Arduino:
- Εργασία αυτόματου συστήματος ελέγχου θερμοκρασίας AC:
Ένα AC (Κλιματιστικό) που κάποτε θεωρούνταν πολυτελές αντικείμενο και βρίσκονταν μόνο σε μεγάλα ξενοδοχεία, αίθουσες ταινιών, εστιατόρια κλπ… Αλλά, τώρα σχεδόν όλοι έχουν ένα AC στο σπίτι μας για να ξεπεράσουν το καλοκαίρι / χειμώνα και όσοι το έχουν, ανησυχούν για ένα κοινό πράγμα. Αυτή είναι η υψηλή κατανάλωση ηλεκτρικής ενέργειας και οι φορτιστές που οφείλονται σε αυτό. Σε αυτό το έργο πρόκειται να φτιάξουμε ένα μικρό κύκλωμα αυτόματου ελέγχου θερμοκρασίας που θα μπορούσε να ελαχιστοποιήσει τους φορτιστές ηλεκτρικού ρεύματος μεταβάλλοντας αυτόματα τη θερμοκρασία AC με βάση τη θερμοκρασία δωματίων. Μεταβάλλοντας περιοδικά την καθορισμένη θερμοκρασία μπορούμε να αποφύγουμε το AC να λειτουργεί για χαμηλότερες τιμές θερμοκρασίας για μεγάλο χρονικό διάστημα και έτσι να το καταναλώνει λιγότερη ισχύ.
Οι περισσότεροι από εμάς θα είχαμε βιώσει μια κατάσταση όπου πρέπει να αλλάξουμε τη ρυθμισμένη θερμοκρασία του κλιματιστικού σε διαφορετικές τιμές κατά τη διάρκεια διαφορετικών ωρών της ημέρας, έτσι ώστε να μας κρατά άνετους. Για την αυτοματοποίηση αυτής της διαδικασίας, αυτό το έργο χρησιμοποιεί έναν αισθητήρα θερμοκρασίας (DHT11) που διαβάζει την παρούσα θερμοκρασία του δωματίου και με βάση αυτήν την τιμή θα στείλει εντολές στο AC μέσω ενός IR blaster παρόμοιου με το τηλεχειριστήριο του AC. Το AC θα αντιδρά σε αυτές τις εντολές σαν να αντιδρά στο τηλεχειριστήριό του και έτσι να ρυθμίζει τη θερμοκρασία. Καθώς αλλάζει η θερμοκρασία του δωματίου σας, το Arduino θα προσαρμόσει επίσης τη ρυθμισμένη θερμοκρασία του AC σας για να διατηρήσει τη θερμοκρασία σας όπως ακριβώς θέλετε. Ακούγεται ωραίο, ας δούμε πώς να φτιάξουμε ένα.
Απαιτούμενα υλικά:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- LED LED
- Αισθητήρας θερμοκρασίας / υγρασίας DHT11
- Οποιαδήποτε έγχρωμη LED και αντίσταση 1K (προαιρετικά)
- Ψωμί
- Σύνδεση καλωδίων
Μεθοδολογία εργασίας:
Όλα τα τηλεχειριστήρια στο σπίτι μας που χρησιμοποιούμε για τον έλεγχο της τηλεόρασης, του οικιακού κινηματογράφου, του AC κ.λπ. λειτουργούν με τη βοήθεια των IR Blasters. Ένα IR blaster δεν είναι τίποτα άλλο από ένα IR LED που θα μπορούσε να ανατινάξει ένα σήμα με επαναλαμβανόμενο παλμό. Αυτό το σήμα θα διαβαστεί από τον δέκτη στην ηλεκτρονική συσκευή. Για κάθε διαφορετικό κουμπί στο τηλεχειριστήριο θα εκραγεί ένα μοναδικό σήμα το οποίο μετά την ανάγνωση από τον δέκτη χρησιμοποιείται για την εκτέλεση μιας συγκεκριμένης προκαθορισμένης εργασίας. Εάν είμαστε σε θέση να διαβάσουμε αυτό το σήμα που βγαίνει από το τηλεχειριστήριο, τότε μπορούμε να μιμηθούμε το ίδιο σήμα χρησιμοποιώντας μια λυχνία IR όταν απαιτείται ποτέ για την εκτέλεση της συγκεκριμένης εργασίας. Έχουμε κάνει προηγουμένως ένα κύκλωμα IR Blaster για Universal IR Remote.
Ένα TSOP είναι ένας δέκτης IR που θα μπορούσε να χρησιμοποιηθεί για την αποκωδικοποίηση του σήματος που προέρχεται από τα τηλεχειριστήρια. Αυτός ο δέκτης θα διασυνδεθεί με το Arduino για να σηματοδοτήσει κάθε κουμπί και στη συνέχεια ένα IR Led θα χρησιμοποιηθεί με το Arduino για να μιμείται το σήμα όταν απαιτείται. Με αυτόν τον τρόπο μπορούμε να αποκτήσουμε τον έλεγχο του AC μας χρησιμοποιώντας το Arduino.
Τώρα, το μόνο που μένει είναι να διαβάσετε την τιμή θερμοκρασίας χρησιμοποιώντας DHT11 και να καθοδηγήσετε το AC χρησιμοποιώντας τα σήματα IR. Για να κάνω το έργο να φαίνεται πιο ελκυστικό και φιλικό προς τον χρήστη, έχω προσθέσει επίσης μια οθόνη OLED που εμφανίζει την τρέχουσα θερμοκρασία, υγρασία και καθορισμένη θερμοκρασία AC. Μάθετε περισσότερα σχετικά με τη χρήση του OLED με το Arduino.
Προαπαιτούμενα:
Αυτό το έργο Automatic AC Temperature Controller είναι ελαφρώς προηγμένο για αρχάριους επίπεδο, ωστόσο, με τη βοήθεια λίγων άλλων εκπαιδευτικών, ο καθένας μπορεί να το φτιάξει με την πάροδο του χρόνου. Αν λοιπόν είστε απόλυτα αρχάριος στα OLED, DHT11 ή TSOP, παρακαλούμε επιστρέψτε σε αυτά τα μαθήματα παρακάτω, όπου μπορείτε να μάθετε τα βασικά και πώς να ξεκινήσετε με αυτά. Ο κατάλογος μπορεί να φαίνεται λίγο μακρύς, αλλά πιστέψτε με ότι είναι εύκολο και αξίζει να μάθετε, επίσης θα ανοίξει πόρτες σε πολλά νέα έργα.
- Βασικό κύκλωμα χρησιμοποιώντας TSOP και IR LED για να λειτουργήσουν
- Βασικός οδηγός διασύνδεσης για DHT11 με Arduino
- Βασικός οδηγός διασύνδεσης για OLED με Arduino
- Διασύνδεση TSOP με Arduino για ανάγνωση απομακρυσμένων τιμών IR
Βεβαιωθείτε ότι έχετε Arduino Mega και οποιαδήποτε άλλη έκδοση του Arduino, καθώς το μέγεθος του κώδικα είναι βαρύ. Ελέγξτε επίσης εάν έχετε ήδη εγκαταστήσει τις ακόλουθες βιβλιοθήκες Arduino εάν δεν τις εγκαταστήσετε από τον παρακάτω σύνδεσμο
- Απομακρυσμένη βιβλιοθήκη IR για TSOP και IR Blaster
- Βιβλιοθήκη Adafruit για OLED
- Βιβλιοθήκη γραφικών GFX για OLED
- Βιβλιοθήκη αισθητήρων DHT11 για αισθητήρα θερμοκρασίας
Εργασία τηλεχειριστηρίου AC:
Προτού προχωρήσουμε στο έργο αφιερώστε λίγο χρόνο και παρατηρήστε πώς λειτουργεί το τηλεχειριστήριο AC σας. Τα τηλεχειριστήρια AC λειτουργούν με λίγο διαφορετικό τρόπο σε σύγκριση με τηλεχειριστήρια τηλεόρασης, DVD IR. Μπορεί να υπάρχουν μόνο 10-12 κουμπιά στο τηλεχειριστήριό σας, αλλά θα μπορούν να στέλνουν πολλούς διαφορετικούς τύπους σημάτων. Δηλαδή το τηλεχειριστήριο δεν στέλνει τον ίδιο κωδικό κάθε φορά για το ίδιο κουμπί. Για παράδειγμα, όταν μειώσετε τη θερμοκρασία χρησιμοποιώντας το κουμπί κάτω για να το κάνετε 24 ° C (βαθμός Κελσίου) θα λάβετε ένα σήμα με ένα σύνολο δεδομένων, αλλά όταν το πατήσετε ξανά για να ρυθμίσετε τους 25 ° C δεν θα λάβετε το ίδιο Δεδομένα δεδομένου ότι η θερμοκρασία είναι τώρα 25 και όχι 24. Ομοίως, ο κωδικός για 25 θα διαφέρει επίσης για διαφορετική ταχύτητα ανεμιστήρα, ρυθμίσεις αναμονής κ.λπ..
Ένα άλλο πρόβλημα είναι η ποσότητα δεδομένων που αποστέλλονται για κάθε πάτημα κουμπιού, κανονικά τηλεχειριστήρια με αποστολή είτε 24 bit είτε 48 bit, αλλά ένα τηλεχειριστήριο AC μπορεί να στείλει έως και 228 bit, καθώς κάθε σήμα περιέχει πολλές πληροφορίες όπως Temp, Fan Speed, Χρόνος ύπνου, Swing style κλπ. Αυτός είναι ο λόγος για τον οποίο χρειαζόμαστε ένα Arduino Mega για καλύτερες επιλογές αποθήκευσης.
Διάγραμμα κυκλώματος και επεξήγηση:
Ευτυχώς, η εγκατάσταση υλικού αυτού του Αυτόματος Έλεγχος Θερμοκρασίας AC είναι πολύ εύκολη. Μπορείτε απλά να χρησιμοποιήσετε ένα breadboard και να κάνετε τις συνδέσεις όπως φαίνεται παρακάτω.
Ο παρακάτω πίνακας μπορεί επίσης να χρησιμοποιηθεί για την επαλήθευση των συνδέσεών σας.
S.No: |
Καρφίτσα συστατικού |
Arduino Pin |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED- SCK, D0, SCL, CLK |
4 |
4 |
OLED- SDA, D1, MOSI, Δεδομένα |
3 |
5 |
OLED- RES, RST, RESET |
7 |
6 |
OLED- DC, Α0 |
5 |
7 |
OLED- CS, Chip Select |
6 |
8 |
DHT11 - Vcc |
5V |
9 |
DHT11 - Gnd |
Gnd |
10 |
DHT11 - Σήμα |
13 |
11 |
TSOP - Vcc |
5V |
12 |
TSOP - Gnd |
Gnd |
13 |
IR Led - Anode |
9 |
14 |
IR Led - Κάθοδος |
Gnd |
Μόλις ολοκληρωθούν οι συνδέσεις, θα πρέπει να φαίνεται κάτι τέτοιο παρακάτω. Έχω χρησιμοποιήσει ένα Breadboard για να τακτοποιήσετε τα πράγματα, αλλά μπορείτε επίσης εσείς να κάνετε σύρματα από αρσενικό σε θηλυκό για να συνδέσετε όλα τα εξαρτήματα
Αποκωδικοποίηση των απομακρυσμένων σημάτων AC:
Το πρώτο βήμα για τον έλεγχο του AC σας είναι να χρησιμοποιήσετε το TSOP1738 για να αποκωδικοποιήσετε τους κωδικούς IR τηλεχειριστηρίου AC. Κάντε όλες τις συνδέσεις όπως φαίνεται στο διάγραμμα κυκλώματος και βεβαιωθείτε ότι έχετε εγκαταστήσει όλες τις αναφερόμενες βιβλιοθήκες. Τώρα ανοίξτε το παράδειγμα προγράμματος " IRrecvDumpV2 " το οποίο μπορείτε να βρείτε στο Αρχείο -> Παραδείγματα -> IRremote -> IRrecvDumpV2 . Ανεβάστε το πρόγραμμα στο Arduino Mega και ανοίξτε το Serial Monitor.
Στρέψτε το τηλεχειριστήριό σας προς το TSOP και πατήστε οποιοδήποτε κουμπί, για κάθε κουμπί που πατάτε το αντίστοιχο σήμα του θα διαβάζεται από το TSOP1738, αποκωδικοποιείται από τον Arduino και θα εμφανίζεται στο Serial Monitor. Για κάθε αλλαγή θερμοκρασίας στο τηλεχειριστήριό σας θα λαμβάνετε διαφορετικά δεδομένα. Αποθηκεύστε αυτά τα δεδομένα γιατί θα τα χρησιμοποιούμε στο κύριο πρόγραμμά μας. Η σειριακή οθόνη σας θα μοιάζει κάπως έτσι, έχω δείξει επίσης το αρχείο Word στο οποίο έχω αποθηκεύσει τα αντιγραμμένα δεδομένα.
Το στιγμιότυπο οθόνης δείχνει τον κωδικό για τη ρύθμιση της θερμοκρασίας στους 26 ° C για το τηλεχειριστήριο AC. Με βάση το τηλεχειριστήριό σας θα λάβετε ένα διαφορετικό σύνολο κωδικών. Ομοίως αντιγράψτε τους κωδικούς για όλα τα διαφορετικά επίπεδα θερμοκρασίας. Μπορείτε να ελέγξετε όλους τους κωδικούς IR τηλεχειριστηρίου κλιματιστικού στον Κωδικό Arduino που δίνονται στο τέλος αυτού του σεμιναρίου.
Κύριο πρόγραμμα Arduino:
Το πλήρες κύριο πρόγραμμα Arduino βρίσκεται στο κάτω μέρος αυτής της σελίδας, αλλά δεν μπορείτε να χρησιμοποιήσετε το ίδιο πρόγραμμα. Πρέπει να αλλάξετε τις τιμές του κώδικα σήματος που μόλις αποκτήσαμε από το παραπάνω παράδειγμα. Ανοίξτε το κύριο πρόγραμμα για εσάς Arduino IDE και μετακινηθείτε προς τα κάτω σε αυτήν την περιοχή που φαίνεται παρακάτω όπου πρέπει να αντικαταστήσετε τις τιμές πίνακα με τις τιμές που αποκτήσατε για το τηλεχειριστήριό σας.
Σημειώστε ότι έχω χρησιμοποιήσει 10 συστοιχίες από τις οποίες δύο χρησιμοποιούνται για να ενεργοποιήσετε και να απενεργοποιήσετε το εναλλασσόμενο ρεύμα, ενώ οι υπόλοιπες 8 χρησιμοποιούνται για να ρυθμίσετε διαφορετική θερμοκρασία. Για παράδειγμα, το Temp23 χρησιμοποιείται για να ρυθμίσει τους 23 ° C στο AC σας, οπότε χρησιμοποιήστε τον αντίστοιχο κωδικό σε αυτή τη σειρά. Μόλις γίνει αυτό, πρέπει απλώς να ανεβάσετε τον κωδικό στο Arduino σας και να τον τοποθετήσετε απέναντι από εσάς AC και να απολαύσετε το δροσερό αεράκι.
Η Επεξήγηση του κώδικα έχει ως εξής, πρώτα πρέπει να χρησιμοποιήσουμε τον αισθητήρα θερμοκρασίας DHT1 για να διαβάσουμε τη Θερμοκρασία και την Υγρασία και να τον εμφανίσουμε στο OLED. Αυτό γίνεται με τον ακόλουθο κώδικα.
DHT.read11 (DHT11_PIN); // Διαβάστε τη θερμοκρασία και την υγρασία που μετρήθηκε_temp = DHT.temperature + temp_error; Μέτρηση_Humi = DHT. Υγρασία // δοκιμές εμφάνισης κειμένου display.setTextSize (1); display.setTextColor (ΛΕΥΚΟ); display.setCursor (0,0); display.print ("Θερμοκρασία:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("Υγρασία:"); display.print (Measured_Humi); display.println ("%");
Μόλις μάθουμε τη Θερμοκρασία του δωματίου, πρέπει απλώς να το συγκρίνουμε με την επιθυμητή τιμή. Αυτή η επιθυμητή τιμή είναι μια σταθερή τιμή που ορίζεται ως 27 ° C (βαθμός Κελσίου) στο πρόγραμμά μου. Έτσι με βάση αυτή τη σύγκριση θα ορίσουμε μια αντίστοιχη θερμοκρασία AC όπως φαίνεται παρακάτω
if (Measured_temp == Desired_temperature + 3) // Εάν το AC είναι ON και η θερμοκρασία μέτρησης είναι πολύ υψηλή από το επιθυμητό {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); καθυστέρηση (2000); // Αποστολή σήματος για ρύθμιση 24 * C AC_Temp = 24; }
Εδώ το AC θα ρυθμιστεί στους 24 ° C όταν η θερμοκρασία μέτρησης είναι 30 ° C (αφού η επιθυμητή θερμοκρασία είναι 27). Παρομοίως, μπορούμε να δημιουργήσουμε πολλά βρόχους If για να ορίσουμε διαφορετικό επίπεδο θερμοκρασιών με βάση τη μετρούμενη θερμοκρασία όπως φαίνεται παρακάτω.
if (Measured_temp == Desired_temperature-1) // Εάν το AC είναι ON και η θερμοκρασία μέτρησης είναι χαμηλή από την επιθυμητή τιμή {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); καθυστέρηση (2000); // Στείλτε σήμα στη ρύθμιση 28 * C AC_Temp = 28; } if (Measured_temp == Desired_temperature-2) // Εάν το AC είναι ON και η θερμοκρασία μέτρησης είναι πολύ χαμηλή από την επιθυμητή τιμή {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); καθυστέρηση (2000); // Αποστολή σήματος στη ρύθμιση 29 * C AC_Temp = 29; } if (Measured_temp == Desired_temperature-3) // Αν το AC είναι ON και η θερμοκρασία μέτρησης είναι πολύ χαμηλή επιθυμητή τιμή {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); καθυστέρηση (2000); // Αποστολή σήματος για ρύθμιση 30 * C AC_Temp = 30; }
Εργασία αυτόματου συστήματος ελέγχου θερμοκρασίας AC:
Όταν ο Κώδικας και το υλικό σας είναι έτοιμα, Ανεβάστε τον Κώδικα στον πίνακα σας και θα πρέπει να παρατηρήσετε ότι το OLED εμφανίζει κάτι παρόμοιο με αυτό.
Τώρα τοποθετήστε το κύκλωμα απέναντι από το κλιματιστικό σας και παρατηρείτε ότι η θερμοκρασία του AC ελέγχεται με βάση τη θερμοκρασία των δωματίων. Μπορείτε να προσπαθήσετε να αυξήσετε τη θερμοκρασία κοντά στον αισθητήρα DHT11 για να ελέγξετε εάν η θερμοκρασία του AC ελέγχεται όπως φαίνεται στο παρακάτω βίντεο.
Μπορείτε να τροποποιήσετε το πρόγραμμα για να εκτελέσετε οποιαδήποτε επιθυμητή ενέργεια. το μόνο που χρειάζεστε είναι ο κωδικός που αποκτήσατε από το παράδειγμα σκίτσου. Ελπίζω να καταλάβατε αυτό το έργο Automatic Temperature Controller και να απολαύσατε κάτι παρόμοιο. Ξέρω ότι υπάρχουν πολλά μέρη εδώ για να κολλήσουν, αλλά μην ανησυχείτε τότε. Απλώς χρησιμοποιήστε την ενότητα φόρουμ ή σχολίων για να εξηγήσετε το πρόβλημά σας και οι άνθρωποι εδώ σίγουρα θα σας βοηθήσουν να το λύσετε.