Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Προετοιμασία υλικού
- Βήμα 2: Εγκατάσταση του Cloud4RPi
- Βήμα 3: Σύνδεση του αισθητήρα
- Βήμα 4: Αποστολή αναγνωστικών αισθητήρων στο Cloud
- Βήμα 5: Διαγράμματα και συναγερμοί
Βίντεο: Υγρασία στο σύννεφο: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Το καλοκαίρι έρχεται και όσοι δεν διαθέτουν κλιματιστικό θα πρέπει να είναι προετοιμασμένοι να ελέγχουν την ατμόσφαιρα σε εσωτερικούς χώρους χειροκίνητα. Σε αυτήν την ανάρτηση, περιγράφω τον σύγχρονο τρόπο μέτρησης των πιο σημαντικών παραμέτρων για την άνεση του ανθρώπου: τη θερμοκρασία και την υγρασία. Αυτά τα δεδομένα που συλλέγονται αποστέλλονται στο cloud και επεξεργάζονται εκεί.
Προμήθειες
Χρησιμοποιώ μια πλακέτα Raspberry Pi και τον αισθητήρα 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 και τροφοδοσίας και μετά από λίγο, ο δρομολογητής μου κατέγραψε τη νέα συσκευή.
Μεγάλος! Ας συνεχίσουμε και SSH σε αυτό.
Η ασφάλεια είναι εντάξει, μου αρέσει, αλλά αυτό κάνει τα πράγματα λίγο πιο δύσκολα. Θα χρησιμοποιήσω προσαρμογέα UART-USB για πρόσβαση στο κέλυφος και ενεργοποίηση SSH…
Η χρήση οθόνης αντί για UART το κάνει πολύ πιο εύκολο.
Μετά την επανεκκίνηση, επιτέλους μπαίνω.
Πρώτα πρώτα, ας ενημερώσουμε:
sudo apt update && sudo apt upgrade -y
Τώρα ας συνδέσουμε αυτήν τη νέα συσκευή στο Cloud.
Βήμα 2: Εγκατάσταση του Cloud4RPi
Αποφάσισα να δοκιμάσω την πλατφόρμα cloud που ονομάζεται Cloud4RPi, η οποία έχει σχεδιαστεί για IoT.
Σύμφωνα με τα έγγραφα, χρειαζόμαστε τα ακόλουθα πακέτα για να λειτουργήσει:
sudo apt install git python3 python3 -pip -y
Η βιβλιοθήκη πελάτη μπορεί να εγκατασταθεί σε μία μόνο εντολή:
sudo pip3 εγκαταστήστε το cloud4rpi
Τώρα χρειαζόμαστε κάποιο δείγμα κώδικα.
git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python
Το εκτελέσιμο σενάριο είναι control.py.
Χρειαζόμαστε ένα διακριτικό, το οποίο επιτρέπει στο Cloud4RPi να συνδέει τις συσκευές με τους λογαριασμούς. Για να αποκτήσετε ένα, δημιουργήστε έναν λογαριασμό στο cloud4rpi.io και πατήστε το κουμπί Νέα συσκευή σε αυτήν τη σελίδα. Αντικαταστήστε τη συμβολοσειρά _YOUR_DEVICE_TOKEN_ στο αρχείο control.py με το διακριτικό της συσκευής σας και αποθηκεύστε το αρχείο. Τώρα είμαστε έτοιμοι για το πρώτο λανσάρισμα.
sudo python3 control.py
Ανοίξτε τη σελίδα της συσκευής και ελέγξτε ότι τα δεδομένα είναι εκεί.
Τώρα ας περάσουμε στα δεδομένα του πραγματικού κόσμου.
Βήμα 3: Σύνδεση του αισθητήρα
Θα χρειαστούμε:
- Αισθητήρας υγρασίας DHT22 ή DHT11
- Αντοχή αντίστασης (5-10 KΩ)
- WiresThe
Ο αισθητήρας DHT22 μετρά ταυτόχρονα τη θερμοκρασία και την υγρασία. Το πρωτόκολλο επικοινωνίας δεν είναι τυποποιημένο, επομένως δεν χρειάζεται να το ενεργοποιήσουμε στο raspi -config - ένας απλός πείρος GPIO είναι υπεραρκετός.
Για να αποκτήσω τα δεδομένα, θα χρησιμοποιήσω τη μεγάλη βιβλιοθήκη του Adafruit για αισθητήρες DHT, αλλά μπορεί να μην λειτουργεί όπως είναι. Κάποτε βρήκα μια περίεργη συνεχή καθυστέρηση στον κώδικα, ο οποίος δεν λειτούργησε για το υλικό μου, και μετά από δύο χρόνια το αίτημα έλξης μου εξακολουθεί να εκκρεμεί. Έχω αλλάξει επίσης τις σταθερές ανίχνευσης της πλακέτας επειδή το Raspberry Pi 1 μου με BCM2835 ανιχνεύθηκε εκπληκτικά ως Raspberry Pi 3. Μακάρι να ήταν αληθινό … Έτσι, συνιστώ να χρησιμοποιώ το πιρούνι μου. Εάν αντιμετωπίζετε προβλήματα με αυτό, δοκιμάστε το αρχικό αποθετήριο, ίσως λειτουργεί για κάποιον, αλλά δεν είμαι ένας από αυτούς.
git clone https://github.com/Himura2la/Adafruit_Python_DHT.gitcd 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), θα πρέπει να γνωρίζετε ότι αυτή είναι η υγρασία στα ποσοστά και η θερμοκρασία στους Κελσίου.
Τώρα, ας συγκεντρώσουμε τα πάντα μαζί!
Βήμα 4: Αποστολή αναγνωστικών αισθητήρων στο Cloud
Θα χρησιμοποιήσω το control.py ως βάση και θα προσθέσω την αλληλεπίδραση DHT22 σε αυτό.
cp cloud4rpi-raspberrypi-python/control.py./cloud_dht22.pycp cloud4rpi-raspberrypi-python/rpi.py./rpi.pyvi cloud_dht22.py
Αφαιρέστε το δείγμα κώδικα όπως στην παραπάνω εικόνα.
Καθώς το DHT22 επιστρέφει τη θερμοκρασία και την υγρασία σε μία μόνο κλήση, θα τα αποθηκεύσω σε παγκόσμιο επίπεδο και θα ενημερώσω μόνο μία φορά σε ένα αίτημα, υποθέτοντας ότι η καθυστέρηση μεταξύ τους είναι μεγαλύτερη από 10 δευτερόλεπτα. Εξετάστε τον ακόλουθο κώδικα, ο οποίος λαμβάνει τα δεδομένα DHT22:
εισαγωγή Adafruit_DHT
temp, βουητό = Καμία, Καμία
last_update = time.time () - 20
def update_data ():
καθολική last_update, βουητό, temp αν time.time () - last_update> 10: hum, temp = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) last_update = time.time ()
def get_t ():
update_data () γύρος επιστροφής (temp, 2) αν η θερμοκρασία δεν είναι Κανένα άλλο Κανένα def get_h (): update_data () γύρος επιστροφής (βουητό, 2) αν το βουητό δεν είναι Κανένα άλλο Κανένα
Εισαγάγετε αυτόν τον κωδικό μετά τις υπάρχουσες εισαγωγές και επεξεργαστείτε την ενότητα μεταβλητές, έτσι ώστε να χρησιμοποιεί τις νέες συναρτήσεις:
μεταβλητές = {'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type': 'numeric', 'bind': cpu_temp}}
Εάν διαπιστώσετε ότι οι χειρισμοί είναι μπερδεμένοι, πιάστε την τελική έκδοση αυτού του αρχείου. Πατήστε το κόκκινο κουμπί για να ξεκινήσει η μεταφορά δεδομένων:
Στη συνέχεια, μπορείτε να ελέγξετε τη σελίδα της συσκευής.
python3 cloud_dht22.py
Στη συνέχεια, μπορείτε να ελέγξετε τη σελίδα της συσκευής.
Μπορείτε να το αφήσετε ως έχει, αλλά προτιμώ να έχω μια υπηρεσία για τα πάντα. Αυτό διασφαλίζει ότι το σενάριο είναι πάντα σε λειτουργία. Δημιουργία υπηρεσίας με το πλήρως αυτοματοποιημένο σενάριο που έχετε ήδη στον κατάλογο cloud4rpi-raspberrypi-python:
service_install.sh cloud_dht22.py
Έναρξη της υπηρεσίας:
εκκίνηση της υπηρεσίας sudo cloud4rpi
Και ελέγχοντας το:
pi@raspberrypi: ~ $ sudo service cloud4rpi status -l ● cloud4rpi.service -Cloud4RPi daemon Loaded: loaded (φόρτωσε (/lib/systemd/system/cloud4rpi.service; ενεργοποιημένο) Ενεργό: ενεργό (τρέχει) από Τετ 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/μηνυμάτων: {'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 για να χειριστούμε τα δεδομένα.
Βήμα 5: Διαγράμματα και συναγερμοί
Πρώτα απ 'όλα, ας σχεδιάσουμε τις μεταβλητές για να δούμε πώς αλλάζουν. Αυτό μπορεί να γίνει με την προσθήκη ενός νέου Πίνακα Ελέγχου και την τοποθέτηση των απαιτούμενων γραφημάτων σε αυτόν.
Ένα άλλο πράγμα που μπορούμε να κάνουμε εδώ είναι η ρύθμιση ειδοποίησης. Αυτή η δυνατότητα σάς επιτρέπει να διαμορφώσετε το ασφαλές εύρος για μια μεταβλητή. Μόλις το εύρος υπερβεί, στέλνει μια ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου. Στη σελίδα επεξεργασίας του Πίνακα Ελέγχου, μπορείτε να μεταβείτε στις Ειδοποιήσεις και να ρυθμίσετε μία.
Αμέσως μετά, η υγρασία στο δωμάτιό μου άρχισε να μειώνεται γρήγορα χωρίς κανέναν αισθητό λόγο και σύντομα ακολούθησε ο συναγερμός.
Μπορείτε να χρησιμοποιήσετε το Cloud4RPi δωρεάν με οποιοδήποτε υλικό που είναι σε θέση να εκτελέσει Python. Όσον αφορά εμένα, τώρα ξέρω πάντα πότε πρέπει να ενεργοποιήσω τον υγραντήρα αέρα και μπορώ ακόμη και να τον συνδέσω σε ρελέ για τηλεχειρισμό μέσω Cloud4RPi. Είμαι έτοιμος για ζέστη! Καλώς ήρθες καλοκαίρι!
Με το Cloud4RPi, μπορείτε να ελέγχετε το Raspberry Pi και άλλες συσκευές IoT από απόσταση σε πραγματικό χρόνο. Επισκεφτείτε τον ιστότοπό μας και συνδέστε απεριόριστες συσκευές δωρεάν.
Συνιστάται:
M5STACK Πώς να εμφανίσετε τη θερμοκρασία, την υγρασία και την πίεση στο M5StickC ESP32 χρησιμοποιώντας το Visuino - Εύκολο να το κάνετε: 6 βήματα
M5STACK Πώς να εμφανίζεται η θερμοκρασία, η υγρασία και η πίεση στο M5StickC ESP32 χρησιμοποιώντας Visuino - Εύκολο να το κάνετε: Σε αυτό το σεμινάριο θα μάθουμε πώς να προγραμματίζουμε το ESP32 M5Stack StickC με Arduino IDE και Visuino για την εμφάνιση θερμοκρασίας, υγρασίας και πίεσης χρησιμοποιώντας αισθητήρα ENV (DHT12, BMP280, BMM150)
Αυτοματοποίηση θερμοκηπίου με LoRa! (Μέρος 1) -- Αισθητήρες (Θερμοκρασία, Υγρασία, Υγρασία Εδάφους): 5 Βήματα
Αυτοματοποίηση θερμοκηπίου με LoRa! (Μέρος 1) || Αισθητήρες (Θερμοκρασία, Υγρασία, Υγρασία Εδάφους): Σε αυτό το έργο θα σας δείξω πώς αυτοματοποίησα ένα θερμοκήπιο. Αυτό σημαίνει ότι θα σας δείξω πώς έφτιαξα το θερμοκήπιο και πώς συνδέω τα ηλεκτρονικά τροφοδοσίας και αυτοματισμού. Επίσης, θα σας δείξω πώς να προγραμματίσετε έναν πίνακα Arduino που χρησιμοποιεί L
Συνδέστε το φυτό σας στο σύννεφο: 10 βήματα
Συνδέστε το φυτό σας στο σύννεφο: Στο γραφείο μας υπάρχει ένας κάκτος που δεν έλαβε την προσοχή που του άξιζε. Δεδομένου ότι εργάζομαι σε εταιρεία πληροφορικής και ήθελα να πειραματιστώ με το LoRa, τις λύσεις χωρίς διακομιστή και το AWS, ονόμασα τον κάκτο μας Steeve και τον συνέδεσα στο σύννεφο. Τώρα μπορείτε να παρακολουθείτε
Αυτοματοποιημένη έξυπνη Aquaponics (Με πίνακα ελέγχου βασισμένη στο σύννεφο): 11 βήματα
Αυτοματοποιημένη Έξυπνη Aquaponics (Με Πίνακα Ελέγχου Νέφους): Η Aquaponics σας επιτρέπει να καλλιεργείτε τα δικά σας βιολογικά τρόφιμα οπουδήποτε (εσωτερικούς ή εξωτερικούς χώρους), σε πολύ λιγότερο χώρο, με περισσότερη ανάπτυξη, λιγότερη χρήση νερού και χωρίς εξωτερικά χημικά λιπάσματα. Επίσης, μπορείτε να παρακολουθείτε τις συνθήκες σε έναν πίνακα εργαλείων που βασίζεται σε σύννεφο
Σύνδεση αισθητήρα DHT11/DHT22 στο σύννεφο με πίνακα που βασίζεται σε ESP8266: 9 βήματα
Σύνδεση αισθητήρα DHT11/DHT22 στο σύννεφο Με πίνακα που βασίζεται σε ESP8266: Στο προηγούμενο άρθρο, συνέδεσα την πλακέτα NodeMCU που βασίζεται σε ESP8266 σε μια υπηρεσία Cloud4RPi. Τώρα, ήρθε η ώρα για ένα πραγματικό έργο