สารบัญ:

วิธีควบคุมอุณหภูมิและแรงโน้มถ่วงในการหมักเบียร์จากสมาร์ทโฟนของคุณ: 4 ขั้นตอน (พร้อมรูปภาพ)
วิธีควบคุมอุณหภูมิและแรงโน้มถ่วงในการหมักเบียร์จากสมาร์ทโฟนของคุณ: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: วิธีควบคุมอุณหภูมิและแรงโน้มถ่วงในการหมักเบียร์จากสมาร์ทโฟนของคุณ: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: วิธีควบคุมอุณหภูมิและแรงโน้มถ่วงในการหมักเบียร์จากสมาร์ทโฟนของคุณ: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: โน้มน้าวใจใครก็ได้ เพียงใช้ 3 เทคนิคระดับโลก 2024, กรกฎาคม
Anonim
วิธีควบคุมอุณหภูมิและแรงโน้มถ่วงในการหมักเบียร์จากสมาร์ทโฟนของคุณ
วิธีควบคุมอุณหภูมิและแรงโน้มถ่วงในการหมักเบียร์จากสมาร์ทโฟนของคุณ

เมื่อเบียร์กำลังหมัก คุณควรตรวจสอบแรงโน้มถ่วงและอุณหภูมิของเบียร์ทุกวัน มันง่ายที่จะลืมที่จะทำ และเป็นไปไม่ได้ถ้าคุณไม่อยู่

หลังจากค้นกูเกิลแล้ว ฉันพบวิธีแก้ปัญหาหลายอย่างสำหรับการตรวจสอบแรงโน้มถ่วงแบบอัตโนมัติ (หนึ่ง สอง สาม) หนึ่งในนั้นมีแนวคิดที่ฉลาดมาก เรียกว่า Tilt Tilt กำลังลอยอยู่ในเบียร์ของคุณและกำลังวัดมุมเอียงของตัวเอง มุมนี้ขึ้นอยู่กับความหนาแน่นของของเหลว จึงสามารถวัดแรงโน้มถ่วงของเบียร์หมักได้

Tilt มาพร้อมกับแอพมือถือที่เชื่อมต่อและสามารถโพสต์ข้อมูลไปยังบริการเว็บใดก็ได้ ปัญหาคือคุณต้องอยู่ไม่ไกลจาก Tilt จึงจะสามารถทำได้ นอกจากนี้ยังมีโปรแกรม Raspberry Pi ที่ทำงานร่วมกับ Tilt

ขั้นตอนที่ 1: รับ Tilt Data ใน Python

รับข้อมูลเอียงใน Python
รับข้อมูลเอียงใน 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 นี่เป็นโปรแกรม ไม่ใช่ไลบรารี ดังนั้นฉันจึงแก้ไขให้กลับเป็นพจนานุกรมแทนสตริง และฉันยังเขียนโมดูลเฉพาะของ Tilt เพื่อรับสี อุณหภูมิ และแรงโน้มถ่วงของ Tilt แรกที่พบ (ฉันมีเพียงอันเดียว) และโปรแกรมทดสอบอย่างง่ายเพื่อตรวจสอบว่าเห็น Tilt ของฉันหรือไม่:

นำเข้าเวลานำเข้าเอียง

ในขณะที่จริง:

res =til.getFirstTilt() พิมพ์ res time.sleep(2)

เรียกใช้และตรวจสอบว่าใช้งานได้ ตอนนี้ฉันสามารถเสียบเข้ากับโปรแกรมควบคุมของฉันได้แล้ว ฉันมีโปรแกรม python ที่เชื่อมต่อกับ cloud4rpi.io แล้ว แต่ให้ฉันแสดงวิธีการดำเนินการตั้งแต่ต้น

ขั้นตอนที่ 2: การเชื่อมต่ออุปกรณ์กับ Cloud

การเชื่อมต่ออุปกรณ์กับคลาวด์
การเชื่อมต่ออุปกรณ์กับคลาวด์
การเชื่อมต่ออุปกรณ์กับคลาวด์
การเชื่อมต่ออุปกรณ์กับคลาวด์

ขั้นแรก ลงชื่อเข้าใช้ cloud4rpi.io จากนั้นสร้างอุปกรณ์ใหม่

คุณจะได้รับโทเค็นอุปกรณ์และคำแนะนำในการติดตั้ง สำหรับ Raspberry Pi ให้ทำตามคำแนะนำที่นี่ https://docs.cloud4rpi.io/start/rpi/ - ตรวจสอบให้แน่ใจว่าระบบของคุณเป็นปัจจุบัน:

sudo apt update && sudo apt upgrade

ติดตั้งข้อกำหนดเบื้องต้น:

sudo apt ติดตั้ง git python python-pip

ติดตั้งแพ็คเกจหลาม cloud4rpi:

sudo pip ติดตั้ง cloud4rpi

จากนั้นรับแอพ python ตัวอย่างสำหรับ Raspberry Pi (ในโฟลเดอร์ควบคุม):

git clone 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: การส่งข้อมูลไปยัง Cloud

การส่งข้อมูลไปยังคลาวด์
การส่งข้อมูลไปยังคลาวด์

ตอนนี้ เราต้องแก้ไข 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):

ผลตอบแทน (degreesF - 32) / 1.8

def getTemp():

คืนค่า F2C(int(beacon['Temp'])) ถ้าสัญญาณอื่น None

def getGravity():

return beacon['Gravity'] ถ้าสัญญาณอื่น None

def หลัก ():

# ใส่การประกาศตัวแปรที่นี่

ตัวแปร = { 'แรงโน้มถ่วง': { 'ประเภท': 'ตัวเลข', 'ผูก': getGravity }, 'อุณหภูมิเบียร์': { 'ประเภท': 'ตัวเลข', 'ผูก': 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(การวินิจฉัย)

อุปกรณ์.publish_config()

# เพิ่มการหน่วงเวลา 1 วินาทีเพื่อให้แน่ใจว่าสร้างตัวแปรอุปกรณ์

เวลานอน(1)

ลอง:

data_timer = 0 diag_timer = 0 ในขณะที่ True: ถ้า data_timer <= 0: global beacon beacon =til.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

ยกเว้น KeyboardInterrupt:

cloud4rpi.log.info('ได้รับคีย์บอร์ดขัดจังหวะ กำลังหยุด…')

ยกเว้นข้อยกเว้นเป็น e:

error = cloud4rpi.get_error_message(e) cloud4rpi.log.error("ERROR! %s %s", ข้อผิดพลาด, sys.exc_info()[0])

ในที่สุด:

sys.exit(0)

ถ้า _name_ == '_main_':

หลัก()

ตอนนี้รันด้วยตนเองเพื่อดูว่าใช้งานได้หรือไม่:

sudo python control.py

หากทุกอย่างดี คุณจะเห็นตัวแปรของคุณทางออนไลน์

หากต้องการเรียกใช้ control.py เมื่อเริ่มต้นระบบ ให้ติดตั้งเป็นบริการ Cloud4rpi จัดเตรียมสคริปต์การติดตั้ง service_install.sh เพื่อดำเนินการดังกล่าว ฉันได้รวมไว้ใน repo ของฉันแล้ว ในการติดตั้ง control.py เป็นบริการ ให้เรียกใช้

sudo bash service_install.sh control.py

ตอนนี้คุณสามารถเริ่ม|หยุด|เริ่มบริการนี้ใหม่โดยเรียกใช้คำสั่ง

sudo systemctl start cloud4rpi.service

บริการจะคงสถานะเดิมไว้เมื่อเปิดเครื่อง ดังนั้นหากทำงานอยู่ บริการจะทำงานหลังจากการรีบูตหรือไฟฟ้าดับ

ขั้นตอนที่ 4: ผลลัพธ์สุดท้าย

ผลสุดท้าย
ผลสุดท้าย

เท่านี้เอง ตอนนี้ฉันได้ส่งพารามิเตอร์ Tilt ไปยังคลาวด์แล้ว ดังนั้นฉันจึงสามารถตั้งค่าแผงควบคุมระบบคลาวด์ที่ดีได้ ไปที่ https://cloud4rpi.io/control-panels และสร้างแผงควบคุมใหม่ เพิ่มวิดเจ็ต แล้วเลือก /Gravity และ Beer Temp เป็นแหล่งข้อมูล ตอนนี้ฉันสามารถตรวจสอบสิ่งที่เกิดขึ้นได้แม้ว่าฉันจะไม่อยู่บ้าน

รหัสที่ฉันคัดลอกและเขียนมีให้ที่นี่: https://github.com/superroma/tilt-cloud4rpi มันยังห่างไกลจากความสมบูรณ์แบบ มันใช้งานได้กับ Tilt เดียวเท่านั้น ไม่สนใจ "สี" ของอุปกรณ์ ไม่ว่ามันจะหมายถึงอะไร และฉันไม่ใช่ Python เลย เลยยินดีรับการแก้ไข ข้อเสนอแนะ หรือส้อม !

แนะนำ: