Përmbajtje:

Shkallë Raspberry Pi Smart: 10 hapa (me fotografi)
Shkallë Raspberry Pi Smart: 10 hapa (me fotografi)

Video: Shkallë Raspberry Pi Smart: 10 hapa (me fotografi)

Video: Shkallë Raspberry Pi Smart: 10 hapa (me fotografi)
Video: Топ 5 скрытых полезных программ Windows 10 2024, Korrik
Anonim
Image
Image

A jeni të lodhur duke shikuar atë peshore të mërzitshme, të vjetër dhe të keqe të banjës çdo mëngjes? Ai që ju thoni shpesh "Unë ju urrej" si çdo herë që e shkelni atë. Pse askush nuk ka bërë një peshore që është në të vërtetë argëtuese ose motivuese për t'u përdorur? Timeshtë koha për të krijuar një shkallë që nuk është vetëm e zgjuar, por ka pak më shumë personalitet për të ndriçuar ditën tuaj. Ne do të ndërtojmë shkallën tonë të banjës për përcjelljen e peshës, mesazhet me tekst që vjen me një sens humori të integruar.

Ky është një projekt argëtues, i lehtë që kombinon një tabelë të bilancit Wii, një Raspberry Pi dhe një platformë analitike të të dhënave në internet për të krijuar një shkallë të lidhur me ueb të kontrolluar nga një skenar Python që mund të hakoni.

Niveli i projektit: Fillestar Koha e përafërt për të përfunduar: 20 minuta Faktori argëtues: I pa matshëm

Në këtë tutorial hap pas hapi, ju do të:

  • lidhni një tabelë të ekuilibrit Wii me një Raspberry Pi përmes bluetooth -it, drejtoni një skript Python që mat peshën tuaj kur shkelni në tabelën e bilancit
  • përdorni një Raspberry Pi për të transmetuar peshën tuaj në një shërbim cloud (gjendja fillestare)
  • vendosni një njoftim SMS çdo herë që peshoni veten
  • krijoni një pult të përcjelljes së peshës ku mund të përdorni në shfletuesin tuaj të internetit

Hapi 1: Pajisjet

Shkalla e Bordit të Bilancit Wii
Shkalla e Bordit të Bilancit Wii

Këtu është një listë e të gjitha pajisjeve që do të përdorim në këtë tutorial me lidhje ku mund të blini secilin artikull.

  • Raspberry Pi 3 me një kartë SD dhe Furnizim me energji (https://init.st/psuufmj)
  • Bordi i Bilancit Wii (https://init.st/qg4ynjl)
  • Paketa e baterisë e rimbushshme Wii Fit (https://init.st/iyypz2i)
  • Mbulesa të ndjerë 3/8 "(https://init.st/8gywmjj)
  • Laps (nuk po ju jap një lidhje se ku të blini një laps … ju duhet të zotëroni një nga këto)

Shënim: Nëse keni një Raspberry Pi 1 ose 2, do t'ju duhet një përshtatës bluetooth (https://init.st/7y3bcoe)

Hapi 2: Shkalla e Bordit të Bilancit Wii

Pse një Bord Bilanci Wii? Rezulton se është një shkallë vërtet e bukur, e qëndrueshme që ka lidhje bluetooth. Kjo do të na lejojë ta lidhim atë me një kompjuter me një bord (Raspberry Pi) për të lexuar peshën tuaj në një shkrim Python dhe për t'i dërguar ato matje në një shërbim të të dhënave në internet për të bërë gjëra interesante. Plus, ekziston një shans i mirë që ju ose dikush që njihni tashmë ka një që thjesht po mbledh pluhur.

Do të na duhet të bëjmë disa modifikime të thjeshta në Bordin tonë të Bilancit Wii për ta bërë vërtet këtë projekt praktik dhe të përshtatshëm.

Hapi 3: Konfigurimi i Bluetooth

Raspberry Pi 3 vjen me bluetooth të integruar, gjithçka që na nevojitet për të komunikuar me Bordin e Bilancit Wii. Nëse keni Raspberry Pi 1 ose 2, do të na duhet të përdorim një nga portat tona USB për të lidhur një përshtatës.

Ndizni Pi -në tuaj (po supozoj se keni instaluar tashmë Raspbian dhe ai fillon) dhe shkoni te dritarja juaj e terminalit Raspberry Pi. Ju mund të shihni adresën e dongle tuaj bluetooth me komandën "hcitool dev":

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

Instaloni modulet bluetooth që do të përdorim në skriptet tona Python:

$ sudo apt-get install python-bluetooth

Pasi të përfundojë instalimi, ne jemi gati të lidhemi dhe të komunikojmë me Bordin e Bilancit Wii. Ne nuk do ta çiftojmë përgjithmonë Bordin tonë me Pi -në tonë siç bëjmë me shumicën e pajisjeve tona bluetooth. Bordi i Bilancit Wii nuk ishte menduar kurrë të lidhej me ndonjë gjë tjetër përveç një Wii, dhe çiftimi i përhershëm rezultoi të ishte një sfidë konfuze. Çiftimi do të ndodhë sa herë që ne ekzekutojmë shkrimin tonë Python.

Hapi 4: Leximi i shkallës

Isshtë koha për të lidhur Wii Balance Board me Raspberry Pi tonë. Ne do ta bëjmë këtë duke modifikuar një version të shkrimit të Gr8W8Upd8M8.py të Stavros Korokithakis (https://github.com/skorokithakis/gr8w8upd8m8). Shkrimi python që do të përdorim për këtë hap gjendet këtu. Ju mund të kopjoni përmbajtjen e këtij skedari në një skedar që krijoni në Raspberry Pi tuaj ose mund të klononi të gjithë skedarët python që do të përdorim për të gjithë këtë projekt. Le të bëjmë këtë të fundit. Shkruani komandat e mëposhtme në një terminal në Raspberry Pi tuaj:

$ cd ~ $ git klon $ git klon https: github.com/initialstate/smart-scale.git klonimi në 'shkallë të zgjuar' … telekomandë: Numërimi i objekteve: 14, të përfunduara. telekomandë: Kompresimi i objekteve: 100% (12/12), i kryer. telekomandë: Gjithsej 14 (delta 1), e ripërdorur 8 (delta 0), paketë e ripërdorur 0 Zhbllokimi i objekteve: 100% (14/14), i kryer. Kontrolli i lidhshmërisë … u krye.

klonimi në 'shkallë të zgjuar' … telekomandë: Numërimi i objekteve: 14, i kryer. telekomandë: Kompresimi i objekteve: 100% (12/12), i kryer. telekomandë: Gjithsej 14 (delta 1), ripërdorur 8 (delta 0), paketë të ripërdorura 0 Zhbllokimi i objekteve: 100% (14/14), i kryer. Kontrolli i lidhshmërisë … u krye.

Ju duhet të shihni dy skedarë python në drejtorinë e re të shkallës inteligjente - smartscale.py dhe wiiboard_test.py.

$ cd me shkallë të zgjuar $ lsREADME.md smartscale.py wiiboard_test.py

Drejtoni skriptin wiiboard_test.py për të testuar komunikimin dhe për të marrë leximet e peshës nga Bordi i Bilancit Wii:

$ sudo python wiiboard_test.py

Do të shihni përgjigjen e mëposhtme:

Zbulimi i tabelës… Shtypni butonin e kuq të sinkronizimit në tabelë tani

Hiqeni kapakun e baterisë nën Tabelën për të gjetur butonin e kuq të sinkronizimit. Sigurohuni që të shtypni butonin brenda disa sekondave pas ekzekutimit të skriptit ose do të ndodhë një afat kohor. Pasi të keni sukses, do të shihni diçka të ngjashme me sa vijon:

U gjet Wiiboard në adresën 00: 23: CC: 2E: E1: 44 Po përpiqesh të lidhesh… Lidhur me Wiiboard në adresën 00: 23: CC: 2E: E1: 44 Wiiboard e lidhur KRYESORE te të dhënat shkruaj marrë 84,9185297 lbs84,8826412 lbs84,9275927 lbs

Skripti wiiboard_test.py po merr numrin e matjeve të peshës të specifikuara në rreshtin 10 dhe nxjerr mesataren:

# --------- Cilësimet e përdoruesit --------- PESHA_SAMPLE = 500# ------------------------- --------

Mund të luani me këtë numër duke ndryshuar vlerën dhe duke ri-ekzekutuar skriptin për të parë ndryshimin në peshën e matur dhe kohën e kërkuar për secilën matje. Peshoni veten, peshoni qenin tuaj, peshoni çfarëdo dhe shikoni nëse matjet kanë kuptim. Për të ndaluar shkrimin, shtypni CTRL+C.

Tani e keni konvertuar me sukses Bordin tuaj të Bilancit Wii në një shkallë të lidhur me Raspberry Pi. Tani, le ta bëjmë atë një shkallë të ftohtë.

Hapi 5: Korrigjimet e harduerit

Korrigjimet e harduerit
Korrigjimet e harduerit

Nintendo supozoi se ju gjithmonë do të furnizonit Wii Balance Board tuaj me katër bateri AA dhe nuk përfshiu asnjë përshtatës AC. Të kesh vetëm energji baterie do të ishte e papërshtatshme sepse nuk mund ta çiftojmë përgjithmonë Bordin tonë Wii me Pi -në tonë nëpërmjet bluetooth -it. Ne duhet ta sinkronizojmë, pastaj ta lejojmë që të mbetet e sinkronizuar pa i shkarkuar bateritë, në mënyrë që thjesht të shkelim në peshore dhe të peshojmë. Për fat të mirë, ka disa përshtatës të palëve të treta të bëra për Bordin e Bilancit Wii që mund t'i përdorim për të siguruar energji të vazhdueshme nga një prizë muri. Zëvendësoni bateritë me një paketë baterie dhe futeni përshtatësin AC në një prizë muri.

Duhet të çiftojmë Wii Balance Board dhe Raspberry Pi çdo herë që ekzekutojmë skriptin tonë Python paraqet një shqetësim tjetër për shkak të vendndodhjes së butonit të sinkronizimit. Butoni i sinkronizimit është në fund të Bordit Wii, që do të thotë se do të na duhet ta rrokullisim çdo herë që kemi nevojë për sinkronizim. Ne mund ta rregullojmë këtë duke bërë një levë të vogël duke përdorur një laps dhe tre jastëkë të ndjerë 3/8 "siç tregohet më sipër. Paketa e baterisë së rimbushshme ekspozon butonin e sinkronizimit në sipërfaqen e poshtme të tabelës. Ngjiteni një laps (ose diçka të ngjashme) që shtrihet nga butoni i sinkronizimit në pjesën e përparme të tabelës. Vendosni tre jastëkë të ndjerë 3/8 "(ose diçka të ngjashme) në qendër të lapsit për të krijuar një strumbullar të palëvizshëm. Kini kujdes që të mos e ekspozoni shumë lapsin nga Tabela pasi nuk doni që dikush ta nxjerrë atë rastësisht. Kthejeni Bordin dhe mund të shtypni butonin e sinkronizimit thjesht duke shtypur poshtë levën. Pak hack, por efektive.

Në varësi të mënyrës se si e ruani bordin tuaj Wii, mund të dëshironi të hiqni jastëkët e kapjes së gomës nga këmbët e Bordit (jastëkët janë thjesht afishe që mund t'i hiqni). Mbulesat e ndjerë 3/8 mund të vendosen në këmbët e Bordit për rrëshqitje të lehtë.

Hapi 6: Gjendja fillestare

Gjendja fillestare
Gjendja fillestare

Ne duam të transmetojmë peshën/të dhënat tona në një shërbim cloud dhe ta bëjmë atë shërbim t'i kthejë të dhënat tona në një pult të bukur, të cilit mund t'i qasemi nga laptopi ose pajisja jonë celulare. Të dhënat tona kanë nevojë për një destinacion. Ne do të përdorim gjendjen fillestare si atë destinacion.

Hapi 1: Regjistrohuni për llogarinë fillestare të shtetit Shkoni te https://iot.app.initialstate.com dhe krijoni një llogari të re.

Hapi 2: Instaloni ISStreamerInstaloni modulin Python të gjendjes fillestare në Pi tuaj: Në një linjë komande (mos harroni të SSH së pari në Pi tuaj), ekzekutoni komandën e mëposhtme:

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

Hapi 3: Bëni disa Automagic Pas Hapit 2 do të shihni diçka të ngjashme me daljen e mëposhtme në ekran:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword: Fillimi i instalimit të lehtë të ISStreamer Python! Kjo mund të zgjasë disa minuta për të instaluar, pi pak kafe:) Por mos harroni të ktheheni, do të kem pyetje më vonë!

Gjetur easy_install: setuptools 1.1.6

Gjetur pip: pip 1.5.6 nga /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip version i madh: 1 pip version i vogël: 5 ISStreamer u gjet, përditësohet… Kërkesa tashmë të azhurnuara: ISStreamer në /Library/Python/2.7/sack-packages Pastrimi … A doni të merrni automatikisht një skenar shembull? [y/N]

(dalja mund të jetë e ndryshme dhe të zgjasë më shumë nëse nuk e keni instaluar kurrë më parë modulin e transmetimit Python State Initial State)

Kur ju kërkohet të merrni automatikisht një skenar shembull, shkruani y. Kjo do të krijojë një skript testimi që mund të ekzekutojmë për të siguruar që ne mund të transmetojmë të dhëna në gjendjen fillestare nga Pi -ja jonë. Do t'ju kërkohet:

Ku doni ta ruani shembullin? [parazgjedhje:./is_example.py]:

Ju ose mund të shkruani një rrugë lokale të personalizuar ose të shtypni enter për të pranuar parazgjedhjen. Do t'ju kërkohet emri i përdoruesit dhe fjalëkalimi që sapo krijuat kur regjistruat llogarinë tuaj fillestare të Shtetit. Futni të dyja dhe instalimi do të përfundojë.

Hapi 4: Çelësat e hyrjes

Le të hedhim një vështrim në skenarin shembull të krijuar.

$ nano is_example.py

Në rreshtin 15, do të shihni një rresht që fillon me streamer = Streamer (bucket_…. Kjo rresht krijon një kovë të re të të dhënave të quajtur "Shembulli i Python Stream" dhe shoqërohet me llogarinë tuaj. Kjo shoqatë ndodh për shkak të çelësit të qasjes = "…" parametër në të njëjtën linjë. Ajo seri e gjatë e shkronjave dhe numrave është çelësi i hyrjes në llogarinë tuaj të gjendjes fillestare. Nëse shkoni te llogaria juaj e gjendjes fillestare në shfletuesin tuaj të internetit, klikoni mbi emrin e përdoruesit në krye të djathtë, pastaj shkoni te "Cilësimet e mia", do të gjeni të njëjtin çelës aksesi në fund të faqes nën "Transmetimi i çelësave të hyrjes".

Sa herë që krijoni një rrjedhë të të dhënave, ky çelës aksesi do ta drejtojë atë rrjedhë të të dhënave në llogarinë tuaj (kështu që mos e ndani çelësin tuaj me askënd).

Hapi 5: Drejtoni Shembullin

Drejtoni skriptin e provës për t'u siguruar që mund të krijojmë një rrjedhë të të dhënave në llogarinë tuaj të gjendjes fillestare. Drejtoni sa vijon:

$ python is_example.py

Hapi 6: Fitimi

Kthehuni te llogaria juaj e gjendjes fillestare në shfletuesin tuaj të internetit. Një kovë e re e të dhënave e quajtur "Shembulli i Python Stream" duhet të jetë shfaqur në të majtë në raftin tuaj të regjistrit (mund t'ju duhet të rifreskoni faqen). Ju mund t'i shihni të dhënat në Pllaka për t'i parë të njëjtat të dhëna në formën e pultit.

Hapi 7: Skenari përfundimtar

Duke supozuar se keni drejtuar komandën "git clone https://github.com/InitialState/smart-scale.git" në Pjesën 2, skenari përfundimtar që bashkon gjithçka quhet smartscale.py në drejtorinë tuaj scale/smart-scale. (https://github.com/InitialState/smart-scale/blob/master/smartscale.py)

Disa cilësime duhet të vendosen në skenar para se të mund ta ekzekutoni. Hapni smartscale.py në redaktuesin tuaj të preferuar të tekstit, siç është nano.

$ cd ~ $ cd në shkallë të zgjuar $ nano smartscale.py

Pranë krye të këtij skedari, ekziston një seksion i Cilësimeve të Përdoruesit.

# --------- Cilësimet e përdoruesit --------- BUCKET_NAME = ": mollë: Historia ime e peshës" BUCKET_KEY = "weight11" ACCESS_KEY = "VENDOSni KEYTY KRYESOR TC KUJDESIT TATE SHTETIT Fillestar KETU" METRIC_UNITS = FalseWEIGHT_SAMPLES = 500THROWAWAY_SAMPLES = 100WEIGHT_HISTORY = 7# -------------------------------------

  • BUCKET_NAME vendos emrin e kovës së të dhënave të gjendjes fillestare në të cilën pesha/të dhënat tuaja do të transmetohen. Kjo mund të vendoset këtu dhe të ndryshohet më vonë në UI.
  • BUCKET_KEY është identifikuesi unik i kovës që specifikon se ku do të derdhen të dhënat tuaja. Nëse dëshironi të krijoni një kovë/pult të ndryshëm, përdorni një identifikues tjetër këtu (*shënim, nëse arkivoni një kovë, nuk mund ta ripërdorni çelësin e tij në një kovë të re).
  • ACCESS_KEY është çelësi i llogarisë suaj të gjendjes fillestare. Nëse nuk e vendosni ACCESS_KEY në këtë fushë, të dhënat tuaja nuk do të shfaqen në llogarinë tuaj.
  • METRIC_UNITS ju lejon të specifikoni peshën tuaj në kg nëse vendoseni në Vërtetë ose lb nëse vendoseni në Fals.
  • WEIGHT_SAMPLES specifikon sa matje janë marrë dhe mesatare së bashku për të marrë peshën tuaj aktuale. 500 matje zgjasin rreth 4-5 sekonda dhe japin rezultate mjaft të sakta.
  • THROWAWAY_SAMPLES specifikon numrin e mostrave që hidhen kur hapin e parë në tabelë. Kjo parandalon hapat fillestarë dhe zhvendosjen nga hedhja e matjes përfundimtare. Kjo gjithmonë duhet të jetë shumë më pak se WEIGHT_SAMPLES.
  • WEIGHT_HISTORY cakton numrin e matjeve të marra para se të dërgohet një përditësim shtesë. Vetëm matjet e marra dy orë ose më shumë në distancë llogariten për historinë.

Pasi të keni specifikuar secilin parametër në këtë seksion dhe të ruani ndryshimet tuaja, jeni gati për të ekzekutuar skriptin përfundimtar. Para se të ekzekutojmë skenarin, le të kalojmë nëpër atë që do të bëjë.

  • Në fillim të skenarit, do t'ju kërkohet të çiftoni Bordin tuaj të Bilancit Wii me Raspberry Pi tuaj. Përdorni levën që keni goditur së bashku në pjesën Pjesa 2: Ndryshimet e pajisjeve për të shtypur butonin e sinkronizimit kur t'ju kërkohet.
  • Pasi skenari është duke u ekzekutuar, shkelni në Bordin Wii për të filluar matjen e peshës tuaj. Pas 4-5 sekondash, pesha juaj do të dërgohet automatikisht në llogarinë tuaj të gjendjes fillestare.
  • Pasi të vendosim njoftimet SMS (në disa hapa), do të merrni një mesazh me tekst menjëherë pas matjes tuaj.

Drejtoni skenarin për të filluar magjinë.

$ sudo python smartscale.py

Hapi 8: Paneli i kontrollit

Paneli i kontrollit
Paneli i kontrollit

Shkoni te llogaria juaj e gjendjes fillestare dhe klikoni në kovën e re të të dhënave me emrin që korrespondon me parametrin BUCKET_NAME (dmth. Historia ime e peshës). Klikoni në Pllaka për të parë panelin tuaj të historisë së peshës. Ju duhet të shihni tre pllaka herën e parë që shihni të dhënat tuaja në Pllaka - Përditësimi, Data e Pesës dhe Pesha (lb). Ju mund të personalizoni pultin tuaj duke ndryshuar madhësinë dhe lëvizjen e pllakave, si dhe duke ndryshuar llojet e pamjeve dhe madje duke shtuar pllaka. Ky pult ju jep mundësinë të shihni historinë tuaj të peshës me një shikim. Friendlyshtë miqësore me celularin dhe madje mund ta ndani me njerëzit e tjerë.

Ju mund të shtoni një imazh të sfondit në pultin tuaj për t'i dhënë të dhënave tuaja më shumë personalitet dhe kontekst.

Hapi 9: SMS

SMS
SMS

Le të krijojmë një alarm SMS sa herë që shkalla merr një matje peshe. Sigurohuni që kova e të dhënave të historisë tuaj të peshës është e ngarkuar.

  1. Klikoni në cilësimet e kovës (nën emrin e saj) në dritaren e kovës së të dhënave.
  2. Klikoni në skedën Triggers.
  3. Zgjidhni rrjedhën e të dhënave për të aktivizuar. Ju mund të përdorni listën zbritëse për të zgjedhur nga transmetimet ekzistuese pasi të jetë ngarkuar një kovë me të dhëna ose mund të shkruani emrin/çelësin e transmetimit me dorë. Në shembullin e ekranit të mësipërm, zgjidhet "Përditëso".
  4. Zgjidhni operatorin me kusht, në këtë rast 'ndeshje'.
  5. Zgjidhni vlerën Trigger që do të shkaktojë një veprim (shtypni manualisht vlerën e dëshiruar). Shkruani në lb nëse nuk përdorni njësi metrike ose shkruani në kg nëse përdorni njësi metrike. Sa herë që rryma "Përditëso" përmban "lb" (ose "kg"), do të marrësh një njoftim mesazhi me tekst.
  6. Klikoni në butonin '+' për të shtuar kushtin Trigger.
  7. Vendosni adresën tuaj të postës elektronike ose numrin e telefonit në fushën "Kontaktet për t'u njoftuar".
  8. Klikoni butonin '+' për të shtuar informacionin e kontaktit.
  9. Futni çdo kod verifikimi nëse shtoni një numër të ri telefoni për të përfunduar konfigurimin.
  10. Klikoni butonin Done në fund për t'u kthyer në ekranin kryesor. Shkaktari juaj tani është aktiv dhe do të ndizet kur të plotësohet kushti.

Sapo të përfundojë konfigurimi, do të merrni një SMS çdo herë që peshoni veten që përmban peshën tuaj, sa pesha juaj ka ndryshuar që nga matja e fundit dhe një shaka / ofendim / kompliment të rastësishëm.

Hapi 10: Përfundimi

Ka mundësi të pakufizuara për ju për të ndërtuar mbi atë që keni krijuar tani. Këtu janë disa ide për këtë projekt:

  • Ju mund të transmetoni të dhëna nga burime të tjera në të njëjtën pult të historisë së peshës (informacion) për të krijuar pultin tuaj personal të shëndetit.
  • Ju mund t'i ndryshoni shakatë në mesazhetWeighFirst, messageWeighLess, messageWeighMore, dhe messageWeighSame sipas sensit tuaj të humorit.
  • Ju mund t'i ndryshoni shakatë në mesazhe praktike ose t'i hiqni ato dhe të përdorni kodin e shkallës për të ndjekur peshën e diçkaje më të rëndësishme përveç peshës tuaj trupore.
  • Ju mund të krijoni frigoriferin tuaj birrë/verë të zgjuar duke përdorur të njëjtën qasje. Tashmë ekziston një tutorial i mrekullueshëm i bërë për këtë këtu.

Hiqni dhe më tregoni nëse ky mësim ju frymëzon të krijoni diçka të mahnitshme.

Recommended: