Daftar Isi:

Cara Mengontrol Suhu dan Gravitasi Fermentasi Bir Dari Smartphone Anda: 4 Langkah (dengan Gambar)
Cara Mengontrol Suhu dan Gravitasi Fermentasi Bir Dari Smartphone Anda: 4 Langkah (dengan Gambar)

Video: Cara Mengontrol Suhu dan Gravitasi Fermentasi Bir Dari Smartphone Anda: 4 Langkah (dengan Gambar)

Video: Cara Mengontrol Suhu dan Gravitasi Fermentasi Bir Dari Smartphone Anda: 4 Langkah (dengan Gambar)
Video: Fabrikasi Pakan 2. Penyimpanan Bahan Pakan (Bagian 1) 2024, November
Anonim
Cara Mengontrol Suhu dan Gravitasi Fermentasi Bir Dari Smartphone Anda
Cara Mengontrol Suhu dan Gravitasi Fermentasi Bir Dari Smartphone Anda

Saat bir difermentasi, Anda harus memantau gravitasi dan suhunya setiap hari. Sangat mudah untuk lupa melakukannya, dan tidak mungkin jika Anda pergi.

Setelah beberapa googling, saya menemukan beberapa solusi untuk pemantauan gravitasi otomatis (satu, dua, tiga). Salah satunya, dengan konsep yang sangat cerdas, bernama Tilt. Kemiringan mengambang di bir Anda dan mengukur sudut kemiringannya sendiri. Sudut ini tergantung pada kepadatan cairan, dan karena itu dapat mengukur gravitasi bir yang difermentasi.

Tilt hadir dengan aplikasi seluler, yang menghubungkannya dan dapat memposting data ke layanan web apa pun. Soalnya kamu harus berada tidak jauh dari Tilt untuk bisa melakukannya. Ada juga program Raspberry Pi yang bekerja dengan Tilt.

Langkah 1: Mendapatkan Data Kemiringan dengan Python

Mendapatkan Data Kemiringan dengan Python
Mendapatkan Data Kemiringan dengan Python

Saya sudah menggunakan Raspberry Pi untuk memantau suhu ruang bawah tanah, dan layanan panel kontrol cloud cloud4rpi.io. Jika Tilt dapat berbicara dengan Raspberry Pi, seharusnya dimungkinkan untuk menghubungkan cloud4rpi ke sana. Tilt menggunakan protokol nirkabel, jadi Anda memerlukan Raspberry Pi dengan chip nirkabel (Rasbperry Pi 3 atau Zero W).

Untungnya, ada repo GitHub untuk perangkat lunak Tilt dengan beberapa sampel. Melihat https://github.com/baronbrew/tilt-scan Anda dapat melihat bahwa Tilt terlihat oleh orang lain sebagai BLE iBeacon, dengan "Warna" dikodekan dalam UUID, dan suhu dan gravitasi dalam byte besar dan kecil.

Kode sampel mereka adalah untuk Node.js, dan saya memiliki program kontrol Python berdasarkan template cloud4rpi

Jadi saya perlu mendapatkan data Tilt dengan Python. Setelah beberapa googling, saya menemukan https://github.com/switchdoclabs/iBeacon-Scanner- - Pemindai Python iBeacon. Ini adalah program, bukan perpustakaan, jadi saya memodifikasinya untuk mengembalikan kamus alih-alih string. Dan saya juga menulis modul khusus Tilt untuk mendapatkan warna, suhu, dan gravitasi dari Tilt pertama yang ditemukan (saya hanya punya satu), dan program pengujian sederhana untuk memeriksa apakah ia dapat melihat Tilt saya:

waktu impormiringkan impor

sementara Benar:

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

Jalankan dan periksa apakah itu berfungsi. Sekarang saya dapat menghubungkannya ke program kontrol saya. Saya sudah memiliki program python yang terhubung ke cloud4rpi.io, tetapi izinkan saya menunjukkan cara melakukannya dari awal.

Langkah 2: Menghubungkan Perangkat ke Cloud

Menghubungkan Perangkat ke Cloud
Menghubungkan Perangkat ke Cloud
Menghubungkan Perangkat ke Cloud
Menghubungkan Perangkat ke Cloud

Pertama, masuk ke cloud4rpi.io, lalu buat perangkat baru.

Anda akan diberikan token perangkat dan petunjuk pemasangan. Untuk Raspberry Pi, ikuti instruksi di sini https://docs.cloud4rpi.io/start/rpi/ - pastikan sistem Anda mutakhir:

sudo apt update && sudo apt upgrade

Instal prasyarat:

sudo apt install git python python-pip

Instal paket python cloud4rpi:

sudo pip instal cloud4rpi

kemudian dapatkan contoh aplikasi python untuk Raspberry Pi (ke dalam folder kontrol):

git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… kontrol

kontrol cd

ubah control.py - tentukan token perangkat Anda di baris

DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’

Hapus entri yang tidak perlu dari deklarasi variabel perangkat, biarkan hanya CPUTemp untuk menguji koneksi perangkat:

# Letakkan deklarasi variabel di sini variabel = { 'CPU Temp': { 'type': 'numeric', 'bind': rpi.cpu_temp } }

Sekarang lakukan uji coba:

sudo python control.py

Jika semuanya baik-baik saja, halaman perangkat Anda akan segera diperbarui dengan data diagnostik.

Langkah 3: Mengirim Data ke Cloud

Mengirim Data ke Cloud
Mengirim Data ke Cloud

Sekarang kita perlu memodifikasi control.py untuk membaca dan melaporkan warna, suhu, dan gravitasi Tilt. Hasilnya terlihat seperti ini:

from os import unamefrom socket import gethostname import sys import time import cloud4rpi import rpi import tilt

# Letakkan token perangkat Anda di sini. Untuk mendapatkan tokennya, # daftar di https://cloud4rpi.io dan buat perangkat. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

# Konstanta

DATA_SENDING_INTERVAL = 60 # dtk DIAG_SENDING_INTERVAL = 600 # dtk POLL_INTERVAL = 0,5 # 500 mdtk

suar = {}

def F2C(derajatF):

kembali (derajatF - 32) / 1,8

def getTemp():

kembalikan F2C(int(beacon['Temp'])) jika beacon else Tidak ada

def getGravity():

kembali beacon['Gravity'] jika beacon lain Tidak ada

def utama():

# Letakkan deklarasi variabel di sini

variabel = { 'Gravity': { 'type': 'numeric', 'bind': getGravity }, 'Beer Temp': { 'type': 'numeric', 'bind': getTemp } }

diagnostik = {

'CPU Temp': rpi.cpu_temp, 'IP Address': rpi.ip_address, 'Host': gethostname(), 'Operating System': " ".join(uname()) }

perangkat = cloud4rpi.connect(DEVICE_TOKEN)

device.declare(variabel) device.declare_diag(diagnostik)

perangkat.publish_config()

# Menambahkan penundaan 1 detik untuk memastikan variabel perangkat dibuat

waktu.tidur(1)

mencoba:

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

jika diag_timer <= 0: device.publish_diag() diag_timer = DIAG_SENDING_INTERVAL

waktu.tidur(POLL_INTERVAL)

diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL

kecuali KeyboardInterrupt:

cloud4rpi.log.info('Keyboard interupsi diterima. Berhenti…')

kecuali Pengecualian sebagai e:

kesalahan = cloud4rpi.get_error_message(e) cloud4rpi.log.error("ERROR! %s %s", kesalahan, sys.exc_info()[0])

akhirnya:

sys.keluar(0)

jika _name_ == '_main_':

utama()

Sekarang jalankan secara manual untuk melihat apakah itu berfungsi:

sudo python control.py

Jika semuanya baik-baik saja, Anda akan melihat variabel Anda secara online.

Untuk menjalankan control.py saat startup sistem, instal sebagai layanan. Cloud4rpi menyediakan skrip instalasi service_install.sh untuk melakukannya. Saya telah memasukkannya ke dalam repo saya. Untuk menginstal control.py sebagai layanan, jalankan

sudo bash service_install.sh control.py

Sekarang Anda dapat memulai|stop|memulai ulang layanan ini dengan menjalankan perintah

sudo systemctl start cloud4rpi.service

Layanan mempertahankan status sebelumnya pada daya, jadi jika sedang berjalan, itu akan berjalan setelah reboot atau kehilangan daya.

Langkah 4: Hasil Akhir

Hasil Akhir
Hasil Akhir

Ini dia, sekarang saya memiliki parameter Tilt yang dikirim ke cloud, jadi saya dapat mengatur panel kontrol cloud yang bagus untuk itu. Buka https://cloud4rpi.io/control-panels dan buat panel kontrol baru, tambahkan widget dan pilih /Gravity and Beer Temp sebagai sumber data. Sekarang saya dapat memantau apa yang terjadi bahkan jika saya jauh dari rumah.

Kode yang saya salin dan tulis tersedia di sini: https://github.com/superroma/tilt-cloud4rpi. Ini jauh dari sempurna, hanya berfungsi dengan satu Tilt, tidak peduli dengan "Warna" perangkat, apa pun artinya, dan saya sama sekali bukan orang Python, jadi perbaikan, saran, atau garpu dipersilakan !

Direkomendasikan: