Sisällysluettelo:

Raspberry Pi Smart Scale: 10 vaihetta (kuvilla)
Raspberry Pi Smart Scale: 10 vaihetta (kuvilla)

Video: Raspberry Pi Smart Scale: 10 vaihetta (kuvilla)

Video: Raspberry Pi Smart Scale: 10 vaihetta (kuvilla)
Video: Web Programming - Computer Science for Business Leaders 2016 2024, Heinäkuu
Anonim
Image
Image

Oletko kyllästynyt tuijottamaan sitä tylsää, vanhaa, huonoja uutisia sisältävää kylpyhuonevaakaa joka aamu? Se, jonka sanot usein "vihaan sinua" joka kerta kun astut sen päälle. Miksi kukaan ei ole tehnyt mittakaavaa, joka on todella hauska tai motivoiva käyttää? On aika luoda asteikko, joka on paitsi älykäs myös hieman persoonallisempi piristämään päivääsi. Aiomme rakentaa oman hakkeroidun, painonseurannan, tekstiviestien kylpyhuonevaaka, joka sisältää sisäänrakennetun huumorintajun.

Tämä on hauska ja helppo projekti, jossa yhdistyvät Wii-tasapainolevy, Raspberry Pi ja online-tietojen analysointialusta luodaksesi verkkoyhteyden mittakaavan, jota ohjaa Python-skripti, jota voit hakata.

Projektitaso: Aloittelija Arvioitu valmistumisaika: 20 minuuttia Hauska tekijä: mittaamaton

Tässä vaiheittaisessa opetusohjelmassa voit:

  • yhdistä Wii -tasapainolevy Raspberry Pi -laitteeseen bluetoothin kautta ja suorita Python -skripti, joka mittaa painosi, kun astut vaakalaudalle
  • käytä Raspberry Pi -laitetta painosi suoratoistamiseen pilvipalveluun (alkuperäinen tila)
  • aseta tekstiviesti -ilmoitus aina, kun punnitset itsesi
  • rakenna painonseurannan hallintapaneeli, jota voit käyttää verkkoselaimessasi

Vaihe 1: Laitteet

Wii Balance Board Scale
Wii Balance Board Scale

Tässä on luettelo kaikista laitteista, joita käytämme tässä opetusohjelmassa, ja linkit, joista voit ostaa kunkin tuotteen.

  • Raspberry Pi 3 SD -kortilla ja virtalähteellä (https://init.st/psuufmj)
  • Wii Balance Board (https://init.st/qg4ynjl)
  • Wii Fit ladattava akku (https://init.st/iyypz2i)
  • 3/8 "huopatyynyt (https://init.st/8gywmjj)
  • Lyijykynä (en anna sinulle linkkiä mistä ostaa kynä … sinun pitäisi omistaa yksi näistä)

Huomautus: Jos sinulla on Raspberry Pi 1 tai 2, tarvitset bluetooth -sovittimen (https://init.st/7y3bcoe)

Vaihe 2: Wii Balance Board Scale

Miksi Wii Balance Board? Osoittautuu, että se on todella mukava, kestävä vaaka, jossa on Bluetooth -yhteys. Tämän avulla voimme yhdistää sen yhden piirilevyn tietokoneeseen (Raspberry Pi), jotta voimme lukea painosi Python-komentosarjassa ja lähettää nämä mittaukset online-datapalvelulle tekemään hienoja asioita. Lisäksi sinulla on hyvä mahdollisuus, että sinulla tai jollakin tuntemallasi on jo sellainen, joka kerää vain pölyä.

Meidän on tehtävä pari yksinkertaista muutosta Wii Balance Boardiin tehdäksemme tästä projektista todella käytännöllisen ja kätevän.

Vaihe 3: Bluetooth -asennus

Raspberry Pi 3: ssa on sisäänrakennettu bluetooth, kaikki mitä tarvitsemme kommunikoimaan Wii Balance Boardin kanssa. Jos sinulla on Raspberry Pi 1 tai 2, meidän on käytettävä jotakin USB -porttia sovittimen kytkemiseen.

Käynnistä Pi (oletan, että olet jo asentanut Raspbianin ja se käynnistyy) ja siirry Raspberry Pi -pääteikkunaasi. Näet bluetooth -donglesi osoitteen komennolla "hcitool dev":

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

Asenna Bluetooth -moduulit, joita käytämme Python -skripteissämme:

$ sudo apt-get install python-bluetooth

Kun asennus on valmis, olemme valmiita muodostamaan yhteyden ja kommunikoimaan Wii Balance Boardin kanssa. Emme yhdistä aluettamme pysyvästi Pi: n kanssa, kuten useimpien Bluetooth -laitteidemme kanssa. Wii Balance Boardia ei ollut koskaan tarkoitus yhdistää mihinkään muuhun kuin Wiin, ja pysyvä pariliitos osoittautui varsin hämmentäväksi haasteeksi. Pariliitos tapahtuu joka kerta, kun suoritamme Python -skriptimme.

Vaihe 4: Asteikon lukeminen

On aika yhdistää Wii Balance Board -alusta Raspberry Pi -laitteeseemme. Teemme tämän muuttamalla Stavros Korokithakisin Gr8W8Upd8M8.py -komentosarjan versiota (https://github.com/skorokithakis/gr8w8upd8m8). Tässä vaiheessa käytettävä python -skripti sijaitsee täällä. Voit kopioida tämän tiedoston sisällön Raspberry Pi -laitteellasi luomaasi tiedostoon tai kloonata kaikki tässä koko projektissa käytettävät python -tiedostot. Tehdään jälkimmäinen. Kirjoita seuraavat komennot Raspberry Pi -laitteen päätelaitteeseen:

$ cd ~ $ git klooni $ git klooni https: github.com/initialstate/smart-scale.git kloonaus älykkääseen mittakaavaan… etä: Objekteja lasketaan: 14, valmis. kaukosäädin: Objektien pakkaaminen: 100% (12/12), valmis. kauko: Yhteensä 14 (delta 1), uudelleenkäytetty 8 (delta 0), pakkaus uudelleenkäytetty 0 Objektien purkaminen pakkauksesta: 100% (14/14), valmis. Yhteyden tarkistaminen… valmis.

kloonaus älykkääseen mittakaavaan… kauko: Objektien laskeminen: 14, valmis. kaukosäädin: Objektien pakkaaminen: 100% (12/12), valmis. kauko: Yhteensä 14 (delta 1), uudelleenkäytetty 8 (delta 0), pakkaus uudelleenkäytetty 0 Objektien purkaminen pakkauksesta: 100% (14/14), valmis. Yhteyden tarkistaminen… valmis.

Sinun pitäisi nähdä kaksi python -tiedostoa uudessa älykkään mittakaavan hakemistossa - smartscale.py ja wiiboard_test.py.

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

Suorita wiiboard_test.py -skripti testataksesi kommunikaatiota ja ottaaksesi painoarvot Wii Balance Boardilta:

$ sudo python wiiboard_test.py

Näet seuraavan vastauksen:

Taulun etsiminen… Paina nyt taululla olevaa punaista synkronointipainiketta

Irrota paristokotelon kansi kortin alta löytääksesi punaisen synkronointipainikkeen. Varmista, että painat painiketta muutaman sekunnin kuluessa komentosarjan suorittamisesta, tai aikakatkaisu tapahtuu. Kun olet onnistunut, näet jotain seuraavan kaltaista:

Wiiboard löydetty osoitteesta 00: 23: CC: 2E: E1: 44 Yritetään muodostaa yhteyttä … Yhdistetty Wiiboardiin osoitteessa 00: 23: CC: 2E: E1: 44

Wiiboard_test.py -skripti ottaa rivillä 10 määritettyjen painomittausten määrän ja antaa keskiarvon:

# --------- Käyttäjäasetukset --------- WEIGHT_SAMPLES = 500# ------------------------- --------

Voit pelata tällä numerolla muuttamalla arvoa ja suorittamalla komentosarjan uudelleen nähdäksesi mitatun painon vaihtelun ja kullekin mittaukselle tarvittavan ajan. Punnitse itsesi, punnitse koirasi, punnitse mitä tahansa ja katso, ovatko mittaukset järkeviä. Voit lopettaa komentosarjan painamalla CTRL+C.

Olet nyt onnistuneesti muuttanut Wii Balance Boardisi Raspberry Pi -asteikolle. Tehdään nyt viileä asteikko.

Vaihe 5: Laitteiston säätö

Laitteiston säätö
Laitteiston säätö

Nintendo oletti, että käytät Wii Balance Boardia aina neljällä AA -paristolla ilman verkkolaitetta. Vain akun käyttäminen olisi hankalaa, koska emme voi muodostaa pysyvää pariliitosta Wii -korttiimme Pi -laitteeseen Bluetoothin kautta. Meidän on synkronoitava se ja annettava sen sitten pysyä synkronoituna tyhjentämättä paristoja, jotta voimme yksinkertaisesti astua vaa'alle ja punnita. Onneksi Wii Balance Boardille on tehty useita kolmannen osapuolen sovittimia, joiden avulla voimme tarjota jatkuvaa virtaa pistorasiasta. Vaihda paristot akkuun ja kytke verkkolaite pistorasiaan.

Wii Balance Boardin ja Raspberry Pi: n yhdistäminen joka kerta, kun suoritamme Python -skriptimme, aiheuttaa synkronointipainikkeen sijainnin vuoksi uuden haitan. Synkronointipainike on Wii Boardin alareunassa, mikä tarkoittaa, että meidän on käännettävä se joka kerta, kun meidän on synkronoitava. Voimme korjata tämän tekemällä pienen vivun kynällä ja kolmella 3/8 "huopatyynyllä, kuten yllä on esitetty. Ladattava akku paljastaa synkronointipainikkeen levyn alapinnan alle. Teippaa lyijykynä (tai jotain vastaavaa) Synkronointipainikkeesta levyn etuosaan. Pinoa kolme 3/8 "huopatyynyä (tai jotain vastaavaa) kynän keskelle luodaksesi kiinteän nivelen. Varo, ettet paljasta liikaa kynää taululta, koska et halua, että joku potkaisee sen vahingossa ulos. Käännä levy ympäri ja voit painaa synkronointipainiketta yksinkertaisesti painamalla vipua alas. Hieman hakkerointi, mutta tehokas.

Riippuen siitä, miten Wii -korttisi säilytetään, haluat ehkä poistaa kumiset kahvatyynyt levyn jaloista (tyynyt ovat yksinkertaisesti tarroja, jotka voit irrottaa). 3/8 huopatyynyt voidaan asettaa levyn jalkoihin liukumisen helpottamiseksi.

Vaihe 6: Alkutila

Alkuperäinen tila
Alkuperäinen tila

Haluamme suoratoistaa painomme/tietomme pilvipalveluun ja saada tämän palvelun muuttamaan tietomme mukavaksi kojelautaksi, jota voimme käyttää kannettavalla tietokoneella tai mobiililaitteella. Datamme tarvitsevat määränpään. Käytämme alkuperäistä valtiota kohteena.

Vaihe 1: Rekisteröidy alkuperäisen valtion tilille Siirry osoitteeseen https://iot.app.initialstate.com ja luo uusi tili.

Vaihe 2: Asenna ISStreamer Asenna Initial State Python -moduuli Pi: lle: Suorita seuraava komento komentokehotteessa (älä unohda SSH: ta Pi: hen ensin).

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

Vaihe 3: Tee automaattinen Automaattinen Vaiheen 2 jälkeen näet jotain seuraavan kaltaista lähtöä näytölle:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashSalasana: ISStreamer Python Helppo asennus! Asentaminen voi kestää muutaman minuutin, nappaa kahvia:) Mutta älä unohda palata, minulla on kysymyksiä myöhemmin!

Löytyi easy_install: setuptools 1.1.6

Löytyi pip: pip 1.5.6 /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip pääversio: 1 pip vähäinen versio: 5 ISStreamer löytyi, päivitetään… Vaatimus jo ajan tasalla: ISStreamer /Library/Python/2.7/site-packages Siivous… Haluatko automaattisesti esimerkkikomentosarjan? [y/N]

(tulostus voi olla erilainen ja kestää kauemmin, jos et ole koskaan asentanut Initial State Python -moduulia aiemmin)

Kun sinua kehotetaan hakemaan automaattisesti esimerkkikomentosarja, kirjoita y. Tämä luo testikomentosarjan, jonka voimme suorittaa varmistaaksemme, että voimme suoratoistaa tietoja alkuperäiseen tilaan Pi: ltämme. Sinua pyydetään:

Minne haluat tallentaa esimerkin? [oletus:./is_example.py]:

Voit joko kirjoittaa mukautetun paikallisen polun tai painaa Enter hyväksyäksesi oletusarvon. Sinulta kysytään käyttäjänimeäsi ja salasanaasi, jotka loit juuri, kun rekisteröit alkuperäisen valtion tilisi. Anna molemmat ja asennus on valmis.

Vaihe 4: Avaimet

Katsotaanpa esimerkkiä, joka luotiin.

$ nano on_esimerkki.py

Rivillä 15 näet rivin, joka alkaa streamer = Streamer (bucket_…. Tämä rivi luo uuden dataluokan nimeltä "Python Stream Example" ja liittyy tiliisi. Tämä yhteys tapahtuu access_key = "…" parametri samassa rivissä. Tämä pitkä kirjainten ja numeroiden sarja on alkuperäisen valtion tilin käyttöavain. Jos siirryt alkuperäisen valtion tilillesi verkkoselaimessasi, napsauta oikeassa yläkulmassa olevaa käyttäjänimeäsi ja siirry sitten Omat asetukset -kohtaan., löydät saman käyttöavaimen sivun alareunasta "Streaming Access Keys" -kohdasta.

Joka kerta, kun luot tietovirran, kyseinen käyttöavain ohjaa kyseisen tietovirran tilillesi (joten älä jaa avainta kenellekään).

Vaihe 5: Suorita esimerkki

Suorita testikomentosarja varmistaaksesi, että voimme luoda tietovirran alkuperäisen valtion tilillesi. Suorita seuraava:

$ python on_esimerkki.py

Vaihe 6: Voitto

Palaa alkuperäisen valtion tilillesi verkkoselaimellasi. Python Stream -esimerkiksi kutsutun uuden tietoryhmän olisi pitänyt näkyä lokihyllyn vasemmalla puolella (sivu on ehkä päivitettävä). Voit tarkastella laattojen tietoja nähdäksesi samat tiedot koontinäytössä.

Vaihe 7: Lopullinen käsikirjoitus

Jos olet suorittanut "git-kloonin https://github.com/InitialState/smart-scale.git" -komennon osassa 2, viimeistä komentosarjaa, joka kokoaa kaiken yhteen, kutsutaan ~/smart-scale-hakemistossa smartscale.py. (https://github.com/InitialState/smart-scale/blob/master/smartscale.py)

Skriptissä on tehtävä muutama asetus, ennen kuin voit suorittaa sen. Avaa smartscale.py suosikkitekstieditorissasi, kuten nano.

$ cd ~ $ cd smart-scale $ nano smartscale.py

Tämän tiedoston yläosassa on Käyttäjäasetukset -osio.

# --------- Käyttäjäasetukset --------- BUCKET_NAME = ": apple: Oma painohistoria" BUCKET_KEY = "weight11" ACCESS_KEY = "Sijoita ALKUPERÄINEN TILANNE-AVAIN TÄSTÄ" METRIC_UNITS = FalseWEIGHT_SAMPLES = 500THROWAWAY_SAMPLES = 100WEIGHT_HISTORY = 7# ---------------------------------

  • BUCKET_NAME asettaa sen alkuperäisen tilan tietoalueen nimen, johon painosi/tietosi suoratoistetaan. Tämä voidaan asettaa täällä ja muuttaa myöhemmin käyttöliittymässä.
  • BUCKET_KEY on yksilöllinen ryhmätunniste, joka määrittää, mihin tiedot lähetetään. Jos haluat luoda toisen säilön/kojelaudan, käytä tässä eri tunnistetta (*Huomaa, jos arkistoit säilön, et voi käyttää sen avainta uudessa ryhmässä).
  • ACCESS_KEY on alkuperäisen tilisi avain. Jos et lisää ACCESS_KEY -arvoasi tähän kenttään, tietosi eivät näy tililläsi.
  • METRIC_UNITS antaa sinun määrittää painosi kilogrammoina, jos asetuksena on True tai lb, jos asetuksena on False.
  • WEIGHT_SAMPLES määrittää, kuinka monta mittausta otetaan ja keskitetään yhdessä todellisen painon saamiseksi. 500 mittausta kestää noin 4-5 sekuntia ja antaa melko tarkkoja tuloksia.
  • THROWAWAY_SAMPLES määrittää näytteiden määrän, jotka heitetään pois, kun astut taululle ensimmäisen kerran. Tämä estää alkuvaiheita ja siirtymistä lopettamasta mittausta. Tämän pitäisi aina olla paljon pienempi kuin WEIGHT_SAMPLES.
  • WEIGHT_HISTORY määrittää ennen lisäpäivityksen lähettämistä tehtyjen mittausten määrän. Vain kahden tai useamman tunnin välein tehdyt mittaukset otetaan huomioon historiassa.

Kun olet määrittänyt kaikki parametrit tässä osiossa ja tallentanut muutokset, olet valmis suorittamaan lopullisen komentosarjan. Ennen kuin suoritamme komentosarjan, käydään läpi, mitä se aikoo tehdä.

  • Käsikirjoituksen alussa sinua pyydetään yhdistämään Wii Balance Board ja Raspberry Pi. Paina vipua, jonka hakkasit yhteen osassa Osa 2: Laitteiston säätö, ja paina synkronointipainiketta pyydettäessä.
  • Kun käsikirjoitus on käynnissä, astu Wii Boardiin ja aloita painosi mittaaminen. 4-5 sekunnin kuluttua paino lähetetään automaattisesti alkuperäisen valtion tilillesi.
  • Kun olemme määrittäneet tekstiviesti -ilmoitukset (muutamassa vaiheessa), saat tekstiviestin pian mittauksen jälkeen.

Aloita taikuus suorittamalla komentosarja.

$ sudo python smartscale.py

Vaihe 8: Kojelauta

Kojelauta
Kojelauta

Siirry alkuperäisen valtion tilillesi ja napsauta uutta tietoryhmää, jonka nimi vastaa BUCKET_NAME -parametria (eli Oma painohistoria). Napsauta Laatat nähdäksesi painohistorian koontinäytön. Sinun pitäisi nähdä kolme laattaa, kun tarkastelet tietoja ensimmäisen kerran laatikoissa - päivitys, painopäivämäärä ja paino (lb). Voit muokata koontinäyttöäsi muuttamalla laattojen kokoa ja siirtämällä niitä sekä muuttamalla näkymän tyyppejä ja jopa lisäämällä ruutuja. Tämä kojelauta antaa sinulle mahdollisuuden nähdä painohistoriasi yhdellä silmäyksellä. Se on mobiiliystävällinen ja voit jopa jakaa sen muiden ihmisten kanssa.

Voit lisätä taustakuvan koontinäyttöön, jotta tietosi saavat enemmän persoonallisuutta ja kontekstia.

Vaihe 9: Tekstiviesti

tekstiviesti
tekstiviesti

Luo SMS -hälytys aina, kun vaaka mittaa painon. Varmista, että painohistoriatietosi on ladattu.

  1. Napsauta säilön asetuksia (sen nimen alla) tietoryhmäikkunassa.
  2. Napsauta Käynnistimet -välilehteä.
  3. Valitse käynnistettävä tietovirta. Voit käyttää avattavaa luetteloa valitaksesi olemassa olevista virroista, kun datanäkymä on ladattu, tai voit kirjoittaa virran nimen/avaimen manuaalisesti. Yllä olevassa kuvakaappauksessa "Päivitä" on valittu.
  4. Valitse ehdollinen operaattori, tässä tapauksessa 'match'.
  5. Valitse käynnistysarvo, joka käynnistää toiminnon (kirjoita haluttu arvo manuaalisesti). Kirjoita lb, jos et käytä metrisiä yksiköitä, tai kg, jos käytät metrisiä yksiköitä. Aina kun päivitysvirta sisältää "lb" (tai "kg"), saat tekstiviesti -ilmoituksen.
  6. Napsauta+-painiketta lisätäksesi laukaisuehdon.
  7. Kirjoita sähköpostiosoitteesi tai puhelinnumerosi Ilmoitettavat yhteystiedot -kenttään.
  8. Lisää yhteystiedot napsauttamalla+-painiketta.
  9. Syötä mikä tahansa vahvistuskoodi, jos lisäät uuden puhelinnumeron asennuksen loppuun saattamiseksi.
  10. Voit palata päänäyttöön napsauttamalla alareunassa olevaa Valmis -painiketta.

Kun asennus on valmis, saat jokaisen painon yhteydessä tekstiviestin, joka sisältää painosi, kuinka paljon painosi on muuttunut viimeisen mittauksen jälkeen, ja satunnaisen vitsin / loukkauksen / kohteliaisuuden.

Vaihe 10: Johtopäätös

Sinulla on rajattomasti vaihtoehtoja rakentaa sen perusteella, mitä olet nyt luonut. Tässä muutamia ideoita tähän projektiin:

  • Voit suoratoistaa tietoja muista lähteistä samaan painohistorian koontinäyttöön (info) ja luoda oman henkilökohtaisen terveyden hallintapaneelin.
  • Voit muuttaa viestinWeighFirst, messageWeighLess, messageWeighMore ja messageWeighSame toimintojen vitsejä oman huumorisi mukaan.
  • Voit muuttaa vitsejä käytännöllisiksi viesteiksi tai poistaa ne ja käyttää mittakaavakoodia seurataksesi jotain tärkeämpää oman painosi lisäksi.
  • Voit luoda oman älykkään olut-/viinijääkaapin samalla tavalla. Täällä on jo tehty mahtava opetusohjelma.

Hack pois ja kerro minulle, jos tämä opetusohjelma inspiroi sinua luomaan jotain hämmästyttävää.

Suositeltava: