Turinys:

„Pumpkin Pi Trick-or-Treat Tracker“: 5 žingsniai
„Pumpkin Pi Trick-or-Treat Tracker“: 5 žingsniai

Video: „Pumpkin Pi Trick-or-Treat Tracker“: 5 žingsniai

Video: „Pumpkin Pi Trick-or-Treat Tracker“: 5 žingsniai
Video: Trick or TRACE-E | Marvel's Spidey and His Amazing Friends | @disneyjunior 2024, Liepa
Anonim
„Moliūgų Pi“gudrybių stebuklas
„Moliūgų Pi“gudrybių stebuklas

Sekite daugiau autoriaus:

Kaip sukurti „Raspberry Pi“temperatūros monitorių
Kaip sukurti „Raspberry Pi“temperatūros monitorių
Kaip sukurti „Raspberry Pi“temperatūros monitorių
Kaip sukurti „Raspberry Pi“temperatūros monitorių
Duomenų srautas iš „Google“skaičiuoklių į informacijos suvestinę
Duomenų srautas iš „Google“skaičiuoklių į informacijos suvestinę
Duomenų srautas iš „Google“skaičiuoklių į informacijos suvestinę
Duomenų srautas iš „Google“skaičiuoklių į informacijos suvestinę
Temperatūros jutiklių tinklas
Temperatūros jutiklių tinklas
Temperatūros jutiklių tinklas
Temperatūros jutiklių tinklas

Ieškote greito Helovino projekto, kuris būtų naudingas daugiau nei vienu būdu? Norite tą „Pi Zero WH“gerai panaudoti? Ar norėtumėte naudoti duomenis, kad nustatytumėte, kiek saldainių jums reikės kitais metais?

Pasiruoškite sukurti „Pumpkin Pi Trick-or-Treat Tracker“! Šis „Pi-in-a-Pumpkin“, kaip dekoracija ir žmonių sekimo priemonė, keičia spalvą ir srautus, kai aptinkamas judesys. Pradedant nuo absoliutaus nulio, šis projektas neturėtų užtrukti ilgiau nei popietę - kaip tik Helovino metu!

Prekės

  • „Pi Zero WH“su SD kortele
  • PIR judesio jutiklis
  • RGB šviesos diodas
  • 220 omų rezistoriai
  • (3) Kaklaraiščių linijos (F/F, M/F, M/M)
  • Nešiojama baterija
  • Netikras moliūgas

1 žingsnis: Aparatūros surinkimas

Techninės įrangos surinkimas
Techninės įrangos surinkimas
Techninės įrangos surinkimas
Techninės įrangos surinkimas
Techninės įrangos surinkimas
Techninės įrangos surinkimas

Paleidę „Pi“, turime prijungti judesio jutiklį ir šviesos diodus. Įsitikinkite, kad šiuo metu „Pi“nėra prijungtas prie elektros tinklo.

Mūsų judesio jutiklis reikalauja, kad jį prijungtume prie 3,3 V maitinimo, įžeminimo ir duomenų kaiščio. Aš prijungiau 3,3 V jutiklio kaištį prie Pi kaiščio 1, įžeminimo jutiklio kaiščio prie Pi 6 kaiščio ir duomenų jutiklio kaiščio prie Pi 16 kaiščio. Pirmajame paveikslėlyje parodyta visa Pi ir judesio jutiklio jungtis.

Šviesos diodai yra šiek tiek sudėtingesni nei judesio jutiklis, nes norint tinkamai veikti nepažeidžiant jų ar „Pi“, jiems reikalingas rezistorius. Aš naudoju tris 220 omų rezistorius, tačiau 220 ir 330 omų rezistoriai paprastai naudojami su šviesos diodais.

Norėdami viską sujungti, galite:

  • Lituokite šviesos diodų kojeles prie rezistorių ir tada įveskite laidus į Pi
  • Norėdami sujungti viską, naudokite duonos lentą ir kaklaraiščio linijas
  • Norėdami sujungti viską, naudokite kaklaraiščių linijas ir elektros juostą (kaip aš).

Mes prijungsime savo LED prie 11, 13 ir 15 kaiščių. Tačiau tai yra šiek tiek sudėtingiau nei judesio jutiklis, nes šviesos diodo kojos atitinka tam tikrą spalvą! Ilga koja yra GND; ir, bent jau mano LED, kojos tapo raudonos, GND, mėlynos, žalios. Aš prijungiau mėlyną prie Pi kaiščio 11, žalią prie Pi kaiščio 13, o raudoną prie Pi kaiščio 15. Antrame paveikslėlyje parodytos galutinės grandinės jungtys.

2 žingsnis: pradinė būsena

Pradinė būsena
Pradinė būsena
Pradinė būsena
Pradinė būsena

Žinoma, mes galime pamatyti, kada judesys aptinkamas naudojant šviesos diodą, bet kaip mes stebėsime, kiek gudrybių nukrito pavogti mūsų saldainių?

Mes pradėsime transliuoti srautą į prietaisų skydelį kiekvieną kartą, kai judesys prasidės ir nustoja būti aptiktas. Kadangi šis prietaisų skydelis pasiekiamas iš bet kur, turint interneto ryšį, galime nuotoliniu būdu stebėti, ar kas nors artėja prie priekinių durų/saldainių dubenėlio.

1 veiksmas: užsiregistruokite pradinei būsenos paskyrai Eikite į https://iot.app.initialstate.com ir sukurkite naują paskyrą.

2 veiksmas: įdiekite „ISStreamer“

Įdiekite pradinės būsenos „Python“modulį į „Raspberry Pi“. Komandų eilutėje (nepamirškite SSH į savo Pi pirmiausia) paleiskite šią komandą:

$ cd/home/pi/

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

3 žingsnis: padarykite „Automagic“

Po 2 veiksmo ekrane pamatysite kažką panašaus į šį išvestį:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bash

Slaptažodis: „ISStreamer Python“paprastas diegimas nuo pat pradžių! Tai gali užtrukti kelias minutes, kol bus įdiegta, išgerkite kavos:) Bet nepamirškite sugrįžti, vėliau turėsiu klausimų! Rasta easy_install: setuptools 1.1.6 Rasta pip: pip 1.5.6 iš /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip pagrindinė versija: 1 pip minor versija: 5 ISStreamer rastas, atnaujinamas … Reikalavimas jau atnaujintas: ISStreamer /Library/Python/2.7/site-packages Valymas … Ar norite automatiškai gauti scenarijaus pavyzdį? [y/N] Kur norite išsaugoti pavyzdį? [numatytasis:./is_example.py] Pasirinkite, kurią pradinės būsenos programą naudojate: 1. app.initialstate.com 2. [NAUJIENA!].initialstate.com vartotojo vardas: įveskite iot.app.initialstate.com slaptažodį:

Kai būsite paraginti automatiškai gauti scenarijaus pavyzdį, įveskite y. Taip bus sukurtas bandomasis scenarijus, kurį galime paleisti, kad užtikrintume, jog galime perduoti duomenis į pradinę būseną. Kitame raginime bus klausiama, kur norite išsaugoti pavyzdinį failą. Galite įvesti pasirinktinį vietinį kelią arba paspausti Enter, kad patvirtintumėte numatytąją vietą. Galiausiai jūsų paklaus, kurią pradinės būsenos programą naudojate. Jei neseniai sukūrėte paskyrą, pasirinkite 2 parinktį, įveskite savo vartotojo vardą ir slaptažodį. Po to diegimas bus baigtas.

4 veiksmas: prieigos raktai

Pažvelkime į sukurto scenarijaus pavyzdį. $ nano is_example.py 15 eilutėje pamatysite eilutę, prasidedančią streamer = Streamer (bucket_…. Šios eilutės sukuria naują duomenų grupę pavadinimu „Python Stream Example“ir yra susieta su jūsų paskyra. Šis susiejimas įvyksta dėl access_key =”…” parametras toje pačioje eilutėje. Ši ilga raidžių ir skaičių serija yra jūsų pradinės būsenos paskyros prieigos raktas. Jei žiniatinklio naršyklėje einate į pradinės būsenos paskyrą, viršuje dešinėje spustelėkite savo vartotojo vardą, tada eikite „Mano nustatymai“, tą patį prieigos raktą rasite puslapio apačioje skiltyje „Srautinio perdavimo prieigos raktai“.

Kiekvieną kartą, kai sukuriate duomenų srautą, tas prieigos raktas nukreipia tą duomenų srautą į jūsų paskyrą (todėl nebendrinkite rakto su niekuo).

5 veiksmas: paleiskite pavyzdį

Paleiskite bandomąjį scenarijų, kad įsitikintumėte, jog galime sukurti duomenų srautą į jūsų pradinės būsenos paskyrą. Vykdykite šiuos veiksmus:

$ python is_example.py

6 žingsnis: pelnas

Grįžkite į pradinės būsenos paskyrą žiniatinklio naršyklėje. Kairėje žurnalo lentynoje turėtų būti rodomas naujas duomenų rinkinys, pavadintas „Python Stream Example“(gali tekti atnaujinti puslapį). Spustelėkite šį segmentą, tada spustelėkite bangų piktogramą, kad pamatytumėte bandymo duomenis.

3 žingsnis: „Python“scenarijus

Sukurkite scenarijų ir atidarykite teksto rengyklę naudodami šią komandą:

nano vistors.py

Nukopijuokite ir perkelkite kodą iš čia į teksto rengyklę.

Prieš bandydami ką nors paleisti, turime atlikti keletą pakeitimų ir peržiūrėti, kas vyksta mūsų scenarijuje.

importuoti RPi. GPIO kaip GPIO

nuo laiko importuoti miego režimą iš „ISStreamer“. „Streamer“importuoja „Streamer“= 22 # Nurodykite mūsų judesio jutiklio kaištį kaip įvestį GPIO.setup (PIN, GPIO. IN) # Nurodykite mūsų LED kaiščius kaip išvestį GPIO.setup (RED, GPIO. OUT) GPIO.output (RED, 0) GPIO.setup (GREEN, GPIO. OUT) GPIO. išvestis (GREEN, 0) GPIO.setup (BLUE, GPIO. OUT) GPIO. output (BLUE, 0)

1-21 eilutės skirtos inicijavimui. Pirmiausia importuojame „Pi“GPIO sąsają ir būdą, kaip užmigdyti scenarijų. Tada importuojame pradinės būsenos srautizatorių, kurį įdiegėme ankstesniame puslapyje.

GPIO.setmode nurodo, kokią numeravimo sistemą naudojame kaiščiams. Vietoj fizinės vietos naudojame „Pi“numeravimo sistemą. Kaip ir mūsų diagramoje anksčiau, pasirinkome kaiščius 23, 17, 27 ir 22. Tada mes nustatome judesio kaištį kaip įvestį ir LED kaiščius kaip išvestį.

# Pradinės būsenos segmento pavadinimas (rodomas)

BUCKET_NAME = ": jack_o_lantern: Trick or Treat Tracker" # Pradinės būsenos segmento raktas (paslėptas) BUCKET_KEY = "trickortreat" # Pradinės būsenos prieigos raktas ACCESS_KEY = "Your_Access_Key" # Kintamieji, užtikrinantys, kad mes neperduodame informacijos apie tai, kas buvo ar nebuvo judesys du kartus iš eilės # Taip sutaupoma siunčiamų įvykių ir apdorojimo galios šviesos diodas į geltoną GPIO išvestį (RED, 1) GPIO. output (GREEN, 1)

23-41 eilutės yra svarbios, nes inicijuojame pradinės būsenos transliaciją ir nustatome geltoną šviesos diodą. Įveskite pradinės būsenos prieigos raktą 28 eilutėje.

# Kartoti neribotą laiką

Nors tiesa: # Jei judesio jutiklis traukia aukštai (aptinka judesį): jei GPIO.input (PIN) == 1: spausdinti „Aptiktas judesys“# Jei dar nespėjome transliuoti srauto: jei ne dar Nustatykite šviesos diodą į raudoną GPIO.output (RED, 1) GPIO.output (GREEN, 0) # Stream to Initial State streamer.log (": ghost: or: chocolate_bar:?", ": chocolate_bar: Time For Treats!") streamer.log (": candy: Hungry Humans?: candy:", counter) streamer.flush () jauRecordedMotion = Tiesa jauRecordedNoMotion = False else: # Pristabdykite scenarijų 1 sekundei miego (1) else: print "Judesio neaptikta" # Jei dar nesame transliavę: jei dar neRecordedNoMotion: # Nustatykite šviesos diodą į geltoną GPIO.output (RED, 1) GPIO.putput (GREEN, 1) # Stream to Initial State streamer.log (": ghost: or: chocolate_bar:? ",": no_pedestrians: No One Around ") streamer.flush () jauRecordedNoMotion = Tiesa jauRecordedMotion = Netiesa: # Pristabdykite scenarijų 1 sekundei miegoti (1)

43-77 eilutės yra kodo mėsa. Jei aptinkamas judesys, scenarijus patikrins, ar „Laikas skanėstams!“jau buvo transliuojamas. Jei ne, jis siunčiamas į pradinę būseną, o šviesos diodas yra raudonas; jei yra, scenarijus laukia 1 sekundę ir tada vėl skaito iš judesio jutiklio. Tas pats pasakytina ir apie judesio neaptikimą.

Atėjo laikas išbandyti kodą! Įsitikinkite, kad išsaugojote redaguotą failą ir pridėjote prieigos raktą 28 eilutėje, tada įveskite terminalą:

python lankytojai.py

Turėtumėte pamatyti, kaip užsidega šviesos diodas, o komandų eilutėje pradeda spausdinti pranešimas „Judesys neaptiktas“. Pabandykite mostelėti ranka virš judesio jutiklio - dabar turėtumėte matyti raudoną lemputę ir pradėti spausdinti „Judėjimo aptikta“!

Dabar patikrinkite, ar mūsų rodmenys perduodami į pradinę būseną.

4 žingsnis: „Apgauti arba gydyti“prietaisų skydelis

Apgaulės arba gydymo prietaisų skydelis
Apgaulės arba gydymo prietaisų skydelis

Eikite į pradinę būseną ir peržiūrėkite savo prietaisų skydelį! Turėtumėte pamatyti kibirą, pavadintą „? Trick or Treat Tracker“. Paspauskite ranką šalia judesio jutiklio ir stebėkite, kaip jis atnaujinamas!

Mano prietaisų skydelį sudaro 2 suvestinės plytelės, kuriose rodoma paskutinė vertė ir įvykių skaičiaus histograma, kad galėčiau pamatyti, kiek kartų jutiklis buvo suaktyvintas.

Štai keletas dalykų, kuriuos reikia apsvarstyti:

  • Tikriausiai norite padalyti „alkanų žmonių“skaičių iš 2, kad paaiškintumėte, jog tas pats asmuo du kartus praeis prieš judesio jutiklį - pakeliui į jūsų duris ir grįždamas. Tai galite padaryti naudodami išraiškas realiuoju laiku, naudodami lygtį „= math.round (([Hungry Humans?]/2), 0)“.
  • Galite patikrinti, koks jautrus jūsų judesio jutiklis, ir atitinkamai padėkite jį ant šaligatvio. Siūlau laikyti jį pakankamai toli nuo durų, kad nesuveiktų, kai kas nors stovi prie durų.
  • Taip pat galite nustatyti teksto įspėjimus, kad pasakytumėte, jog kažkas artėja.
  • Pasirinkite fono paveikslėlį, kad jūsų prietaisų skydelis būtų šiek tiek bauginantis!

Rekomenduojamas: