Sadržaj:

Pumpkin Pi Tracker-or-Treat Tracker: 5 koraka
Pumpkin Pi Tracker-or-Treat Tracker: 5 koraka

Video: Pumpkin Pi Tracker-or-Treat Tracker: 5 koraka

Video: Pumpkin Pi Tracker-or-Treat Tracker: 5 koraka
Video: ANTARCTICA 88 WILL FREEZE YOUR HUTS OFF 2024, Studeni
Anonim
Pumpkin Pi Tracker-or-Treat Tracker
Pumpkin Pi Tracker-or-Treat Tracker

Autor elizabethnaSlijedi Više od autora:

Kako izgraditi monitor temperature Raspberry Pi
Kako izgraditi monitor temperature Raspberry Pi
Kako izgraditi monitor temperature Raspberry Pi
Kako izgraditi monitor temperature Raspberry Pi
Prijenos podataka iz Google tablica na nadzornu ploču
Prijenos podataka iz Google tablica na nadzornu ploču
Prijenos podataka iz Google tablica na nadzornu ploču
Prijenos podataka iz Google tablica na nadzornu ploču
Mreža temperaturnih senzora
Mreža temperaturnih senzora
Mreža temperaturnih senzora
Mreža temperaturnih senzora

Tražite brzi projekt Halloween koji je koristan na više načina? Želite li dobro iskoristiti taj Pi Zero WH? Želite li pomoću podataka odrediti koliko će vam slatkiša biti potrebno sljedeće godine?

Pripremite se za izradu Track-or-Tracker-a Trampkin Pi Tracker! Ovaj Pi-in-a-Bundeva, dvostruki ukras i tragač za ljudima, mijenja boju i struji kad se detektira kretanje. Počevši od apsolutne tačke, ovaj vam projekt ne bi trebao oduzeti više od jednog popodneva - baš na vrijeme za Noć vještica!

Pribor

  • Pi Zero WH sa SD karticom
  • PIR senzor pokreta
  • RGB LED
  • Otpornici 220 ohma
  • (3) Linije kravate (Ž/Ž, M/Ž, M/M)
  • Prijenosna baterija
  • Lažna bundeva

Korak 1: Sklapanje hardvera

Sklapanje hardvera
Sklapanje hardvera
Sklapanje hardvera
Sklapanje hardvera
Sklapanje hardvera
Sklapanje hardvera

Nakon što pokrenete svoj Pi, moramo spojiti senzor pokreta i LED diode. Uvjerite se da Pi u ovom trenutku nije spojen na napajanje.

Naš senzor pokreta zahtijeva da ga spojimo na napajanje od 3,3 V, uzemljenje i podatkovni pin. Spojio sam pin osjetnika od 3,3 V na pin 1 Pi, pin osjetnika uzemljenja na pin 6 Pi i pin osjetnika Data na pin 16 Pi. Prva slika prikazuje potpunu vezu za Pi i senzor pokreta.

LED diode su malo složenije od senzora pokreta jer im je potreban otpornik kako bi radile ispravno bez oštećenja njih ili Pi. Koristio sam tri otpornika od 220 ohma, ali otpornici od 220 i 330 ohma obično se koriste sa LED diodama.

Da biste sve povezali, možete učiniti sljedeće:

  • Lemite LED noge na otpornike, a zatim žice uvedite u Pi
  • Upotrijebite ploču za povezivanje i veze za povezivanje svega
  • Upotrijebite kravate i električnu traku za povezivanje svega (kao što sam i ja učinio).

LED diodu ćemo spojiti na pinove 11, 13 i 15. Ovo je ipak malo zeznutije od senzora pokreta, jer noge na LED -u odgovaraju određenoj boji! Duga noga je GND; i, barem na LED -u, noge su postale crvene, GND, plave, zelene. Spojio sam plavo na Pi pin 11, zeleno na Pi pin 13, a crveno na Pi pin 15. Druga slika prikazuje veze konačnog kruga.

Korak 2: Početno stanje

Početno stanje
Početno stanje
Početno stanje
Početno stanje

Naravno da možemo vidjeti kada se LED-om detektira pokret, ali kako ćemo pratiti koliko je trikova ili obrađivača palo da nam ukradu slatkiše?

Prijeći ćemo na nadzornu ploču svaki put kad pokret počne i prestane biti otkriven. Budući da je ovoj nadzornoj ploči pristupačno s bilo kojeg mjesta s internetskom vezom, možemo daljinski nadzirati približava li se netko ulaznim vratima/zdjeli sa slatkišima.

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 ISStreamer

Instalirajte modul početnog stanja Python na svoj Raspberry 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 na ekranu ćete vidjeti nešto slično sljedećem izlazu:

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

Lozinka: Počinje laka instalacija ISStreamer Pythona! 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đeno 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 ISStreamer je pronađen, ažurira se … Zahtev je već ažuriran: ISStreamer u /Library/Python/2.7/site-packages Cleaning… Želite li automatski dobiti primjer skripte? [y/N] Gdje želite spremiti primjer? [zadano:./is_example.py] Molimo odaberite aplikaciju početnog stanja koju koristite: 1. app.initialstate.com 2. [NOVO!] iot.app.initialstate.com Unesite izbor 1 ili 2: Unesite iot.app.initialstate.com korisničko ime: Unesite lozinku iot.app.initialstate.com:

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 strujati podatke u početno stanje. Sljedeći upit će vas upitati gdje želite spremiti datoteku primjera. Možete unijeti prilagođeni lokalni put ili pritisnuti enter da biste prihvatili zadanu lokaciju. Na kraju će vas pitati koju aplikaciju Initial State koristite. Ako ste nedavno stvorili račun, odaberite opciju 2, unesite svoje korisničko ime i lozinku. Nakon toga 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_…. Ovi retci stvaraju novu podatkovnu gomilu pod nazivom „Primjer Python Stream -a“i povezani su s vašim računom. To se povezivanje događa zbog access_key =”…” parametar u tom istom retku. Taj dugi niz slova i brojeva vaš je pristupni ključ računa početnog stanja. Ako u svom web pregledniku otvorite svoj račun početnog stanja, kliknite svoje korisničko ime u gornjem desnom kutu, a zatim idite u "moje postavke", 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). Kliknite na ovu kantu, a zatim kliknite na ikonu Valovi za pregled podataka o testiranju.

Korak 3: Python skripta

Izradite skriptu i otvorite uređivač teksta sa sljedećom naredbom:

nano vistors.py

Kopirajte i proslijedite kôd odavde u uređivač teksta.

Prije nego što pokušamo pokrenuti bilo što, moramo napraviti nekoliko izmjena i pregledati što se događa u našem scenariju.

uvezite RPi. GPIO kao GPIO

od trenutka uvoza u stanje mirovanja iz ISStreamer. Streamer import Streamer # Recite Pi da ćemo koristiti njegov sustav označavanja GPIO.setmode (GPIO. BCM) # Igle koje su D1 i LED spojene na PIN = 23 PLAVA = 17 ZELENA = 27 CRVENA = 22 # Odredite naš pin osjetnika pokreta kao ulazni GPIO.setup (PIN, GPIO. IN) # Navedite naše LED pinove kao izlazni GPIO.setup (CRVENO, GPIO. OUT) GPIO.izlaz (CRVENO, 0) GPIO.setup (ZELENO, GPIO. OUT) GPIO.izlaz (ZELENO, 0) GPIO.postavljanje (PLAVO, GPIO. OUT) GPIO.izlaz (PLAVO, 0)

Redci 1-21 služe za inicijalizaciju. Prvo uvozimo Pi -jevo GPIO sučelje i način spavanja naše skripte. Zatim uvozimo početni streamer stanja koji smo instalirali na prethodnoj stranici.

GPIO.setmode navodi koji sustav numeriranja koristimo za pinove. Umjesto fizičke lokacije, koristimo Pi -jev sustav numeriranja. Kao i na našem dijagramu ranije, igle koje smo odabrali bile su 23, 17, 27 i 22. Zatim smo pin za kretanje postavili kao ulaz, a LED pinove kao izlaz.

# Naziv početne kante stanja (prikazano)

BUCKET_NAME = ": jack_o_lantern: Tracker Track or Treat Tracker" # Početni ključ spremnika stanja (skriven) BUCKET_KEY = "trickortreat" # Početni pristupni ključ stanja ACCESS_KEY = "Your_Access_Key" # Varijable koje osiguravaju da ne strujimo da je bilo ili nije pokret dva puta zaredom # Ovo štedi na poslanim događajima i već ima procesorsku snaguRecordedMotion = False alreadyRecordedNoMotion = False counter = 0 # Pokreni početni niz streamer streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) # LED na žuto GPIO.izlaz (CRVENO, 1) GPIO.izlaz (ZELENO, 1)

Linije 23-41 važne su jer inicijaliziramo streamer početnog stanja i postavljamo LED na žuto. Pristupni ključ početnog stanja stavite na redak 28.

# Petlja neograničeno dugo

while True: # Ako senzor pokreta povuče visoko (detektira kretanje): ako je GPIO.input (PIN) == 1: ispišite "Motion detection" # Ako još nismo streamali: ako već nijeRecordedMotion: counter = counter + 1 # Postavite LED na crveno GPIO.output (CRVENO, 1) GPIO.output (ZELENO, 0) # Stream u početno stanje streamer.log (": ghost: or: chocolate_bar:?", ": chocolate_bar: Time For Treats!") streamer.log (": candy: Hungry Humans?: candy:", counter) streamer.flush () alreadyRecordedMotion = Istina većRecordedNoMotion = False else: # Pauzirajte skriptu za 1 sekundu spavanja (1) else: print "Nema pokreta" # Ako još nismo streamali: ako već nijeRecordedNoMotion: # Postavite LED na žuto GPIO.output (CRVENO, 1) GPIO.output (ZELENO, 1) # Stream to Initial State streamer.log (": ghost: or: chocolate_bar:? ",": no_pedestrians: No One Around ") streamer.flush () alreadyRecordedNoMotion = Istina većRecordedMotion = False else: # Pauzirajte skriptu na 1 sekundu spavanja (1)

Redci 43-77 su meso koda. Ako se detektira pokret, skripta će provjeriti je li "Vrijeme za liječenje!" već je streamano. Ako nije, šalje se u početno stanje, a LED je postavljen na crveno; ako jest, skripta čeka 1 sekundu, a zatim ponovno čita s senzora pokreta. Isto vrijedi i ako se ne otkrije gibanje.

Vrijeme je za testiranje koda! Provjerite jeste li spremili uređenu datoteku s pristupnim ključem dodanim u retku 28, a zatim unesite u terminal:

posjetitelji pythona.py

Trebali biste vidjeti da se LED lampica uključuje i "Nema pokreta otkriveno" početi ispisivati u naredbeni redak. Pokušajte mahnuti rukom preko senzora pokreta - sada biste trebali vidjeti crveno svjetlo i "Motion Motion" početak ispisa!

Sada provjerite da li se naša očitanja prenose u početno stanje.

Korak 4: Nadogradite nadzornu ploču

Nadzorna ploča "trik-ili-liječi"
Nadzorna ploča "trik-ili-liječi"

Prijeđite na početno stanje i provjerite svoju nadzornu ploču! Trebali biste vidjeti kantu pod nazivom "? Trick or Treat Tracker". Mahnite rukom blizu senzora pokreta i gledajte kako se ažurira!

Moja nadzorna ploča sastoji se od 2 pločice sa sažetkom koje prikazuju zadnju vrijednost i histograma broja događaja tako da mogu vidjeti u koje je vrijeme senzor aktiviran.

Evo nekoliko stvari koje treba uzeti u obzir:

  • Vjerojatno želite podijeliti broj "gladnih ljudi" s 2 kako biste uzeli u obzir činjenicu da će ista osoba dva puta proći ispred senzora pokreta - na putu do vaših vrata i na povratku. To možete učiniti s izrazima u stvarnom vremenu koristeći jednadžbu "= math.round (([Hungry Humans?]/2), 0)".
  • Možete testirati koliko je vaš osjetnik pokreta osjetljiv i prema tome ga postaviti na pločnik. Predlažem da ga držite dovoljno daleko od vrata da se ne aktivira kad netko stoji na vratima.
  • Također možete postaviti tekstualna upozorenja koja će vam reći da se netko približava.
  • Odaberite pozadinsku sliku kako biste svojoj nadzornoj ploči dali sablasnu osobnost!

Preporučeni: