Πίνακας περιεχομένων:
- Βήμα 1: Λήψη δεδομένων κλίσης στην Python
- Βήμα 2: Σύνδεση συσκευής με το σύννεφο
- Βήμα 3: Αποστολή δεδομένων στο Cloud
- Βήμα 4: Τελικό αποτέλεσμα
Βίντεο: Πώς να ελέγξετε τη θερμοκρασία και τη βαρύτητα ζύμωσης μπύρας από το smartphone σας: 4 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
Όταν η μπύρα ζυμώνει, θα πρέπει να παρακολουθείτε τη βαρύτητα και τη θερμοκρασία της καθημερινά. Είναι εύκολο να ξεχάσεις να το κάνεις, και αδύνατο αν λείπεις.
Μετά από λίγο googling, βρήκα αρκετές λύσεις για αυτοματοποιημένη παρακολούθηση της βαρύτητας (μία, δύο, τρεις). Ένα από αυτά, με πολύ έξυπνη ιδέα, ονομάζεται Tilt. Η κλίση επιπλέει στη μπύρα σας και μετρά τη δική της γωνία κλίσης. Αυτή η γωνία εξαρτάται από την πυκνότητα του υγρού και επομένως μπορεί να μετρήσει τη βαρύτητα της ζύμωσης της μπύρας.
Το Tilt συνοδεύεται από μια εφαρμογή για κινητά, η οποία συνδέεται με αυτήν και μπορεί να δημοσιεύσει δεδομένα σε οποιαδήποτε υπηρεσία ιστού. Το πρόβλημα είναι ότι πρέπει να βρίσκεστε όχι μακριά από το Tilt για να το καταφέρετε. Υπάρχει επίσης ένα πρόγραμμα Raspberry Pi που λειτουργεί με το Tilt.
Βήμα 1: Λήψη δεδομένων κλίσης στην Python
Χρησιμοποιώ ήδη το Raspberry Pi για την παρακολούθηση της θερμοκρασίας του κελαριού και μια υπηρεσία πίνακα ελέγχου cloud cloud4rpi.io. Εάν η Tilt μπορεί να μιλήσει με το Raspberry Pi, θα πρέπει να είναι δυνατή η σύνδεση του cloud4rpi σε αυτό. Το Tilt χρησιμοποιεί ασύρματο πρωτόκολλο, οπότε θα χρειαστείτε το Raspberry Pi με ασύρματο τσιπ (Rasbperry Pi 3 ή Zero W).
Ευτυχώς, υπάρχει ένα GitHub repo για το λογισμικό Tilt με μερικά δείγματα. Κοιτάζοντας το https://github.com/baronbrew/tilt-scan, μπορείτε να δείτε ότι το Tilt φαίνεται στους άλλους ως BLE iBeacon, με "Color" κωδικοποιημένο σε UUID και η θερμοκρασία και η βαρύτητα είναι σε μεγάλα και δευτερεύοντα byte.
Το δείγμα κώδικα είναι για το Node.js και έχω ένα πρόγραμμα ελέγχου Python βασισμένο στο πρότυπο cloud4rpi
Πρέπει λοιπόν να λάβω δεδομένα Tilt στην Python. Μετά από λίγο googling, βρήκα https://github.com/switchdoclabs/iBeacon-Scanner-- σαρωτή Python iBeacon. Αυτό είναι ένα πρόγραμμα, όχι μια βιβλιοθήκη, οπότε το τροποποίησα για να επιστρέψει ένα λεξικό αντί για συμβολοσειρά. Και έγραψα επίσης το Tilt-specific module για να πάρω το χρώμα, τη θερμοκρασία και τη βαρύτητα του πρώτου Tilt που βρέθηκε (έχω μόνο ένα) και ένα απλό πρόγραμμα δοκιμών για να ελέγξω αν μπορεί να δει την κλίση μου:
εισαγωγή κλίσης χρόνου εισαγωγής
ενώ True:
res = tilt.getFirstTilt () εκτύπωση res res.sleep (2)
Τρέξτε και ελέγξτε ότι λειτουργεί. Τώρα μπορώ να το συνδέσω στο πρόγραμμα ελέγχου μου. Έχω ήδη ένα πρόγραμμα python συνδεδεμένο με το cloud4rpi.io, αλλά επιτρέψτε μου να σας δείξω πώς να το κάνετε από την αρχή.
Βήμα 2: Σύνδεση συσκευής με το σύννεφο
Πρώτα, συνδεθείτε στο cloud4rpi.io και, στη συνέχεια, δημιουργήστε μια νέα συσκευή.
Θα σας δοθεί ένα διακριτικό συσκευής και οδηγίες εγκατάστασης. Για το Raspberry Pi ακολουθήστε τις οδηγίες εδώ https://docs.cloud4rpi.io/start/rpi/-βεβαιωθείτε ότι το σύστημά σας είναι ενημερωμένο:
sudo apt ενημέρωση && sudo apt αναβάθμιση
Εγκατάσταση προϋποθέσεων:
sudo apt εγκατάσταση git python python-pip
Εγκατάσταση πακέτων cloud4rpi python:
sudo pip εγκατάσταση cloud4rpi
στη συνέχεια, λάβετε ένα δείγμα εφαρμογής python για το Raspberry Pi (στον φάκελο ελέγχου):
git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… έλεγχος
cd έλεγχος
τροποποίηση control.py - καθορίστε το διακριτικό της συσκευής σας στη γραμμή
DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’
Αφαιρέστε τις περιττές καταχωρήσεις από τις δηλώσεις μεταβλητής συσκευής, αφήστε μόνο CPUTemp για να ελέγξετε τη σύνδεση της συσκευής:
# Βάλτε εδώ δηλώσεις μεταβλητών μεταβλητές = {'Temp CPU': {'type': 'numeric', 'bind': rpi.cpu_temp}}
Κάντε τώρα μια δοκιμαστική εκτέλεση:
sudo python control.py
Εάν όλα είναι εντάξει, η σελίδα της συσκευής σας θα ενημερωθεί αμέσως με διαγνωστικά δεδομένα.
Βήμα 3: Αποστολή δεδομένων στο Cloud
Τώρα πρέπει να τροποποιήσουμε το control.py για να διαβάσουμε και να αναφέρουμε το χρώμα, τη θερμοκρασία και τη βαρύτητα του Tilt. Το αποτέλεσμα μοιάζει με αυτό:
από os εισαγωγή unamefrom socket εισαγωγή gethostname εισαγωγή sys εισαγωγή χρόνου εισαγωγής cloud4rpi εισαγωγή rpi εισαγωγή κλίση
# Βάλτε το διακριτικό της συσκευής σας εδώ. Για να πάρετε το διακριτικό, # εγγραφείτε στο https://cloud4rpi.io και δημιουργήστε μια συσκευή. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Σταθερές
DATA_SENDING_INTERVAL = 60 # δευτερόλεπτα DIAG_SENDING_INTERVAL = 600 # δευτερόλεπτα POLL_INTERVAL = 0,5 # 500 ms
φάρος = {}
def F2C (βαθμοί F):
επιστροφή (βαθμοί F - 32) / 1.8
def getTemp ():
επιστροφή F2C (int (φάρος ['Temp']))) εάν φάρος αλλού Καμία
def getGravity ():
φάρος επιστροφής [«Βαρύτητα»] αν φάρος άλλος Κανένας
def main ():
# Βάλτε τις δηλώσεις μεταβλητών εδώ
variables = {'Gravity': {'type': 'numeric', 'bind': getGravity}, 'Beer Temp': {'type': 'numeric', 'bind': getTemp}}
διαγνωστικά = {
"CPU Temp": rpi.cpu_temp, "IP Address": rpi.ip_address, "Host": gethostname (), "Operating System": "".oin (uname ())}
συσκευή = cloud4rpi.connect (DEVICE_TOKEN)
device.declare (μεταβλητές) device.declare_diag (διαγνωστικά)
device.publish_config ()
# Προσθέτει 1 δευτερόλεπτο καθυστέρηση για να διασφαλιστεί ότι δημιουργούνται μεταβλητές συσκευής
ώρα. ύπνος (1)
προσπαθήστε:
data_timer = 0 diag_timer = 0 while True: if data_timer <= 0: global beacon beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL
αν diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL
time.sleep (POLL_INTERVAL)
diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL
εκτός από το KeyboardIntruptrupt:
cloud4rpi.log.info ('Λήψη διακοπής πληκτρολογίου. Διακοπή…')
εκτός από την εξαίρεση ως e:
error = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("ERROR! %s %s", error, sys.exc_info () [0])
τελικά:
sys.exit (0)
αν _name_ == '_main_':
κύριος()
Τώρα εκτελέστε το χειροκίνητα για να δείτε αν λειτουργεί:
sudo python control.py
Εάν όλα είναι καλά, θα δείτε τις μεταβλητές σας στο διαδίκτυο.
Για να εκτελέσετε το control.py κατά την εκκίνηση του συστήματος, εγκαταστήστε το ως υπηρεσία. Το Cloud4rpi παρέχει μια υπηρεσία εγκατάστασης script_install.sh για να το κάνετε αυτό. Το έχω συμπεριλάβει στο repo μου. Για να εγκαταστήσετε το control.py ως υπηρεσία, εκτελέστε
sudo bash service_install.sh control.py
Τώρα μπορείτε να ξεκινήσετε | διακοπή | επανεκκίνηση αυτής της υπηρεσίας εκτελώντας την εντολή
sudo systemctl εκκίνηση cloud4rpi.service
Η υπηρεσία διατηρεί την προηγούμενη κατάσταση λειτουργίας, οπότε αν ήταν σε λειτουργία, θα λειτουργούσε μετά από επανεκκίνηση ή απώλεια ισχύος.
Βήμα 4: Τελικό αποτέλεσμα
Αυτό είναι, τώρα έχω τις παραμέτρους μου Tilt που αποστέλλονται στο σύννεφο, ώστε να μπορώ να δημιουργήσω έναν όμορφο πίνακα ελέγχου cloud για αυτό. Μεταβείτε στη διεύθυνση https://cloud4rpi.io/control-panels και δημιουργήστε νέο πίνακα ελέγχου, προσθέστε widget και επιλέξτε/Gravity and Beer Temp ως πηγή δεδομένων. Τώρα μπορώ να παρακολουθώ τι συμβαίνει ακόμα κι αν είμαι μακριά από το σπίτι.
Ο κώδικας που αντέγραψα και έγραψα είναι διαθέσιμος εδώ: https://github.com/superroma/tilt-cloud4rpi. Δεν είναι καθόλου τέλειο, λειτουργεί μόνο με ένα μόνο Tilt, δεν νοιάζεται για το "Χρώμα" της συσκευής, ό, τι κι αν σημαίνει αυτό, και δεν είμαι καθόλου τύπος Python, οπότε οι διορθώσεις, οι προτάσεις ή τα πιρούνια είναι ευπρόσδεκτα !
Συνιστάται:
Πώς να κάνετε υγρασία και θερμοκρασία σε πραγματικό χρόνο καταγραφέα δεδομένων με Arduino UNO και κάρτα SD - Προσομοίωση DHT11 Data-logger στο Proteus: 5 Βήματα
Πώς να κάνετε υγρασία και θερμοκρασία σε πραγματικό χρόνο καταγραφέα δεδομένων με Arduino UNO και κάρτα SD | Προσομοίωση DHT11 Data-logger στο Proteus: Εισαγωγή: γεια, αυτό είναι το Liono Maker, εδώ είναι ο σύνδεσμος του YouTube. Κάνουμε δημιουργικό έργο με το Arduino και δουλεύουμε σε ενσωματωμένα συστήματα. Data-Logger: Ένας καταγραφέας δεδομένων (επίσης data-logger ή data recorder) είναι μια ηλεκτρονική συσκευή που καταγράφει δεδομένα με την πάροδο του χρόνου
Πώς να χρησιμοποιήσετε τον αισθητήρα θερμοκρασίας DHT11 με Arduino και θερμοκρασία εκτύπωσης Θερμότητα και υγρασία: 5 βήματα
Πώς να χρησιμοποιήσετε τον αισθητήρα θερμοκρασίας DHT11 με Arduino και θερμοκρασία εκτύπωσης Θερμότητα και υγρασία: Ο αισθητήρας DHT11 χρησιμοποιείται για τη μέτρηση θερμοκρασίας και υγρασίας. Είναι πολύ δημοφιλείς ηλεκτρονικοί χομπίστες. Ο αισθητήρας υγρασίας και θερμοκρασίας DHT11 καθιστά πολύ εύκολη την προσθήκη δεδομένων υγρασίας και θερμοκρασίας στα ηλεκτρονικά έργα DIY. Είναι ανά
Χρησιμοποιήστε την Cortana και το Arduino για να ελέγξετε LGB Reds ή Ledstrips με τη φωνή σας!: 4 βήματα (με εικόνες)
Χρησιμοποιήστε το Cortana και το Arduino για τον έλεγχο των RGB Leds ή των Ledstrips με τη φωνή σας! Αυτό γίνεται από την εφαρμογή CoRGB, η οποία διατίθεται δωρεάν στο κατάστημα εφαρμογών των Windows. Αυτή η εφαρμογή είναι μέρος του έργου μου CortanaRoom. Όταν τελειώσεις με το μυαλό
Μπορεί ένα MakerBit να σας υπενθυμίσει να ελέγξετε το νερό κάτω από το χριστουγεννιάτικο δέντρο σας ;: 7 βήματα
Μπορεί ένα MakerBit να σας υπενθυμίσει να ελέγξετε το νερό κάτω από το χριστουγεννιάτικο δέντρο σας;: Ένα φρέσκο κομμένο δέντρο είναι μια παραδοσιακή διακόσμηση διακοπών σε πολλά σπίτια. Είναι απαραίτητο να διατηρείται τροφοδοτημένο με γλυκό νερό. Δεν θα ήταν ωραίο να έχετε ένα στολίδι που θα μπορούσε να σας υπενθυμίσει να ελέγξετε το νερό κάτω από το δέντρο σας; Το έργο αυτό εντάσσεται στο
IoT Made Easy: Λήψη απομακρυσμένων δεδομένων καιρού: UV και θερμοκρασία Θερμοκρασία & υγρασία: 7 βήματα
IoT Made Easy: Καταγραφή απομακρυσμένων δεδομένων καιρού: UV και θερμοκρασία και υγρασία αέρα: Σε αυτό το σεμινάριο, θα καταγράψουμε απομακρυσμένα δεδομένα ως UV (υπεριώδη ακτινοβολία), θερμοκρασία αέρα και υγρασία. Αυτά τα δεδομένα θα είναι πολύ σημαντικά και θα χρησιμοποιηθούν σε έναν μελλοντικό πλήρη Μετεωρολογικό Σταθμό. Το μπλοκ διάγραμμα δείχνει τι θα πάρουμε στο τέλος