Mündəricat:

Raspberry Pi Ağıllı Ölçüsü: 10 Addım (Şəkillərlə birlikdə)
Raspberry Pi Ağıllı Ölçüsü: 10 Addım (Şəkillərlə birlikdə)

Video: Raspberry Pi Ağıllı Ölçüsü: 10 Addım (Şəkillərlə birlikdə)

Video: Raspberry Pi Ağıllı Ölçüsü: 10 Addım (Şəkillərlə birlikdə)
Video: Sıfır xətti olmayan yuvada səssiz zigbee rölesi, quraşdırma xüsusiyyətləri, kondansatörün 2024, Iyul
Anonim
Image
Image

Hər səhər o darıxdırıcı, köhnə, pis xəbər vanna otağına baxmaqdan yoruldunuzmu? Hər addım atanda sənə tez -tez "səndən nifrət edirəm" dediyin biri. Niyə heç kim həqiqətən əyləncəli və ya istifadə etməyi həvəsləndirən bir tərəzi yaratmadı? Gününüzü işıqlandırmaq üçün yalnız ağıllı deyil, bir az da daha çox şəxsiyyətə malik bir tərəzi yaratmağın vaxtıdır. Daxili bir yumor anlayışı ilə gələn, özünəməxsus çəki izləmə, mətn mesajlaşma vanna otağı ölçüsümüzü quracağıq.

Bu, hack edə biləcəyiniz bir Python skripti ilə idarə olunan vebə bağlı bir miqyas yaratmaq üçün Wii balans lövhəsi, Raspberry Pi və onlayn məlumat analizi platformasını birləşdirən əyləncəli və asan bir layihədir.

Layihə səviyyəsi: Başlanğıc Bitirmə üçün təxmini vaxt: 20 dəqiqə Əyləncə faktoru: Ölçülməz

Bu addım-addım təlimatda siz:

  • bluetooth vasitəsilə Wii balans lövhəsini Raspberry Pi -yə bağlayın, balans lövhəsinə çıxdığınız zaman çəkinizi ölçən Python skriptini işlədin
  • çəkinizi bir bulud xidmətinə ötürmək üçün bir Raspberry Pi istifadə edin (İlk Vəziyyət)
  • hər dəfə özünüzü ölçəndə SMS bildiriş qurun
  • veb brauzerinizdə daxil ola biləcəyiniz bir çəki izləmə tablosu yaradın

Addım 1: Avadanlıq

Wii Balans Şurası Ölçüsü
Wii Balans Şurası Ölçüsü

Hər bir məhsulu satın ala biləcəyiniz bağlantılar ilə bu təlimatda istifadə edəcəyimiz bütün avadanlıqların siyahısı.

  • SD kart və Güc Təchizatı ilə Raspberry Pi 3 (https://init.st/psuufmj)
  • Wii Balans Şurası (https://init.st/qg4ynjl)
  • Wii Fit Şarj Edilə bilən Batareya Paketi (https://init.st/iyypz2i)
  • 3/8 "Keçək yastıqları (https://init.st/8gywmjj)
  • Qələm (sizə qələm almaq üçün bir keçid vermirəm … bunlardan birinə sahib olmalısınız)

Qeyd: Raspberry Pi 1 və ya 2 varsa, bluetooth adapterinə ehtiyacınız olacaq (https://init.st/7y3bcoe)

Addım 2: Wii Balans Board Ölçüsü

Niyə bir Wii Balans Şurası? Məlumdur ki, bluetooth bağlantısı olan həqiqətən gözəl və davamlı bir ölçüdür. Bu, ağırlığınızı Python skriptində oxumaq və bu işləri gözəl işlər görmək üçün onlayn məlumat xidmətinə göndərmək üçün onu bir lövhəli kompüterə (Raspberry Pi) bağlamağımıza imkan verəcəkdir. Üstəlik, sizin və ya tanıdığınız birinin sadəcə toz yığan bir şansa sahib olması üçün yaxşı bir şans var.

Bu layihəni praktik və rahat etmək üçün Wii Balans Şuramıza bir neçə sadə dəyişiklik etməliyik.

Addım 3: Bluetooth Quraşdırması

Raspberry Pi 3, Wii Balance Board ilə əlaqə qurmağımız üçün lazım olan hamısı bluetooth ilə birlikdə gəlir. Raspberry Pi 1 və ya 2 -yə sahibsinizsə, adapteri bağlamaq üçün USB portlarımızdan birini istifadə etməliyik.

Pi -ni işə salın (güman edirəm ki, artıq Raspbian quraşdırmısınız və açılır) və Raspberry Pi terminal pəncərəsinə keçin. "Hcitool dev" əmri ilə bluetooth dongle ünvanınızı görə bilərsiniz:

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

Python skriptlərimizdə istifadə edəcəyimiz bluetooth modullarını quraşdırın:

$ sudo apt-get python-bluetooth quraşdırın

Quraşdırma başa çatdıqdan sonra, Wii Balance Board ilə əlaqə qurmağa və əlaqə qurmağa hazırıq. Bir çox bluetooth cihazlarımızda olduğu kimi lövhəmizi daimi olaraq Pi ilə birləşdirməyəcəyik. Wii Balans Şurasının heç vaxt Wii -dən başqa heç bir şeylə birləşdirilməsi nəzərdə tutulmamışdı və daimi cütləşmə olduqca qarışıq bir problem olduğunu sübut etdi. Python skriptimizi hər dəfə işlədikdə cütləşmə baş verəcək.

Addım 4: Ölçəni oxuyun

Wii Balans Kartımızı Raspberry Pi -yə bağlamağın vaxtı gəldi. Bunu Stavros Korokithakis'in Gr8W8Upd8M8.py skriptinin bir versiyasını dəyişdirərək edəcəyik (https://github.com/skorokithakis/gr8w8upd8m8). Bu addım üçün istifadə edəcəyimiz python skript burada yerləşir. Bu faylın məzmununu Raspberry Pi -də yaratdığınız bir fayla kopyalaya bilərsiniz və ya bütün bu layihə üçün istifadə edəcəyimiz bütün python fayllarını klonlaya bilərsiniz. İkincisini edək. Raspberry Pi -nin terminalına aşağıdakı əmrləri daxil edin:

$ cd ~ $ git klon $ git klon https: github.com/initialstate/smart-scale.git 'ağıllı miqyaslı' olaraq klonlanır… uzaqdan: Nesnələrin sayılması: 14, tamamlandı. uzaqdan: Cisimlərin sıxılması: 100% (12/12), tamamlandı. uzaqdan: Cəmi 14 (delta 1), təkrar istifadə olunan 8 (delta 0), yenidən istifadə olunan 0 Obyektləri açmaq: 100% (14/14), tamamlandı. Bağlantı yoxlanılır… tamamlandı.

'ağıllı miqyaslı' klonlaşdırma… uzaqdan: Sayma obyektləri: 14, tamamlandı. uzaqdan: Cisimlərin sıxılması: 100% (12/12), tamamlandı. uzaqdan: Cəmi 14 (delta 1), təkrar istifadə olunan 8 (delta 0), yenidən istifadə olunan 0 Obyektləri açmaq: 100% (14/14), tamamlandı. Bağlantı yoxlanılır… tamamlandı.

Yeni ağıllı miqyaslı qovluqda iki python faylını görməlisiniz - smartscale.py və wiiboard_test.py.

$ cd ağıllı miqyaslı $ lsREADME.md smartscale.py wiiboard_test.py

Əlaqəni yoxlamaq və Wii Balans Şurasından çəki oxunuşlarını almaq üçün wiiboard_test.py skriptini işə salın:

$ sudo python wiiboard_test.py

Aşağıdakı cavabı görəcəksiniz:

Lövhə kəşf olunur … İndi lövhədə qırmızı sinxronizasiya düyməsini basın

Qırmızı sinxronizasiya düyməsini tapmaq üçün lövhənin altındakı batareya qapağını çıxarın. Skriptin işə salınmasından bir neçə saniyə sonra düyməni basdığınızdan əmin olun, yoxsa bir fasilə yaranacaq. Uğur qazandıqdan sonra aşağıdakılara bənzər bir şey görəcəksiniz:

00: 23: CC: 2E: E1: 44 ünvanında Wiiboard tapıldı. Bağlanmağa çalışılır… 00: 23: CC: 2E: E1: 44Wiiboard bağlıACB məlumatı yazmaq üçün alın

Wiiboard_test.py skript 10 -cu sətirdə göstərilən çəki ölçmələrinin sayını alır və ortalamanı çıxarır:

# --------- İstifadəçi Ayarları --------- AĞIRLIKLAR = 500# ------------------------- --------

Ölçülən çəkinin dəyişməsini və hər ölçü üçün lazım olan vaxtı görmək üçün dəyəri dəyişərək skripti yenidən işlədərək bu nömrə ilə oynaya bilərsiniz. Özünüzü çəkin, köpeğinizi çəkin, hər şeyi çəkin və ölçülərin mənalı olub olmadığını görün. Ssenarini dayandırmaq üçün CTRL+C düymələrini basın.

İndi uğurla Wii Balans Kartınızı Raspberry Pi ilə əlaqəli bir miqyasda çevirdiniz. İndi sərin bir miqyas edək.

Addım 5: Hardware Tweaks

Hardware Tweaks
Hardware Tweaks

Nintendo, Wii Balans Kartınızı həmişə dörd AA batareya ilə dolduracağınızı və heç bir AC güc adapteri daxil etmədiyinizi düşünürdü. Yalnız batareya gücünə sahib olmaq əlverişsiz olardı, çünki Wii lövhəmizi bluetooth vasitəsilə Pi ilə daimi birləşdirə bilmərik. Sinxronizasiya etməliyik, sonra batareyaları boşaltmadan sinxronizasiya edilməsinə icazə verməliyik ki, sadəcə tərəziyə basaq və çəkək. Xoşbəxtlikdən, bir elektrik prizindən daimi enerji təmin etmək üçün istifadə edə biləcəyimiz Wii Balance Board üçün hazırlanmış bir neçə üçüncü tərəf adapteri var. Batareyaları bir batareya dəsti ilə əvəz edin və AC adapterini elektrik prizinə qoşun.

Python skriptimizi hər dəfə işə saldığımız zaman Wii Balance Board və Raspberry Pi -ni qoşmaq məcburiyyətindəyik, sinxronizasiya düyməsinin yerləşdiyi yerə görə başqa bir narahatlıq yaradır. Sinxronizasiya düyməsi Wii lövhəsinin altındadır, yəni hər dəfə sinxronizasiya etməyimiz lazım olduqda onu çevirməliyik. Yuxarıda göstərildiyi kimi qələm və üç ədəd 3/8 düymlük yastıqdan istifadə edərək kiçik bir qolu düzəldərək bunu düzəldə bilərik. Yenidən doldurulan batareya paketi sinxronizasiya düyməsini lövhənin altındakı səthə çıxarır. sinxronizasiya düyməsindən lövhənin xarici ön tərəfinə qədər. Sabit bir pivot yaratmaq üçün qələmin ortasına 3/8 keçə yastıqları (və ya bənzəri bir şey) yığın. Qələmi lövhədən çox çıxarmamaq üçün diqqətli olun, çünki kiminsə təsadüfən atmasını istəmirsiniz. Lövhəni çevirin və qolu aşağı basaraq sinxronizasiya düyməsini basa bilərsiniz. Bir az hack amma təsirli.

Wii lövhənizi necə saxladığınızdan asılı olaraq, rezin tutacaqları lövhənin ayaqlarından çıxarmaq istəyə bilərsiniz (yastıqlar sadəcə çıxara biləcəyiniz etiketlərdir). Asanlıqla sürüşmək üçün 3/8 keçə yastıqları lövhənin ayaqlarına yerləşdirilə bilər.

Addım 6: İlkin vəziyyət

İlkin vəziyyət
İlkin vəziyyət

Ağırlığımızı/məlumatlarımızı bir bulud xidmətinə ötürmək və bu xidmətin məlumatlarımızı dizüstü kompüterimizdən və ya mobil cihazımızdan əldə edə biləcəyimiz gözəl bir tablosuna çevirməsini istəyirik. Məlumatlarımızın bir təyinata ehtiyacı var. Bu təyinat olaraq Baş Dövlətdən istifadə edəcəyik.

Addım 1: İlkin Dövlət Hesabına Qeydiyyat https://iot.app.initialstate.com saytına daxil olun və yeni bir hesab yaradın.

Addım 2: ISStreamer qurun İlk vəziyyət Python modulunu Pi -yə quraşdırın: Əmr əmrində (əvvəlcə Pi -yə SSH yazmağı unutmayın) aşağıdakı əmri işlədin:

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

Addım 3: Bəzi AutomagicAddın 2. Adımdan sonra ekranda aşağıdakı çıxışa bənzər bir şey görəcəksiniz:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword: ISStreamer Python Asan Quraşdırmaya Başlayın! Bu bir neçə dəqiqə çəkə bilər, bir az qəhvə götürün:) Ancaq geri dönməyi unutmayın, sonra suallarım olacaq!

Easy_install tapıldı: setuptools 1.1.6

Tapılan pip: /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg-dən 1.5.6 pip (python 2.7) pip əsas versiyası: 1 pip kiçik versiyası: 5 ISStreamer tapıldı, yeniləyir … Tələb artıq aktualdır: /Library/Python/2.7/site-packages səhifəsindəki ISStreamer Təmizləmə… Avtomatik olaraq bir nümunə skript əldə etmək istəyirsiniz? [y/n]

(Başlanğıc vəziyyət Python axın modulunu əvvəllər heç quraşdırmamış olsanız, çıxış fərqli ola bilər və daha uzun çəkə bilər)

Bir nümunə skriptini avtomatik olaraq almaq istədikdə y yazın. Bu, Pi -dən ilkin vəziyyətə məlumat axın edə biləcəyimizi təmin etmək üçün işləyə biləcəyimiz bir sınaq skriptini yaradacaq. Sizdən xahiş olunacaq:

Nümunəni harada saxlamaq istəyirsiniz? [default:./is_example.py]:

Varsayılanı qəbul etmək üçün xüsusi bir yerli yol yaza və ya enter düyməsini vura bilərsiniz. İlk Dövlət Hesabınızı qeydiyyatdan keçirərkən yeni yaratdığınız istifadəçi adınızı və şifrənizi istəyəcəksiniz. Hər ikisini daxil edin və quraşdırma tamamlanacaq.

Addım 4: Giriş düymələri

Yaradılmış nümunə skriptə nəzər salaq.

$ nano is_example.py

15 -ci sətirdə, streamer = Streamer (bucket_… ilə başlayan bir xətt görəcəksiniz. Bu sətirlər "Python Stream Example" adlı yeni bir məlumat paketi yaradır və hesabınızla əlaqələndirilir. Bu assosiasiya access_key =”səbəbiylə baş verir …" eyni uzunluqdakı hərflər və rəqəmlər, İlkin Dövlət hesabınıza giriş açarınızdır. Veb brauzerinizdə Başlanğıc Vəziyyət hesabınıza girirsinizsə, sağ üstdəki istifadəçi adınızı vurun və sonra "Ayarlarım" a gedin., eyni giriş açarını səhifənin altındakı "Axın Giriş Açarları" altında tapa bilərsiniz.

Hər dəfə bir məlumat axını yaratdığınız zaman, bu giriş açarı həmin məlumat axını hesabınıza yönləndirəcək (buna görə açarınızı heç kimlə paylaşmayın).

Addım 5: Nümunəni işə salın

Başlanğıc Vəziyyət hesabınıza məlumat axını yarada biləcəyimizdən əmin olmaq üçün test skriptini işə salın. Aşağıdakıları işə salın:

$ python is_example.py

Addım 6: Mənfəət

Veb brauzerinizdə İlkin Dövlət hesabınıza qayıdın. Günlük rafınızda solda "Python Stream Örneği" adlı yeni bir məlumat paketi görünməli idi (səhifəni yeniləməyiniz lazım ola bilər). Eyni məlumatları tablosuna görmək üçün Fayansdakı məlumatlara baxa bilərsiniz.

Addım 7: Son Ssenari

2-ci hissədə "git clone https://github.com/InitialState/smart-scale.git" əmrini yerinə yetirdiyinizi fərz etsək, hər şeyi bir araya gətirən son skript ~/ağıllı miqyaslı qovluğunuzda smartscale.py adlanır. (https://github.com/InitialState/smart-scale/blob/master/smartscale.py)

İşlətmədən əvvəl skriptdə bir neçə parametr qurulmalıdır. Nano kimi sevdiyiniz mətn redaktorunda smartscale.py açın.

$ cd ~ $ cd ağıllı miqyaslı $ nano smartscale.py

Bu faylın yuxarısında, İstifadəçi Ayarları bölməsi var.

# --------- İstifadəçi Ayarları --------- BUCKET_NAME = ": alma: Mənim Çəkim Tarixim" BUCKET_KEY = "weight11" ACCESS_KEY = "İLK DÖVLƏT GİRİŞİNİZİN BURADA YERİNİ" METRIC_UNITS = FalseWEIGHT_SAMPLES = 500 DAHA_NAMUNALAR = 100 AĞIRLIQ TARİXİ = 7# ---------------------------------

  • BUCKET_NAME, çəkinizin/məlumatlarınızın axın ediləcəyi İlkin Vəziyyət məlumat paketinin adını təyin edir. Bu, burada qurulub sonradan UI -də dəyişdirilə bilər.
  • BUCKET_KEY, məlumatlarınızın hara axacağını təyin edən unikal paket identifikatorudur. Fərqli bir kova/tablosu yaratmaq istəyirsinizsə, burada fərqli bir identifikator istifadə edin (*qeyd edin, bir kovanı arxivləşdirsəniz, açarını yeni bir kovada yenidən istifadə edə bilməzsiniz).
  • ACCESS_KEY, İlkin Dövlət hesab açarınızdır. ACCESS_KEY -ni bu sahəyə qoymasanız, məlumatlarınız hesabınızda görünməyəcək.
  • METRIC_UNITS, Doğru olaraq təyin edildikdə kiloqramınızı kiloqramda və ya Yanlış olaraq təyin edildikdə lb -də təyin etməyə imkan verir.
  • WEIGHT_SAMPLES, həqiqi çəkinizi əldə etmək üçün birlikdə neçə ölçü alındığını və ortalamasını göstərir. 500 ölçmə təxminən 4-5 saniyə çəkir və kifayət qədər dəqiq nəticələr verir.
  • THROWAWAY_SAMPLES, lövhəyə ilk addım atdığınız zaman atılacaq nümunələrin sayını təyin edir. Bu, ilkin addımların və son ölçmənin atılmasının qarşısını alır. Bu həmişə WEIGHT_SAMPLES -dən çox az olmalıdır.
  • WEIGHT_HISTORY əlavə bir yeniləmə göndərilməzdən əvvəl alınan ölçü sayını təyin edir. Yalnız iki saat və ya daha çox bir -birindən alınan ölçülər tarixə aiddir.

Bu bölmədə hər bir parametri təyin etdikdən və dəyişikliklərinizi saxladıqdan sonra son ssenarini işə salmağa hazırsınız. Ssenarini işə salmadan əvvəl, nə edəcəyini nəzərdən keçirək.

  • Ssenarinin əvvəlində, Wii Balance Board -unu Raspberry Pi ilə birləşdirmək istənəcək. İstifadə edildikdə sinxronizasiya düyməsini basmaq üçün Bölmə 2: Hardware Tweaks bölməsində birlikdə sındırdığınız qolu istifadə edin.
  • Ssenari işlədikdən sonra çəkinizi ölçməyə başlamaq üçün Wii lövhəsinə daxil olun. 4-5 saniyədən sonra çəkiniz avtomatik olaraq İlkin Hesabınıza göndəriləcək.
  • SMS bildirişlərini qurduqdan sonra (bir neçə addımda) ölçmədən dərhal sonra bir mətn mesajı alacaqsınız.

Sehr etməyə başlamaq üçün skripti işə salın.

$ sudo python smartscale.py

Addım 8: İdarəetmə Paneli

Tablosuna
Tablosuna

Başlanğıc Vəziyyət hesabınıza gedin və BUCKET_NAME parametrinə uyğun olan yeni məlumat paketini (yəni Mənim Çəkim Tarixim) vurun. Kilo tarixçənizi görmək üçün Fayans vurun. Fayansdakı məlumatlarınızı ilk dəfə gördüyünüz zaman üç plitəni görməlisiniz - Yeniləmə, Çəki Tarixi və Çəki (lb). Plitələrin ölçüsünü dəyişərək hərəkət etdirməklə yanaşı görünüş növlərini dəyişdirməklə və hətta plitələr əlavə etməklə də tablosunuzu fərdiləşdirə bilərsiniz. Bu tablosu, çəki tarixinizi bir baxışda görmək imkanı verir. Mobil dostdur və hətta digər insanlarla da paylaşa bilərsiniz.

Verilərinizə daha çox şəxsiyyət və kontekst vermək üçün tablosuna bir fon şəkli əlavə edə bilərsiniz.

Addım 9: SMS göndərin

SMS
SMS

Ölçək bir çəki ölçmə apardıqda bir SMS xəbərdarlığı yaradaq. Kilo tarixçəsi məlumat paketinizin yükləndiyinə əmin olun.

  1. Məlumat paketi pəncərəsində kovanın parametrlərini (adının altında) vurun.
  2. Tetikleyiciler sekmesini basın.
  3. Tetiklemek üçün məlumat axını seçin. Məlumat paketi yükləndikdən sonra mövcud axınlardan seçim etmək üçün açılan siyahıdan istifadə edə bilərsiniz və ya axın adını/açarını əl ilə yaza bilərsiniz. Yuxarıdakı ekran görüntüsündə "Yeniləmə" seçilir.
  4. Şərti operatoru seçin, bu halda 'uyğun'.
  5. Bir hərəkəti tetikleyecek Tetikleyici dəyərini seçin (istədiyiniz dəyəri əl ilə yazın). Metrik vahidlərdən istifadə etmirsinizsə lb yazın və ya metrik vahidlərdən istifadə edirsinizsə kg ilə yazın. "Yeniləmə" axınında "lb" (və ya "kq") olduqda, mətn mesajı bildirişi alacaqsınız.
  6. Tətik şərtini əlavə etmək üçün '+' düyməsini basın.
  7. "Bildirmək üçün əlaqə" sahəsinə e -poçt ünvanınızı və ya telefon nömrənizi daxil edin.
  8. Əlaqə məlumatlarını əlavə etmək üçün '+' düyməsini basın.
  9. Quraşdırmanı tamamlamaq üçün yeni bir telefon nömrəsi əlavə etsəniz hər hansı bir doğrulama kodunu daxil edin.
  10. Əsas ekrana qayıtmaq üçün altdakı Bitti düyməsini basın. Tətiyiniz indi canlıdır və şərt yerinə yetirildikdə atəş açılacaq.

Quraşdırma tamamlandıqda, hər dəfə çəki çəkisini, son ölçüdən sonra çəkinizin nə qədər dəyişdiyini və təsadüfi bir zarafat / təhqir / iltifat olan bir SMS alacaqsınız.

Addım 10: Nəticə

İndi yaratdıqlarınızı qurmaq üçün məhdudiyyətsiz seçimlər var. Bu layihə üçün bəzi fikirlər:

  • Şəxsi sağlamlıq tablosunuzu yaratmaq üçün digər mənbələrdən məlumatları eyni çəki tarixi tablosuna (məlumat) axın edə bilərsiniz.
  • MessageWeighFirst, messageWeighLess, messageWeighMore və messageWeighSame funksiyalarındakı zarafatları öz yumor anlayışınıza görə dəyişə bilərsiniz.
  • Zarafatları praktik mesajlara dəyişə və ya onları silə və öz bədən çəkinizdən başqa daha vacib bir şeyin çəkisini izləmək üçün tərəzi kodundan istifadə edə bilərsiniz.
  • Eyni yanaşmadan istifadə edərək öz ağıllı pivə/şərab soyuducunuzu yarada bilərsiniz. Burada artıq bunun üçün hazırlanmış möhtəşəm bir dərs var.

Hack edin və bu dərslik sizi inanılmaz bir şey yaratmağa ilhamlandırırsa mənə bildirin.

Tövsiyə: