Sadržaj:

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

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

Video: Raspberry Pi pametna ljestvica: 10 koraka (sa slikama)
Video: Как устроена IT-столица мира / Russian Silicon Valley (English subs) 2024, Srpanj
Anonim
Image
Image

Jeste li umorni od toga da svako jutro gledate u tu dosadnu, staru, lošu vijest kupaonice? Ona koju često govorite "mrzim te" kao i svaki put kad je nagazite. Zašto nitko nije napravio ljestvicu koja je zapravo zabavna ili motivirajuća za upotrebu? Vrijeme je za stvaranje ljestvice koja nije samo pametna, već ima malo više osobnosti kako bi vam uljepšala dan. Izgradit ćemo vlastitu kupaonsku vagu za praćenje težine, tekstualne poruke s ugrađenim smislom za humor.

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

Razina projekta: Početnik Približno vrijeme za dovrš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 kročite na ploču za ravnotežu
  • upotrijebite Raspberry Pi za prijenos svoje težine na uslugu u oblaku (početno stanje)
  • postavite SMS obavijest svaki put kad 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: Vaga Wii Balance Board

Zašto Wii Balance Board? Ispostavilo se da je to zaista lijepa, izdržljiva vaga koja ima bluetooth povezivanje. To će nam omogućiti da ga povežemo s računalom 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 cool stvari. Osim toga, postoji velika vjerojatnost da vi ili netko koga poznajete već ima nekoga tko jednostavno skuplja prašinu.

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

Korak 3: Postavljanje Bluetootha

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 upotrijebiti jedan od naših USB priključaka za priključivanje adaptera.

Uključite svoj Pi (pretpostavljam da ste već instalirali Raspbian i da se podiž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 uparivati 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 s č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 Ljestvice

Vrijeme je za povezivanje naše Wii Balance Board s našom Raspberry Pi. To ćemo učiniti izmjenom inačice 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 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: Sažimanje objekata: 100% (12/12), učinjeno. 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: Sažimanje objekata: 100% (12/12), učinjeno. 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 ljestvice trebali biste vidjeti dvije python datoteke - smartscale.py i wiiboard_test.py.

$ cd pametno mjerilo $ 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 … Sada pritisnite crvenu tipku za sinkronizaciju na ploči

Uklonite poklopac baterije ispod ploče da biste pronašli crveni gumb za sinkronizaciju. Pritisnite gumb 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 spojiti … Povezan s Wiiboardom na adresi 00: 23: CC: 2E: E1: 44Wiiboard spojen nazad na primljene upise podataka

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

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

Možete se igrati s tim brojem promjenom vrijednosti i ponovnim pokretanjem skripte kako biste vidjeli varijacije u izmjerenoj težini i vremenu potrebnom za svako mjerenje. Važite se, izvažite psa, izvažite sve 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 ljestvicom.

Korak 5: Poboljšanja hardvera

Poboljšanja hardvera
Poboljšanja hardvera

Nintendo je pretpostavio da ćete svoju Wii Balance Board uvijek napajati s četiri AA baterije i nije uključivao adapter za izmjeničnu struju. Samo napajanje 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 trećih strana koje možemo koristiti za osiguravanje stalnog napajanja iz zidne utičnice. Zamijenite baterije baterijom i priključite ispravljač 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 položaja gumba za sinkronizaciju. Gumb za sinkronizaciju nalazi se pri dnu Wii ploče, što znači da bismo ga morali preokrenuti svaki put kad trebamo sinkronizirati. To možemo popraviti izradom male poluge pomoću olovke i tri jastučića od filca od 3/8 ", kako je gore prikazano. Punjiva baterija izlaže gumb za sinkronizaciju ispod površine ploče. Zalijepite olovku (ili nešto slično) koja 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 gumb za sinkronizaciju jednostavnim pritiskom na ručicu prema dolje. Malo hakiranje, ali učinkovito.

Ovisno o tome kako skladištite svoju Wii ploču, možda ćete htjeti ukloniti gumene držače s nogu 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 ploče radi lakšeg klizanja.

Korak 6: Početno stanje

Početno stanje
Početno stanje

Želimo usmjeriti 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 s prijenosnog računala 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 stvorite 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 zaslon:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword: Počinje ISStreamer Python Jednostavna instalacija! Ovo može potrajati nekoliko minuta za instalaciju, uzmite kavu:) Ali ne zaboravite se vratiti, imat ću pitanja kasnije!

Nađeno 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 Cleaning… Ž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 streaminga)

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 osigurali da možemo prenositi podatke u početno stanje iz našeg Pi. Od vas će se zatražiti:

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

Možete unijeti prilagođeni lokalni put ili pritisnuti enter da biste prihvatili zadano. Od vas će se zatražiti 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

U retku 15 vidjet ćete redak koji počinje sa streamer = Streamer (bucket_…. Ovi retci stvaraju novu podatkovnu gomilu pod nazivom „Primjer Python Stream -a“i povezani su s vašim računom. Do ove asocijacije dolazi zbog access_key =”…“parametar u istom retku. 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", taj isti pristupni ključ pronaći ćete pri dnu stranice u odjeljku "Pristupni ključevi za strujanje".

Svaki put kada stvorite podatkovni tok, taj pristupni ključ usmjerit će taj podatkovni tok na vaš račun (stoga nemojte ni s kim dijeliti svoj ključ).

Korak 5: Pokrenite primjer

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

$ python je_example.py

Korak 6: Dobit

Vratite se na početno stanje računa u svom web pregledniku. Nova podatkovna korpa pod nazivom „Primjer Python Stream -a“trebala se pojaviti s lijeve strane na polici vašeg dnevnika (možda ćete morati osvježiti stranicu). Podatke možete pregledati u pločicama da biste iste te podatke vidjeli 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 direktoriju ~/smart-scale. (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 pametno mjerilo $ nano smartscale.py

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

# --------- Korisničke postavke --------- BUCKET_NAME = ": apple: Moja povijest težine" BUCKET_KEY = "weight11" ACCESS_KEY = "OVDJE POSTAVITE KLJUČ ZA PRISTUP NA DRŽAVNOM DRŽAVU" 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. To se ovdje može postaviti 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 drugačiji segment/nadzornu ploču, ovdje upotrijebite drugi identifikator (*napomena, ako arhivirate spremnik, ne možete ponovno koristiti njegov ključ u novom spremniku).
  • 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 omogućuje vam 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 usrednjuje 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. To sprječava početne korake i pomake da odbace posljednje mjerenje. To bi uvijek trebalo biti mnogo manje od WEIGHT_SAMPLES.
  • WEIGHT_HISTORY postavlja broj mjerenja poduzetih prije slanja dodatnog ažuriranja. U povijest se ubrajaju samo mjerenja napravljena dva sata ili više.

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

  • Na početku skripte od vas će se tražiti da uparite Wii Balance Board s Raspberry Pi. Pomoću poluge koju ste zajedno hakirali u odjeljku 2. dio: Podešavanje hardvera pritisnite tipku za sinkronizaciju kada se to od vas zatraži.
  • Kad se skripta pokrene, zakoračite na Wii ploču kako biste počeli mjeriti svoju težinu. Nakon 4-5 sekundi, vaša će se težina automatski poslati na vaš račun početnog stanja.
  • Nakon što postavimo 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

Nadzorna ploča
Nadzorna ploča

Idite na svoj račun početnog stanja i kliknite na novu podatkovnu korpu s nazivom koji odgovara parametru BUCKET_NAME (tj. Moja povijest težine). Kliknite na Pločice za pregled nadzorne ploče povijesti težine. Prilikom prvog pregledavanja 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 vrsta 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 osobnosti i konteksta.

Korak 9: SMS

SMS
SMS

Izradimo SMS upozorenje kad god vaga mjeri težinu. Provjerite je li vaša podatkovna kanta povijesti povijesti učitana.

  1. Kliknite na postavke spremnika (pod njegovim imenom) u prozoru podatkovne korpe.
  2. Kliknite karticu Okidači.
  3. Odaberite tok podataka za pokretanje. S padajućeg popisa možete odabrati postojeće streamove nakon učitavanja podatkovne korpe ili možete ručno upisati naziv/ključ streama. Na gornjem primjeru snimke zaslona odabrano je "Ažuriranje".
  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 mjerne 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 gumb '+' za dodavanje uvjeta okidača.
  7. Unesite svoju adresu e -pošte ili telefonski broj u polje "Kontakti za obavijest".
  8. Pritisnite gumb '+' za dodavanje podataka o kontaktu.
  9. Unesite bilo koji kontrolni kôd ako dodate novi telefonski broj za dovršetak postavljanja.
  10. Pritisnite gumb Gotovo pri dnu za povratak na glavni zaslon. 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 strujati podatke iz drugih izvora na istu nadzornu ploču povijesti težine (info) kako biste stvorili svoju vlastitu nadzornu ploču o zdravlju.
  • Šale u funkcijama messageWeighFirst, messageWeighLess, messageWeighMore i messageWeighSame možete promijeniti 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č inspirira da stvorite nešto nevjerojatno.

Preporučeni: