جدول المحتويات:

كيفية التحكم في درجة حرارة تخمير البيرة وجاذبيتها من هاتفك الذكي: 4 خطوات (بالصور)
كيفية التحكم في درجة حرارة تخمير البيرة وجاذبيتها من هاتفك الذكي: 4 خطوات (بالصور)

فيديو: كيفية التحكم في درجة حرارة تخمير البيرة وجاذبيتها من هاتفك الذكي: 4 خطوات (بالصور)

فيديو: كيفية التحكم في درجة حرارة تخمير البيرة وجاذبيتها من هاتفك الذكي: 4 خطوات (بالصور)
فيديو: كوستاريكا، الجنة الخضراء في خطر (وثائقي) 2024, يوليو
Anonim
كيفية التحكم في درجة حرارة تخمير البيرة والجاذبية من هاتفك الذكي
كيفية التحكم في درجة حرارة تخمير البيرة والجاذبية من هاتفك الذكي

عندما تخمر البيرة ، يجب أن تراقب جاذبيتها ودرجة حرارتها يوميًا. من السهل أن تنسى فعل ذلك ، ومن المستحيل أن تكون بعيدًا.

بعد بعض البحث في googling ، وجدت عدة حلول لمراقبة الجاذبية الآلية (واحد ، اثنان ، ثلاثة). واحد منهم ، بمفهوم ذكي للغاية ، يسمى Tilt. الإمالة تطفو في البيرة الخاصة بك وتقوم بقياس زاوية الميل الخاصة بها. تعتمد هذه الزاوية على كثافة السائل ، وبالتالي يمكنها قياس جاذبية الجعة المخمرة.

يأتي Tilt مع تطبيق جوال يتصل به ويمكنه نشر البيانات إلى أي خدمة ويب. تكمن المشكلة في أنك بحاجة إلى ألا تكون بعيدًا عن Tilt لتتمكن من القيام بذلك. يوجد أيضًا برنامج Raspberry Pi الذي يعمل مع Tilt.

الخطوة 1: الحصول على بيانات الإمالة في Python

الحصول على بيانات الإمالة في بايثون
الحصول على بيانات الإمالة في بايثون

أستخدم Raspberry Pi بالفعل لمراقبة درجة حرارة القبو وخدمة لوحة التحكم السحابية 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 ، مع "اللون" المشفر في UUID ، ودرجة الحرارة والجاذبية بالبايتات الرئيسية والثانوية.

نموذج الكود الخاص بهم هو Node.js ، ولدي برنامج تحكم Python يعتمد على قالب cloud4rpi

لذلك أحتاج إلى الحصول على بيانات Tilt في Python. بعد بعض البحث على googling ، وجدت https://github.com/switchdoclabs/iBeacon-Scanner- - Python iBeacon scanner. هذا برنامج ، وليس مكتبة ، لذلك قمت بتعديله لإرجاع قاموس بدلاً من سلسلة. وكتبت أيضًا وحدة خاصة بالإمالة للحصول على اللون ودرجة الحرارة والجاذبية لأول مرة تم العثور عليها (لدي واحدة فقط) ، وبرنامج اختبار بسيط للتحقق مما إذا كان بإمكانه رؤية الإمالة الخاصة بي:

استيراد وقت الاستيراد

احيانا صحيح:

res = tilt.getFirstTilt () print res time.sleep (2)

قم بتشغيله وتحقق من أنه يعمل. الآن يمكنني توصيله ببرنامج التحكم الخاص بي. لدي بالفعل برنامج python متصل بـ cloud4rpi.io ، لكن دعني أوضح كيفية القيام بذلك من البداية.

الخطوة 2: توصيل الجهاز بالسحابة

توصيل الجهاز بالسحابة
توصيل الجهاز بالسحابة
توصيل الجهاز بالسحابة
توصيل الجهاز بالسحابة

أولاً ، سجّل الدخول إلى cloud4rpi.io ، ثم أنشئ جهازًا جديدًا.

سيتم إعطاؤك رمز الجهاز وإرشادات التثبيت. بالنسبة إلى Raspberry Pi ، اتبع الإرشادات هنا https://docs.cloud4rpi.io/start/rpi/ - تأكد من تحديث نظامك:

تحديث sudo apt && sudo apt Upgrade

متطلبات التثبيت:

sudo apt install git python python-pip

تثبيت حزم python cloud4rpi:

تثبيت sudo pip cloud4rpi

ثم احصل على نموذج لتطبيق python لـ Raspberry Pi (في مجلد التحكم):

بوابة استنساخ https://github.com/cloud4rpi/cloud4rpi-raspberryp… control

السيطرة على القرص المضغوط

تعديل control.py - حدد رمز جهازك في السطر

DEVICE_TOKEN = "_YOUR_DEVICE_TOKEN_"

قم بإزالة الإدخالات غير الضرورية من الإعلانات المتغيرة للجهاز ، واترك CPUTemp فقط لاختبار اتصال الجهاز:

# ضع تعريفات المتغيرات هنا المتغيرات = {'CPU Temp': {'type': 'numeric'، 'bind': rpi.cpu_temp}}

الآن قم بإجراء اختبار:

sudo python control.py

إذا كان كل شيء على ما يرام ، فسيتم تحديث صفحة جهازك على الفور ببيانات التشخيص.

الخطوة 3: إرسال البيانات إلى السحابة

إرسال البيانات إلى السحابة
إرسال البيانات إلى السحابة

نحتاج الآن إلى تعديل control.py لقراءة لون Tilt ودرجة الحرارة والجاذبية والإبلاغ عنه. النتيجة تبدو كالتالي:

من نظام التشغيل استيراد unamefrom socket استيراد gethostname استيراد النظام وقت الاستيراد استيراد 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):

العودة (درجات فهرنهايت - 32) / 1.8

def getTemp ():

إرجاع F2C (int (منارة ['Temp'])) إذا كان منارة أخرى لا شيء

def getGravity ():

عودة منارة ['Gravity'] إذا كان منارة أخرى لا شيء

def main ():

# ضع التصريحات المتغيرة هنا

المتغيرات = {'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': "".join (uname ())}

الجهاز = cloud4rpi.connect (DEVICE_TOKEN)

device.declare (المتغيرات) device.declare_diag (التشخيص)

device.publish_config ()

# يضيف تأخيرًا لمدة ثانية واحدة لضمان إنشاء متغيرات الجهاز

time.sleep (1) الوقت

محاولة:

data_timer = 0 diag_timer = 0 بينما 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

باستثناء لوحة المفاتيح المقاطعة:

cloud4rpi.log.info ("تم تلقي مقاطعة لوحة المفاتيح. جارٍ الإيقاف …")

باستثناء الاستثناء كـ e:

خطأ = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("ERROR!٪ s٪ s" ، خطأ ، 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: النتيجة النهائية

النتيجة النهائية
النتيجة النهائية

هذا هو ، الآن لديّ معلمات Tilt الخاصة بي يتم إرسالها إلى السحابة ، حتى أتمكن من إعداد لوحة تحكم سحابية لطيفة لها. انتقل إلى https://cloud4rpi.io/control-panels وأنشئ لوحة تحكم جديدة وأضف عنصر واجهة مستخدم وحدد / Gravity و Beer Temp كمصدر بيانات. الآن يمكنني مراقبة ما يحدث حتى لو كنت بعيدًا عن المنزل.

الكود الذي نسخته وكتبته متاح هنا: https://github.com/superroma/tilt-cloud4rpi. إنه بعيد عن الكمال ، فهو يعمل فقط مع إمالة واحدة ، ولا يهتم بـ "لون" الجهاز ، أيًا كان ما يعنيه ، ولست من رجال Python على الإطلاق ، لذا نرحب بالإصلاحات أو الاقتراحات أو الشوكات !

موصى به: