Sadržaj:

Raspberry Pi pametna vaga: 10 koraka (sa slikama)
Raspberry Pi pametna vaga: 10 koraka (sa slikama)

Video: Raspberry Pi pametna vaga: 10 koraka (sa slikama)

Video: Raspberry Pi pametna vaga: 10 koraka (sa slikama)
Video: 600+ ЧЕЛОВЕК/ получили Вашу ПОМОЩЬ Друзья/ 24 марта Одесса 2024, Juli
Anonim
Image
Image

Jeste li umorni od gledanja u tu dosadnu, staru, lošu vijest kupaonske vage svako jutro? Onu koju često govorite "mrzim te" kao i svaki put kad je nagazite. Zašto niko nije napravio ljestvicu koja je zaista zabavna ili motivirajuća za upotrebu? Vrijeme je za stvaranje ljestvice koja nije samo pametna, već ima malo više ličnosti kako bi vam uljepšala dan. Izgradit ćemo vlastitu vagu za kupaonicu, za praćenje težine, tekstualnih poruka koja dolazi s ugrađenim smislom za humor.

Ovo je zabavan i jednostavan projekt koji kombinira Wii balansnu ploču, Raspberry Pi i internetsku platformu za analizu podataka za stvaranje skale povezane s internetom koju kontrolira Python skripta koju možete hakirati.

Nivo projekta: Početnik Približno vrijeme za završetak: 20 minuta Faktor zabave: Nemjerljivo

U ovom korak-po-korak vodiču ćete:

  • spojite Wii balansnu ploču na Raspberry Pi putem Bluetootha, pokrenite Python skriptu koja mjeri vašu težinu kada stanete na balansnu ploču
  • koristite Raspberry Pi za prijenos svoje težine na uslugu u oblaku (početno stanje)
  • postavite SMS obavijest svaki put kada se izvagate
  • izradite nadzornu ploču za praćenje težine kojoj možete pristupiti u svom web pregledniku

Korak 1: Oprema

Skala Wii Balance Board
Skala Wii Balance Board

Ovdje je popis sve opreme koju ćemo koristiti u ovom vodiču s vezama do mjesta gdje možete kupiti svaku stavku.

  • Raspberry Pi 3 sa SD karticom i napajanjem (https://init.st/psuufmj)
  • Wii Balance Board (https://init.st/qg4ynjl)
  • Punjiva baterija Wii Fit (https://init.st/iyypz2i)
  • 3/8 "jastučići od filca (https://init.st/8gywmjj)
  • Olovka (ne dajem vam vezu gdje možete kupiti olovku … trebali biste posjedovati jednu od ovih)

Napomena: Ako imate Raspberry Pi 1 ili 2, trebat će vam Bluetooth adapter (https://init.st/7y3bcoe)

Korak 2: Skala Wii Balance Board

Zašto Wii Balance Board? Ispostavilo se da je to zaista lijepa, izdržljiva vaga koja ima bluetooth vezu. To će nam omogućiti da ga povežemo s računarom s jednom pločom (Raspberry Pi) kako bismo očitali vašu težinu u Python skripti i poslali ta mjerenja mrežnom podatkovnom servisu kako bismo radili super stvari. Osim toga, postoji velika šansa da vi ili neko koga poznajete već imate nekoga ko jednostavno skuplja prašinu.

Morat ćemo unijeti nekoliko jednostavnih izmjena na našu Wii Balance Board kako bismo ovaj projekt zaista učinili praktičnim i praktičnim.

Korak 3: Bluetooth podešavanje

Raspberry Pi 3 dolazi s ugrađenim bluetoothom, sve što nam je potrebno za komunikaciju s Wii Balance Boardom. Ako imate Raspberry Pi 1 ili 2, morat ćemo koristiti jedan od naših USB priključaka za priključivanje adaptera.

Uključite svoj Pi (pretpostavljam da ste već instalirali Raspbian i da se pokreće) i idite na prozor terminala Raspberry Pi. Adresu vašeg bluetooth ključa možete vidjeti pomoću naredbe "hcitool dev":

$ hcitool devUređaji: hci0 00: 1A: 7D: DA: 71: 13

Instalirajte bluetooth module koje ćemo koristiti u našim Python skriptama:

$ sudo apt-get install python-bluetooth

Nakon dovršetka instalacije spremni smo za povezivanje i komunikaciju s Wii Balance Board -om. Nećemo trajno upariti našu ploču s našim Pi -jem kao što to činimo s većinom naših bluetooth uređaja. Wii Balance Board nikada nije trebao biti uparen ni sa čim osim Wii -a, a trajno uparivanje pokazalo se kao prilično zbunjujući izazov. Uparivanje će se dogoditi svaki put kada pokrenemo našu Python skriptu.

Korak 4: Čitanje Skale

Vrijeme je da povežete našu Wii Balance Board s našim Raspberry Pi. To ćemo učiniti promjenom verzije skripte Gr8W8Upd8M8.py Stavrosa Korokithakisa (https://github.com/skorokithakis/gr8w8upd8m8). Python skripta koju ćemo koristiti za ovaj korak nalazi se ovdje. Sadržaj ove datoteke možete kopirati u datoteku koju kreirate na svom Raspberry Pi -u ili možete klonirati sve python datoteke koje ćemo koristiti za cijeli ovaj projekt. Učinimo ovo drugo. Upišite sljedeće naredbe u terminal na vašem Raspberry Pi:

$ cd ~ $ git clone $ git clone https: github.com/initialstate/smart-scale.git kloniranje u 'smart-scale' … daljinski: Brojanje objekata: 14, gotovo. daljinski: Komprimiranje objekata: 100% (12/12), gotovo. daljinski: Ukupno 14 (delta 1), ponovno korišteno 8 (delta 0), ponovno pakiranje 0 Raspakiranje objekata: 100% (14/14), gotovo. Provjera povezivanja… učinjeno.

kloniranje u 'smart-scale' … daljinski: Brojanje objekata: 14, gotovo. daljinski: Komprimiranje objekata: 100% (12/12), gotovo. daljinski: Ukupno 14 (delta 1), ponovno korišteno 8 (delta 0), ponovno pakiranje 0 Raspakiranje objekata: 100% (14/14), gotovo. Provjera povezivanja… učinjeno.

U novom direktoriju pametne skale trebali biste vidjeti dvije python datoteke - smartscale.py i wiiboard_test.py.

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

Pokrenite skriptu wiiboard_test.py da biste testirali komunikaciju i uzeli očitanja težine s Wii Balance Board -a:

$ sudo python wiiboard_test.py

Vidjet ćete sljedeći odgovor:

Ploča za otkrivanje… Pritisnite crveno dugme za sinhronizaciju na ploči sada

Uklonite poklopac baterije ispod ploče da biste pronašli crveno dugme za sinhronizaciju. Pritisnite dugme u roku od nekoliko sekundi od pokretanja skripte ili će doći do isteka vremena. Nakon uspjeha vidjet ćete nešto slično sljedećem:

Pronađen Wiiboard na adresi 00: 23: CC: 2E: E1: 44 Pokušava se povezati … Povezan sa Wiiboard -om na adresi 00: 23: CC: 2E: E1: 44Wiiboard povezan NAZAJ na primljene upise podataka

Skripta wiiboard_test.py uzima broj mjerenja težine navedene u retku 10 i daje prosjek:

# --------- Korisničke postavke --------- WEIGHT_SAMPLES = 500# ------------------------- --------

Možete se igrati s ovim brojem promjenom vrijednosti i ponovnim pokretanjem skripte kako biste vidjeli varijacije izmjerene težine i vremena potrebnog za svako mjerenje. Važite se, izvažite psa, izvažite bilo šta i provjerite ima li mjerenje smisla. Da biste zaustavili skriptu, pritisnite CTRL+C.

Sada ste uspješno pretvorili Wii Balance Board u povezanu vagu Raspberry Pi. Učinimo to hladnom skalom.

Korak 5: Podešavanja hardvera

Podešavanja hardvera
Podešavanja hardvera

Nintendo je pretpostavio da ćete uvijek napajati svoju Wii Balance Board sa četiri AA baterije i nije uključivao adapter za naizmjeničnu struju. Imati samo napajanje iz baterije bilo bi nezgodno jer ne možemo trajno upariti našu Wii ploču s našom Pi putem Bluetootha. Moramo ga sinkronizirati, a zatim dopustiti da ostane sinkroniziran bez pražnjenja baterija kako bismo jednostavno mogli stati na vagu i izvagati. Srećom, za Wii Balance Board napravljeno je nekoliko adaptera drugih proizvođača koje možemo koristiti za osiguravanje konstantnog napajanja iz zidne utičnice. Zamenite baterije baterijom i priključite ispravljač za struju u zidnu utičnicu.

To što morate upariti Wii Balance Board i Raspberry Pi svaki put kada pokrenemo našu Python skriptu predstavlja još jednu neugodnost zbog lokacije gumba za sinkronizaciju. Gumb za sinkronizaciju nalazi se pri dnu Wii ploče, što znači da bismo ga morali preokrenuti svaki put kad je potrebno sinkronizirati. To možemo popraviti izradom male poluge pomoću olovke i tri jastučića od filca od 3/8 ", kako je prikazano gore. Punjiva baterija izlaže gumb za sinkronizaciju ispod površine ploče. Zalijepite olovku (ili nešto slično) koje se proteže Od gumba za sinkronizaciju prema vanjskoj strani ploče. Složite tri jastučića od filca od 3/8 "(ili nešto slično) na sredinu olovke kako biste stvorili nepomičan zaokret. Pazite da ne izlažete previše olovke s ploče jer ne želite da je netko slučajno izbaci. Preokrenite ploču i možete pritisnuti dugme za sinhronizaciju jednostavnim pritiskom na ručicu prema dolje. Malo hakovanje, ali efikasno.

Ovisno o tome kako skladištite svoju Wii ploču, možda ćete htjeti ukloniti gumene jastučiće sa podnožja ploče (jastučići su jednostavno naljepnice koje možete odlijepiti). Jastučići od filca od 3/8 mogu se postaviti na stopala daske radi lakšeg klizanja.

Korak 6: Početno stanje

Početna država
Početna država

Želimo prenijeti svoju težinu/podatke na uslugu u oblaku i učiniti da ta usluga pretvori naše podatke u lijepu nadzornu ploču kojoj možemo pristupiti sa našeg prijenosnog računara ili mobilnog uređaja. Naši podaci trebaju odredište. Kao odredište koristit ćemo početno stanje.

Korak 1: Registrirajte se za početni državni račun Idite na https://iot.app.initialstate.com i kreirajte novi račun.

Korak 2: Instalirajte ISStreamerInstalirajte Python modul početnog stanja na svoj Pi: U naredbenom retku (ne zaboravite prvo unijeti SSH u svoj Pi), pokrenite sljedeću naredbu:

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

Korak 3: Napravite Automagic Nakon 2. koraka vidjet ćete nešto slično sljedećem ispisu na ekranu:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bash Lozinka: Počinje ISStreamer Python Laka instalacija! Ovo može potrajati nekoliko minuta da se instalira, popijete kafu:) Ali ne zaboravite da se vratite, ja ću imati pitanja kasnije!

Pronađena easy_install: setuptools 1.1.6

Pronađen pip: pip 1.5.6 iz /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) glavna verzija pipa: 1 mala verzija pipa: 5 pronađenih ISStreamera, ažuriranje … Zahtev već ažurirano: ISStreamer u /Library/Python/2.7/site-packages Čišćenje … Želite li automatski dobiti primjer skripte? [g/n]

(izlaz može biti drugačiji i može potrajati duže ako nikada prije niste instalirali početni modul Python streaming modula)

Kada se od vas zatraži da automatski nabavite primjer skripte, upišite y. Ovo će stvoriti testnu skriptu koju možemo pokrenuti kako bismo bili sigurni da možemo prenositi podatke u početno stanje iz našeg Pi. Od vas će biti zatraženo:

Gdje želite spremiti primjer? [zadano:./is_example.py]:

Možete ili upisati prilagođenu lokalnu putanju ili pritisnuti enter da biste prihvatili zadano. Od vas će biti zatraženo vaše korisničko ime i lozinka koje ste upravo stvorili prilikom registracije računa početnog stanja. Unesite oboje i instalacija će biti dovršena.

Korak 4: Pristupni ključevi

Pogledajmo primjer skripte koja je stvorena.

$ nano is_example.py

Na 15. retku vidjet ćete redak koji počinje sa streamer = Streamer (bucket_…. Ove linije stvaraju novu podatkovnu gomilu pod nazivom „Primjer Python Stream -a“i povezane su s vašim računom. Do ove asocijacije dolazi zbog access_key =”…“parametar na istoj liniji. Taj dugi niz slova i brojeva vaš je ključ za pristup računu početnog stanja. Ako u svom web pregledniku otvorite račun početnog stanja, kliknite svoje korisničko ime u gornjem desnom kutu, a zatim idite na "Moje postavke", isti pristupni ključ ćete pronaći pri dnu stranice pod “Pristupni ključevi za prijenos”.

Svaki put kada kreirate tok podataka, taj pristupni ključ će usmjeriti taj tok podataka na vaš račun (zato ne dijelite ključ ni sa kim).

Korak 5: Pokrenite primjer

Pokrenite testnu skriptu kako biste bili sigurni da možemo stvoriti tok podataka na vašem računu početnog stanja. Pokrenite sljedeće:

$ python is_example.py

Korak 6: Dobit

Vratite se na svoj račun početnog stanja u svom web pregledniku. Nova korpa podataka pod nazivom „Primjer Python Stream -a“trebala se pojaviti s lijeve strane na polici vašeg dnevnika (možda ćete morati osvježiti stranicu). Možete pregledati podatke u pločicama da biste vidjeli iste te podatke u obliku nadzorne ploče.

Korak 7: Završna skripta

Pod pretpostavkom da ste pokrenuli naredbu "git clone https://github.com/InitialState/smart-scale.git" u 2. dijelu, posljednja skripta koja sve spaja naziva se smartscale.py u vašem ~/smart-scale direktoriju. (https://github.com/InitialState/smart-scale/blob/master/smartscale.py)

Prije pokretanja skripte potrebno je postaviti nekoliko postavki. Otvorite smartscale.py u svom omiljenom uređivaču teksta, poput nano.

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

Pri vrhu ove datoteke nalazi se odjeljak Korisničke postavke.

# --------- Korisničke postavke --------- BUCKET_NAME = ": jabuka: Moja historija težine" BUCKET_KEY = "weight11" ACCESS_KEY = "OVDJE POSTAVITE KLJUČ ZA INICIJALNI DRŽAVNI PRISTUP" METRIC_UNITS = FalseWEIGHT_SAMPLES = 500THROWAWAY_SAMPLES = 100WEIGHT_HISTORY = 7# ---------------------------------

  • BUCKET_NAME postavlja naziv kante podataka početnog stanja u koju će se prenositi vaša težina/podaci. Ovo se može postaviti ovdje i kasnije promijeniti u korisničkom sučelju.
  • BUCKET_KEY je jedinstveni identifikator kante koji određuje gdje će vaši podaci strujati. Ako želite stvoriti drugu korpu/nadzornu ploču, ovdje upotrijebite drugi identifikator (*napomena, ako arhivirate kantu, ne možete ponovno koristiti njen ključ u novoj korpi).
  • ACCESS_KEY je ključ vašeg početnog stanja računa. Ako ne unesete ACCESS_KEY u ovo polje, vaši se podaci neće pojaviti na vašem računu.
  • METRIC_UNITS vam omogućava da navedete svoju težinu u kg ako je postavljena na True ili lb ako je postavljena na False.
  • WEIGHT_SAMPLES određuje koliko se mjerenja uzima i usrednjava zajedno kako bi se dobila vaša stvarna težina. 500 mjerenja traje oko 4-5 sekundi i daje prilično točne rezultate.
  • THROWAWAY_SAMPLES određuje broj uzoraka koji se bacaju pri prvom koraku na ploču. Ovo sprječava početne korake i pomake da odbace posljednje mjerenje. Ovo bi uvijek trebalo biti mnogo manje od WEIGHT_SAMPLES.
  • WEIGHT_HISTORY postavlja broj mjerenja obavljenih prije slanja dodatnog ažuriranja. U istoriju se ubrajaju samo mjerenja napravljena na dva sata ili više.

Nakon što navedete svaki parametar u ovom odjeljku i spremite promjene, spremni ste za pokretanje konačne skripte. Prije nego pokrenemo skriptu, prođimo kroz ono što će ona učiniti.

  • Na početku skripte od vas će se tražiti da uparite Wii Balance Board sa Raspberry Pi. Pomoću poluge koju ste zajedno hakovali u odeljku 2: Podešavanje hardvera pritisnite dugme za sinhronizaciju kada se to od vas zatraži.
  • Kada se skripta pokrene, zakoračite na Wii ploču kako biste počeli mjeriti svoju težinu. Nakon 4-5 sekundi, vaša težina će se automatski poslati na vaš račun početnog stanja.
  • Nakon što podesimo SMS obavijesti (u nekoliko koraka), ubrzo nakon mjerenja primit ćete tekstualnu poruku.

Pokrenite skriptu za početak magije.

$ sudo python smartscale.py

Korak 8: Nadzorna ploča

Kontrolna tabla
Kontrolna tabla

Idite na svoj račun početnog stanja i kliknite na novu korpu podataka s imenom koje odgovara parametru BUCKET_NAME (tj. Moja povijest težine). Kliknite na Pločice da vidite nadzornu ploču s poviješću težine. Prilikom prvog pregleda podataka u pločicama trebali biste vidjeti tri pločice - ažuriranje, datum težine i težina (lb). Nadzornu ploču možete prilagoditi promjenom veličine i pomicanjem pločica, kao i promjenom tipova prikaza, pa čak i dodavanjem pločica. Ova nadzorna ploča daje vam mogućnost da na prvi pogled vidite svoju povijest težine. Prilagođen je mobilnim uređajima i čak ga možete podijeliti s drugim ljudima.

Možete dodati pozadinsku sliku na nadzornu ploču kako biste svojim podacima dali više ličnosti i konteksta.

Korak 9: SMS

SMS
SMS

Napravimo SMS upozorenje kad god vaga mjeri težinu. Provjerite je li vaša kanta podataka s poviješću težine učitana.

  1. Kliknite na postavke segmenta (pod njegovim imenom) u prozoru sa podacima.
  2. Kliknite na karticu Okidači.
  3. Odaberite tok podataka za pokretanje. Možete koristiti padajuću listu za odabir među postojećim tokovima nakon što se učita kanta podataka ili možete ručno unijeti naziv/ključ prijenosa. Na gornjoj slici ekrana, odabran je "Update".
  4. Odaberite uvjetni operator, u ovom slučaju 'podudaranje'.
  5. Odaberite vrijednost okidača koja će pokrenuti radnju (ručno upišite željenu vrijednost). Upišite u lb ako ne koristite metričke jedinice ili u kg ako koristite metričke jedinice. Kad god stream "Update" sadrži "lb" (ili "kg"), dobit ćete obavijest o tekstualnoj poruci.
  6. Pritisnite dugme '+' za dodavanje uvjeta okidača.
  7. Unesite svoju adresu e -pošte ili telefonski broj u polje "Kontakti za obavještavanje".
  8. Pritisnite dugme '+' da dodate kontakt informacije.
  9. Unesite bilo koji verifikacijski kôd ako dodate novi telefonski broj za dovršetak postavljanja.
  10. Pritisnite dugme Gotovo pri dnu za povratak na glavni ekran. Vaš okidač je sada aktivan i aktivirat će se kada se ispuni uvjet.

Nakon dovršetka postavljanja, svaki put kad se izvagate, dobit ćete SMS koji sadrži vašu težinu, koliko se vaša težina promijenila od zadnjeg mjerenja i nasumičnu šalu / uvredu / kompliment.

Korak 10: Zaključak

Postoji neograničeno mnogo mogućnosti za nadogradnju na ono što ste sada stvorili. Evo nekoliko ideja za ovaj projekt:

  • Možete prenositi podatke iz drugih izvora na istu nadzornu ploču s podacima o težini (info) kako biste stvorili svoju vlastitu nadzornu ploču o zdravlju.
  • Šale možete promijeniti u porukama WeighFirst, messageWeighLess, messageWeighMore i messageWeighSame prema vlastitom osjećaju za humor.
  • Šale možete promijeniti u praktične poruke ili ih ukloniti te pomoću koda vage pratiti težinu nečeg važnijeg osim vlastite tjelesne težine.
  • Pomoću istog pristupa možete stvoriti vlastiti pametni hladnjak za pivo/vino. Ovdje je već napravljen sjajan vodič za to.

Odsecite se i javite mi ako vas ovaj vodič inspiriše da stvorite nešto neverovatno.

Preporučuje se: