Isi kandungan:

Cara Mengawal Suhu dan Graviti Fermentasi Bir Dari Telefon Pintar Anda: 4 Langkah (dengan Gambar)
Cara Mengawal Suhu dan Graviti Fermentasi Bir Dari Telefon Pintar Anda: 4 Langkah (dengan Gambar)

Video: Cara Mengawal Suhu dan Graviti Fermentasi Bir Dari Telefon Pintar Anda: 4 Langkah (dengan Gambar)

Video: Cara Mengawal Suhu dan Graviti Fermentasi Bir Dari Telefon Pintar Anda: 4 Langkah (dengan Gambar)
Video: Biologi Ternyata Semudah Ini! - Edisi 2 2024, Julai
Anonim
Bagaimana Mengawal Suhu dan Graviti Fermentasi Bir Dari Telefon Pintar Anda
Bagaimana Mengawal Suhu dan Graviti Fermentasi Bir Dari Telefon Pintar Anda

Semasa bir ditapai, anda harus memantau graviti dan suhunya setiap hari. Sangat mudah untuk melupakannya, dan mustahil jika anda berada jauh.

Selepas beberapa googling, saya menemui beberapa penyelesaian untuk pemantauan graviti automatik (satu, dua, tiga). Salah satunya, dengan konsep yang sangat pintar, dipanggil Tilt. Tilt mengambang di bir anda dan mengukur sudut kecondongannya sendiri. Sudut ini bergantung pada ketumpatan cecair, dan oleh itu dapat mengukur graviti bir penapaian.

Tilt dilengkapi dengan aplikasi mudah alih, yang menghubungkannya dan dapat menghantar data ke mana-mana perkhidmatan web. Masalahnya ialah anda perlu berada jauh dari Tilt untuk dapat melakukannya. Terdapat juga program Raspberry Pi yang berfungsi dengan Tilt.

Langkah 1: Mendapatkan Data Kecondongan di Python

Mendapatkan Data Kecondongan di Python
Mendapatkan Data Kecondongan di Python

Saya sudah menggunakan Raspberry Pi untuk memantau suhu bilik bawah tanah, dan perkhidmatan panel kawalan awan cloud4rpi.io. Sekiranya Tilt dapat bercakap dengan Raspberry Pi, mungkin sambungkan cloud4rpi dengannya. Tilt menggunakan protokol tanpa wayar, jadi anda memerlukan Raspberry Pi dengan cip tanpa wayar (Rasbperry Pi 3 atau Zero W).

Nasib baik, ada repo GitHub untuk perisian Tilt dengan beberapa sampel. Melihat https://github.com/baronbrew/tilt-scan anda dapat melihat bahawa Tilt memandang orang lain sebagai BLE iBeacon, dengan "Warna" dikodkan dalam UUID, dan suhu dan graviti berada dalam bait utama dan kecil.

Contoh kod mereka adalah untuk Node.js, dan saya mempunyai program kawalan Python berdasarkan templat cloud4rpi

Oleh itu, saya perlu mendapatkan data Tilt di Python. Selepas beberapa googling, saya dapati https://github.com/switchdoclabs/iBeacon-Scanner- - Python iBeacon scanner. Ini adalah program, bukan perpustakaan, jadi saya mengubahnya untuk mengembalikan kamus dan bukannya rentetan. Dan saya juga menulis modul khusus Tilt untuk mendapatkan warna, suhu dan graviti Tilt pertama yang dijumpai (saya hanya mempunyai satu), dan program ujian mudah untuk memeriksa sama ada ia dapat melihat Tilt saya:

import condong masa import

Walaupun Betul:

res = tilt.getFirstTilt () mencetak masa res. tidur (2)

Jalankan dan periksa bahawa ia berfungsi. Sekarang saya boleh memasangkannya ke program kawalan saya. Saya sudah mempunyai program python yang disambungkan ke cloud4rpi.io, tetapi izinkan saya menunjukkan cara melakukannya dari awal.

Langkah 2: Menyambungkan Peranti ke Awan

Menyambungkan Peranti ke Awan
Menyambungkan Peranti ke Awan
Menyambungkan Peranti ke Awan
Menyambungkan Peranti ke Awan

Pertama, log masuk ke cloud4rpi.io, kemudian buat peranti baru.

Anda akan diberi token dan arahan pemasangan peranti. Untuk Raspberry Pi ikuti arahan di sini https://docs.cloud4rpi.io/start/rpi/ - pastikan sistem anda terkini:

sudo apt update && sudo apt upgrade

Pasang prasyarat:

sudo apt pasang git python python-pip

Pasang pakej python cloud4rpi:

sudo pip pasang cloud4rpi

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

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

kawalan cd

ubah suai control.py - tentukan token peranti anda di baris

DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’

Keluarkan entri yang tidak perlu dari pernyataan pemboleh ubah peranti, biarkan CPUTemp hanya untuk menguji sambungan peranti:

# Masukkan pernyataan pemboleh ubah di sini pemboleh ubah = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}

Sekarang jalankan ujian:

sudo python control.py

Sekiranya semuanya baik-baik saja, halaman peranti anda akan segera dikemas kini dengan data diagnostik.

Langkah 3: Menghantar Data ke Awan

Menghantar Data ke Awan
Menghantar Data ke Awan

Sekarang kita perlu mengubah suai control.py untuk membaca dan melaporkan warna, suhu dan graviti Tilt. Hasilnya kelihatan seperti ini:

dari os import unamedari soket import gethostname import sys import time import cloud4rpi import rpi import tilt

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

# Pemalar

DATA_SENDING_INTERVAL = 60 # saat DIAG_SENDING_INTERVAL = 600 # saat POLL_INTERVAL = 0.5 # 500 ms

suar = {}

def F2C (darjahF):

pulangan (darjahF - 32) / 1.8

def getTemp ():

kembalikan F2C (int (suar ['Temp'])) jika suar lain Tiada

def getGravity ():

mengembalikan suar ['Gravity'] jika suar lain Tiada

def utama ():

# Masukkan pernyataan pemboleh ubah di sini

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

diagnostik = {

'CPU Temp': rpi.cpu_temp, 'Alamat IP': rpi.ip_address, 'Host': gethostname (), 'Sistem Operasi': "".join (uname ())}

device = cloud4rpi.connect (PERANTI_TOKEN)

device.declare (variables) device.declare_diag (diagnostik)

device.publish_config ()

# Menambah kelewatan 1 saat untuk memastikan pemboleh ubah peranti dibuat

masa. tidur (1)

cuba:

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

time.sleep (POLL_INTERVAL)

diag_timer - = POLL_INTERVAL data_timer - = POLL_INTERVAL

kecuali KeyboardInterrupt:

cloud4rpi.log.info ('Gangguan papan kekunci diterima. Berhenti …')

kecuali Pengecualian sebagai e:

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

akhirnya:

sys.exit (0)

jika _nama_ == '_main_':

utama ()

Sekarang jalankan secara manual untuk melihat apakah ia berfungsi:

sudo python control.py

Sekiranya semuanya baik, anda akan melihat pemboleh ubah anda dalam talian.

Untuk menjalankan control.py pada permulaan sistem, pasangkannya sebagai perkhidmatan. Cloud4rpi menyediakan skrip pemasangan service_install.sh untuk melakukannya. Saya memasukkannya ke dalam repo saya. Untuk memasang control.py sebagai perkhidmatan, jalankan

sudo bash service_install.sh control.py

Sekarang anda boleh memulakan | berhenti | mulakan semula perkhidmatan ini dengan menjalankan perintah

sudo systemctl mulakan perkhidmatan cloud4rpi.service

Perkhidmatan mengekalkan keadaan sebelumnya semasa dihidupkan, jadi jika ia berjalan, ia akan berjalan setelah reboot atau kehilangan kuasa.

Langkah 4: Keputusan Akhir

Keputusan akhir
Keputusan akhir

Ini dia, sekarang saya mempunyai parameter Tilt saya dihantar ke awan, jadi saya boleh menyediakan panel kawalan awan yang bagus untuknya. Pergi ke https://cloud4rpi.io/control-panels dan buat panel kawalan baru, tambahkan widget dan pilih / Gravity dan Beer Temp sebagai sumber data. Sekarang saya dapat memantau apa yang berlaku walaupun saya jauh dari rumah.

Kod yang saya salin dan tulis boleh didapati di sini: https://github.com/superroma/tilt-cloud4rpi. Ini jauh dari sempurna, ia hanya berfungsi dengan satu Tilt, ia tidak peduli dengan "Warna" peranti, apa pun maksudnya, dan saya sama sekali bukan lelaki Python, jadi pembaikan, cadangan atau garpu dialu-alukan !

Disyorkan: