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

Έξυπνος έλεγχος ανεμιστήρα Raspberry Pi χρησιμοποιώντας Python & Thingspeak: 7 βήματα
Έξυπνος έλεγχος ανεμιστήρα Raspberry Pi χρησιμοποιώντας Python & Thingspeak: 7 βήματα

Βίντεο: Έξυπνος έλεγχος ανεμιστήρα Raspberry Pi χρησιμοποιώντας Python & Thingspeak: 7 βήματα

Βίντεο: Έξυπνος έλεγχος ανεμιστήρα Raspberry Pi χρησιμοποιώντας Python & Thingspeak: 7 βήματα
Βίντεο: CS50 2013 - Week 10, continued 2024, Ιούλιος
Anonim
Έξυπνος έλεγχος ανεμιστήρα Raspberry Pi χρησιμοποιώντας Python & Thingspeak
Έξυπνος έλεγχος ανεμιστήρα Raspberry Pi χρησιμοποιώντας Python & Thingspeak

Σύντομη περίληψη

Από προεπιλογή, ο ανεμιστήρας συνδέεται απευθείας με το GPIO - αυτό συνεπάγεται τη συνεχή λειτουργία του. Παρά τη σχετικά αθόρυβη λειτουργία του ανεμιστήρα, η συνεχής λειτουργία του δεν αποτελεί αποτελεσματική χρήση ενεργού συστήματος ψύξης. Ταυτόχρονα, η συνεχής λειτουργία ενός ανεμιστήρα μπορεί απλά να είναι ενοχλητική. Επίσης, εάν το Raspberry Pi είναι απενεργοποιημένο, ο ανεμιστήρας θα εξακολουθήσει να λειτουργεί εάν το ρεύμα είναι συνδεδεμένο.

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

Τι θα μάθετε

Πώς να εφαρμόσετε ένα σενάριο Python για τον έλεγχο ενός ανεμιστήρα με βάση την τρέχουσα θερμοκρασία του επεξεργαστή Raspberry χρησιμοποιώντας έλεγχο On-Off με υστέρηση θερμοκρασίας. Πώς να μεταφέρετε δεδομένα από το RaspberryPi σας στο Things Speak Cloud.

Προμήθειες

Τα στοιχεία που θα απαιτηθούν για αυτό το έργο είναι τα ακόλουθα

  • Raspberry Pi 4 Υπολογιστής Μοντέλο Β 4GB
  • Αντίσταση τρανζίστορ NPN S8050330ohms
  • Μεταλλική θήκη Armor Aluminium με διπλούς ανεμιστήρες για Raspberry Pi
  • Καλώδια βραχυκύκλωσης
  • Breadboard

Βήμα 1: Δημιουργία κυκλώματος

Χτίζοντας το κύκλωμα
Χτίζοντας το κύκλωμα
Χτίζοντας το κύκλωμα
Χτίζοντας το κύκλωμα

Το κύκλωμα είναι αρκετά απλό. Η τροφοδοσία του ανεμιστήρα διακόπτεται χρησιμοποιώντας τρανζίστορ NPN. Σε αυτή τη διαμόρφωση, το τρανζίστορ λειτουργεί ως διακόπτης χαμηλής πλευράς. Η αντίσταση απαιτείται μόνο για να περιορίσει το ρεύμα μέσω GPIO. Το GPIO του Raspberry Pi έχει μέγιστη ισχύ εξόδου 16mA. Χρησιμοποίησα 330 ωμ που μας δίνει ένα ρεύμα βάσης περίπου (5-0,7)/330 = 13mA. Επέλεξα ένα τρανζίστορ NPN S8050, οπότε η αλλαγή φορτίου 400mA και από τους δύο ανεμιστήρες δεν αποτελεί πρόβλημα.

Βήμα 2: Καταγράψτε τη θερμοκρασία της CPU με το ThingSpeak

Καταγράψτε τη θερμοκρασία της CPU με το ThingSpeak
Καταγράψτε τη θερμοκρασία της CPU με το ThingSpeak

Το ThingSpeak είναι μια πλατφόρμα για έργα που βασίζονται στην έννοια του Internet of Things. Αυτή η πλατφόρμα σάς επιτρέπει να δημιουργείτε εφαρμογές βάσει δεδομένων που συλλέγονται από αισθητήρες. Τα κύρια χαρακτηριστικά του ThingSpeak περιλαμβάνουν: συλλογή δεδομένων σε πραγματικό χρόνο, επεξεργασία δεδομένων και οπτικοποίηση. Το ThingSpeak API όχι μόνο σας επιτρέπει να στέλνετε, να αποθηκεύετε και να έχετε πρόσβαση σε δεδομένα, αλλά παρέχει επίσης διάφορες στατιστικές μεθόδους για την επεξεργασία τους.

Το ThingSpeak μπορεί να ενσωματώσει δημοφιλείς συσκευές και υπηρεσίες όπως:

  • Arduino
  • Βατόμουρο pii
  • oBridge / RealTime.io
  • Ηλεκτρικό χαλί
  • Εφαρμογές για κινητά και Web
  • Κοινωνικά δίκτυα
  • Ανάλυση δεδομένων στο MATLAB

Πριν ξεκινήσουμε, χρειάζεστε έναν λογαριασμό στο ThingSpeak.

  1. Μεταβείτε στον παρακάτω σύνδεσμο και εγγραφείτε στο ThingSpeak.
  2. Μετά την ενεργοποίηση του λογαριασμού σας, συνδεθείτε.
  3. Μεταβείτε στα Κανάλια -> Τα Κανάλια μου
  4. Κάντε κλικ στο κουμπί Νέο κανάλι.
  5. Εισαγάγετε το όνομα, την περιγραφή και τα πεδία των δεδομένων που θέλετε να ανεβάσετε
  6. Κάντε κλικ στο κουμπί Αποθήκευση καναλιού για να αποθηκεύσετε όλες τις ρυθμίσεις σας.

Χρειαζόμαστε ένα κλειδί API, το οποίο θα προσθέσουμε αργότερα στον κώδικα python για να ανεβάσουμε τη θερμοκρασία της CPU μας στο Thingspeak cloud.

Κάντε κλικ στην καρτέλα Κλειδιά API για να λάβετε το Κλειδί εγγραφής API

Μόλις έχετε το Κλειδί εγγραφής API, είμαστε σχεδόν έτοιμοι να ανεβάσουμε τα δεδομένα μας.

Βήμα 3: Λήψη της θερμοκρασίας της CPU από ένα Raspberry Pi χρησιμοποιώντας Python

Το σενάριο βασίζεται στην ανάκτηση της θερμοκρασίας του επεξεργαστή, η οποία εμφανίζεται κάθε δευτερόλεπτο. Μπορεί να ληφθεί από το τερματικό εκτελώντας την εντολή vcgencmd με την παράμετρο μέτρησης_temp.

vcgencmd μέτρηση_τέμ

Η βιβλιοθήκη Subprocess.check_output () χρησιμοποιήθηκε για την εκτέλεση της εντολής και στη συνέχεια χρησιμοποιώντας κανονική έκφραση για την εξαγωγή της πραγματικής τιμής από την επιστρεφόμενη συμβολοσειρά.

από υποεπεξεργασία εισαγωγή check_output

από εκ νέου εισαγωγή findalldef get_temp (): temp = check_output (["vcgencmd", "μέτρα_temp"]). αποκωδικοποίηση () temp = float (findall ('\ d+\. / d+', temp) [0]) επιστροφή (temp) εκτύπωση (get_temp ())

Μετά την ανάκτηση της τιμής της θερμοκρασίας, τα δεδομένα πρέπει να σταλούν στο ThingSpeak cloud. Χρησιμοποιήστε το Κλειδί εγγραφής API για να αλλάξετε τη μεταβλητή myApi στον παρακάτω κώδικα Python.

από το αίτημα εισαγωγής urllib

από εκ νέου εισαγωγή findall από χρόνο εισαγωγής ύπνου από υποεπεξεργασία check_output myAPI = '#################' baseURL = 'https://api.thingspeak.com/update?api_key=% s ' % myAPIdef get_temp (): temp = check_output (["vcgencmd", "μέτρα_temp"]). αποκωδικοποίηση () temp = float (findall (' / d+\. / d+', temp) [0]) επιστροφή (temp) try: while True: temp = get_temp () conn = request.urlopen (baseURL + '& field1 = % s' % (temp)) print (str (temp)) conn.close () sleep (1) εκτός KeyboardIntrupt: print ("Έξοδος από τα πατημένα Ctrl+C")

Βήμα 4: Έλεγχος του ανεμιστήρα με βάση τη θερμοκρασία

Το σενάριο Python που φαίνεται παρακάτω υλοποιεί τη λογική που ενεργοποιεί τον ανεμιστήρα όταν η θερμοκρασία ανεβαίνει πάνω από το tempOn και απενεργοποιείται μόνο όταν η θερμοκρασία πέσει κάτω από το όριο. Με αυτόν τον τρόπο, ο ανεμιστήρας δεν ενεργοποιείται και απενεργοποιείται γρήγορα.

εισαγωγή RPi. GPIO ως GPIO

εισαγωγή sys από εκ νέου εισαγωγή findall από χρόνο εισαγωγή ύπνου από υποεπεξεργασία check_output def get_temp (): temp = check_output (["vcgencmd", "μέτρα_temp"]). αποκωδικοποίηση () temp = float (findall ('\ d+\. / d+ ', temp) [0]) return (temp) try: GPIO.setwarnings (False) tempOn = 50 threshold = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, αρχικό = 0) ενώ True: temp = get_temp () if temp> tempOn και όχι pinState ή temp <tempOn - threshold and pinState: pinState = not pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) sleep (1) εκτός KeyboardIntrupt: print ("Exit pressed Ctrl+C") εκτός: print ("Other Exception") print ("--- Start Exception Data:") traceback.print_exc (limit = 2, file = sys.stdout) print ("--- End Exception Data:") τέλος: print ("CleanUp") GPIO.cleanup () print ("End of program")

Βήμα 5: Τελικός κώδικας Python

Ο κύριος κώδικας python βρίσκεται στον λογαριασμό μου στο GitHub στον παρακάτω σύνδεσμο. Θυμηθείτε να βάλετε το δικό σας Κλειδί εγγραφής API.

  1. Συνδεθείτε στον πίνακα Raspberry PI
  2. Εκτελέστε την ακόλουθη εντολή στο τερματικό

python3 cpu.py

Βήμα 6: Παρακολούθηση δεδομένων μέσω του Thingspeak Cloud

Παρακολούθηση δεδομένων μέσω του cloud Thingspeak
Παρακολούθηση δεδομένων μέσω του cloud Thingspeak

Μετά από λίγο, ανοίξτε το κανάλι σας στο ThingSpeak και θα δείτε τη θερμοκρασία που ανεβαίνει στο σύννεφο Thingspeak σε πραγματικό χρόνο.

Βήμα 7: Εκτελέστε το Python Script κατά την εκκίνηση

Για να το κάνετε αυτό, στο τέλος του αρχείου /etc/rc.local:

sudo nano /etc/rc.local

Πρέπει να τοποθετήσετε την εντολή έναρξης σεναρίου μπροστά από την έξοδο γραμμής 0:

sudo python /home/pi/cpu.py &

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

Συνιστάται: