Kazalo:

Pumpkin Pi Trick-or-Treat Tracker: 5 korakov
Pumpkin Pi Trick-or-Treat Tracker: 5 korakov

Video: Pumpkin Pi Trick-or-Treat Tracker: 5 korakov

Video: Pumpkin Pi Trick-or-Treat Tracker: 5 korakov
Video: Однажды в Одессе — ЖИЗНЬ И ПРИКЛЮЧЕНИЯ МИШКИ ЯПОНЧИКА. ДРАМА НА РЕАЛЬНЫХ СОБЫТИЯХ! + ENGLISH SUB 2024, Julij
Anonim
Pumpkin Pi Tracker-or-Tracker
Pumpkin Pi Tracker-or-Tracker

Avtor elizabethnaSledite še avtorja:

Kako sestaviti monitor temperature Raspberry Pi
Kako sestaviti monitor temperature Raspberry Pi
Kako sestaviti monitor temperature Raspberry Pi
Kako sestaviti monitor temperature Raspberry Pi
Pretakajte podatke iz Google Preglednic na nadzorno ploščo
Pretakajte podatke iz Google Preglednic na nadzorno ploščo
Pretakajte podatke iz Google Preglednic na nadzorno ploščo
Pretakajte podatke iz Google Preglednic na nadzorno ploščo
Mreža temperaturnih senzorjev
Mreža temperaturnih senzorjev
Mreža temperaturnih senzorjev
Mreža temperaturnih senzorjev

Iščete hiter projekt za noč čarovnic, ki bi bil uporaben na več načinov? Želite dobro uporabiti to Pi Zero WH? Ali želite uporabiti podatke, da ugotovite, koliko sladkarij boste potrebovali za naslednje leto?

Pripravite se na izdelavo sledilca trikov ali tretmajev Pumpkin Pi! Ta Pi-in-a-Pumpkin, ki je tudi dekoracija in sledilnik ljudi, spremeni barvo in teče, ko zazna gibanje. Ta projekt vam od začetka ne bi smel vzeti več kot eno popoldne - pravočasno za noč čarovnic!

Zaloge

  • Pi Zero WH s kartico SD
  • Senzor gibanja PIR
  • RGB LED
  • 220 ohmski upori
  • (3) Kravate (F/Ž, M/Ž, M/M)
  • Prenosna baterija
  • Lažna buča

1. korak: Sestavljanje strojne opreme

Sestavljanje strojne opreme
Sestavljanje strojne opreme
Sestavljanje strojne opreme
Sestavljanje strojne opreme
Sestavljanje strojne opreme
Sestavljanje strojne opreme

Ko zaženete svoj Pi, moramo povezati senzor gibanja in LED. Prepričajte se, da na tem mestu Pi ni priključen na napajanje.

Naš senzor gibanja zahteva, da ga priključimo na napajanje 3,3 V, ozemljitev in podatkovni zatič. Pin 3.3V senzorja sem priključil na pin 1 Pi, pin senzorja ozemljitve na pin 6 Pi in pin senzorja Data na pin 16 Pi. Prva slika prikazuje popolno povezavo Pi in senzorja gibanja.

LED diode so nekoliko bolj zapletene od senzorja gibanja, ker potrebujejo upor za pravilno delovanje, ne da bi poškodovali njih ali Pi. Uporabil sem tri 220 ohmske upore, vendar se 220 in 330 ohmski upori običajno uporabljajo z LED.

Če želite vse povezati, lahko:

  • Spajate LED noge do uporov in nato vodi žice v Pi
  • Če želite povezati vse, uporabite ploščico in kravate
  • Uporabite kravate in električni trak, da povežete vse (tako kot jaz).

LED diodo bomo povezali z nožicami 11, 13 in 15. To je nekoliko bolj zapleteno kot senzor gibanja, ker noge na LED ustrezajo določeni barvi! Dolga noga je GND; in vsaj na moji LED so bile noge rdeče, GND, modre, zelene. Priključil sem modro na Pi pin 11, zeleno na Pi pin 13 in rdečo na Pi pin 15. Druga slika prikazuje končne povezave vezja.

2. korak: Začetno stanje

Začetno stanje
Začetno stanje
Začetno stanje
Začetno stanje

Seveda lahko vidimo, kdaj zaznamo gibanje z LED, toda kako bomo sledili, koliko trikov ali tretmajev je padlo, da bi nam ukradli sladkarije?

Pretakali se bomo na nadzorno ploščo vsakič, ko se gibanje začne in preneha zaznavati. Ker je ta nadzorna plošča dostopna od koder koli z internetno povezavo, lahko na daljavo spremljamo, ali se kdo približuje vhodnim vratom/skledi s sladkarijami.

1. korak: Registrirajte se za začetni državni račun Pojdite na https://iot.app.initialstate.com in ustvarite nov račun.

2. korak: Namestite ISStreamer

Namestite začetni modul Python State na svoj Raspberry Pi. V ukaznem pozivu (ne pozabite najprej vnesti SSH v svoj Pi) zaženite naslednji ukaz:

$ cd/home/pi/

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

3. korak: Naredite nekaj avtomatičnega

Po 2. koraku boste na zaslonu videli nekaj podobnega naslednjemu izhodu:

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

Geslo: Začetek enostavne namestitve ISStreamer Python! To lahko traja nekaj minut za namestitev, popijte kavo:) Ampak ne pozabite se vrniti, pozneje bom imel vprašanja! Najdeno easy_install: setuptools 1.1.6 Najdeno pip: pip 1.5.6 iz /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) glavna različica pipa: 1 pip manjša različica: 5 ISStreamer je bil najden, se posodablja … Zahteva je že posodobljena: ISStreamer v /Library/Python/2.7/site-packages Cleaning… Ali želite samodejno dobiti primer skripta? [y/N] Kam želite shraniti primer? [privzeto:./is_example.py] Izberite aplikacijo začetnega stanja, ki jo uporabljate: 1. app.initialstate.com 2. [NOVO!] iot.app.initialstate.com Vnesite izbiro 1 ali 2: Vnesite iot.app Uporabniško ime.initialstate.com: Vnesite geslo iot.app.initialstate.com:

Ko boste pozvani, da samodejno dobite primer skripta, vnesite y. To bo ustvarilo preskusni skript, ki ga lahko zaženemo, da zagotovimo pretakanje podatkov v začetno stanje. Naslednji poziv vas bo vprašal, kam želite shraniti primer datoteke. Če želite sprejeti privzeto lokacijo, lahko vnesete lokalno pot po meri ali pritisnete enter. Na koncu boste vprašani, katero aplikacijo za začetno stanje uporabljate. Če ste pred kratkim ustvarili račun, izberite možnost 2, vnesite svoje uporabniško ime in geslo. Po tem bo namestitev končana.

4. korak: Dostopni ključi

Poglejmo primer skripta, ki je bil ustvarjen. $ nano is_example.py V 15. vrstici boste videli vrstico, ki se začne s streamer = Streamer (bucket_…. Te vrstice ustvarijo novo podatkovno vedro z imenom »Primer toka Python« in je povezano z vašim računom. To povezovanje se zgodi zaradi access_key =”…” parameter v isti vrstici. Ta dolga vrsta črk in številk je ključ za dostop do računa za začetno stanje. Če v spletnem brskalniku odprete račun za začetno stanje, kliknite svoje uporabniško ime v zgornjem desnem kotu in pojdite v »moje nastavitve« boste našli isti ključ za dostop na dnu strani pod »Ključi za dostop do pretočnega predvajanja«.

Vsakič, ko ustvarite podatkovni tok, bo ta dostopni ključ ta tok podatkov usmeril v vaš račun (zato ključa ne delite z nikomer).

5. korak: Zaženite primer

Zaženite preskusni skript in se prepričajte, da lahko ustvarimo podatkovni tok v vašem računu začetnega stanja. Zaženite naslednje:

$ python is_example.py

6. korak: Dobiček

V spletnem brskalniku se vrnite na račun začetnega stanja. Novo vedro podatkov, imenovano »Primer Python Stream«, bi se moralo prikazati na levi strani v dnevniku (morda boste morali osvežiti stran). Kliknite to vedro in nato ikono Waves za ogled podatkov o preskusu.

3. korak: Python Script

Ustvarite skript in odprite urejevalnik besedil z naslednjim ukazom:

nano vistors.py

Kodo od tu kopirajte in prenesite v urejevalnik besedil.

Preden poskusimo karkoli zagnati, moramo narediti nekaj popravkov in pregledati dogajanje v našem scenariju.

uvozite RPi. GPIO kot GPIO

od časa uvoza v stanje mirovanja iz ISStreamer. Streamer import Streamer # Povejte Pi, da bomo uporabili sistem oštevilčevanja GPIO.setmode (GPIO. BCM) # nožice, ki sta D1 in LED povezani na PIN = 23 MODRA = 17 ZELENA = 27 RDEČA = 22 # Določite naš pin senzorja gibanja kot vhodni GPIO.setup (PIN, GPIO. IN) # Določite naše LED zatiče kot izhodni GPIO.setup (RDEČI, GPIO. OUT) GPIO.output (RDEČI, 0) GPIO.setup (ZELENI, GPIO. OUT) GPIO.output (ZELENO, 0) GPIO.setup (BLUE, GPIO. OUT) GPIO.output (BLUE, 0)

Vrstice 1-21 so za inicializacijo. Najprej uvozimo Pi -jev vmesnik GPIO in način spanja našega skripta. Nato uvozimo začetni pretok stanja, ki smo ga namestili na prejšnjo stran.

GPIO.setmode določa, kateri sistem oštevilčevanja uporabljamo za nožice. Namesto fizične lokacije uporabljamo Pi -jev sistem oštevilčevanja. Kot v našem prejšnjem diagramu so bili izbrani zatiči 23, 17, 27 in 22. Nato nastavimo zatič za gibanje kot vhod in LED zatiči kot izhod.

# Ime vedra začetnega stanja (prikazano)

BUCKET_NAME = ": jack_o_lantern: Trick or Treat Tracker" # Ključ začetnega stanja vedra (skrit) BUCKET_KEY = "trickortreat" # Ključ za dostop do začetnega stanja ACCESS_KEY = "Your_Access_Key" # spremenljivke, ki zagotavljajo, da ne pretakamo, da je bilo ali ni bilo gibanje dvakrat zapored # To prihrani pri poslanih dogodkih in že ima procesorsko močRecordedMotion = False alreadyRecordedNoMotion = False counter = 0 # Inicializirajte začetni niz Streamer streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) LED za rumeno GPIO.izhod (RDEČA, 1) GPIO.izhod (ZELENA, 1)

Vrstice 23-41 so pomembne, ker inicializiramo pretakanje začetnega stanja in nastavimo LED na rumeno. Ključ za dostop do začetnega stanja postavite v vrstico 28.

# Zanka v nedogled

medtem ko je True: # Če senzor gibanja potegne visoko (zazna gibanje): če GPIO.input (PIN) == 1: natisnite "Motion detection" # Če še nismo pretočno predvajali: če še niRecordedMotion: counter = counter + 1 # LED nastavite na rdečo GPIO.output (RDEČA, 1) GPIO.output (ZELENA, 0) # Stream v začetno stanje streamer.log (": ghost: or: chocolate_bar:?", ": chocolate_bar: Time For Treats!") streamer.log (": candy: Hungry Humans?: candy:", counter) streamer.flush () alreadyRecordedMotion = True alreadyRecordedNoMotion = False else: # Začasno ustavite skript za 1 sekundo spanja (1) else: natisnite "Ni gibanja zaznano" # Če še nismo pretočno predvajali: če še niRecordedNoMotion: # LED nastavite na rumeno GPIO.output (RDEČA, 1) GPIO.output (ZELENA, 1) # Stream v začetno stanje streamer.log (": ghost: or: chocolate_bar:? ",": no_pedestrians: No One Around ") streamer.flush () alreadyRecordedNoMotion = Res je žeRecordedMotion = False else: # Začasno ustavite skript za 1 sekundo spanja (1)

Vrstice 43-77 so meso kode. Če zazna gibanje, bo skript preveril, ali je "Čas za zdravljenje!" je že pretočno predvajano. Če ni, se pošlje v začetno stanje in LED je nastavljena na rdečo; če je, skript počaka 1 sekundo in nato znova prebere iz senzorja gibanja. Enako velja, če gibanja ni zaznano.

Čas je, da preizkusite kodo! Poskrbite, da ste shranili urejeno datoteko z dodanim ključem za dostop v 28. vrstici, nato pa vnesite v terminal:

python visitors.py

Videti bi morali, da se LED prižge in "No motion detection" začne tiskati v ukazno vrstico. Poskusite zamahniti z roko nad senzorjem gibanja - zdaj bi morali videti rdečo luč in začeti tiskanje "zaznano gibanje"!

Zdaj pa preverite, ali se naši odčitki pretakajo v začetno stanje.

4. korak: Nadzirajte nadzorno ploščo

Nadzorna plošča Trick-or-Treat
Nadzorna plošča Trick-or-Treat

Pojdite na začetno stanje in preverite svojo armaturno ploščo! Videti bi morali vedro z imenom "? Trick or Treat Tracker". Zamahnite z roko blizu senzorja gibanja in opazujte njegovo posodobitev!

Moja nadzorna plošča je sestavljena iz 2 povzetih ploščic, ki prikazujejo zadnjo vrednost, in histograma števila dogodkov, tako da lahko vidim, kdaj je bil senzor sprožen.

Tukaj je nekaj stvari, ki jih je treba upoštevati:

  • Verjetno želite število "lačnih ljudi" razdeliti na 2, da bi upoštevali dejstvo, da bo ista oseba dvakrat prešla pred senzor gibanja - na poti do vaših vrat in na poti nazaj. To lahko storite z izrazi v realnem času z enačbo "= math.round (([Hungry Humans?]/2), 0)".
  • Lahko preizkusite, kako občutljiv je vaš senzor gibanja, in ga ustrezno postavite na pločnik. Predlagam, da ga držite dovolj daleč od vrat, da se ne sproži, ko nekdo stoji pred vrati.
  • Nastavite lahko tudi besedilna opozorila, ki vam sporočajo, da se nekdo približuje.
  • Izberite sliko za ozadje, ki bo vaši armaturni plošči dala nekaj grozljivega!

5. korak: Buča Pi

Priporočena: