Mundarija:

Raspberry Pi aqlli o'lchovi: 10 qadam (rasmlar bilan)
Raspberry Pi aqlli o'lchovi: 10 qadam (rasmlar bilan)

Video: Raspberry Pi aqlli o'lchovi: 10 qadam (rasmlar bilan)

Video: Raspberry Pi aqlli o'lchovi: 10 qadam (rasmlar bilan)
Video: Мини компьютер Raspberry Pi 4 что это и зачем? Что можно собрать на его основе? RetroPie прошивка 2024, Iyul
Anonim
Image
Image

Har kuni ertalab hammomning zerikarli, eski, yomon yangiliklariga qarab charchadingizmi? Har qadam bosganingizda, sizga tez -tez "men sizni yomon ko'raman" deb aytasiz. Nega hech kim aslida qiziqarli yoki ishlatishga undaydigan shkala yaratmagan? Sizning kuningizni yorqinroq qilish uchun nafaqat aqlli, balki o'ziga xos xususiyatlarga ega bo'lgan o'lchovni yaratish vaqti keldi. Biz hammomga o'rnatilgan, hazil tuyg'usi bilan birga keladigan, o'z vaznini kuzatadigan, matnli xabarlar almashadigan hammom o'lchovini qurmoqchimiz.

Bu Wii balans taxtasi, Raspberry Pi va Internetdagi ma'lumotlarni tahlil qilish platformasini birlashtirgan, Python skripti orqali boshqariladigan Internetga ulangan shkala yaratish uchun qiziqarli va oson loyihadir.

Loyiha darajasi: Boshlovchi Yakunlash vaqti: 20 daqiqa Qiziqarli faktor: O'lchab bo'lmaydigan

Ushbu bosqichma-bosqich qo'llanmada siz:

  • bluetooth orqali Wii balans taxtasini Raspberry Pi -ga ulang, balans paneliga tushganingizda vazningizni o'lchaydigan Python skriptini ishga tushiring.
  • Og'irligingizni bulut xizmatiga o'tkazish uchun Raspberry Pi -dan foydalaning (dastlabki holat)
  • har safar o'zingizni tortganingizda SMS -xabarni o'rnating
  • veb-brauzeringizda kirishingiz mumkin bo'lgan vaznni nazorat qilish panelini yarating

1 -qadam: uskunalar

Wii balans kengashi shkalasi
Wii balans kengashi shkalasi

Bu erda biz har bir mahsulotni sotib olishingiz mumkin bo'lgan havolalar bilan ushbu qo'llanmada foydalanadigan barcha asbob -uskunalar ro'yxati keltirilgan.

  • Raspberry Pi 3 SD -karta va quvvat manbai bilan (https://init.st/psuufmj)
  • Wii balans kengashi (https://init.st/qg4ynjl)
  • Wii Fit zaryadlanuvchi batareya to'plami (https://init.st/iyypz2i)
  • 3/8 dyuymli paypoqlar (https://init.st/8gywmjj)
  • Qalam (men sizga qalamni qayerdan sotib olish kerakligi haqida havola bermayman … siz ulardan biriga ega bo'lishingiz kerak)

Eslatma: Agar sizda Raspberry Pi 1 yoki 2 bo'lsa, sizga bluetooth adapteri kerak bo'ladi (https://init.st/7y3bcoe)

2 -qadam: Wii balans kengashi shkalasi

Nima uchun Wii balans kengashi? Ma'lum bo'lishicha, bu haqiqatan ham bluetooth ulanishiga ega, bardoshli o'lchov. Bu bizga sizning og'irligingizni Python skriptida o'qish va kerakli ma'lumotlarni bajarish uchun onlayn ma'lumotlarni uzatish xizmatiga yuborish uchun uni bitta taxtali kompyuterga (Raspberry Pi) ulash imkonini beradi. Qolaversa, sizda yoki siz bilgan odamda shunchaki chang yig'adigan odam bor.

Loyihani amaliy va qulay qilish uchun biz Wii Balans kengashiga bir nechta oddiy o'zgartirishlar kiritishimiz kerak bo'ladi.

3 -qadam: Bluetooth -ni sozlash

Raspberry Pi 3 bluetooth bilan jihozlangan, biz Wii Balance Board bilan bog'lanishimiz kerak. Agar sizda Raspberry Pi 1 yoki 2 bo'lsa, biz adapterni ulash uchun USB portlarimizdan birini ishlatishimiz kerak bo'ladi.

Pi -ni yoqing (menimcha, siz allaqachon Raspbian -ni o'rnatgansiz va u ochiladi) va Raspberry Pi terminal oynasiga o'ting. Siz "hcitool dev" buyrug'i bilan bluetooth dongle manzilini ko'rishingiz mumkin:

$ hcitool devDevices: hci0 00: 1A: 7D: DA: 71: 13

Python skriptlarida foydalanadigan bluetooth modullarini o'rnating:

$ sudo apt-get python-bluetooth-ni o'rnating

O'rnatish tugagandan so'ng, biz Wii Balans kengashi bilan bog'lanishga va muloqot qilishga tayyormiz. Biz bluetooth qurilmalarimizning ko'pchiligidek, boshqaruv kengashimizni doimiy ravishda Pi bilan bog'lay olmaymiz. Wii Balans kengashi hech qachon Wii -dan boshqa hech narsa bilan bog'lanishni mo'ljallamagan va doimiy ulanish juda murakkab vazifa bo'lib chiqdi. Har safar biz Python skriptini ishga tushirganimizda ulanish sodir bo'ladi.

4 -qadam: o'lchovni o'qish

Wii Balans kengashini Raspberry Pi -ga ulash vaqti keldi. Biz buni Stavros Korokithakisning Gr8W8Upd8M8.py skriptining versiyasini o'zgartirish orqali qilamiz (https://github.com/skorokithakis/gr8w8upd8m8). Biz bu qadam uchun ishlatadigan python skriptlari shu erda joylashgan. Siz ushbu fayl tarkibini Raspberry Pi -da yaratgan faylga nusxalashingiz yoki butun loyiha uchun ishlatadigan python fayllarini klonlashingiz mumkin. Ikkinchisini qilaylik. Raspberry Pi terminaliga quyidagi buyruqlarni kiriting:

$ cd ~ $ git clone $ git clone https: github.com/initialstate/smart-scale.git "aqlli o'lchov" ga klonlash… masofadan boshqarish: ob'ektlarni sanash: 14, bajarildi. masofadan boshqarish: ob'ektlarni siqish: 100% (12/12), bajarildi. masofadan turib: Hammasi bo'lib 14 (delta 1), qayta ishlatilgan 8 (delta 0), qayta ishlatilgan 0 Ob'ektlarni ochish: 100% (14/14), bajarildi. Ulanish tekshirilmoqda… bajarildi.

"aqlli o'lchov" ga klonlash … masofadan boshqarish: ob'ektlarni sanash: 14, bajarildi. masofadan boshqarish: ob'ektlarni siqish: 100% (12/12), bajarildi. masofadan turib: Hammasi bo'lib 14 (delta 1), qayta ishlatilgan 8 (delta 0), qayta ishlatilgan 0 Ob'ektlarni ochish: 100% (14/14), bajarildi. Ulanish tekshirilmoqda… bajarildi.

Yangi aqlli o'lchov katalogida ikkita python faylini ko'rishingiz kerak - smartscale.py va wiiboard_test.py.

$ CD aqlli o'lchovli $ lsREADME.md smartscale.py wiiboard_test.py

Wii Balance Board -dan aloqani tekshirish va og'irlik ko'rsatkichlarini olish uchun wiiboard_test.py skriptini ishga tushiring:

$ sudo python wiiboard_test.py

Siz quyidagi javobni ko'rasiz:

Kengash kashf qilinmoqda… Hozirgi vaqtda taxtadagi qizil sinxronizatsiya tugmasini bosing

Qizil sinxronizatsiya tugmachasini topish uchun taxtaning ostidagi batareya qopqog'ini echib oling. Skript ishga tushirilgandan keyin bir necha soniya ichida tugmani bosganingizga ishonch hosil qiling yoki vaqt tugashi mumkin. Muvaffaqiyatga erishgandan so'ng, siz shunga o'xshash narsani ko'rasiz:

00: 23: CC: 2E: E1: 44 manzilida Wiiboard topildi… Ulanishga urinilmoqda… Wiiboardga 00: 23: CC: 2E: E1: 44 Wiiboard ulanganAQSh ma'lumotlarini yozish uchun 84,9185297 lbs84,8826412 lbs84,9275927 lbs

Wiiboard_test.py skripti 10 -qatorda ko'rsatilgan vazn o'lchovlari sonini oladi va o'rtacha ko'rsatkichni chiqaradi:

# --------- Foydalanuvchi sozlamalari --------- WEIGHT_SAMPLES = 500# ------------------------- --------

Og'irlikning o'zgarishi va har bir o'lchov uchun zarur bo'lgan vaqtni ko'rish uchun qiymatni o'zgartirish va skriptni qayta ishga tushirish orqali siz bu raqam bilan o'ynashingiz mumkin. O'zingizni torting, itingizni torting, har qanday narsani torting va o'lchovlar mantiqiyligini tekshiring. Skriptni to'xtatish uchun CTRL+C tugmalar birikmasini bosing.

Siz hozir Wii Balans kengashini Raspberry Pi ulangan shkalasiga muvaffaqiyatli o'zgartirdingiz. Keling, buni ajoyib miqyosda qilaylik.

5 -qadam: Uskuna sozlamalari

Uskuna sozlamalari
Uskuna sozlamalari

Nintendo siz Wii Balans kartasini har doim to'rtta AA batareyasi bilan quvvatlantirasiz deb o'ylagan va AC quvvat adapteri bo'lmagan. Faqat batareya quvvatiga ega bo'lish noqulay bo'ladi, chunki biz bluetooth orqali Wii kartamizni Pi bilan doimiy ravishda bog'lay olmaymiz. Biz uni sinxronlashtirishimiz kerak, keyin batareyalarni tugatmasdan sinxronlashiga ruxsat berishimiz kerak, shunda biz taroziga qadam bosishimiz va tortishimiz mumkin. Yaxshiyamki, Wii Balance Board uchun bir nechta uchinchi tomon adapterlari mavjud, biz ularni devor rozetkasidan doimiy quvvat bilan ta'minlashimiz mumkin. Batareyalarni batareya to'plami bilan almashtiring va AC adapterini rozetkaga ulang.

Har safar Python skriptini ishga tushirganimizda Wii Balance Board va Raspberry Pi -ni ulash kerak, sinxronizatsiya tugmasi joylashuvi tufayli yana bir noqulaylik tug'diradi. Sinxronizatsiya tugmasi Wii platasining pastki qismida joylashgan, demak, biz sinxronlashtirish uchun har safar uni aylantirishimiz kerak. Biz buni qalam va uchta 3/8 dyuymli prokladkadan foydalanib, kichik dastak yordamida tuzatamiz. Zaryadlanuvchi batareya to'plami sinxronlash tugmachasini taxtaning pastki qismiga ochib beradi. Qalamni (yoki shunga o'xshash narsalarni) yopishtiring. sinxronizatsiya tugmachasidan taxtaning tashqi old qismigacha. Qalamning o'rtasiga 3/8 dyuymli uchta kigiz o'tirgichni (yoki shunga o'xshash narsalarni) joylashtiring. Qalamni taxtadan chiqarib yubormaslikka ehtiyot bo'ling, chunki kimdir tasodifan uni chiqarib yuborishini xohlamaysiz. Kengashni ag'daring va siz qo'lni pastga bosib sinxronizatsiya tugmachasini bosishingiz mumkin. Biroz buzilgan, lekin samarali.

Wii kartasini qanday saqlashingizga qarab, siz kauchuk ushlagichlarni taxtaning oyog'idan olib tashlashingiz mumkin (prokladkalar - bu siz yopishtiradigan stikerlar). 3/8 dyuymli paypoqlar taxtaning oyoqlariga oson siljishi uchun qo'yilishi mumkin.

6 -qadam: dastlabki holat

Boshlang'ich davlat
Boshlang'ich davlat

Biz o'z vaznimiz/ma'lumotlarimizni bulutli xizmatga o'tkazmoqchimiz va bu xizmat bizning ma'lumotlarimizni noutbuk yoki mobil qurilmadan kira oladigan yaxshi boshqaruv paneliga aylantirishini xohlaymiz. Ma'lumotlarimiz manzilga muhtoj. Bu manzil sifatida biz Bosh shtatdan foydalanamiz.

1 -qadam: Boshlang'ich davlat hisobiga ro'yxatdan o'ting https://iot.app.initialstate.com saytiga o'ting va yangi hisob yarating.

2 -qadam: ISStreamer -ni o'rnating Boshlang'ich holat Python modulini Pi -ga o'rnating: Buyruqning xohishi bilan (birinchi navbatda Pi -ga SSH yozishni unutmang) quyidagi buyruqni bajaring:

$ cd/home/pi/$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash

3 -qadam: Automagic -ni yarating 2 -bosqichdan so'ng siz ekranga quyidagi chiqishga o'xshash narsani ko'rasiz:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword: ISStreamer Python -ni oson o'rnatishni boshlang! Bu o'rnatish uchun bir necha daqiqa vaqt ketishi mumkin, qahva oling:) Lekin qaytib kelishni unutmang, keyinroq savollarim bor!

Easy_install topildi: setuptools 1.1.6

Topilgan pip: /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg dan 1.5.6 pip (python 2.7) pip asosiy versiyasi: 1 ta kichik versiya: 5 ta ISStreamer topildi, yangilanmoqda … Talab allaqachon yangilangan: /Library/Python/2.7/site-packages saytidagi ISStreamer Tozalash … Siz avtomatik tarzda misol skriptini olishni xohlaysizmi? [y/N]

(Agar siz hech qachon Initial State Python oqim modulini hech qachon o'rnatmagan bo'lsangiz, chiqish boshqacha bo'lishi mumkin va ko'proq vaqt olishi mumkin)

Misol skriptini avtomatik ravishda olish so'ralganda, y yozing. Bu biz sinovdan o'tkazadigan skriptni yaratadi, biz Pi -dan boshlang'ich holatga ma'lumotlarni uzatishimiz mumkin. Sizdan so'raladi:

Misolni qayerda saqlamoqchisiz? [standart:./is_example.py]:

Maxsus mahalliy yo'lni yozishingiz yoki standartni qabul qilish uchun enter tugmasini bosishingiz mumkin. Boshlang'ich davlat hisob qaydnomasini ro'yxatdan o'tkazishda siz yaratgan foydalanuvchi nomi va parol so'raladi. Ikkalasini ham kiriting va o'rnatish tugallanadi.

4 -qadam: kirish kalitlari

Keling, yaratilgan skript namunasini ko'rib chiqaylik.

$ nano is_example.py

15 -qatorda siz streamer = Streamer (bucket_… bilan boshlanadigan qatorni ko'rasiz. Bu satrlar "Python Stream Example" deb nomlangan yangi ma'lumotlar paketini yaratadi va sizning hisobingiz bilan bog'langan. Bu assotsiatsiya access_key = "… tufayli sodir bo'ladi)" Harflar va raqamlarning uzun qatori sizning boshlang'ich davlat hisob qaydnomangizga kirish kalitidir. Agar siz veb -brauzeringizda boshlang'ich davlat hisobingizga kirsangiz, yuqori o'ng burchakdagi foydalanuvchi nomingizni bosing va "Mening sozlamalarim" bo'limiga o'ting., siz o'sha kirish kalitini sahifaning pastki qismida "Streaming Access Keys" ostida topasiz.

Har safar siz ma'lumotlar oqimini yaratganingizda, kirish kaliti bu ma'lumotlarni sizning hisobingizga yo'naltiradi (shuning uchun kalitingizni hech kim bilan baham ko'rmang).

5 -qadam: Misolni ishga tushiring

Boshlang'ich davlat hisob qaydnomangizga ma'lumotlar oqimini yaratishimiz uchun test skriptini ishga tushiring. Quyidagilarni ishga tushiring:

$ python is_example.py

6 -qadam: foyda

Veb -brauzerda boshlang'ich davlat hisobingizga qayting. "Python oqimining namunasi" deb nomlangan yangi ma'lumotlar to'plami jurnal javonining chap tomonida ko'rsatilishi kerak edi (ehtimol siz sahifani yangilashingiz kerak bo'ladi). Xuddi shu ma'lumotlarni asboblar paneli ko'rinishida ko'rish uchun siz "Fayans" dagi ma'lumotlarni ko'rishingiz mumkin.

7 -qadam: Yakuniy skript

Agar siz 2-qismda "git clone https://github.com/InitialState/smart-scale.git" buyrug'ini bajargan bo'lsangiz, ~/aqlli o'lchovli katalogingizda hamma narsani birlashtiradigan yakuniy skript smartscale.py deb nomlanadi. (https://github.com/InitialState/smart-scale/blob/master/smartscale.py)

Ishni boshlashdan oldin skriptda bir nechta sozlamalarni o'rnatish kerak. Nano kabi sevimli matn muharririda smartscale.py -ni oching.

$ cd ~ $ cd aqlli o'lchovli $ nano smartscale.py

Ushbu faylning yuqori qismida "Foydalanuvchi sozlamalari" bo'limi mavjud.

# --------- Foydalanuvchi sozlamalari --------- BUCKET_NAME = ": olma: Mening vaznim tarixi" BUCKET_KEY = "weight11" ACCESS_KEY = "BOShQA DAVLAT KIRISH KEYINGIZNI BU YERDA" METRIC_UNITS = FalseWEIGHT_SAMPLES = 500TIRILISH_NAMUNALARI = 100 OVGI_TARIXI = 7# ---------------------------------

  • BUCKET_NAME sizning vazningiz/ma'lumotlaringiz uzatiladigan boshlang'ich shtat ma'lumotlar paketining nomini belgilaydi. Buni bu erda sozlash va keyinchalik foydalanuvchi interfeysida o'zgartirish mumkin.
  • BUCKET_KEY - bu sizning ma'lumotlaringiz qayerga o'tishini ko'rsatadigan yagona chelak identifikatori. Agar siz boshqa chelak/boshqaruv paneli yaratmoqchi bo'lsangiz, bu erda boshqa identifikatordan foydalaning (*eslatma, agar siz chelakni arxivlasangiz, uning kalitini yangi chelakda qayta ishlata olmaysiz).
  • ACCESS_KEY - bu sizning dastlabki hisob qaydnomangiz kaliti. Agar siz ACCESS_KEY -ni bu maydonga kiritmasangiz, ma'lumotlaringiz hisobingizda ko'rinmaydi.
  • METRIC_UNITS, agar rost bo'lsa, o'z vazningizni kg bilan belgilashga imkon beradi, agar noto'g'ri bo'lsa - lb.
  • WEIGHT_SAMPLES sizning haqiqiy vazningizni olish uchun qancha o'lchovlar olinganligini va o'rtacha hisobini ko'rsatadi. 500 o'lchov taxminan 4-5 soniyani oladi va juda aniq natijalarni beradi.
  • THROWAWAY_SAMPLES taxtaga birinchi qadam qo'yganingizda tashlanadigan namunalar sonini ko'rsatadi. Bu dastlabki qadamlar va yakuniy o'lchovni tashlashdan saqlaydi. Bu har doim WEIGHT_SAMPLESdan ancha past bo'lishi kerak.
  • WEIGHT_HISTORY qo'shimcha yangilanish yuborilishidan oldin o'lchovlar sonini belgilaydi. Faqat ikki soat yoki undan ko'proq vaqt oralig'ida o'tkazilgan o'lchovlar tarix uchun hisobga olinadi.

Ushbu bo'limda har bir parametrni ko'rsatganingizdan va o'zgarishlarni saqlaganingizdan so'ng, siz oxirgi skriptni ishga tushirishga tayyormiz. Skriptni ishga tushirishdan oldin, nima qilayotganini ko'rib chiqaylik.

  • Ssenariy boshida sizdan Wii Balans kartasini Raspberry Pi bilan ulashingiz so'raladi. Agar so'ralsa, sinxronlashtirish tugmachasini bosish uchun 2 -qism: Uskuna sozlamalari bo'limida birgalikda sindirib tashlagan qo'lni ishlating.
  • Skript ishga tushgandan so'ng, Wii kengashiga o'ting va o'z vazningizni o'lchashni boshlang. 4-5 soniyadan so'ng, sizning vazningiz avtomatik ravishda sizning dastlabki davlat hisobingizga yuboriladi.
  • Biz SMS -xabarnomalarni o'rnatganimizdan so'ng (bir necha qadamda), o'lchovdan so'ng sizga tez orada matnli xabar keladi.

Sehrni boshlash uchun skriptni ishga tushiring.

$ sudo python smartscale.py

8 -qadam: boshqaruv paneli

Boshqaruv paneli
Boshqaruv paneli

Boshlang'ich shtat hisob qaydnomangizga o'ting va BUCKET_NAME parametriga mos keladigan yangi ma'lumotlar paketini bosing (ya'ni mening vazn tarixim). Og'irlik tarixi asboblar panelini ko'rish uchun "Plitkalar" ni bosing. Fayllar - yangilanish, vazn sanasi va vazn (lb) da ma'lumotlarni birinchi marta ko'rganingizda siz uchta plitani ko'rishingiz kerak. Plitkalarning o'lchamlarini o'zgartirish va ko'chirish, ko'rish turlarini o'zgartirish va hatto plitkalarni qo'shish orqali siz boshqaruv panelini sozlashingiz mumkin. Ushbu asboblar paneli sizning vazningiz tarixini bir qarashda ko'rish imkoniyatini beradi. Bu mobil aloqa uchun qulay va siz uni boshqalar bilan baham ko'rishingiz mumkin.

Ma'lumotlarga ko'proq shaxsiylik va kontekst berish uchun siz boshqaruv paneliga fon tasvirini qo'shishingiz mumkin.

9 -qadam: SMS

SMS
SMS

Qachonki o'lchov og'irlikni o'lchasa, SMS -ogohlantirishni yarataylik. Og'irlik tarixi ma'lumotlari paqirining yuklanganligiga ishonch hosil qiling.

  1. Ma'lumot qutisi oynasida chelak sozlamalarini (uning nomi ostida) bosing.
  2. Triggers yorlig'ini bosing.
  3. Yoqish uchun ma'lumotlar oqimini tanlang. Ma'lumot qutisi yuklangandan so'ng, mavjud oqimlardan tanlash uchun ochiladigan ro'yxatni ishlatishingiz yoki oqim nomini/kalitini qo'lda kiritishingiz mumkin. Yuqoridagi misol ekran tasvirida "Yangilash" tanlangan.
  4. Shartli operatorni tanlang, bu holda 'match'.
  5. Harakatni qo'zg'atadigan Trigger qiymatini tanlang (kerakli qiymatni qo'lda kiriting). Agar siz metrik birliklardan foydalanmasangiz lb yoki metrik birliklardan foydalanayotgan bo'lsangiz kg ni kiriting. Har safar "Yangilash" oqimida "lb" (yoki "kg") bo'lsa, sizga matnli xabar keladi.
  6. Trigger holatini qo'shish uchun '+' tugmasini bosing.
  7. "Xabar berish uchun kontaktlar" maydoniga elektron pochta manzilingizni yoki telefon raqamingizni kiriting.
  8. Kontakt ma'lumotlarini qo'shish uchun "+" tugmasini bosing.
  9. Agar sozlashni yakunlash uchun yangi telefon raqami qo'shilsa, tasdiqlash kodini kiriting.
  10. Asosiy ekranga qaytish uchun pastdagi "Bajarildi" tugmasini bosing. Sizning tetikingiz hozir jonli va shart bajarilganda o'chadi.

O'rnatish tugagach, siz har safar o'z vazningizni, oxirgi o'lchovdan keyin vazningiz qanchalik o'zgarganini va tasodifiy hazil / haqorat / iltifotni o'z ichiga olgan SMS -xabar olasiz.

10 -qadam: Xulosa

Siz hozir yaratgan narsalarga tayanish uchun cheksiz imkoniyatlar mavjud. Mana bu loyiha uchun ba'zi fikrlar:

  • Shaxsiy sog'liqni saqlash asboblar panelini yaratish uchun siz boshqa manbalardan ma'lumotlarni bir xil vaznli boshqaruv paneliga o'tkazishingiz mumkin.
  • Siz hazil tuyg'usiga ko'ra MessageWeighFirst, messageWeighLess, messageWeighMore va messageWeighSame -dagi hazillarni o'zgartirishingiz mumkin.
  • Siz hazillarni amaliy xabarlarga o'zgartirishingiz yoki ularni olib tashlashingiz va o'zingizning vazningizdan ko'ra muhimroq narsani o'lchash uchun o'lchov kodidan foydalanishingiz mumkin.
  • Xuddi shu yondashuv yordamida siz o'zingizning aqlli pivo/sharob muzlatgichingizni yaratishingiz mumkin. Bu erda allaqachon buning uchun ajoyib o'quv qo'llanma mavjud.

Bu darslik sizni ajoyib narsalarni yaratishga ilhomlantirsa, menga xabar bering.

Tavsiya: