Obsah:

Inteligentní měřítko Raspberry Pi: 10 kroků (s obrázky)
Inteligentní měřítko Raspberry Pi: 10 kroků (s obrázky)

Video: Inteligentní měřítko Raspberry Pi: 10 kroků (s obrázky)

Video: Inteligentní měřítko Raspberry Pi: 10 kroků (s obrázky)
Video: Электрический или водяной полотенцесушитель? Что выбрать? Установка. #25 2024, Červenec
Anonim
Image
Image

Už vás nebaví zírat každé ráno na tu nudnou, starou a špatnou koupelnovou váhu? Ten, kterému často říkáte „Nesnáším tě“, když na něj stoupnete. Proč nikdo nevytvořil měřítko, které je vlastně zábavné nebo motivující k použití? Je na čase vytvořit stupnici, která je nejen chytrá, ale má i trochu více osobnosti, která vám rozjasní den. Chystáme se vybudovat naši vlastní hacknutelnou váhu pro sledování váhy a textové zprávy, která má vestavěný smysl pro humor.

Jedná se o zábavný a snadný projekt, který kombinuje balanční desku Wii, Raspberry Pi a online platformu pro analýzu dat a vytváří měřítko připojené k webu ovládané skriptem Pythonu, který můžete hacknout.

Úroveň projektu: Začátečník Přibližný čas na dokončení: 20 minut Faktor zábavy: Neměřitelný

V tomto podrobném kurzu budete:

  • připojte balanční desku Wii k Raspberry Pi přes bluetooth spusťte skript Pythonu, který měří vaši váhu, když stoupnete na balanční desku
  • pomocí Raspberry Pi streamujte svoji váhu do cloudové služby (počáteční stav)
  • nastavit si SMS upozornění pokaždé, když se vážíte
  • vytvořte řídicí panel pro sledování hmotnosti, ke kterému máte přístup ve webovém prohlížeči

Krok 1: Zařízení

Wii Balance Board Scale
Wii Balance Board Scale

Zde je seznam veškerého vybavení, které budeme v tomto tutoriálu používat, s odkazy na místa, kde lze jednotlivé položky zakoupit.

  • Raspberry Pi 3 s kartou SD a napájecím zdrojem (https://init.st/psuufmj)
  • Wii Balance Board (https://init.st/qg4ynjl)
  • Dobíjecí baterie Wii Fit (https://init.st/iyypz2i)
  • 3/8 "plstěné podložky (https://init.st/8gywmjj)
  • Tužka (nedávám vám odkaz, kde koupit tužku … jednu byste měli vlastnit)

Poznámka: Pokud máte Raspberry Pi 1 nebo 2, budete potřebovat bluetooth adaptér (https://init.st/7y3bcoe)

Krok 2: Wii Balance Board Scale

Proč Wii Balance Board? Ukazuje se, že je to opravdu pěkná a odolná váha, která má připojení bluetooth. To nám umožní připojit jej k jednodeskovému počítači (Raspberry Pi), abychom mohli přečíst vaši váhu ve skriptu Pythonu a odeslat tato měření do online datové služby, abychom mohli dělat skvělé věci. Navíc existuje velká šance, že vy nebo někdo, koho znáte, už nějaký máte, který jednoduše sbírá prach.

Budeme muset provést několik jednoduchých úprav na naší Wii Balance Board, aby byl tento projekt opravdu praktický a pohodlný.

Krok 3: Nastavení Bluetooth

Raspberry Pi 3 je vybaven vestavěným bluetooth, vše, co potřebujeme ke komunikaci s Wii Balance Board. Pokud máte Raspberry Pi 1 nebo 2, budeme muset k připojení adaptéru použít jeden z našich portů USB.

Zapněte Pi (předpokládám, že jste již nainstalovali Raspbian a spustí se) a přejděte do okna terminálu Raspberry Pi. Adresu svého bluetooth dongle můžete vidět pomocí příkazu „hcitool dev“:

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

Nainstalujte bluetooth moduly, které budeme používat v našich skriptech Pythonu:

$ sudo apt-get install python-bluetooth

Po dokončení instalace jsme připraveni se připojit a komunikovat s Wii Balance Board. Nebudeme trvale spárovat naši desku s naším Pi, jako to děláme s většinou našich bluetooth zařízení. Wii Balance Board nebyl nikdy určen ke spárování s ničím jiným než Wii a trvalé párování se ukázalo jako docela matoucí výzva. K párování dojde vždy, když spustíme náš skript Python.

Krok 4: Čtení stupnice

Je na čase připojit náš Wii Balance Board k Raspberry Pi. Uděláme to úpravou verze skriptu Stav8 Korokithakis Gr8W8Upd8M8.py (https://github.com/skorokithakis/gr8w8upd8m8). Zde se nachází skript pythonu, který pro tento krok použijeme. Obsah tohoto souboru můžete zkopírovat do souboru, který vytvoříte na svém Raspberry Pi, nebo můžete klonovat všechny soubory pythonu, které pro celý tento projekt použijeme. Udělejme to druhé. Do terminálu na Raspberry Pi zadejte následující příkazy:

$ cd ~ $ git clone $ git clone https: github.com/initialstate/smart-scale.git klonování do 'chytrého měřítka' … vzdálené: Počítání objektů: 14, hotovo. vzdálený: Komprese objektů: 100% (12/12), hotovo. dálkové ovládání: Celkem 14 (delta 1), opakovaně 8 (delta 0), opakovaně použito 0 Rozbalení objektů: 100% (14/14), hotovo. Kontrola připojení … hotovo.

klonování do „chytrého měřítka“… vzdálené: Počítání objektů: 14, hotovo. vzdálený: Komprese objektů: 100% (12/12), hotovo. dálkové ovládání: Celkem 14 (delta 1), opakovaně 8 (delta 0), opakovaně použito 0 Rozbalení objektů: 100% (14/14), hotovo. Kontrola připojení … hotovo.

V novém adresáři smart -scale byste měli vidět dva soubory pythonu - smartscale.py a wiiboard_test.py.

$ cd smart-scale $ lsREADME.md smartscale.py wiiboard_test.py

Spusťte skript wiiboard_test.py, abyste otestovali komunikaci a provedli odečty hmotnosti z Wii Balance Board:

$ sudo python wiiboard_test.py

Uvidíte následující odpověď:

Objevování desky … Nyní stiskněte červené tlačítko synchronizace na desce

Sejměte kryt baterie pod deskou a vyhledejte červené tlačítko synchronizace. Ujistěte se, že stisknete tlačítko během několika sekund od spuštění skriptu, jinak dojde k vypršení časového limitu. Jakmile budete úspěšní, uvidíte něco podobného následujícímu:

Nalezen Wiiboard na adrese 00: 23: CC: 2E: E1: 44 Pokouší se připojit… Připojeno k Wiiboardu na adrese 00: 23: CC: 2E: E1: 44 Wiiboard připojeno

Skript wiiboard_test.py měří počet měření hmotnosti uvedený na řádku 10 a vydává průměr:

# --------- Uživatelská nastavení --------- WEIGHT_SAMPLES = 500# ------------------------- --------

S tímto číslem si můžete pohrát změnou hodnoty a opětovným spuštěním skriptu, abyste viděli odchylky naměřené hmotnosti a čas potřebný pro každé měření. Važte se, vážte svého psa, vážte cokoli a zjistěte, zda měření mají smysl. Skript zastavíte stisknutím kláves CTRL+C.

Nyní jste úspěšně převedli svůj Wii Balance Board na připojenou váhu Raspberry Pi. Pojďme to nyní udělat v pohodě.

Krok 5: Vylepšení hardwaru

Vylepšení hardwaru
Vylepšení hardwaru

Nintendo předpokládalo, že vaši Wii Balance Board budete vždy napájet čtyřmi bateriemi AA a nebude obsahovat žádný napájecí adaptér. Mít pouze napájení z baterie by bylo nepohodlné, protože nemůžeme trvale spárovat naši desku Wii s naším Pi prostřednictvím bluetooth. Musíme jej synchronizovat a poté nechat synchronizovaný bez vybití baterií, abychom mohli jednoduše stoupnout na váhu a vážit. Naštěstí existuje několik adaptérů třetích stran vyrobených pro Wii Balance Board, které můžeme použít k zajištění konstantního napájení ze zásuvky. Vyměňte baterie za baterii a zapojte napájecí adaptér do zásuvky ve zdi.

Nutnost spárovat Wii Balance Board a Raspberry Pi při každém spuštění našeho skriptu Python představuje další nepříjemnost kvůli umístění tlačítka synchronizace. Tlačítko synchronizace je ve spodní části desky Wii, což znamená, že bychom ho museli převrátit pokaždé, když potřebujeme synchronizovat. Můžeme to napravit pomocí páčky pomocí tužky a tří 3/8 "plstěných polštářků, jak je uvedeno výše. Dobíjecí baterie vystavuje tlačítko synchronizace na spodní povrch desky. Páska nalepte tužkou (nebo něčím podobným) od tlačítka synchronizace k vnější přední straně desky. Položte tři 3/8 "plstěné podložky (nebo něco podobného) na střed tužky a vytvořte stacionární čep. Dávejte pozor, abyste nevystavili příliš mnoho tužky z desky, protože nechcete, aby ji někdo omylem vyrazil. Otočte desku a můžete stisknout tlačítko synchronizace jednoduchým stisknutím páčky. Trochu hack, ale efektivní.

V závislosti na tom, jak svou desku Wii skladujete, možná budete chtít odstranit gumové podložky z nohou desky (podložky jsou jednoduše samolepky, které můžete odlepit). 3/8 plstěné podložky lze umístit na nohy desky pro snadné sklouznutí.

Krok 6: Počáteční stav

Počáteční stav
Počáteční stav

Chceme streamovat naši váhu/data do cloudové služby a nechat tuto službu, aby naše data proměnila v pěkný řídicí panel, ke kterému máme přístup z našeho notebooku nebo mobilního zařízení. Naše data potřebují cíl. Jako cíl použijeme počáteční stav.

Krok 1: Zaregistrujte se pro počáteční stav účtu Přejděte na stránku https://iot.app.initialstate.com a vytvořte si nový účet.

Krok 2: Nainstalujte ISStreamer Nainstalujte modul Počáteční stav Python na svůj Pi: Na příkazovém řádku (nezapomeňte SSH nejprve připojit k Pi) spusťte následující příkaz:

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

Krok 3: Vyrobte si Automagic Po kroku 2 uvidíte na obrazovce něco podobného následujícímu výstupu:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword: Začátek ISStreamer Python Snadná instalace! Instalace může trvat několik minut, dejte si kávu:) Ale nezapomeňte se vrátit, otázky budu mít později!

Nalezeno easy_install: setuptools 1.1.6

Nalezený pip: pip 1.5.6 z /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip hlavní verze: 1 pip minor verze: 5 ISStreamer nalezen, aktualizace… Požadavek již aktuální: ISStreamer v /Library/Python/2.7/site-packages Čištění … Chcete automaticky získat ukázkový skript? [r/N]

(výstup se může lišit a může trvat déle, pokud jste nikdy předtím nenainstalovali modul streamování Pythonu v počátečním stavu)

Po zobrazení výzvy k automatickému získání příkladu skriptu zadejte y. Tím se vytvoří testovací skript, který můžeme spustit, abychom zajistili, že budeme moci streamovat data do Počátečního stavu z našeho Pi. Budete vyzváni:

Kam chcete příklad uložit? [výchozí:./is_example.py]:

Můžete buď zadat vlastní místní cestu, nebo stisknutím klávesy Enter přijmout výchozí. Budete vyzváni k zadání uživatelského jména a hesla, které jste právě vytvořili při registraci účtu Počátečního stavu. Zadejte obojí a instalace bude dokončena.

Krok 4: Přístupové klíče

Podívejme se na ukázkový skript, který byl vytvořen.

$ nano is_example.py

Na řádku 15 uvidíte řádek, který začíná streamer = Streamer (bucket_…. Tyto řádky vytvoří nový segment dat s názvem „Python Stream Example“a budou přidruženy k vašemu účtu. K tomuto přidružení dochází z důvodu access_key =”…” parametr na stejném řádku. Tato dlouhá řada písmen a číslic je váš přístupový klíč k počátečnímu stavu. Pokud ve webovém prohlížeči přejdete na svůj účet Počáteční stav, klikněte vpravo nahoře na své uživatelské jméno a poté přejděte na „Moje nastavení“, stejný přístupový klíč najdete ve spodní části stránky v části „Streamovací přístupové klíče“.

Pokaždé, když vytvoříte datový tok, tento přístupový klíč nasměruje tento datový tok na váš účet (klíč tedy nikomu nesdělujte).

Krok 5: Spusťte příklad

Spusťte testovací skript, abyste se ujistili, že můžeme vytvořit datový proud na váš účet Počáteční stav. Spusťte následující:

$ python is_example.py

Krok 6: Zisk

Vraťte se ve webovém prohlížeči na svůj účet Počáteční stav. Vlevo na poličce s protokolem se měl objevit nový datový segment s názvem „Příklad Python streamu“(možná budete muset stránku aktualizovat). Data můžete zobrazit v dlaždicích a zobrazit stejná data ve formě řídicího panelu.

Krok 7: Konečný skript

Za předpokladu, že jste v části 2 spustili příkaz „git clone https://github.com/InitialState/smart-scale.git“, konečný skript, který vše spojí, se ve vašem adresáři ~/smart-scale nazývá smartscale.py. (https://github.com/InitialState/smart-scale/blob/master/smartscale.py)

Před spuštěním skriptu je třeba nastavit několik nastavení. Otevřete smartscale.py ve svém oblíbeném textovém editoru, jako je nano.

$ cd ~ $ cd inteligentní měřítko $ nano smartscale.py

V horní části tohoto souboru je sekce Uživatelská nastavení.

# --------- Uživatelská nastavení --------- BUCKET_NAME = ": apple: Moje hmotnostní historie" BUCKET_KEY = "weight11" ACCESS_KEY = "MÍSTO KEY INICIÁLNÍHO STÁTOVÉHO PŘÍSTUPU ZDE" METRIC_UNITS = FalseWEIGHT_SAMPLES = 500THROWAWAY_SAMPLES = 100WEIGHT_HISTORY = 7# ---------------------------------

  • BUCKET_NAME nastavuje název datového segmentu počátečního stavu, do kterého bude streamována vaše váha/data. To lze nastavit zde a změnit později v uživatelském rozhraní.
  • BUCKET_KEY je jedinečný identifikátor segmentu, který určuje, kam budou data streamována. Pokud chcete vytvořit jiný segment/řídicí panel, použijte zde jiný identifikátor (*poznámka, pokud archivujete segment, nemůžete jeho klíč znovu použít v novém segmentu).
  • ACCESS_KEY je klíč vašeho počátečního stavu. Pokud do tohoto pole nezadáte svůj ACCESS_KEY, vaše data se ve vašem účtu nezobrazí.
  • METRIC_UNITS vám umožňuje zadat vaši hmotnost v kg, pokud je nastavena na hodnotu True nebo lb, pokud je nastavena na hodnotu False.
  • WEIGHT_SAMPLES určuje, kolik měření je provedeno a zprůměrováno dohromady, aby se získala vaše skutečná hmotnost. 500 měření trvá přibližně 4-5 sekund a poskytuje poměrně přesné výsledky.
  • THROWAWAY_SAMPLES určuje počet vzorků, které jsou vyhozeny, když poprvé vstoupíte na hrací plochu. Tím se zabrání tomu, aby počáteční kroky a posuny odhodily konečné měření. To by mělo být vždy mnohem méně než WEIGHT_SAMPLES.
  • WEIGHT_HISTORY nastavuje počet měření provedených před odesláním další aktualizace. Do historie se započítávají pouze měření od sebe vzdálená dvě hodiny nebo více.

Jakmile zadáte každý parametr v této části a uložíte změny, jste připraveni spustit konečný skript. Než spustíme skript, projdeme si, co bude dělat.

  • Na začátku skriptu budete požádáni o spárování desky Wii Balance Board s Raspberry Pi. Pomocí páky, kterou jste hackli dohromady v části Část 2: Vylepšení hardwaru, stiskněte na výzvu tlačítko synchronizace.
  • Jakmile se skript spustí, stoupněte si na desku Wii a začněte měřit svoji váhu. Po 4-5 sekundách bude vaše váha automaticky odeslána na váš účet Počáteční stav.
  • Poté, co nastavíme oznámení SMS (v několika krocích), obdržíte textovou zprávu brzy po měření.

Spusťte skript a spusťte kouzlo.

$ sudo python smartscale.py

Krok 8: Řídicí panel

Přístrojová deska
Přístrojová deska

Přejděte na svůj účet Počáteční stav a klikněte na nový segment dat se jménem odpovídajícím parametru BUCKET_NAME (tj. Moje historie hmotnosti). Kliknutím na dlaždice zobrazíte hlavní panel historie hmotnosti. Při prvním zobrazení dat v dlaždicích byste měli vidět tři dlaždice - aktualizace, datum hmotnosti a hmotnost (lb). Hlavní panel můžete přizpůsobit změnou velikosti a přesunutím dlaždic, změnou typů zobrazení a dokonce přidáním dlaždic. Tento řídicí panel vám dává možnost vidět vaši historii hmotnosti na první pohled. Je vhodný pro mobilní zařízení a dokonce ho můžete sdílet s ostatními lidmi.

Na svůj řídicí panel můžete přidat obrázek na pozadí, který vašim datům dodá více osobnosti a kontextu.

Krok 9: SMS

SMS
SMS

Vytvoříme upozornění SMS, kdykoli váha provede měření hmotnosti. Ujistěte se, že je načten datový kbelík historie hmotnosti.

  1. V okně datového segmentu klikněte na nastavení segmentu (pod jeho názvem).
  2. Klikněte na kartu Spouštěče.
  3. Vyberte datový proud, který chcete spustit. Pomocí rozevíracího seznamu můžete vybírat ze stávajících streamů, jakmile se načte datový segment, nebo můžete název/klíč streamu zadat ručně. Na výše uvedeném příkladu obrazovky je vybrána možnost „Aktualizovat“.
  4. Vyberte podmíněný operátor, v tomto případě 'shoda'.
  5. Vyberte hodnotu Trigger, která spustí akci (ručně zadejte požadovanou hodnotu). Napište lb, pokud nepoužíváte metrické jednotky, nebo zadejte kg, pokud používáte metrické jednotky. Kdykoli stream „Aktualizace“obsahuje „lb“(nebo „kg“), obdržíte upozornění textovou zprávou.
  6. Kliknutím na tlačítko '+' přidáte podmínku Trigger.
  7. Do pole „Kontakty k upozornění“zadejte svou e -mailovou adresu nebo telefonní číslo.
  8. Kontaktní informace přidáte kliknutím na tlačítko+.
  9. Po přidání nového telefonního čísla k dokončení nastavení zadejte libovolný ověřovací kód.
  10. Kliknutím na tlačítko Hotovo v dolní části se vrátíte na hlavní obrazovku. Spouště je nyní aktivní a spustí se, když je splněna podmínka.

Jakmile je nastavení dokončeno, obdržíte SMS pokaždé, když se vážíte, která obsahuje vaši váhu, jak moc se vaše váha změnila od posledního měření a náhodný vtip / urážka / kompliment.

Krok 10: Závěr

Máte neomezené možnosti, jak navázat na to, co jste nyní vytvořili. Zde je několik nápadů pro tento projekt:

  • Můžete streamovat data z jiných zdrojů do stejného panelu historie hmotnosti (informace) a vytvořit si tak svůj vlastní osobní panel zdraví.
  • Vtipy ve funkcích messageWeighFirst, messageWeighLess, messageWeighMore a messageWeighSame můžete změnit na svůj vlastní smysl pro humor.
  • Vtipy můžete změnit na praktické zprávy nebo je odstranit a pomocí kódu stupnice sledovat váhu něčeho důležitějšího, než je váha vašeho vlastního těla.
  • Stejným přístupem si můžete vytvořit vlastní chytrou lednici na pivo/víno. K tomu je zde již vytvořen úžasný návod.

Hackujte a dejte mi vědět, pokud vás tento návod inspiruje k vytvoření něčeho úžasného.

Doporučuje: