İçindekiler:

Akıllı Telefonunuzdan Bira Fermantasyon Sıcaklığı ve Yerçekimi Nasıl Kontrol Edilir: 4 Adım (Resimlerle)
Akıllı Telefonunuzdan Bira Fermantasyon Sıcaklığı ve Yerçekimi Nasıl Kontrol Edilir: 4 Adım (Resimlerle)

Video: Akıllı Telefonunuzdan Bira Fermantasyon Sıcaklığı ve Yerçekimi Nasıl Kontrol Edilir: 4 Adım (Resimlerle)

Video: Akıllı Telefonunuzdan Bira Fermantasyon Sıcaklığı ve Yerçekimi Nasıl Kontrol Edilir: 4 Adım (Resimlerle)
Video: Akıllı Telefonların Neden Termometresi Yoktur 2024, Kasım
Anonim
Akıllı Telefonunuzdan Bira Fermantasyon Sıcaklığı ve Yerçekimi Nasıl Kontrol Edilir
Akıllı Telefonunuzdan Bira Fermantasyon Sıcaklığı ve Yerçekimi Nasıl Kontrol Edilir

Bira mayalanırken, ağırlığını ve sıcaklığını günlük olarak izlemelisiniz. Bunu unutmak kolaydır ve uzaktaysanız imkansızdır.

Biraz googling yaptıktan sonra, otomatik yerçekimi izleme için birkaç çözüm buldum (bir, iki, üç). Bunlardan biri, çok zekice bir konsepte sahip, Tilt adında. Eğim biranızda yüzüyor ve kendi eğim açısını ölçüyor. Bu açı sıvının yoğunluğuna bağlıdır ve bu nedenle fermente biranın ağırlığını ölçebilir.

Tilt, kendisine bağlanan ve herhangi bir web hizmetine veri gönderebilen bir mobil uygulama ile birlikte gelir. Sorun şu ki, bunu yapabilmek için Tilt'ten çok uzakta olmamanız gerekiyor. Ayrıca Tilt ile çalışan Raspberry Pi programı da bulunmaktadır.

Adım 1: Python'da Eğim Verilerini Alma

Python'da Eğim Verisi Alma
Python'da Eğim Verisi Alma

Zaten mahzen sıcaklığını izlemek için Raspberry Pi ve bir bulut kontrol paneli hizmeti cloud4rpi.io kullanıyorum. Tilt, Raspberry Pi ile konuşabiliyorsa, cloud4rpi'yi ona bağlamak mümkün olmalıdır. Tilt kablosuz bir protokol kullanıyor, bu nedenle kablosuz çipli (Rasbperry Pi 3 veya Zero W) Raspberry Pi'ye ihtiyacınız olacak.

Neyse ki, Tilt yazılımı için bazı örnekler içeren bir GitHub deposu var. https://github.com/baronbrew/tilt-scan adresine baktığınızda, Tilt'in diğerlerine UUID'de “Renk” kodlu BLE iBeacon olarak göründüğünü ve sıcaklık ve yerçekiminin büyük ve küçük baytlarda olduğunu görebilirsiniz.

Örnek kodları Node.js içindir ve cloud4rpi şablonunu temel alan bir Python kontrol programım var

Bu yüzden Python'da Tilt verilerini almam gerekiyor. Biraz googling yaptıktan sonra https://github.com/switchdoclabs/iBeacon-Scanner- - Python iBeacon tarayıcı buldum. Bu bir program, kitaplık değil, bu yüzden onu dize yerine sözlük döndürecek şekilde değiştirdim. Ayrıca, bulunan ilk Tilt'in rengini, sıcaklığını ve ağırlığını elde etmek için Tilt'e özgü modül (sadece bir tane var) ve Tilt'imi görüp göremediğini kontrol etmek için basit bir test programı yazdım:

içe aktarma zamanı içe aktarma eğimi

Doğru iken:

res = tilt.getFirstTilt() baskı res time.sleep(2)

Çalıştırın ve çalışıp çalışmadığını kontrol edin. Şimdi onu kontrol programıma bağlayabilirim. Zaten cloud4rpi.io'ya bağlı bir python programım var, ancak bunun nasıl yapılacağını sıfırdan göstereyim.

2. Adım: Cihazı Buluta Bağlama

Cihazı Buluta Bağlama
Cihazı Buluta Bağlama
Cihazı Buluta Bağlama
Cihazı Buluta Bağlama

Önce cloud4rpi.io'da oturum açın, ardından yeni bir cihaz oluşturun.

Size bir cihaz belirteci ve kurulum talimatları verilecektir. Raspberry Pi için buradaki talimatları izleyin https://docs.cloud4rpi.io/start/rpi/ - sisteminizin güncel olduğundan emin olun:

sudo apt güncelleme && sudo apt yükseltme

Önkoşulları yükleyin:

sudo apt git python python-pip'i kurun

cloud4rpi python paketlerini kurun:

sudo pip cloud4rpi yükleyin

sonra Raspberry Pi için örnek bir python uygulaması edinin (kontrol klasörüne):

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

cd kontrolü

control.py'yi değiştir - satırda cihaz jetonunuzu belirtin

DEVICE_TOKEN = '_SİZİN_CİHAZINIZ_TOKEN_'

Cihaz değişkeni bildirimlerinden gereksiz girişleri kaldırın, cihaz bağlantısını test etmek için yalnızca CPUTemp'i bırakın:

# Değişken bildirimlerini buraya koyun değişkenler = { 'CPU Temp': { 'type': 'numeric', 'bind': rpi.cpu_temp } }

Şimdi bir test çalıştırması yapın:

sudo python kontrolü.py

Her şey yolundaysa, cihaz sayfanız hemen teşhis verileriyle güncellenecektir.

3. Adım: Verileri Buluta Gönderme

Buluta Veri Gönderme
Buluta Veri Gönderme

Şimdi, Tilt'in rengini, sıcaklığını ve yerçekimini okumak ve raporlamak için control.py'yi değiştirmemiz gerekiyor. Sonuç şöyle görünür:

işletim sisteminden uname'den soketi içe aktarma gethostname içe aktarma sys içe aktarma zamanı içe aktarma cloud4rpi içe aktarma rpi içe aktarma eğimi

# Cihazınızın jetonunu buraya koyun. Simgeyi almak için, # https://cloud4rpi.io adresinden kaydolun ve bir cihaz oluşturun. DEVICE_TOKEN = '_SİZİN_CİHAZINIZ_TOKEN_'

# Sabitler

DATA_SENDING_INTERVAL = 60 # saniye DIAG_SENDING_INTERVAL = 600 # saniye POLL_INTERVAL = 0,5 # 500 ms

işaret = {}

def F2C(dereceF):

dönüş (dereceF - 32) / 1.8

def getTemp():

dönüş F2C(int(beacon['Temp'])) eğer işaret ise Yok

tanım getGravity():

geri dönüş işareti['Yerçekimi'] işaretçi değilse Yok

tanım ana():

# Değişken bildirimlerini buraya koyun

değişkenler = { 'Yerçekimi': { 'tür': 'sayısal', 'bağlama': getGravity }, 'Bira Sıcaklığı': { 'tür': 'sayısal', 'bağlama': getTemp } }

teşhis = {

'CPU Temp': rpi.cpu_temp, 'IP Adresi': rpi.ip_address, 'Host': gethostname(), 'İşletim Sistemi': " ".join(uname()) }

cihaz = cloud4rpi.connect(DEVICE_TOKEN)

device.declare(değişkenler) device.declare_diag(teşhis)

device.publish_config()

# Cihaz değişkenlerinin oluşturulmasını sağlamak için 1 saniyelik bir gecikme ekler

zaman.uyku(1)

denemek:

data_timer = 0 diag_timer = 0 iken True: if data_timer <= 0: global beacon beacon = tilt.getFirstTilt() device.publish_data() data_timer = DATA_SENDING_INTERVAL

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

zaman.uyku(POLL_ARALIK)

diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL

KeyboardInterrupt hariç:

cloud4rpi.log.info('Klavye kesmesi alındı. Duruyor…')

e olarak İstisna hariç:

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

nihayet:

sistem.çıkış(0)

eğer _name_ == '_main_':

ana()

Şimdi çalışıp çalışmadığını görmek için manuel olarak çalıştırın:

sudo python kontrolü.py

Her şey yolundaysa, değişkenlerinizi çevrimiçi olarak göreceksiniz.

Control.py'yi sistem başlangıcında çalıştırmak için bir hizmet olarak yükleyin. Cloud4rpi, bunu yapmak için service_install.sh kurulum komut dosyasını sağlar. Repoma dahil ettim. Control.py'yi hizmet olarak yüklemek için şunu çalıştırın:

sudo bash service_install.sh control.py

Şimdi komutu çalıştırarak bu hizmeti başlatabilir|durdurabilir|yeniden başlatabilirsiniz.

sudo systemctl cloud4rpi.service'i başlat

Hizmet, açılışta önceki durumunu korur, bu nedenle çalışıyorsa, yeniden başlatma veya güç kaybından sonra çalışır.

4. Adım: Nihai Sonuç

Son sonuç
Son sonuç

İşte bu, şimdi buluta gönderilen Tilt parametrelerim var, böylece bunun için güzel bir bulut kontrol paneli kurabilirim. https://cloud4rpi.io/control-panels adresine gidin ve yeni kontrol paneli oluşturun, widget ekleyin ve veri kaynağı olarak /Gravity ve Beer Temp'i seçin. Artık evden uzakta olsam bile neler olup bittiğini izleyebiliyorum.

Kopyaladığım ve yazdığım kod burada mevcut: https://github.com/superroma/tilt-cloud4rpi. Mükemmel olmaktan çok uzak, sadece tek bir Eğim ile çalışıyor, cihazın “Rengi” ne olursa olsun umurunda değil ve ben bir Python adamı değilim, bu yüzden düzeltmeler, öneriler veya çatallar açığız !

Önerilen: