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

Παρακολούθηση θερμοκρασίας και υγρασίας χρησιμοποιώντας Raspberry Pi: 6 βήματα (με εικόνες)
Παρακολούθηση θερμοκρασίας και υγρασίας χρησιμοποιώντας Raspberry Pi: 6 βήματα (με εικόνες)

Βίντεο: Παρακολούθηση θερμοκρασίας και υγρασίας χρησιμοποιώντας Raspberry Pi: 6 βήματα (με εικόνες)

Βίντεο: Παρακολούθηση θερμοκρασίας και υγρασίας χρησιμοποιώντας Raspberry Pi: 6 βήματα (με εικόνες)
Βίντεο: Έρχεται ΝΕΡΟ! Ψάρεμα στην άγρια ​​φύση. Ξέχασα τα ματς!! 2024, Ιούλιος
Anonim
Παρακολούθηση θερμοκρασίας και υγρασίας με χρήση Raspberry Pi
Παρακολούθηση θερμοκρασίας και υγρασίας με χρήση Raspberry Pi
Παρακολούθηση θερμοκρασίας και υγρασίας με χρήση Raspberry Pi
Παρακολούθηση θερμοκρασίας και υγρασίας με χρήση Raspberry Pi

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

Χρησιμοποιώ έναν πίνακα Raspberry Pi 1 και τον αισθητήρα DHT22. Μπορείτε να κάνετε το ίδιο σε οποιονδήποτε υπολογιστή έχει Internet, GPIO και Python. Ο φθηνότερος αισθητήρας DHT11 λειτουργεί επίσης καλά.

Βήμα 1: Προετοιμασία υλικού

Προετοιμασία υλικού
Προετοιμασία υλικού
Προετοιμασία υλικού
Προετοιμασία υλικού

Ας ξεκινήσουμε από την αρχή, καθώς δεν χρησιμοποιούσα το Raspberry Pi για πολύ καιρό.

Θα χρειαστούμε:

  • Raspberry Pi board (ή άλλη πλατφόρμα προσανατολισμένη στο IoT).
  • Κάρτα SD ή microSD (ανάλογα με την πλατφόρμα).
  • 5V/1A μέσω micro-USB.
  • Καλώδιο LAN, το οποίο παρέχει σύνδεση στο Διαδίκτυο.
  • Οθόνη HDMI, οθόνη RCA ή θύρα UART (για ενεργοποίηση SSH).

Το πρώτο βήμα είναι η λήψη του Raspbian. Έχω επιλέξει την έκδοση Lite, καθώς πρόκειται να χρησιμοποιήσω SSH αντί για οθόνη. Τα πράγματα έχουν αλλάξει από την τελευταία φορά που το έκανα: τώρα υπάρχει ένα εξαιρετικό λογισμικό καύσης που ονομάζεται Etcher, το οποίο λειτουργεί τέλεια και έχει εκπληκτικό σχεδιασμό Το

Αφού ολοκληρώθηκε η εγγραφή της εικόνας, έβαλα την κάρτα SD στο Pi μου, έβαλα τα καλώδια LAN και τροφοδοσίας και μετά από λίγο, ο δρομολογητής μου κατέγραψε τη νέα συσκευή.

Βήμα 2: Ενεργοποίηση SSH

Ενεργοποίηση SSH
Ενεργοποίηση SSH
Ενεργοποίηση SSH
Ενεργοποίηση SSH
Ενεργοποίηση SSH
Ενεργοποίηση SSH

Το SSH είναι απενεργοποιημένο από προεπιλογή. Μπορώ να χρησιμοποιήσω είτε μετατροπέα UART-USB είτε απλά να συνδέσω μια οθόνη για να έχω πρόσβαση στο κέλυφος και να ενεργοποιήσω το SSH.

Μετά την επανεκκίνηση, είμαι επιτέλους. Πρώτα πράγματα πρώτα, ας ενημερώσουμε:

sudo apt update && sudo apt upgrade -y

Τώρα ας συνδέσουμε αυτήν τη νέα συσκευή στο Cloud.

Βήμα 3: Εγκατάσταση του Cloud4RPi

Εγκατάσταση του Cloud4RPi
Εγκατάσταση του Cloud4RPi

Αποφάσισα να δοκιμάσω την πλατφόρμα cloud που ονομάζεται Cloud4RPi, η οποία έχει σχεδιαστεί για IoT.

Σύμφωνα με τα έγγραφα, χρειαζόμαστε τα ακόλουθα πακέτα για να λειτουργήσει:

sudo apt install git python python -pip -y

Η βιβλιοθήκη πελάτη μπορεί να εγκατασταθεί σε μία μόνο εντολή:

sudo pip εγκατάσταση cloud4rpi

Τώρα χρειαζόμαστε κάποιο δείγμα κώδικα για να διασφαλίσουμε ότι λειτουργεί.

git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git clone https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git ελάχιστο e && mv && rmdir -re

Αποφάσισα να εκτελέσω το minimal.py, αλλά δεν μου αρέσουν τα πλαστά δεδομένα. Ευτυχώς, παρατήρησα έναν εύκολο τρόπο για να γίνουν τα διαγνωστικά δεδομένα αληθινά σε αυτό το παράδειγμα. Προσθέστε μια ακόμη εισαγωγή στην ενότητα εισαγωγές:

από εισαγωγή rpi *

Στη συνέχεια, διαγράψτε αυτές τις λειτουργίες που παρέχουν ψεύτικα δεδομένα (το rpi.py τα ορίζει τώρα):

def cpu_temp ():

return 70 def ip_address (): return '8.8.8.8' def host_name (): return 'hostname' def os_name (): return 'osx'

Τώρα χρειαζόμαστε ένα διακριτικό, το οποίο επιτρέπει στο Cloud4RPi να συνδέει τις συσκευές με τους λογαριασμούς. Για να αποκτήσετε ένα, δημιουργήστε έναν λογαριασμό στο cloud4rpi.io και πατήστε το κουμπί Νέα συσκευή σε αυτήν τη σελίδα. Αντικαταστήστε τη συμβολοσειρά _YOUR_DEVICE_TOKEN_ στο αρχείο minimal.py με το διακριτικό της συσκευής σας και αποθηκεύστε το αρχείο. Τώρα είμαστε έτοιμοι για το πρώτο λανσάρισμα.

python minimal.py

Ανοίξτε τη σελίδα της συσκευής και ελέγξτε ότι τα δεδομένα είναι εκεί.

Τώρα ας περάσουμε στα δεδομένα του πραγματικού κόσμου.

Βήμα 4: Σύνδεση του αισθητήρα

Σύνδεση του αισθητήρα
Σύνδεση του αισθητήρα

Θα χρειαστούμε:

  • Αισθητήρας υγρασίας DHT22 ή DHT11
  • Αντοχή αντίστασης (5-10 KΩ)
  • Καλώδια

Ο αισθητήρας DHT22 μετρά τη θερμοκρασία και την υγρασία ταυτόχρονα. Το πρωτόκολλο επικοινωνίας δεν είναι τυποποιημένο, επομένως δεν χρειάζεται να το ενεργοποιήσουμε στο raspi -config - ένας απλός πείρος GPIO είναι υπεραρκετός.

Για να αποκτήσω τα δεδομένα, θα χρησιμοποιήσω τη μεγάλη βιβλιοθήκη του Adafruit για αισθητήρες DHT, αλλά μπορεί να μην λειτουργεί όπως είναι. Κάποτε βρήκα μια περίεργη συνεχή καθυστέρηση στον κώδικα, ο οποίος δεν λειτούργησε για το υλικό μου, και μετά από δύο χρόνια το αίτημα έλξης μου εξακολουθεί να εκκρεμεί. Έχω αλλάξει επίσης τις σταθερές ανίχνευσης της πλακέτας επειδή το Raspberry Pi 1 μου με BCM2835 ανιχνεύθηκε εκπληκτικά ως Raspberry Pi 3. Μακάρι να ήταν αληθινό … Έτσι, συνιστώ να χρησιμοποιώ το πιρούνι μου. Εάν αντιμετωπίζετε προβλήματα με αυτό, δοκιμάστε το αρχικό αποθετήριο, ίσως λειτουργεί για κάποιον, αλλά δεν είμαι ένας από αυτούς.

git clone https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT

Καθώς η βιβλιοθήκη είναι γραμμένη σε C, απαιτεί μεταγλώττιση, οπότε χρειάζεστε τα απαραίτητα πακέτα build και python-dev.

sudo apt install build-essential python-dev -ysudo python setup.py install

Κατά την εγκατάσταση των πακέτων, συνδέστε το DHT22 όπως φαίνεται στην εικόνα.

Και δοκιμάστε το:

cd ~ python -c "εισαγωγή Adafruit_DHT ως d; εκτύπωση d.read_retry (d. DHT22, 4)"

Αν δείτε κάτι σαν (39.20000076293945, 22.600000381469727), θα πρέπει να γνωρίζετε ότι αυτή είναι η υγρασία στα ποσοστά και η θερμοκρασία στους Κελσίου.

Τώρα, ας συγκεντρώσουμε τα πάντα μαζί!

Βήμα 5: Αποστολή αναγνωστικών αισθητήρων στο Cloud

Αποστολή αναγνωστικών αισθητήρων στο Cloud
Αποστολή αναγνωστικών αισθητήρων στο Cloud

Θα χρησιμοποιήσω το minimal.py ως βάση και θα προσθέσω την αλληλεπίδραση DHT22 σε αυτό.

cd cloud4rpi-raspberrypi-python

cp minimal.py ~/cloud_dht22.py cp rpi.py/rpi.py cd vi cloud_dht22.py

Καθώς το DHT22 επιστρέφει τη θερμοκρασία και την υγρασία σε μία μόνο κλήση, τα αποθηκεύω σε παγκόσμιο επίπεδο και ενημερώνω μόνο μία φορά σε ένα αίτημα, υποθέτοντας ότι η καθυστέρηση μεταξύ τους είναι μεγαλύτερη από 10 δευτερόλεπτα. Εξετάστε τον ακόλουθο κώδικα, ο οποίος λαμβάνει τα δεδομένα DHT22:

εισαγωγή Adafruit_DHT

temp, hum = Καμία, Καμία last_update = time.time () - 20 def update_data (): καθολική last_update, hum, temp if time.time () - last_update> 10: hum, temp = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) last_update = time.time () def get_t (): update_data () round turn (temp, 2) if temp is not Κανένα άλλο Κανένα def get_h (): update_data () γύρος επιστροφής (βουητό, 2) αν το hum δεν είναι Κανένας άλλος Κανένας

Εισαγάγετε αυτόν τον κωδικό μετά τις υπάρχουσες εισαγωγές και επεξεργαστείτε την ενότητα μεταβλητές, έτσι ώστε να χρησιμοποιεί τις νέες συναρτήσεις:

μεταβλητές = {

'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type ':' numeric ',' bind ': cpu_temp}}

Πατήστε το κόκκινο κουμπί για να ξεκινήσει η μεταφορά δεδομένων:

python cloud_dht22.py

Στη συνέχεια, μπορείτε να ελέγξετε τη σελίδα της συσκευής.

Μπορείτε να το αφήσετε ως έχει, αλλά προτιμώ να έχω μια υπηρεσία για τα πάντα. Αυτό διασφαλίζει ότι το σενάριο είναι πάντα σε λειτουργία. Δημιουργία υπηρεσίας με το πλήρως αυτοματοποιημένο σενάριο:

wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py

Έναρξη της υπηρεσίας:

εκκίνηση της υπηρεσίας sudo cloud4rpi

Και ελέγχοντας το:

pi@raspberrypi: su $ sudo service cloud4rpi status -l

● cloud4rpi.service-Cloud4RPi daemon Loaded: loaded (loaded (/lib/systemd/system/cloud4rpi.service; enabled) Active: active (running) από Τετ 2017-05-17 20:22:48 UTC; Πριν από 1 λεπτό Κύριο PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.pyΜάι 17 20:22:51 raspberrypi python [560]: Δημοσίευση iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20 … y'}]} 17 Μαΐου 20:22:53 raspberrypi python [560]: Δημοσίευση iot-hub/μηνυμάτων: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17 Μαΐου 20:22:53 raspberrypi python [560]: Δημοσίευση iot-hub/μηνυμάτων: {'type': 'system', 'ts': '2017-05-17T20….4'}}

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

Βήμα 6: Διαγράμματα και συναγερμοί

Διαγράμματα και συναγερμοί
Διαγράμματα και συναγερμοί
Διαγράμματα και συναγερμοί
Διαγράμματα και συναγερμοί
Διαγράμματα και συναγερμοί
Διαγράμματα και συναγερμοί

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

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

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

Μπορείτε να χρησιμοποιήσετε το Cloud4RPi δωρεάν με οποιοδήποτε υλικό που είναι σε θέση να εκτελέσει Python. Όσον αφορά εμένα, τώρα ξέρω πάντα πότε πρέπει να ενεργοποιήσω τον υγραντήρα αέρα και μπορώ ακόμη και να τον συνδέσω σε ρελέ για τηλεχειρισμό μέσω Cloud4RPi. Είμαι έτοιμος για ζέστη! Καλώς ήρθες καλοκαίρι!

Συνιστάται: