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, Juli
Anonim
Pumpkin Pi Tracker-or-Treat Tracker
Pumpkin Pi Tracker-or-Treat Tracker

Autor elizabethnaSledi Još autora:

Kako napraviti monitor temperature Raspberry Pi
Kako napraviti monitor temperature Raspberry Pi
Kako napraviti monitor temperature Raspberry Pi
Kako napraviti 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 za Noć vještica koji je koristan na više načina? Želite dobro iskoristiti taj Pi Zero WH? Želite li pomoću podataka odrediti koliko će vam bombona biti potrebno sljedeće godine?

Spremite se za izradu Pumpkin Pi Tracker-or-Treat Trackera! Ujedno i ukras i tragač za ljude, ovaj Pi-in-a-Pumpkin mijenja boju i struji kada se detektira kretanje. Počevši od apsolutne tačke, ovaj projekat vam ne bi trebao oduzeti više od jednog popodneva - baš na vrijeme za Noć vještica!

Supplies

  • Pi Zero WH sa SD karticom
  • PIR senzor pokreta
  • RGB LED
  • Otpornici 220 ohma
  • (3) Linije veza (F/Ž, M/Ž, M/M)
  • Prenosna 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 pin za podatke. Priključio sam pin osjetnika od 3,3 V na pin 1 Pi, pin osjetnika uzemljenja na pin 6 Pi i pin osjetnika podataka 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, a da ne oštete 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 vodite žice u Pi
  • Koristite matičnu ploču i veze za povezivanje svega
  • Upotrijebite veze i električnu traku za povezivanje svega (kao što sam i ja učinio).

Spojit ćemo našu LED diodu 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 mom 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 konačne veze kola.

Korak 2: Početno stanje

Početna država
Početna država
Početna država
Početna država

Naravno da možemo vidjeti kada se LED-om detektira pokret, ali kako ćemo pratiti koliko je trikova ili tretmana 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 pratiti da li se neko približava 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 kreirajte novi račun.

Korak 2: Instalirajte ISStreamer

Instalirajte početni državni Python modul 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 ISStreamer Python Laka instalacija! Ovo može potrajati nekoliko minuta da se instalira, popijete kafu:) Ali ne zaboravite da se vratite, ja ću imati pitanja kasnije! Pronađ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 pip minor verzija: 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 da dobijete primer 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 osigurali da možemo prenositi podatke u početno stanje. Sljedeći upit će vas upitati gdje želite spremiti datoteku primjera. Možete unijeti prilagođenu lokalnu putanju 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_…. Ove linije stvaraju novu podatkovnu gomilu pod nazivom „Primjer Python Stream -a“i povezane su s vašim računom. Ova asocijacija se događa zbog access_key =”…” parametar u istoj liniji. 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 na svoje korisničko ime u gornjem desnom kutu, a zatim idite u "moje postavke", isti pristupni ključ ćete pronaći pri dnu stranice pod "Pristupni ključevi za prijenos".

Svaki put kada kreirate tok podataka, taj pristupni ključ će usmjeriti taj tok podataka na vaš račun (zato ne dijelite ključ ni sa kim).

Korak 5: Pokrenite primjer

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

$ python is_example.py

Korak 6: Dobit

Vratite se na svoj račun početnog stanja u svom web pregledniku. Nova korpa podataka 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 Waves (Talasi) za pregled podataka o testiranju.

Korak 3: Python skripta

Kreirajte 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 pokušamo bilo što pokrenuti, moramo napraviti nekoliko izmjena i pregledati šta se dešava u našem scenariju.

uvezite RPi. GPIO kao GPIO

od trenutka ulaska u stanje mirovanja iz ISStreamer. Streamer import Streamer # Recite Pi -u da ćemo koristiti sistem numerisanja GPIO.setmode (GPIO. BCM) # Igle na koje su D1 i LED povezani na PIN = 23 PLAVO = 17 ZELENO = 27 CRVENO = 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)

Redovi 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 sistem numeriranja koristimo za pinove. Umjesto fizičke lokacije, koristimo Pi -ov sistem numeriranja. Kao i na našem dijagramu ranije, pinovi koje smo odabrali bili su 23, 17, 27 i 22. Zatim smo postavili iglu pokreta kao ulaz, a LED pinove kao izlaz.

# Naziv početnog stanja kante (prikazano)

BUCKET_NAME = ": jack_o_lantern: Tracker Trick or Treat Tracker" # Početni ključ spremnika stanja (skriven) BUCKET_KEY = "trickortreat" # Početni pristupni ključ za stanje ACCESS_KEY = "Your_Access_Key" # Varijable koje osiguravaju da ne prenosimo da je bilo ili nije bilo pokret dva puta zaredom # Ovo štedi na poslanim događajima i već ima procesorsku snaguRecordedMotion = Netačno većRecordedNoMotion = Netačno brojilo = 0 # Inicirajte 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 su važne jer inicijaliziramo niz početnih stanja i postavljamo LED na žuto. Pristupni ključ početnog stanja stavite na red 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 = Tačno većRecordedNoMotion = False else: # Pauzirajte skriptu za 1 sekundu spavanja (1) else: print "Nije otkriveno kretanje" # Ako još nismo streamali: ako već nije snimljenoNoMotion: # Postavite LED na žutu GPIO.izlaz (CRVENO, 1) GPIO.izlaz (ZELENO, 1) # Prijenos u početno stanje streamer.log (": ghost: or: chocolate_bar:? ",": no_pedestrians: No one around"

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

Vrijeme je da isprobate kôd! Provjerite jeste li sačuvali uređenu datoteku s pristupnim ključem dodanim u retku 28, a zatim unesite u terminal:

python visitors.py

Trebali biste vidjeti da se LED lampica uključuje i "Nema pokreta otkriveno" počinje ispisivati u naredbenu liniju. Pokušajte mahnuti rukom preko senzora pokreta - sada biste trebali vidjeti crveno svjetlo i "Otkriveno kretanje" počinje štampanje!

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

Korak 4: Kontrolna ploča trikova ili liječenja

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

Pređ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 sažete pločice koje prikazuju posljednju vrijednost i histograma broja događaja tako da mogu vidjeti u koje vrijeme je senzor aktiviran.

Evo nekih 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 pri 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 osjetljiv vaš osjetnik pokreta i postaviti ga na pločnik u skladu s tim. Predlažem da ga držite dovoljno daleko od vrata da se ne aktivira kada neko stoji na vratima.
  • Također možete postaviti tekstualna upozorenja koja će vam reći da se neko približava.
  • Odaberite pozadinsku sliku kako biste svojoj nadzornoj ploči dali sablasnu osobnost!

Preporučuje se: