תוכן עניינים:

כיצד לשלוט בטמפרטורת תסיסת הבירה ובכבידה מהסמארטפון שלך: 4 שלבים (עם תמונות)
כיצד לשלוט בטמפרטורת תסיסת הבירה ובכבידה מהסמארטפון שלך: 4 שלבים (עם תמונות)

וִידֵאוֹ: כיצד לשלוט בטמפרטורת תסיסת הבירה ובכבידה מהסמארטפון שלך: 4 שלבים (עם תמונות)

וִידֵאוֹ: כיצד לשלוט בטמפרטורת תסיסת הבירה ובכבידה מהסמארטפון שלך: 4 שלבים (עם תמונות)
וִידֵאוֹ: אנבוקסינג (Unboxing) רכיבים לבניית מערכת בקרה משוכללת עם רגש טמפרטורה שרכשתי ב- AliExpress 2024, יולי
Anonim
כיצד לשלוט בטמפרטורת תסיסת הבירה ובכבידה מהסמארטפון שלך
כיצד לשלוט בטמפרטורת תסיסת הבירה ובכבידה מהסמארטפון שלך

כאשר הבירה מתסיסה, עליך לעקוב אחר כוח המשיכה והטמפרטורה שלה מדי יום. קל לשכוח לעשות זאת, ואי אפשר אם אתה לא נמצא.

לאחר חיפוש מסויים, מצאתי מספר פתרונות לניטור כבידה אוטומטי (אחד, שניים, שלושה). אחד מהם, עם קונספט חכם מאוד, נקרא Tilt. הטיה מרחפת בבירה שלך ומודדת את זווית ההטיה שלה. זווית זו תלויה בצפיפות הנוזל, ולכן יכולה למדוד את כוח הכבידה של הבירה המותססת.

Tilt מגיעה עם אפליקציה לנייד, המתחברת אליה ויכולה לפרסם נתונים לכל שירות אינטרנט. הבעיה היא שאתה צריך להיות לא רחוק מטיל כדי שתוכל לעשות זאת. יש גם תוכנית Raspberry Pi שעובדת עם Tilt.

שלב 1: קבלת נתוני הטייה ב- Python

קבלת נתוני הטיה בפייתון
קבלת נתוני הטיה בפייתון

אני כבר משתמש ב- Raspberry Pi כדי לפקח על טמפרטורת המרתף ושירות לוח בקרה בענן cloud4rpi.io. אם Tilt יכול לדבר עם Raspberry Pi, צריך להיות שאפשר לחבר אליו cloud4rpi. Tilt משתמש בפרוטוקול אלחוטי, כך שתזדקק ל- Raspberry Pi עם שבב אלחוטי (Rasbperry Pi 3 או Zero W).

למרבה המזל, יש ריפו GitHub לתוכנת Tilt עם כמה דוגמאות. כשאתה מסתכל על https://github.com/baronbrew/tilt-scan אתה יכול לראות שטיל נראה בעיני אחרים כ- BLE iBeacon, עם "צבע" המקודד ב- UUID, והטמפרטורה וכוח הכבידה נמצאים בבייטים גדולים וקטנים.

הקוד לדוגמא שלהם הוא עבור Node.js, ויש לי תוכנית בקרת פייתון המבוססת על תבנית cloud4rpi

אז אני צריך לקבל נתוני Tilt בפייתון. לאחר קצת חיפוש בגוגל מצאתי https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon scanner. זוהי תוכנית, לא ספרייה, ולכן שיניתי אותה כדי להחזיר מילון במקום מחרוזת. וכתבתי גם מודול ספציפי ל- Tilt כדי לקבל צבע, טמפרטורה וכוח הכבידה של הטיה הראשונה שנמצאה (יש לי רק אחת) ותוכנית בדיקה פשוטה לבדוק אם היא יכולה לראות את הטיה שלי:

הטמעת ייבוא זמן

בעוד שזה נכון:

res = tilt.getFirstTilt () הדפסה res time.sleep (2)

רץ ובדוק שזה עובד. עכשיו אני יכול לחבר אותו לתוכנית הבקרה שלי. יש לי כבר תוכנית פייתון המחוברת ל- cloud4rpi.io, אבל הרשה לי להראות כיצד לעשות זאת מהתחלה.

שלב 2: חיבור התקן לענן

חיבור התקן לענן
חיבור התקן לענן
חיבור התקן לענן
חיבור התקן לענן

ראשית, היכנס ל- cloud4rpi.io ולאחר מכן צור מכשיר חדש.

תינתן לך אסימון התקנה והוראות התקנה. עבור Raspberry Pi בצע את ההוראות כאן https://docs.cloud4rpi.io/start/rpi/-ודא שהמערכת שלך מעודכנת:

עדכון sudo apt && sudo apt upgrade

התקן דרישות מוקדמות:

sudo apt להתקין git python python-pip

התקן חבילות פייתון cloud4rpi:

sudo pip התקן cloud4rpi

לאחר מכן קבל אפליקציית פייתון לדוגמא עבור Raspberry Pi (בתיקיית הבקרה):

שיבוט git https://github.com/cloud4rpi/cloud4rpi-raspberryp… שליטה

בקרת תקליטורים

שנה את control.py - ציין את אסימון המכשיר שלך בשורה

DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

הסר ערכים מיותרים מהצהרות משתנות המכשיר, השאר רק CPUTemp לבדיקת חיבור המכשיר:

# שים כאן הצהרות משתנות משתנים = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}

עכשיו בצעו בדיקת מבחן:

sudo python control.py

אם הכל תקין, דף המכשיר שלך יעודכן באופן מיידי עם נתוני אבחון.

שלב 3: שליחת נתונים לענן

שליחת נתונים לענן
שליחת נתונים לענן

כעת עלינו לשנות את control.py כדי לקרוא ולדווח על הצבע, הטמפרטורה וכוח המשיכה של Tilt. התוצאה נראית כך:

מאת os יבוא unamefrom שקע יבוא 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 אלפיות השנייה

משואה = {}

def F2C (מעלות F):

החזרה (מעלות F - 32) / 1.8

def getTemp ():

החזר F2C (int (משואה ['טמפ'])) אם משואה אחר אין

def getGravity ():

החזר משואה ['כוח משיכה'] אם משואה אחר אין

def main ():

# שים כאן הצהרות משתנות

משתנים = {'Gravity': {'type': 'numeric', 'bind': getGravity}, 'Temp Beer': {'type': 'numeric', 'bind': getTemp}}

אבחון = {

'Temp CPU': rpi.cpu_temp, 'כתובת IP': rpi.ip_address, 'Host': gethostname (), 'מערכת הפעלה': "".join (uname ())}

מכשיר = cloud4rpi.connect (DEVICE_TOKEN)

device.declare (משתנים) device.declare_diag (אבחון)

device.publish_config ()

# מוסיף עיכוב של שנייה אחת כדי לוודא שנוצרים משתני מכשיר

time.sleep (1)

לְנַסוֹת:

data_timer = 0 diag_timer = 0 while True: if data_timer <= 0: beacon global 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

למעט מקלדת הפרעה:

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_ == '_ עיקר_':

רָאשִׁי()

עכשיו הפעל אותו ידנית כדי לראות אם זה עובד:

sudo python control.py

אם הכל טוב, תראה את המשתנים שלך באינטרנט.

כדי להפעיל את control.py בעת הפעלת המערכת, התקן אותו כשירות. Cloud4rpi מספק סקריפט התקנה service_install.sh לשם כך. כללתי את זה בריפו שלי. כדי להתקין את control.py כשירות, הפעל

sudo bash service_install.sh control.py

עכשיו אתה יכול להתחיל | לעצור | להפעיל מחדש את השירות הזה על ידי הפעלת פקודה

sudo systemctl התחל cloud4rpi.service

השירות שומר על מצבו הקודם בזמן ההפעלה, כך שאם הוא היה פועל, הוא יפעל לאחר אתחול מחדש או הפסקת חשמל.

שלב 4: תוצאה סופית

תוצאה סופית
תוצאה סופית

זהו זה, עכשיו יש לי את הפרמטרים של הטיה שלי שנשלחים לענן, כך שאוכל להקים עבורו לוח בקרה נחמד לענן. עבור אל https://cloud4rpi.io/control-panels וצור לוח בקרה חדש, הוסף ווידג'ט ובחר/Gravity ו- Beer Temp כמקור נתונים. עכשיו אני יכול לעקוב אחר מה שקורה גם אם אני רחוק מהבית.

הקוד שהעתקתי וכתבתי זמין כאן: https://github.com/superroma/tilt-cloud4rpi. הוא רחוק מלהיות מושלם, הוא עובד רק עם הטיה אחת, לא אכפת לו מה"צבע "של המכשיר, מה שזה לא אומר, ואני בכלל לא בחור פייתון, אז תיקונים, הצעות או מזלגות יתקבלו בברכה !

מוּמלָץ: