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

Υγρασία στο σύννεφο: 5 βήματα
Υγρασία στο σύννεφο: 5 βήματα

Βίντεο: Υγρασία στο σύννεφο: 5 βήματα

Βίντεο: Υγρασία στο σύννεφο: 5 βήματα
Βίντεο: Μόνωση Ταράτσας με Πίσσα σε 5 Βήματα! 2024, Νοέμβριος
Anonim
Υγρασία στο Σύννεφο
Υγρασία στο Σύννεφο

Το καλοκαίρι έρχεται και όσοι δεν διαθέτουν κλιματιστικό θα πρέπει να είναι προετοιμασμένοι να ελέγχουν την ατμόσφαιρα σε εσωτερικούς χώρους χειροκίνητα. Σε αυτήν την ανάρτηση, περιγράφω τον σύγχρονο τρόπο μέτρησης των πιο σημαντικών παραμέτρων για την άνεση του ανθρώπου: τη θερμοκρασία και την υγρασία. Αυτά τα δεδομένα που συλλέγονται αποστέλλονται στο 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

Εγκατάσταση του Cloud4RPi
Εγκατάσταση του 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

Αποστολή αναγνωστικών αισθητήρων στο Cloud
Αποστολή αναγνωστικών αισθητήρων στο Cloud
Αποστολή αναγνωστικών αισθητήρων στο Cloud
Αποστολή αναγνωστικών αισθητήρων στο 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 από απόσταση σε πραγματικό χρόνο. Επισκεφτείτε τον ιστότοπό μας και συνδέστε απεριόριστες συσκευές δωρεάν.

Συνιστάται: