Obsah:

Inteligentná stupnica Raspberry Pi: 10 krokov (s obrázkami)
Inteligentná stupnica Raspberry Pi: 10 krokov (s obrázkami)

Video: Inteligentná stupnica Raspberry Pi: 10 krokov (s obrázkami)

Video: Inteligentná stupnica Raspberry Pi: 10 krokov (s obrázkami)
Video: Mini PC na Intel N100 - AC8-N, výkonná platforma bez ventilátoru, instalace OS Home Assistant 2024, Júl
Anonim
Image
Image

Ste unavení z toho, že sa každé ráno pozeráte na tú nudnú, starú a zlú novinku do kúpeľne? Ten, ktorý vám často hovorí „Nenávidím ťa“ako vždy, keď naňho stúpite. Prečo nikto nevytvoril stupnicu, ktorá je skutočne zábavná alebo motivujúca na používanie? Je načase vytvoriť stupnicu, ktorá je nielen múdra, ale má aj viac osobnosti, aby vám rozjasnila deň. Chystáme sa vybudovať našu vlastnú hacknutelnú, kúpeľňovú váhu na sledovanie hmotnosti a textových správ, ktorá bude mať v sebe zabudovaný zmysel pre humor.

Jedná sa o zábavný a ľahký projekt, ktorý kombinuje dosku Wii, Raspberry Pi a online platformu na analýzu údajov a vytvára váhu prepojenú s webom ovládanú skriptom Python, ktorý môžete hacknúť.

Úroveň projektu: Začiatočník Približný čas na dokončenie: 20 minút Faktor zábavy: Nemerateľný

V tomto podrobnom návode budete:

  • pripojte balančnú dosku Wii k Raspberry Pi prostredníctvom bluetooth a spustite skript Python, ktorý meria vašu váhu, keď vstúpite na balančnú dosku
  • pomocou Raspberry Pi streamujte svoju váhu do cloudovej služby (počiatočný stav)
  • nastavte si upozornenie SMS zakaždým, keď sa vážite
  • Vytvorte informačný panel na sledovanie hmotnosti, ku ktorému máte prístup vo webovom prehliadači

Krok 1: Zariadenie

Stupnica Wii Balance Board
Stupnica Wii Balance Board

Tu je zoznam všetkého vybavenia, ktoré budeme používať v tomto návode, s odkazmi na miesta, kde si môžete každú položku kúpiť.

  • Raspberry Pi 3 s kartou SD a napájaním (https://init.st/psuufmj)
  • Wii Balance Board (https://init.st/qg4ynjl)
  • Nabíjateľná batéria Wii Fit (https://init.st/iyypz2i)
  • Plstené podložky 3/8 "(https://init.st/8gywmjj)
  • Ceruzka (nedávam vám odkaz na miesto, kde si môžete kúpiť ceruzku … jednu z nich by ste mali vlastniť)

Poznámka: Ak máte Raspberry Pi 1 alebo 2, budete potrebovať adaptér bluetooth (https://init.st/7y3bcoe)

Krok 2: Stupnica Wii Balance Board

Prečo Wii Balance Board? Ukazuje sa, že je to skutočne pekná a odolná váha s pripojením bluetooth. To nám umožní pripojiť ho k jednodoskovému počítaču (Raspberry Pi), aby sme mohli prečítať vašu váhu v skripte Python a odoslať tieto merania online dátovej službe, aby robila skvelé veci. Navyše je veľká šanca, že vy alebo niekto z vašich známych už nejaký má, ktorý jednoducho zbiera prach.

Budeme musieť urobiť niekoľko jednoduchých úprav na našej Wii Balance Board, aby bol tento projekt skutočne praktický a pohodlný.

Krok 3: Nastavenie Bluetooth

Raspberry Pi 3 je vybavený vstavaným bluetooth, všetko, čo potrebujeme na komunikáciu s Wii Balance Board. Ak máte Raspberry Pi 1 alebo 2, na pripojenie adaptéra budeme musieť použiť jeden z našich portov USB.

Zapnite Pi (predpokladám, že ste už nainštalovali Raspbian a spustí sa) a prejdite do okna terminálu Raspberry Pi. Adresu svojho bluetooth donglu môžete vidieť pomocou príkazu „hcitool dev“:

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

Nainštalujte moduly bluetooth, ktoré budeme používať v našich skriptoch Python:

$ sudo apt-get install python-bluetooth

Po dokončení inštalácie sme pripravení pripojiť sa a komunikovať s Wii Balance Board. Nebudeme natrvalo spárovať našu dosku s naším Pi, ako to robíme s väčšinou našich bluetooth zariadení. Doska Wii Balance nikdy nemala byť spárovaná s ničím iným ako s Wii a trvalé párovanie sa ukázalo ako dosť mätúca výzva. K párovaniu dôjde vždy, keď spustíme náš skript Python.

Krok 4: Čítanie stupnice

Je načase pripojiť náš Wii Balance Board k nášmu Raspberry Pi. Vykonáme to úpravou verzie skriptu Stavros Korokithakis 'Gr8W8Upd8M8.py (https://github.com/skorokithakis/gr8w8upd8m8). Tu sa nachádza skript pythonu, ktorý budeme v tomto kroku používať. Obsah tohto súboru môžete skopírovať do súboru, ktorý vytvoríte na svojom Raspberry Pi, alebo môžete klonovať všetky súbory pythonu, ktoré budeme používať pre celý tento projekt. Urobme to druhé. Do terminálu na vašom Raspberry Pi zadajte nasledujúce príkazy:

$ cd ~ $ git klon $ git klon https: github.com/initialstate/smart-scale.git klonovanie do „inteligentnej mierky“… diaľkové: Počítanie objektov: 14, hotovo. diaľkové ovládanie: Komprimácia objektov: 100% (12/12), hotovo. diaľkové ovládanie: Celkom 14 (delta 1), opakovane 8 (delta 0), opakovane použité balenie 0 Rozbalenie predmetov: 100% (14/14), hotovo. Kontrola pripojenia … hotovo.

klonovanie do „inteligentnej mierky“… diaľkové: Počítanie objektov: 14, hotovo. diaľkové ovládanie: Komprimácia objektov: 100% (12/12), hotovo. diaľkové ovládanie: Celkom 14 (delta 1), opakovane 8 (delta 0), opakovane použité v balíku 0 Rozbalenie predmetov: 100% (14/14), hotovo. Kontrola pripojenia … hotovo.

V novom adresári smart -scale by ste mali vidieť dva súbory python - smartscale.py a wiiboard_test.py.

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

Spustením skriptu wiiboard_test.py otestujte komunikáciu a odčítajte údaje o hmotnosti z Wii Balance Board:

$ sudo python wiiboard_test.py

Uvidíte nasledujúcu odpoveď:

Objavuje sa doska … Teraz stlačte červené tlačidlo synchronizácie na doske

Odstráňte kryt batérie pod doskou a vyhľadajte červené tlačidlo synchronizácie. Uistite sa, že stlačíte tlačidlo do niekoľkých sekúnd od spustenia skriptu, inak dôjde k vypršaniu časového limitu. Keď budete úspešní, uvidíte niečo podobné nasledujúcemu:

Našiel sa Wiiboard na adrese 00: 23: CC: 2E: E1: 44 Pokúša sa pripojiť … Pripojené k Wiiboardu na adrese 00: 23: CC: 2E: E1: 44 Pripojený Wiiboard k zápisu dát prijatý 84,99185297 libier 84,88864412 libier 84,9275927 libier

Skript wiiboard_test.py zaznamenáva počet meraní hmotnosti uvedený v riadku 10 a vydáva priemer:

# --------- Používateľské nastavenia --------- WEIGHT_SAMPLES = 500# ------------------------- --------

S týmto číslom sa môžete pohrať tak, že zmeníte hodnotu a znova spustíte skript, aby ste videli variácie nameranej hmotnosti a čas potrebný na každé meranie. Odvážte sa, odvážte svojho psa, odvážte čokoľvek a uvidíte, či merania majú zmysel. Skript zastavíte stlačením klávesov CTRL+C.

Teraz ste úspešne previedli svoju Wii Balance Board na pripojenú váhu Raspberry Pi. Teraz to urobíme v pohode.

Krok 5: Vyladenia hardvéru

Hardvérové vychytávky
Hardvérové vychytávky

Nintendo predpokladalo, že vašu dosku Wii Balance Board budete vždy napájať štyrmi batériami AA a nebude obsahovať žiadny sieťový adaptér. Mať iba batériu by bolo nepohodlné, pretože nemôžeme natrvalo spárovať našu dosku Wii s naším Pi prostredníctvom bluetooth. Musíme to synchronizovať a potom nechať synchronizované bez vybitia batérií, aby sme mohli jednoducho stúpiť na váhu a vážiť. Našťastie existuje niekoľko adaptérov tretích strán vyrobených pre dosku Wii Balance Board, ktoré môžeme použiť na zabezpečenie konštantného napájania z elektrickej zásuvky. Vymeňte batérie za batériu a zapojte sieťový adaptér do elektrickej zásuvky.

Potreba párovania Wii Balance Board a Raspberry Pi pri každom spustení nášho skriptu Python predstavuje ďalšie nepohodlie kvôli umiestneniu tlačidla synchronizácie. Tlačidlo synchronizácie je v spodnej časti dosky Wii, čo znamená, že by sme ho museli prevrátiť vždy, keď potrebujeme synchronizovať. Môžeme to opraviť pomocou páčky pomocou ceruzky a troch 3/8 "plstených podložiek, ako je uvedené vyššie. Nabíjateľná batéria vystaví tlačidlo synchronizácie spodnému povrchu dosky. Prilepte pásku (alebo niečo podobné), ktorá pokrýva od tlačidla synchronizácie k vonkajšej prednej časti dosky. Na stred ceruzky nasaďte tri 3/8 "plstené podložky (alebo niečo podobné), aby ste vytvorili stacionárny čap. Dávajte pozor, aby ste nevystavili príliš veľkú časť ceruzky z dosky, pretože nechcete, aby ju niekto omylom vyrazil. Otočte dosku a môžete stlačiť tlačidlo synchronizácie jednoduchým stlačením páčky. Trochu hack, ale efektívne.

V závislosti od toho, ako svoju dosku Wii skladujete, možno budete chcieť odstrániť gumené úchytky z nôh dosky (podložky sú jednoducho samolepky, ktoré môžete odlepiť). Na nohy dosky je možné umiestniť 3/8 plstené podložky, ktoré uľahčujú kĺzanie.

Krok 6: Počiatočný stav

Počiatočný stav
Počiatočný stav

Chceme prenášať svoju váhu/údaje do cloudovej služby a nechať túto službu, aby z našich údajov vytvorila pekný informačný panel, ku ktorému máme prístup z prenosného počítača alebo mobilného zariadenia. Naše údaje potrebujú cieľ. Ako cieľ použijeme počiatočný stav.

Krok 1: Zaregistrujte sa na počiatočný stav účtu Prejdite na stránku https://iot.app.initialstate.com a vytvorte si nový účet.

Krok 2: Nainštalujte ISStreamer Nainštalujte modul Počiatočný stav Python na svoj Pi: Na príkazovom riadku (nezabudnite najskôr SSH do svojho Pi) spustite nasledujúci prí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 obrazovke niečo podobné nasledujúcemu výstupu:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashHeslo: Začiatok ISStreamer Python Jednoduchá inštalácia! Inštalácia môže trvať niekoľko minút, dajte si kávu:) Ale nezabudnite sa vrátiť, otázky budem mať neskôr!

Nájdená jednoduchá inštalácia: setuptools 1.1.6

Nájdený pip: pip 1.5.6 z /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip hlavná verzia: 1 pip vedľajšia verzia: 5 ISStreamer nájdený, aktualizuje sa … Požiadavka už aktuálne: ISStreamer v /Library/Python/2.7/site-packages Čistenie … Chcete automaticky získať ukážkový skript? [r/nie]

(výstup môže byť odlišný a môže trvať dlhšie, ak ste nikdy predtým nenainštalovali modul streamovania Python v počiatočnom stave)

Po zobrazení výzvy na automatické získanie ukážkového skriptu zadajte y. Tým sa vytvorí testovací skript, ktorý môžeme spustiť, aby sme zaistili, že budeme môcť streamovať údaje do počiatočného stavu z nášho Pi. Budete vyzvaní:

Kam chcete uložiť príklad? [predvolené:./is_example.py]:

Môžete buď zadať vlastnú miestnu cestu, alebo stlačením klávesu Enter potvrdiť predvolenú hodnotu. Pri registrácii účtu Počiatočný stav budete vyzvaní na zadanie používateľského mena a hesla, ktoré ste práve vytvorili. Zadajte oboje a inštalácia sa dokončí.

Krok 4: Prístupové kľúče

Pozrime sa na ukážkový skript, ktorý bol vytvorený.

$ nano is_example.py

Na riadku 15 uvidíte riadok, ktorý začína na streamer = Streamer (bucket_ …. Tieto riadky vytvoria nový zväzok údajov s názvom „Príklad Python streamu“a budú priradené k vášmu účtu. K tomuto priradeniu dochádza z dôvodu access_key =”…” parameter na tom istom riadku. Táto dlhá séria písmen a číslic je váš prístupový kľúč k účtu Počiatočný stav. Ak vo webovom prehliadači prejdete na svoj účet Počiatočný stav, kliknite vpravo hore na svoje používateľské meno a potom na položku Moje nastavenia., Rovnaký prístupový kľúč nájdete v spodnej časti stránky v časti „Streamovacie prístupové kľúče“.

Zakaždým, keď vytvoríte stream údajov, tento prístupový kľúč ho presmeruje do vášho účtu (kľúč teda nikomu nezdieľajte).

Krok 5: Spustite príklad

Spustite testovací skript, aby ste sa uistili, že môžeme vytvoriť tok údajov pre váš účet Počiatočný stav. Spustite nasledujúce:

$ python is_example.py

Krok 6: Zisk

Vo webovom prehliadači sa vráťte k svojmu počiatočnému účtu. Nový priečinok s údajmi s názvom „Príklad Python streamu“sa mal zobraziť vľavo na poličke denníka (možno budete musieť stránku obnoviť). Údaje môžete zobraziť v dlaždiciach a zobraziť ich vo forme panela.

Krok 7: Záverečný skript

Za predpokladu, že ste v časti 2 spustili príkaz „git clone https://github.com/InitialState/smart-scale.git“, konečný skript, ktorý všetko spojí, sa vo vašom adresári ~/smart-scale nazýva smartscale.py. (https://github.com/InitialState/smart-scale/blob/master/smartscale.py)

Pred spustením skriptu je potrebné nastaviť niekoľko nastavení. Otvorte smartscale.py vo svojom obľúbenom textovom editore, ako je nano.

$ cd ~ $ cd inteligentná mierka $ nano smartscale.py

V hornej časti tohto súboru sa nachádza sekcia Používateľské nastavenia.

# --------- Užívateľské nastavenia --------- BUCKET_NAME = ": apple: Moja história hmotnosti" BUCKET_KEY = "weight11" ACCESS_KEY = "UMIESTNITE SVOJ PRVKOVÝ KĽÚČ PRÍSTUPU TU" METRIC_UNITS = FalseWEIGHT_SAMPLES = 500THROWAWAY_SAMPLES = 100WEIGHT_HISTORY = 7# ---------------------------------

  • BUCKET_NAME nastavuje názov dátového segmentu počiatočného stavu, do ktorého sa bude streamovať vaša hmotnosť/údaje. Tu je možné nastaviť a neskôr zmeniť v používateľskom rozhraní.
  • BUCKET_KEY je jedinečný identifikátor segmentu, ktorý určuje, kam budú vaše údaje streamované. Ak chcete vytvoriť iný segment/informačný panel, tu použite iný identifikátor (*poznámka, ak archivujete segment, nemôžete jeho kľúč znova použiť v novom segmente).
  • ACCESS_KEY je kľúč vášho počiatočného stavu. Ak do tohto poľa nezadáte svoj ACCESS_KEY, vaše údaje sa vo vašom účte nezobrazia.
  • METRIC_UNITS vám umožňuje zadať vašu hmotnosť v kg, ak je nastavená na hodnotu True alebo lb, ak je nastavená na hodnotu False.
  • WEIGHT_SAMPLES určuje, koľko meraní sa vykoná a spriemeruje, aby sa získala vaša skutočná hmotnosť. 500 meraní trvá asi 4-5 sekúnd a poskytuje pomerne presné výsledky.
  • THROWAWAY_SAMPLES určuje počet vzoriek, ktoré sa vyhodia, keď prvýkrát vstúpite na dosku. Tým sa zabráni tomu, aby počiatočné kroky a radenie zahodili konečné meranie. Vždy by to malo byť oveľa menej ako WEIGHT_SAMPLES.
  • WEIGHT_HISTORY nastavuje počet meraní vykonaných pred odoslaním ďalšej aktualizácie. Do histórie sa započítavajú iba merania urobené s odstupom dvoch hodín alebo viac.

Akonáhle zadáte každý parameter v tejto časti a uložíte zmeny, ste pripravení spustiť konečný skript. Pred spustením skriptu si prejdeme, čo bude robiť.

  • Na začiatku skriptu budete požiadaní o spárovanie dosky Wii Balance Board s Raspberry Pi. Po výzve pomocou páčky, ktorú ste narazili v časti Časť 2: Vylepšenia hardvéru, stlačte tlačidlo synchronizácie.
  • Akonáhle je skript spustený, vstúpte na dosku Wii a začnite merať svoju váhu. Po 4-5 sekundách sa vaša hmotnosť automaticky odošle na váš účet Počiatočný stav.
  • Keď nastavíme upozornenia SMS (v niekoľkých krokoch), čoskoro po meraní vám príde textová správa.

Spustením skriptu spustíte kúzlo.

$ sudo python smartscale.py

Krok 8: Hlavný panel

Prístrojová doska
Prístrojová doska

Prejdite na svoj účet Počiatočný stav a kliknite na nový segment údajov s názvom zodpovedajúcim parametru BUCKET_NAME (t.j. Moja história hmotnosti). Kliknutím na dlaždice zobrazíte informačný panel histórie hmotnosti. Pri prvom zobrazení údajov v dlaždiciach by ste mali vidieť tri dlaždice - aktualizácia, dátum hmotnosti a hmotnosť (libry). Hlavný panel si môžete prispôsobiť zmenou veľkosti a presunom dlaždíc, ako aj zmenou typov zobrazení a dokonca pridaním dlaždíc. Tento informačný panel vám dáva možnosť na prvý pohľad vidieť svoju históriu hmotnosti. Je vhodný pre mobilné zariadenia a dokonca ho môžete zdieľať s inými ľuďmi.

Na svoj hlavný panel môžete pridať obrázok na pozadí, aby mali vaše dáta väčšiu osobnosť a kontext.

Krok 9: SMS

SMS
SMS

Vytvorme SMS upozornenie vždy, keď váha meria hmotnosť. Uistite sa, že je vedro s údajmi o histórii hmotnosti načítané.

  1. V okne dátového priečinka kliknite na nastavenia vedra (pod jeho názvom).
  2. Kliknite na kartu Spúšťače.
  3. Vyberte dátový tok, ktorý chcete spustiť. Rozbaľovací zoznam môžete použiť na výber z existujúcich prúdov po načítaní dátového vedra alebo môžete názov/kľúč streamu zadať ručne. Na vyššie uvedenom príklade obrazovky je vybratá možnosť „Aktualizovať“.
  4. Vyberte podmienený operátor, v tomto prípade „zhoda“.
  5. Vyberte hodnotu spúšťača, ktorá spustí akciu (zadajte požadovanú hodnotu ručne). Ak nepoužívate metrické jednotky, zadajte lb, alebo ak používate metrické jednotky, zadajte kg. Kedykoľvek stream „Aktualizácia“obsahuje „lb“(alebo „kg“), dostanete upozornenie textovou správou.
  6. Kliknutím na tlačidlo+pridáte podmienku spustenia.
  7. Do poľa „Kontakty na upozornenie“zadajte svoju e -mailovú adresu alebo telefónne číslo.
  8. Kontaktné informácie pridáte kliknutím na tlačidlo+.
  9. Po pridaní nového telefónneho čísla na dokončenie nastavenia zadajte ľubovoľný overovací kód.
  10. Kliknutím na tlačidlo Hotovo v spodnej časti sa vrátite na hlavnú obrazovku. Váš spúšťač je teraz aktívny a spustí sa, keď je podmienka splnená.

Po dokončení nastavenia dostanete zakaždým, keď sa vážite, správu SMS, ktorá obsahuje vašu hmotnosť, koľko sa hmotnosť zmenila od posledného merania a náhodný vtip / urážku / kompliment.

Krok 10: Záver

Máte neobmedzené možnosti, ako nadviazať na to, čo ste teraz vytvorili. Tu je niekoľko nápadov pre tento projekt:

  • Údaje z iných zdrojov môžete streamovať na rovnaký informačný panel (hmotnosť) histórie hmotnosti a vytvoriť si tak svoj vlastný informačný panel o zdraví.
  • Vtipy v funkciách messageWeighFirst, messageWeighLess, messageWeighMore a messageWeighSame môžete zmeniť na svoj vlastný zmysel pre humor.
  • Vtipy môžete zmeniť na praktické správy alebo ich odstrániť a pomocou kódu stupnice sledovať hmotnosť niečoho dôležitejšieho, ako je hmotnosť vášho vlastného tela.
  • Rovnakým prístupom si môžete vytvoriť vlastnú inteligentnú chladničku na pivo/víno. Na to je tu už vytvorený úžasný návod.

Hackujte a dajte mi vedieť, ak vás tento návod inšpiruje k vytvoreniu niečoho úžasného.

Odporúča: