Mündəricat:

Smartfonunuzdan Pivə Fermentasiyasının Temperaturunu və Ağırlığını Nəzarət Edin: 4 Adım (Şəkillərlə birlikdə)
Smartfonunuzdan Pivə Fermentasiyasının Temperaturunu və Ağırlığını Nəzarət Edin: 4 Adım (Şəkillərlə birlikdə)

Video: Smartfonunuzdan Pivə Fermentasiyasının Temperaturunu və Ağırlığını Nəzarət Edin: 4 Adım (Şəkillərlə birlikdə)

Video: Smartfonunuzdan Pivə Fermentasiyasının Temperaturunu və Ağırlığını Nəzarət Edin: 4 Adım (Şəkillərlə birlikdə)
Video: Капсульный отель в Японии с автоматическими откидными кроватями 😪🛌 Миллениалы Сибуя 2024, Iyul
Anonim
Smartfonunuzdan Pivə Fermentasiyasının Temperaturunu və Ağırlığını Nəzarət Edin
Smartfonunuzdan Pivə Fermentasiyasının Temperaturunu və Ağırlığını Nəzarət Edin

Pivə mayalanarkən gündəlik çəkisini və temperaturunu izləməlisiniz. Bunu unutmaq asandır və uzaqda olsanız mümkün deyil.

Bir az googling etdikdən sonra, avtomatik çəkisi izləmə üçün bir neçə həll yolu tapdım (bir, iki, üç). Onlardan biri, çox ağıllı bir anlayışla Tilt adlanır. Tilt pivənizdə üzür və öz əyilmə bucağını ölçür. Bu bucaq mayenin sıxlığından asılıdır və buna görə də mayalanan pivənin çəkisini ölçə bilər.

Tilt, ona qoşulan və istənilən veb xidmətinə məlumat göndərə bilən bir mobil tətbiq ilə gəlir. Problem ondadır ki, bunu etmək üçün Tiltdən çox da uzaqda olmamalısan. Tilt ilə işləyən bir Raspberry Pi proqramı da var.

Addım 1: Pythonda əyilmə məlumatı əldə edin

Pythonda əyilmə məlumatı əldə etmək
Pythonda əyilmə məlumatı əldə etmək

Zirzəmilərdəki temperaturu və cloud4rpi.io bulud idarəetmə paneli xidmətini izləmək üçün artıq Raspberry Pi istifadə edirəm. Tilt Raspberry Pi ilə danışa bilirsə, cloud4rpi -ni ona bağlamaq mümkün olmalıdır. Tilt simsiz protokoldan istifadə edir, buna görə simsiz çipli Rasbberry Pi (Rasbperry Pi 3 və ya Zero W) lazımdır.

Xoşbəxtlikdən, bəzi nümunələri olan Tilt proqramı üçün bir GitHub repo var. Https://github.com/baronbrew/tilt-scan saytına baxanda Tilt-in başqalarına BLE iBeacon kimi göründüyünü, UUID kodlu "Rəng" ilə, temperatur və cazibənin böyük və kiçik baytlarda olduğunu görə bilərsiniz.

Onların nümunə kodu Node.js üçündür və məndə cloud4rpi şablonuna əsaslanan bir Python nəzarət proqramı var

Buna görə Pythonda Tilt məlumatlarını almalıyam. Bir az googling etdikdən sonra https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon skanerini tapdım. Bu kitabxana deyil, bir proqramdır, buna görə simli əvəzinə bir lüğət qaytarmaq üçün dəyişdirdim. Həm də Tilt-a xüsusi bir modul yazdım ki, ilk Tiltin rəngini, temperaturunu və cazibəsini əldə edim (yalnız birim var) və Tiltimi görə biləcəyini yoxlamaq üçün sadə bir test proqramı:

idxal vaxtı

Doğru halda:

res = tilt.getFirstTilt () çap res vaxt.yuxu (2)

Çalışın və işlədiyini yoxlayın. İndi nəzarət proqramına qoşa bilərəm. Artıq cloud4rpi.io ilə əlaqəli bir python proqramım var, amma bunu sıfırdan necə edəcəyimi göstərim.

Addım 2: Cihazı Buluda Bağlamaq

Cihazı Buluda Bağlamaq
Cihazı Buluda Bağlamaq
Cihazı Buluda Bağlamaq
Cihazı Buluda Bağlamaq

Əvvəlcə cloud4rpi.io -ya daxil olun, sonra yeni bir cihaz yaradın.

Sizə cihaz nişanı və quraşdırma təlimatları veriləcək. Raspberry Pi üçün https://docs.cloud4rpi.io/start/rpi/ təlimatlarına əməl edin-sisteminizin güncəl olduğundan əmin olun:

sudo apt update && sudo apt upgrade

Ön şərtləri quraşdırın:

sudo apt install git python python-pip yükləyin

Cloud4rpi python paketlərini quraşdırın:

sudo pip cloud4rpi quraşdırın

sonra Raspberry Pi üçün nümunə bir python tətbiqini əldə edin (nəzarət qovluğuna):

git klonu https://github.com/cloud4rpi/cloud4rpi-raspberryp… nəzarət

cd nəzarət

modify control.py - cihaz nişanını sətirdə göstərin

DEVICE_TOKEN = ‘_SİZİN_DİVANE_TOKEN_’

Cihaz dəyişən bəyannamələrindən lazımsız girişləri silin, cihaz bağlantısını sınamaq üçün yalnız CPUTemp buraxın:

# Dəyişən bəyannamələri bura qoyun dəyişənlər = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}

İndi bir test çalışması edin:

sudo python control.py

Hər şey qaydasındadırsa, cihaz səhifəniz dərhal diaqnostik məlumatlar ilə yenilənəcək.

Addım 3: Məlumatları Buluda Göndərin

Məlumatların Buluda Göndərilməsi
Məlumatların Buluda Göndərilməsi

İndi Tilt -in rəngini, temperaturunu və çəkisini oxumaq və bildirmək üçün control.py -ni dəyişdirməliyik. Nəticə belə görünür:

os idxaldan unamefoketdən idxal gethostname idxal sys idxal vaxtı idxal bulud4rpi idxal rpi idxal tilt

# Cihaz nişanını bura qoy. Nişanı əldə etmək üçün, # https://cloud4rpi.io saytına daxil olun və bir cihaz yaradın. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

# Sabitlər

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

mayak = {}

def F2C (dərəcə F):

qayıt (dərəcəF - 32) / 1.8

def getTemp ():

qaytar F2C (int (mayak ['Temp']))) əgər başqa mayak yoxdursa

def getGravity ():

geri mayak ['Cazibə qüvvəsi'] əgər başqa mayak yoxdursa

def main ():

# Dəyişən bəyannamələri bura qoy

dəyişənlər = {'Cazibə qüvvəsi': {'növ': 'sayısal', 'bağlama': getGravity}, 'Bira Temp': {'növ': 'rəqəmsal', 'bağlama': getTemp}}

diaqnostika = {

'CPU Temp': rpi.cpu_temp, 'IP Adresi': rpi.ip_address, 'Host': gethostname (), 'Əməliyyat Sistemi': "".join (uname ())}

cihaz = cloud4rpi.connect (DEVICE_TOKEN)

device.declare (dəyişənlər) device.declare_diag (diaqnostika)

device.publish_config ()

# Cihaz dəyişənlərinin yaradılmasını təmin etmək üçün 1 saniyə gecikmə əlavə edir

vaxt.yuxu (1)

cəhd edin:

data_timer = 0 diag_timer = 0 Doğru isə: data_timer <= 0: qlobal mayak işarəsi = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL

əgər diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL

vaxt.yuxu (POLL_INTERVAL)

diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL

KeyboardInterrupt istisna olmaqla:

cloud4rpi.log.info ('Klaviatura kəsilməsi alındı. Durdurulur …')

istisna istisna olmaqla e:

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

nəhayət:

sys.exit (0)

əgər _ adı_ == '_ əsas_' olarsa:

əsas ()

İndi işlədiyini görmək üçün əl ilə işləyin:

sudo python control.py

Hər şey yaxşıdırsa, dəyişənlərinizi onlayn olaraq görəcəksiniz.

Sistem başlanğıcında control.py faylını işə salmaq üçün onu xidmət olaraq quraşdırın. Cloud4rpi bunu etmək üçün service_install.sh quraşdırma skriptini təqdim edir. Bunu repouma daxil etdim. Control.py -ni bir xidmət olaraq qurmaq üçün işə salın

sudo bash service_install.sh control.py

İndi başlaya bilərsiniz | dayandır | əmri işlədərək bu xidməti yenidən başladın

sudo systemctl cloud4rpi.service başladın

Xidmət əvvəlki vəziyyətini gücdə saxlayır, buna görə də işləyərsə, yenidən başladıqdan və ya güc itkisindən sonra işləyəcək.

Addım 4: Son nəticə

Yekun Nəticə
Yekun Nəticə

Budur, indi Tilt parametrlərimi buluda göndərirəm, buna görə gözəl bir bulud idarəetmə paneli qura bilərəm. Https://cloud4rpi.io/control-panels səhifəsinə keçin və yeni idarəetmə paneli yaradın, widget əlavə edin və/Gravity və Beer Temp məlumat mənbəyi olaraq seçin. İndi evdən kənarda olsam da nə baş verdiyini izləyə bilərəm.

Kopyaladığım və yazdığım kod burada mövcuddur: https://github.com/superroma/tilt-cloud4rpi. Mükəmməllikdən uzaqdır, yalnız bir Tilt ilə işləyir, cihazın "Rəngi" nə əhəmiyyət vermir və mən ümumiyyətlə Python adamı deyiləm, buna görə düzəlişlər, təkliflər və ya çəngəllər xoş gəlir !

Tövsiyə: