Mục lục:
- Bước 1: Lấy dữ liệu nghiêng bằng Python
- Bước 2: Kết nối thiết bị với đám mây
- Bước 3: Gửi dữ liệu lên đám mây
- Bước 4: Kết quả cuối cùng
Video: Cách kiểm soát nhiệt độ và trọng lực lên men bia từ điện thoại thông minh của bạn: 4 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:36
Khi bia đang lên men, bạn nên theo dõi trọng lực và nhiệt độ của nó hàng ngày. Thật dễ dàng để quên làm như vậy, và không thể nếu bạn đi vắng.
Sau một số googling, tôi đã tìm thấy một số giải pháp để theo dõi trọng lực tự động (một, hai, ba). Một trong số chúng, với khái niệm rất thông minh, được gọi là Tilt. Tilt đang nổi trong bia của bạn và đang đo góc nghiêng của chính nó. Góc này phụ thuộc vào tỷ trọng của chất lỏng và do đó có thể đo trọng lực của bia lên men.
Tilt đi kèm với một ứng dụng di động, kết nối với nó và có thể đăng dữ liệu lên bất kỳ dịch vụ web nào. Vấn đề là bạn cần cách Tilt không xa để có thể làm được như vậy. Ngoài ra còn có một chương trình Raspberry Pi hoạt động với Tilt.
Bước 1: Lấy dữ liệu nghiêng bằng Python
Tôi đã sử dụng Raspberry Pi để theo dõi nhiệt độ hầm rượu và dịch vụ bảng điều khiển đám mây cloud4rpi.io. Nếu Tilt có thể nói chuyện với Raspberry Pi, thì có thể kết nối cloud4rpi với nó. Tilt đang sử dụng giao thức không dây, vì vậy bạn sẽ cần Raspberry Pi có chip không dây (Rasbperry Pi 3 hoặc Zero W).
May mắn thay, có một repo GitHub cho phần mềm Tilt với một số mẫu. Nhìn vào https://github.com/baronbrew/tilt-scan, bạn có thể thấy rằng Tilt đối với những người khác là BLE iBeacon, với “Màu sắc” được mã hóa bằng UUID, nhiệt độ và trọng lực ở các byte chính và phụ.
Mã mẫu của họ dành cho Node.js và tôi có một chương trình điều khiển Python dựa trên mẫu cloud4rpi
Vì vậy, tôi cần lấy dữ liệu Tilt bằng Python. Sau một số googling, tôi đã tìm thấy https://github.com/switchdoclabs/iBeacon-Scanner- - Trình quét iBeacon Python. Đây là một chương trình, không phải là một thư viện, vì vậy tôi đã sửa đổi nó để trả về một từ điển thay vì chuỗi. Và tôi cũng đã viết mô-đun cụ thể Tilt để lấy màu sắc, nhiệt độ và trọng lực của Tilt đầu tiên được tìm thấy (tôi chỉ có một) và một chương trình thử nghiệm đơn giản để kiểm tra xem nó có thể nhìn thấy Tilt của tôi hay không:
nhập độ nghiêng thời gian nhập khẩu
trong khi Đúng:
res = tilt.getFirstTilt () in res time.sleep (2)
Chạy và kiểm tra xem nó hoạt động. Bây giờ tôi có thể cắm nó vào chương trình điều khiển của mình. Tôi đã có một chương trình python được kết nối với cloud4rpi.io, nhưng hãy để tôi hướng dẫn cách làm điều đó từ đầu.
Bước 2: Kết nối thiết bị với đám mây
Trước tiên, hãy đăng nhập vào cloud4rpi.io, sau đó tạo một thiết bị mới.
Bạn sẽ được cấp mã thông báo thiết bị và hướng dẫn cài đặt. Đối với Raspberry Pi, hãy làm theo hướng dẫn tại đây https://docs.cloud4rpi.io/start/rpi/ - đảm bảo hệ thống của bạn được cập nhật:
cập nhật sudo apt & nâng cấp sudo apt
Cài đặt điều kiện tiên quyết:
sudo apt install git python python-pip
Cài đặt gói python cloud4rpi:
sudo pip cài đặt cloud4rpi
sau đó tải ứng dụng python mẫu cho Raspberry Pi (vào thư mục điều khiển):
git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… control
kiểm soát cd
sửa đổi control.py - chỉ định mã thông báo thiết bị của bạn trong dòng
DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’
Loại bỏ các mục nhập không cần thiết khỏi khai báo biến thiết bị, chỉ để lại CPUTemp để kiểm tra kết nối thiết bị:
# Đặt khai báo biến ở đây biến = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}
Bây giờ hãy chạy thử nghiệm:
sudo python control.py
Nếu mọi thứ đều ổn, trang thiết bị của bạn sẽ được cập nhật ngay lập tức với dữ liệu chẩn đoán.
Bước 3: Gửi dữ liệu lên đám mây
Bây giờ chúng ta cần sửa đổi control.py để đọc và báo cáo màu sắc, nhiệt độ và trọng lực của Tilt. Kết quả trông như thế này:
from os import unamefrom socket import gethostname import sys import time import cloud4rpi import rpi import nghiêng
# Đặt mã thông báo thiết bị của bạn ở đây. Để lấy mã thông báo, # đăng ký tại https://cloud4rpi.io và tạo một thiết bị. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Hằng số
DATA_SENDING_INTERVAL = 60 # giây DIAG_SENDING_INTERVAL = 600 # giây POLL_INTERVAL = 0,5 # 500 mili giây
beacon = {}
def F2C (độF):
trở lại (độF - 32) / 1.8
def getTemp ():
return F2C (int (beacon ['Temp'])) nếu beacon khác Không có
def getGravity ():
trả về beacon ['Gravity'] nếu beacon khác Không có
def main ():
# Đặt các khai báo biến ở đây
biến = {'Gravity': {'type': 'numeric', 'bind': getGravity}, 'Beer Temp': {'type': 'numeric', 'bind': getTemp}}
chẩn đoán = {
"CPU Temp": rpi.cpu_temp, "IP Address": rpi.ip_address, "Host": gethostname (), "Operating System": "".join (uname ())}
device = cloud4rpi.connect (DEVICE_TOKEN)
device.declare (biến) device.declare_diag (chẩn đoán)
device.publish_config ()
# Thêm độ trễ 1 giây để đảm bảo các biến thiết bị được tạo
time.sleep (1)
cố gắng:
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
nếu Diag_timer <= 0: device.publish_diag () Diag_timer = DIAG_SENDING_INTERVAL
time.sleep (POLL_INTERVAL)
Diag_timer - = POLL_INTERVAL data_timer - = POLL_INTERVAL
ngoại trừ KeyboardInterrupt:
cloud4rpi.log.info ('Đã nhận được ngắt bàn phím. Đang dừng…')
ngoại trừ Exception as e:
error = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("ERROR!% s% s", error, sys.exc_info () [0])
cuối cùng:
sys.exit (0)
nếu _name_ == '_main_':
chủ chốt()
Bây giờ hãy chạy nó theo cách thủ công để xem nó có hoạt động không:
sudo python control.py
Nếu mọi thứ đều tốt, bạn sẽ thấy các biến của mình trực tuyến.
Để chạy control.py khi khởi động hệ thống, hãy cài đặt nó như một dịch vụ. Cloud4rpi cung cấp một script cài đặt service_install.sh để làm như vậy. Tôi đã đưa nó vào repo của mình. Để cài đặt control.py làm dịch vụ, hãy chạy
sudo bash service_install.sh control.py
Bây giờ bạn có thể bắt đầu | dừng | khởi động lại dịch vụ này bằng cách chạy lệnh
sudo systemctl start cloud4rpi.service
Dịch vụ giữ trạng thái trước đó của nó là bật nguồn, vì vậy nếu nó đang chạy, nó sẽ chạy sau khi khởi động lại hoặc mất điện.
Bước 4: Kết quả cuối cùng
Đây là nó, bây giờ tôi có thông số Tilt của tôi được gửi đến đám mây, vì vậy tôi có thể thiết lập một bảng điều khiển đám mây đẹp cho nó. Truy cập https://cloud4rpi.io/control-panels và tạo bảng điều khiển mới, thêm tiện ích và chọn / Gravity and Beer Temp làm nguồn dữ liệu. Giờ đây, tôi có thể theo dõi những gì đang diễn ra ngay cả khi tôi vắng nhà.
Mã tôi đã sao chép và viết có sẵn tại đây: https://github.com/superroma/tilt-cloud4rpi. Nó còn lâu mới hoàn hảo, nó chỉ hoạt động với một Tilt duy nhất, nó không quan tâm đến “Màu sắc” của thiết bị, cho dù nó có nghĩa là gì, và tôi không phải là một người chơi Python, vì vậy các bản sửa lỗi, đề xuất hoặc fork đều được hoan nghênh !
Đề xuất:
Biến điện thoại thông minh không sử dụng thành màn hình thông minh: 6 bước (có hình ảnh)
Biến điện thoại thông minh không sử dụng thành màn hình thông minh: Hướng dẫn Deze có trong het Engels, voor de Nederlandse versie klik hier Bạn có điện thoại thông minh (cũ) chưa sử dụng? Biến nó thành một màn hình thông minh bằng Google Trang tính và một số bút và giấy, bằng cách làm theo hướng dẫn từng bước dễ dàng này. Khi bạn hoàn thành
Màn hình cây trồng trong nhà thông minh - Biết khi nào cây trồng của bạn cần tưới nước: 8 bước (có hình ảnh)
Máy theo dõi cây trồng trong nhà thông minh - Biết khi nào cây trồng của bạn cần tưới nước: Một vài tháng trước, tôi đã làm một que theo dõi độ ẩm của đất chạy bằng pin và có thể được gắn vào đất trong chậu cây trong nhà của bạn để cung cấp cho bạn một số thông tin hữu ích về đất mức độ ẩm và đèn LED nhấp nháy để cho bạn biết khi nào cần
Kiểm soát bố cục tàu mô hình của bạn bằng điện thoại di động!: 11 bước (có hình ảnh)
Kiểm soát bố cục tàu mô hình của bạn bằng điện thoại di động !: Điều khiển bố cục tàu mô hình bằng bướm ga có dây và bộ điều khiển cử tri có thể là một khởi đầu tốt cho người mới bắt đầu nhưng chúng gây ra vấn đề về tính không di động. Ngoài ra, các bộ điều khiển không dây trên thị trường chỉ có thể điều khiển một số vị trí
Sử dụng điện thoại thông minh làm nhiệt kế không tiếp xúc / Nhiệt kế cầm tay: 8 bước (có hình ảnh)
Sử dụng điện thoại thông minh như không tiếp xúc Nhiệt kế / Nhiệt kế cầm tay: Đo nhiệt độ cơ thể không tiếp xúc / không tiếp xúc như súng nhiệt áp. Tôi đã tạo dự án này vì Súng nhiệt điện hiện nay rất đắt, vì vậy tôi phải có được vật thay thế để tự làm. Và mục đích là thực hiện với phiên bản ngân sách thấp
Cách điều khiển Công tắc thông minh cơ bản dựa trên Sonoff ESP8266 với điện thoại thông minh: 4 bước (có hình ảnh)
Cách điều khiển Công tắc thông minh cơ bản dựa trên Sonoff ESP8266 bằng điện thoại thông minh: Sonoff là dòng thiết bị dành cho Nhà thông minh do ITEAD phát triển. Một trong những thiết bị linh hoạt và rẻ tiền nhất từ dòng đó là Sonoff Basic. Đây là một công tắc hỗ trợ Wi-Fi dựa trên một con chip tuyệt vời, ESP8266. Bài viết này mô tả cách thiết lập Cl