Πίνακας περιεχομένων:
- Βήμα 1: Προετοιμασία υλικού
- Βήμα 2: Ενεργοποίηση SSH
- Βήμα 3: Εγκατάσταση του Cloud4RPi
- Βήμα 4: Σύνδεση του αισθητήρα
- Βήμα 5: Αποστολή αναγνωστικών αισθητήρων στο Cloud
- Βήμα 6: Διαγράμματα και συναγερμοί
Βίντεο: Παρακολούθηση θερμοκρασίας και υγρασίας χρησιμοποιώντας Raspberry Pi: 6 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Το καλοκαίρι έρχεται και όσοι δεν διαθέτουν κλιματιστικό θα πρέπει να είναι προετοιμασμένοι να ελέγχουν την ατμόσφαιρα σε εσωτερικούς χώρους χειροκίνητα. Σε αυτήν την ανάρτηση, περιγράφω τον σύγχρονο τρόπο μέτρησης των πιο σημαντικών παραμέτρων για την άνεση του ανθρώπου: τη θερμοκρασία και την υγρασία. Αυτά τα δεδομένα που συλλέγονται αποστέλλονται στο 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 είναι απενεργοποιημένο από προεπιλογή. Μπορώ να χρησιμοποιήσω είτε μετατροπέα UART-USB είτε απλά να συνδέσω μια οθόνη για να έχω πρόσβαση στο κέλυφος και να ενεργοποιήσω το SSH.
Μετά την επανεκκίνηση, είμαι επιτέλους. Πρώτα πράγματα πρώτα, ας ενημερώσουμε:
sudo apt update && sudo apt upgrade -y
Τώρα ας συνδέσουμε αυτήν τη νέα συσκευή στο Cloud.
Βήμα 3: Εγκατάσταση του 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
Θα χρησιμοποιήσω το 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. Είμαι έτοιμος για ζέστη! Καλώς ήρθες καλοκαίρι!
Συνιστάται:
Παρακολούθηση θερμοκρασίας και υγρασίας DHT χρησιμοποιώντας το ESP8266 και την πλατφόρμα IoT AskSensors: 8 βήματα
Παρακολούθηση θερμοκρασίας και υγρασίας DHT χρησιμοποιώντας το ESP8266 και την πλατφόρμα IoT της AskSensors: Σε προηγούμενο εκπαιδευτικό, παρουσίασα έναν οδηγό βήμα προς βήμα για να ξεκινήσετε με το ESP8266 nodeMCU και την πλατφόρμα IoT AskSensors. Σε αυτό το σεμινάριο, συνδέω έναν αισθητήρα DHT11 στον κόμβο MCU. Το DHT11 είναι μια κοινά χρησιμοποιούμενη θερμοκρασία και υγρασία
Παρακολούθηση θερμοκρασίας και υγρασίας χρησιμοποιώντας το ESP-01 & DHT και το σύννεφο AskSensors: 8 βήματα
Παρακολούθηση θερμοκρασίας και υγρασίας χρησιμοποιώντας το ESP-01 & DHT και το σύννεφο AskSensors: Σε αυτό το εκπαιδευτικό πρόγραμμα θα μάθουμε πώς να παρακολουθούμε τη θερμοκρασία και τις μετρήσεις υγρασίας χρησιμοποιώντας τον πίνακα IOT-MCU/ESP-01-DHT11 και την πλατφόρμα IoT της AskSensors . Επιλέγω τη μονάδα IOT-MCU ESP-01-DHT11 για αυτήν την εφαρμογή επειδή
Παρακολούθηση θερμοκρασίας και υγρασίας χρησιμοποιώντας SHT25 και Arduino Nano: 5 βήματα
Παρακολούθηση θερμοκρασίας και υγρασίας χρησιμοποιώντας SHT25 και Arduino Nano: Δουλέψαμε πρόσφατα σε διάφορα έργα που απαιτούσαν παρακολούθηση θερμοκρασίας και υγρασίας και στη συνέχεια συνειδητοποιήσαμε ότι αυτές οι δύο παράμετροι παίζουν πραγματικά κεντρικό ρόλο στην εκτίμηση της αποδοτικότητας λειτουργίας ενός συστήματος. Και οι δύο στο indus
Παρακολούθηση θερμοκρασίας και υγρασίας χρησιμοποιώντας SHT25 και Raspberry Pi: 5 βήματα
Παρακολούθηση θερμοκρασίας και υγρασίας χρησιμοποιώντας SHT25 και Raspberry Pi: Δουλέψαμε πρόσφατα σε διάφορα έργα που απαιτούσαν παρακολούθηση θερμοκρασίας και υγρασίας και στη συνέχεια συνειδητοποιήσαμε ότι αυτές οι δύο παράμετροι παίζουν πραγματικά κεντρικό ρόλο στην εκτίμηση της αποτελεσματικότητας λειτουργίας ενός συστήματος. Και οι δύο στο indus
Παρακολούθηση θερμοκρασίας και υγρασίας χρησιμοποιώντας SHT25 και σωματίδιο φωτονίου: 5 βήματα
Παρακολούθηση θερμοκρασίας και υγρασίας χρησιμοποιώντας SHT25 και Particle Photon: Δουλέψαμε πρόσφατα σε διάφορα έργα που απαιτούσαν παρακολούθηση θερμοκρασίας και υγρασίας και στη συνέχεια συνειδητοποιήσαμε ότι αυτές οι δύο παράμετροι παίζουν πραγματικά κεντρικό ρόλο στην εκτίμηση της αποδοτικότητας λειτουργίας ενός συστήματος. Και οι δύο στο indus