Kazalo:

Pametna lestvica Raspberry Pi: 10 korakov (s slikami)
Pametna lestvica Raspberry Pi: 10 korakov (s slikami)

Video: Pametna lestvica Raspberry Pi: 10 korakov (s slikami)

Video: Pametna lestvica Raspberry Pi: 10 korakov (s slikami)
Video: Сводные таблицы Excel с нуля до профи за полчаса + Дэшборды! | 1-ое Видео курса "Сводные Таблицы" 2024, Julij
Anonim
Image
Image

Ste naveličani vsako jutro buljiti v to dolgočasno, staro, slabo novinsko kopalniško lestvico? Tisti, ki mu pogosto rečeš "sovražim te", vsakič, ko stopiš nanj. Zakaj nihče ni naredil tehtnice, ki bi bila dejansko zabavna ali motivirajoča za uporabo? Čas je, da ustvarite tehtnico, ki ni le pametna, ampak ima nekoliko več osebnosti, da vam polepša dan. Zgradili bomo lastno kopalniško tehtnico za sledenje teži in besedilnim sporočilom, ki jo je mogoče vdreti, z vgrajenim smislom za humor.

To je zabaven in enostaven projekt, ki združuje ravnotežno ploščo Wii, Raspberry Pi in spletno platformo za analizo podatkov za ustvarjanje spletne lestvice, ki jo nadzira skript Python, ki ga lahko vdrete.

Raven projekta: Začetnik Približen čas za dokončanje: 20 minut Faktor zabave: Nemerljivo

V tej vadnici po korakih boste:

  • povežite ravnotežno ploščo Wii z Raspberry Pi prek Bluetootha, zaženite skript Python, ki meri vašo težo, ko stopite na ploščo za ravnotežje
  • uporabite Raspberry Pi za pretakanje svoje teže v storitev v oblaku (začetno stanje)
  • nastavite obvestilo SMS vsakič, ko se tehtate
  • zgradite nadzorno ploščo za sledenje telesni teži, do katere lahko dostopate v spletnem brskalniku

1. korak: Oprema

Tehtnica za ravnotežje Wii
Tehtnica za ravnotežje Wii

Tu je seznam vse opreme, ki jo bomo uporabljali v tej vadnici, s povezavami do mest, kjer lahko kupite vsak predmet.

  • Raspberry Pi 3 s kartico SD in napajalnikom (https://init.st/psuufmj)
  • Wii Balance Board (https://init.st/qg4ynjl)
  • Polnilna baterija Wii Fit (https://init.st/iyypz2i)
  • 3/8 "blazinice iz filca (https://init.st/8gywmjj)
  • Svinčnik (ne dajem vam povezave do tega, kje kupiti svinčnik … morate imeti enega od teh)

Opomba: Če imate Raspberry Pi 1 ali 2, boste potrebovali adapter Bluetooth (https://init.st/7y3bcoe)

2. korak: Tehtnica za ravnotežje Wii

Zakaj Wii Balance Board? Izkazalo se je, da gre za res lepo, trpežno tehtnico, ki ima povezavo Bluetooth. To nam bo omogočilo, da ga povežemo z računalnikom z eno ploščo (Raspberry Pi), da prebere vašo težo v skriptu Python in te meritve pošlje v spletno podatkovno storitev, da naredi kul stvari. Poleg tega obstaja velika verjetnost, da že imate vi ali nekdo, ki ga poznate, ki preprosto zbira prah.

Na našem upravnem odboru Wii bomo morali narediti nekaj preprostih sprememb, da bo projekt resnično praktičen in priročen.

3. korak: Nastavitev Bluetooth

Raspberry Pi 3 ima vgrajen bluetooth, vse kar potrebujemo za komunikacijo z Wii Balance Board. Če imate Raspberry Pi 1 ali 2, bomo morali za priključitev adapterja uporabiti eno od naših vrat USB.

Vklopite svoj Pi (predvidevam, da ste že namestili Raspbian in se zažene) in pojdite v terminalsko okno Raspberry Pi. Naslov vašega bluetooth ključa si lahko ogledate z ukazom "hcitool dev":

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

Namestite module Bluetooth, ki jih bomo uporabljali v skriptih Python:

$ sudo apt-get namestite python-bluetooth

Po končani namestitvi smo pripravljeni za povezavo in komunikacijo z Wii Balance Board. Naše plošče ne bomo trajno združili z našim Pi, kot to počnemo z večino naših naprav Bluetooth. Wii Balance Board nikoli ni bil namenjen seznanjanju z ničemer drugim kot Wii, trajno povezovanje pa se je izkazalo za precej zmedeni izziv. Seznanjanje se bo zgodilo vsakič, ko zaženemo skript Python.

4. korak: Branje lestvice

Čas je, da našo tablo za ravnotežje Wii povežemo z Raspberry Pi. To bomo storili s spreminjanjem različice skripta Gr8W8Upd8M8.py Stavrosa Korokithakisa (https://github.com/skorokithakis/gr8w8upd8m8). Skript python, ki ga bomo uporabili za ta korak, se nahaja tukaj. Vsebino te datoteke lahko kopirate v datoteko, ki jo ustvarite na svojem Raspberry Pi, ali pa klonirate vse datoteke python, ki jih bomo uporabljali za ta celoten projekt. Naredimo slednje. V terminal na Raspberry Pi vnesite naslednje ukaze:

$ cd ~ $ git clone $ git clone https: github.com/initialstate/smart-scale.git cloning into 'smart-scale' … remote: Štetje predmetov: 14, končano. daljinsko: Stiskanje predmetov: 100% (12/12), končano. daljinsko: Skupaj 14 (delta 1), ponovno uporabljeno 8 (delta 0), ponovno pakiranje 0 Razpakiranje predmetov: 100% (14/14), narejeno. Preverjanje povezljivosti… končano.

kloniranje v „pametno merilo“… daljinsko: štetje predmetov: 14, končano. daljinsko: Stiskanje predmetov: 100% (12/12), končano. daljinsko: Skupaj 14 (delta 1), ponovno uporabljeno 8 (delta 0), ponovno pakiranje 0 Razpakiranje predmetov: 100% (14/14), narejeno. Preverjanje povezljivosti… končano.

V novem imeniku pametnega merila bi morali videti dve datoteki python - smartscale.py in wiiboard_test.py.

$ cd pametno merilo $ lsREADME.md smartscale.py wiiboard_test.py

Zaženite skript wiiboard_test.py, da preizkusite komunikacijo in vzamete odčitke teže z Wii Balance Board:

$ sudo python wiiboard_test.py

Videli boste naslednji odgovor:

Odkrivanje plošče … Zdaj pritisnite rdeči gumb za sinhronizacijo na plošči

Odstranite pokrov baterije pod ploščo, da poiščete rdeči gumb za sinhronizacijo. Pritisnite gumb v nekaj sekundah po zagonu skripta, sicer bo prišlo do časovne omejitve. Ko bo uspešen, boste videli nekaj podobnega:

Najdeno Wiiboard na naslovu 00: 23: CC: 2E: E1: 44 Poskuša se vzpostaviti povezava … Povezano z Wiiboard na naslovu 00: 23: CC: 2E: E1: 44Wiboard je priključen NAZAJ do prejetih podatkovnih zapisov 84,9185297 lbs

Skript wiiboard_test.py upošteva število meritev teže, določeno v vrstici 10, in prikaže povprečje:

# --------- Uporabniške nastavitve --------- WEIGHT_SAMPLES = 500# ------------------------- --------

S to številko se lahko igrate tako, da spremenite vrednost in znova zaženete skript, da vidite spremembe v izmerjeni teži in času, ki je potreben za vsako meritev. Tehtajte, stehtajte svojega psa, tehtajte vse in preverite, ali so meritve smiselne. Če želite zaustaviti skript, pritisnite CTRL+C.

Zdaj ste uspešno spremenili svojo Wii Balance Board v lestvico, povezano z Raspberry Pi. Zdaj pa naj bo to lepa lestvica.

5. korak: Popravljanje strojne opreme

Popravki strojne opreme
Popravki strojne opreme

Nintendo je domneval, da boste svojo uravnoteženo ploščo Wii vedno napajali s štirimi baterijami AA in ni vključeval napajalnika. Napajanje samo iz baterije bi bilo neprijetno, ker naše plošče Wii ne moremo trajno združiti z našim telefonom Pi prek Bluetootha. Moramo ga sinhronizirati, nato pa pustiti, da ostane sinhroniziran, ne da bi izpraznil baterije, da lahko preprosto stopimo na tehtnico in tehtamo. Na srečo je za Wii Balance Board izdelanih več adapterjev drugih proizvajalcev, s katerimi lahko zagotovimo stalno napajanje iz stenske vtičnice. Baterije zamenjajte z baterijo in priključite napajalnik v stensko vtičnico.

To, da moramo vsakič, ko zaženemo skript Python, združiti Wii Balance Board in Raspberry Pi, predstavlja še eno neprijetnost zaradi lokacije gumba za sinhronizacijo. Gumb za sinhronizacijo je na dnu plošče Wii, kar pomeni, da bi ga morali ob vsaki sinhronizaciji obrniti. To lahko odpravimo tako, da naredimo majhen vzvod s svinčnikom in tremi 3/8 -palčnimi blazinicami iz filca, kot je prikazano zgoraj. Polnilna baterija izpostavlja gumb za sinhronizacijo na spodnji strani plošče. Nalepite svinčnik (ali kaj podobnega), ki se razteza od gumba za sinhronizacijo na zunanjo stran plošče. Na sredino svinčnika položite tri 3/8 -palčne blazinice iz filca (ali kaj podobnega), da ustvarite nepremično vrtenje. Pazite, da s plošče ne izpostavite preveč svinčnika, saj ne želite, da bi ga kdo po nesreči izrinil. Obrnite ploščo in pritisnite gumb za sinhronizacijo, tako da pritisnete ročico navzdol. Malce kramp, vendar učinkovito.

Odvisno od tega, kako shranjujete svojo tablo Wii, boste morda želeli odstraniti gumijaste blazinice z nog plošče (blazinice so preprosto nalepke, ki jih lahko odstranite). Za lažje drsenje lahko na noge deske postavite 3/8 blazinice iz filca.

6. korak: Začetno stanje

Začetno stanje
Začetno stanje

Svojo težo/podatke želimo pretočiti v storitev v oblaku in ta storitev spremeni naše podatke v lepo nadzorno ploščo, do katere lahko dostopamo iz prenosnega računalnika ali mobilne naprave. Naši podatki potrebujejo destinacijo. Kot cilj bomo uporabili začetno stanje.

1. korak: Registrirajte se za začetni državni račun Pojdite na https://iot.app.initialstate.com in ustvarite nov račun.

2. korak: Namestite ISStreamer Namestite začetni državni modul Python na svoj Pi: V ukaznem pozivu (ne pozabite najprej vnesti SSH v svoj Pi) zaženite naslednji ukaz:

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

3. korak: Naredite nekaj samodejnega Po 2. koraku boste na zaslonu videli nekaj podobnega naslednjemu izhodu:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashGeslo: Začetek enostavne namestitve ISStreamer Python! To lahko traja nekaj minut za namestitev, popijte kavo:) Ampak ne pozabite se vrniti, pozneje bom imel vprašanja!

Najdeno easy_install: setuptools 1.1.6

Najdeno pip: pip 1.5.6 iz /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) večja različica pipa: 1 manjša različica pipa: 5 najti ISStreamer, posodobitev … Zahteva že posodobljeno: ISStreamer v /Library/Python/2.7/site-packages Cleaning up … Ali želite samodejno dobiti primer skripta? [da/ne]

(izhod je lahko drugačen in traja dlje, če še nikoli niste namestili pretočnega modula Initial State Python)

Ko boste pozvani, da samodejno dobite primer skripta, vnesite y. To bo ustvarilo preskusni skript, ki ga lahko zaženemo, da zagotovimo, da lahko iz našega Pi pretakamo podatke v začetno stanje. Pozvani boste:

Kam želite shraniti primer? [privzeto:./is_example.py]:

Če želite sprejeti privzeto, lahko vnesete lokalno pot po meri ali pritisnete enter. Od vas bo zahtevano vaše uporabniško ime in geslo, ki ste jih pravkar ustvarili, ko ste registrirali račun za začetno stanje. Vnesite oboje in namestitev se bo končala.

4. korak: Dostopni ključi

Poglejmo primer skripta, ki je bil ustvarjen.

$ nano is_example.py

V vrstici 15 boste videli vrstico, ki se začne s streamer = Streamer (bucket_…. Te vrstice ustvarijo novo podatkovno zbirko z imenom »Primer toka Python« in je povezana z vašim računom. To povezovanje se zgodi zaradi access_key = »…« v isti vrstici. Ta dolga vrsta črk in številk je ključ za dostop do računa za začetno stanje. Če v spletnem brskalniku odprete račun za začetno stanje, kliknite svoje uporabniško ime v zgornjem desnem kotu in pojdite na »Moje nastavitve«, isti ključ za dostop boste našli na dnu strani pod »Ključi za dostop do pretočnega predvajanja«.

Vsakič, ko ustvarite podatkovni tok, bo ta dostopni ključ ta tok podatkov usmeril v vaš račun (zato ključa ne delite z nikomer).

5. korak: Zaženite primer

Zaženite preskusni skript in se prepričajte, da lahko ustvarimo podatkovni tok v vašem računu začetnega stanja. Zaženite naslednje:

$ python is_example.py

6. korak: Dobiček

V spletnem brskalniku se vrnite na račun začetnega stanja. Novo vedro podatkov, imenovano »Primer Python Stream«, bi se moralo prikazati na levi strani v dnevniku (morda boste morali osvežiti stran). Podatke si lahko ogledate v ploščicah, da si iste podatke ogledate v obliki nadzorne plošče.

7. korak: Končni scenarij

Ob predpostavki, da ste v 2. delu zagnali ukaz "git clone https://github.com/InitialState/smart-scale.git", se zadnji imenik, ki vse združi, imenuje smartscale.py v vašem ~/smart-scale imeniku. (https://github.com/InitialState/smart-scale/blob/master/smartscale.py)

Preden ga lahko zaženete, morate v skriptu nastaviti nekaj nastavitev. Odprite smartscale.py v svojem najljubšem urejevalniku besedil, na primer nano.

$ cd ~ $ cd pametno merilo $ nano smartscale.py

Na vrhu te datoteke je razdelek Uporabniške nastavitve.

# --------- Uporabniške nastavitve --------- BUCKET_NAME = ": apple: Moja zgodovina telesne teže" BUCKET_KEY = "weight11" ACCESS_KEY = "TUKAJ KLJUČEK ZA DOSTOP postavite NA METRIC_UNITS = FalseWEIGHT_SAMPLES = 500THROWAWAY_SAMPLES = 100WEIGHT_HISTORY = 7# ---------------------------------

  • BUCKET_NAME nastavi ime podatkovnega področja začetnega stanja, v katerega se bo pretakala vaša teža/podatki. To lahko tukaj nastavite in kasneje spremenite v uporabniškem vmesniku.
  • BUCKET_KEY je edinstven identifikator vedra, ki določa, kam se bodo pretakali vaši podatki. Če želite ustvariti drugo vedro/nadzorno ploščo, tukaj uporabite drug identifikator (*opomba, če arhivirate vedro, ne morete znova uporabiti njegovega ključa v novem vedru).
  • ACCESS_KEY je ključ vašega začetnega stanja. Če svojega ACCESS_KEY ne vnesete v to polje, se vaši podatki ne bodo prikazali v vašem računu.
  • METRIC_UNITS vam omogoča, da določite svojo težo v kg, če je nastavljena na True ali lb, če je nastavljena na False.
  • WEIGHT_SAMPLES določa, koliko meritev se opravi in povpreči skupaj, da dobite svojo dejansko težo. 500 meritev traja približno 4-5 sekund in zagotavlja dokaj natančne rezultate.
  • THROWAWAY_SAMPLES določa število vzorcev, ki jih zavržete, ko prvič stopite na desko. To preprečuje, da bi začetni koraki in premik zavrgli končno meritev. To mora biti vedno veliko manj kot WEIGHT_SAMPLES.
  • WEIGHT_HISTORY nastavi število meritev, opravljenih pred pošiljanjem dodatne posodobitve. V zgodovino se štejejo samo meritve, narejene narazen dve uri ali več.

Ko določite vsak parameter v tem razdelku in shranite spremembe, ste pripravljeni zagnati končni skript. Preden zaženemo skript, poglejmo, kaj bo naredil.

  • Na začetku skripta boste morali združiti svojo ravnotežno ploščo Wii z Raspberry Pi. Z ročico, ki ste jo skupaj vdrli v 2. delu: Nastavitve strojne opreme, pritisnite gumb za sinhronizacijo, ko boste pozvani.
  • Ko se skript zažene, stopite na tablo Wii in začnite meriti svojo težo. Po 4-5 sekundah bo vaša teža samodejno poslana na vaš račun za začetno stanje.
  • Ko nastavimo obvestila SMS (v nekaj korakih), boste kmalu po meritvi prejeli besedilno sporočilo.

Zaženite skript, da začnete čarovnijo.

$ sudo python smartscale.py

8. korak: Nadzorna plošča

Armaturna plošča
Armaturna plošča

Pojdite na svoj račun začetnega stanja in kliknite novo podatkovno vedro z imenom, ki ustreza parametru BUCKET_NAME (tj. Moja zgodovina teže). Kliknite na ploščice za ogled nadzorne plošče zgodovine teže. Pri prvem ogledu podatkov v ploščicah bi morali videti tri ploščice - posodobitev, datum teže in teža (lb). Nadzorno ploščo lahko prilagodite tako, da spremenite velikost in premaknete ploščice ter spremenite vrste pogledov in celo dodate ploščice. Ta armaturna plošča vam omogoča, da na hitro vidite zgodovino telesne teže. Je prijazen do mobilnih naprav in ga lahko delite tudi z drugimi.

Na nadzorno ploščo lahko dodate sliko ozadja, da svojim podatkom dodate več osebnosti in konteksta.

9. korak: SMS

SMS
SMS

Ustvarimo opozorilo SMS, kadar koli tehtnica meri težo. Prepričajte se, da je naloženo vaše podatkovno vedro zgodovine teže.

  1. V nastavitvenem oknu kliknite na nastavitve vedra (pod njegovim imenom).
  2. Kliknite zavihek Sprožilci.
  3. Izberite podatkovni tok, ki ga želite sprožiti. S spustnega seznama lahko izberete obstoječe tokove, ko se naloži podatkovno vedro, ali pa ročno vnesete ime/ključ toka. Na zgornjem posnetku zaslona je izbrana možnost »Posodobi«.
  4. Izberite pogojni operator, v tem primeru 'match'.
  5. Izberite vrednost sprožilca, ki bo sprožil dejanje (ročno vnesite želeno vrednost). Če ne uporabljate metričnih enot, vnesite lb ali pa kg, če uporabljate metrične enote. Kadar koli tok "Posodobi" vsebuje "lb" (ali "kg"), boste prejeli obvestilo o besedilnem sporočilu.
  6. Kliknite gumb '+', da dodate pogoj sprožilca.
  7. V polje »Stiki za obvestilo« vnesite svoj e -poštni naslov ali telefonsko številko.
  8. Kliknite gumb '+', da dodate podatke za stik.
  9. Če za dokončanje nastavitve dodate novo telefonsko številko, vnesite kodo za preverjanje.
  10. Kliknite gumb Končano na dnu, da se vrnete na glavni zaslon. Vaš sprožilec je zdaj aktiven in se bo sprožil, ko bo izpolnjen pogoj.

Ko je nastavitev končana, boste ob vsakem tehtanju prejeli SMS, ki vsebuje vašo težo, koliko se je vaša teža spremenila od zadnje meritve, in naključno šalo / žalitev / kompliment.

10. korak: Zaključek

Obstaja neomejeno število možnosti, na podlagi katerih lahko gradite na tem, kar ste zdaj ustvarili. Nekaj idej za ta projekt:

  • Podatke iz drugih virov lahko pretakate na isto nadzorno ploščo zgodovine teže (info), da ustvarite svojo osebno nadzorno ploščo za zdravje.
  • Šale v funkcijah messageWeighFirst, messageWeighLess, messageWeighMore in messageWeighSame lahko spremenite v svoj smisel za humor.
  • Šale lahko spremenite v praktična sporočila ali jih odstranite in s kodo tehtnice spremljate težo nečesa pomembnejšega poleg lastne telesne teže.
  • Z istim pristopom lahko ustvarite lasten pameten hladilnik za pivo/vino. Za to je tukaj že narejena odlična vadnica.

Odsekajte in mi sporočite, če vas ta vadnica navdihne, da ustvarite nekaj neverjetnega.

Priporočena: