Innholdsfortegnelse:

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

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

Video: Pumpkin Pi Trick-or-Treat Tracker: 5 trinn
Video: CAMPING in RAIN - Tent - Dog - FIRE 2024, Juli
Anonim
Pumpkin Pi Trick-or-Treat Tracker
Pumpkin Pi Trick-or-Treat Tracker

Av elizabethna Følg mer av forfatteren:

Hvordan bygge en Raspberry Pi temperaturmonitor
Hvordan bygge en Raspberry Pi temperaturmonitor
Hvordan bygge en Raspberry Pi temperaturmonitor
Hvordan bygge en Raspberry Pi temperaturmonitor
Stream data fra Google Regneark til et oversikt
Stream data fra Google Regneark til et oversikt
Stream data fra Google Regneark til et oversikt
Stream data fra Google Regneark til et oversikt
Nettverk av temperatursensorer
Nettverk av temperatursensorer
Nettverk av temperatursensorer
Nettverk av temperatursensorer

Leter du etter et raskt Halloween -prosjekt som er nyttig på flere måter enn en? Vil du bruke den Pi Zero WH til god bruk? Har du lyst til å bruke data for å finne ut hvor mye godteri du trenger neste år?

Gjør deg klar til å bygge Pumpkin Pi Trick-or-Treat Tracker! Denne Pi-in-a-Pumpkin dobler som dekorasjon og er en folkesporer og endrer farge og strømmer når bevegelse oppdages. Fra absolutt grunn, bør dette prosjektet ikke ta deg mer enn en ettermiddag å sette sammen - akkurat i tide til Halloween!

Rekvisita

  • Pi Zero WH med SD -kort
  • PIR bevegelsessensor
  • RGB LED
  • 220 ohm motstander
  • (3) Tie Lines (F/F, M/F, M/M)
  • Bærbart batteri
  • Falske gresskar

Trinn 1: Maskinvaremontasje

Maskinvare montering
Maskinvare montering
Maskinvare montering
Maskinvare montering
Maskinvare montering
Maskinvare montering

Når du har Pi -en din i gang, må vi koble til bevegelsessensoren og lysdiodene. Sørg for at Pi ikke er koblet til strøm på dette tidspunktet.

Bevegelsessensoren vår krever at vi kobler den til 3,3V strøm, jord og en datapinne. Jeg koblet 3,3V sensorpinnen til pin 1 på Pi, Jord sensor sensor pin til pin 6 på Pi, og Data sensor pin til pin 16 på Pi. Det første bildet viser hele tilkoblingen for Pi og bevegelsessensoren.

Lysdioder er litt mer vanskelige enn bevegelsessensoren fordi de krever en motstand for å kjøre riktig uten å skade dem eller Pi. Jeg brukte tre 220 ohm motstander, men 220 og 330 ohm motstander brukes vanligvis med lysdioder.

For å koble alt til kan du enten:

  • Lodd LED -bena til motstandene og før deretter ledningene inn i Pi
  • Bruk et brødbrett og bind linjer for å koble alt sammen
  • Bruk bindelinjer og elektrisk tape for å koble til alt (som jeg gjorde).

Vi vil koble LED -en vår til pinne 11, 13 og 15. Dette er imidlertid litt vanskeligere enn bevegelsessensoren, fordi beina på LED -en samsvarer med en bestemt farge! Det lange beinet er GND; og på min LED i det minste ble beina rød, GND, blå, grønn. Jeg koblet Blue til Pi pin 11, Green til Pi pin 13 og Red til Pi pin 15. Det andre bildet viser de siste kretsforbindelsene.

Trinn 2: Opprinnelig tilstand

Opprinnelige tilstand
Opprinnelige tilstand
Opprinnelige tilstand
Opprinnelige tilstand

Visst kan vi se når bevegelse oppdages med LED-en, men hvordan skal vi spore hvor mange trick-or-treaters som var innom for å stjele godteriet vårt?

Vi kommer til å streame til et dashbord hver gang bevegelse starter og slutter å bli oppdaget. Siden dette dashbordet er tilgjengelig hvor som helst med en internettforbindelse, kan vi fjernovervåke om noen nærmer seg inngangsdøren/godteribollen.

Trinn 1: Registrer deg for den første statskontoen Gå til https://iot.app.initialstate.com og opprett en ny konto.

Trinn 2: Installer ISStreamer

Installer Initial State Python -modulen på Raspberry Pi. Ved en ledetekst (ikke glem å SSH i Pi først), kjør følgende kommando:

$ cd/home/pi/

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

Trinn 3: Lag litt Automagic

Etter trinn 2 vil du se noe som ligner på følgende utgang til skjermen:

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

Passord: Start ISStreamer Python Enkel installasjon! Dette kan ta et par minutter å installere, ta en kaffe:) Men ikke glem å komme tilbake, jeg har spørsmål senere! Funnet easy_install: setuptools 1.1.6 Funnet pip: pip 1.5.6 fra /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip hovedversjon: 1 pip mindre versjon: 5 ISStreamer funnet, oppdaterer … Krav allerede oppdatert: ISStreamer i /Library/Python/2.7/site-packages Rydder opp … Vil du automatisk få et eksempelskript? [y/N] Hvor vil du lagre eksemplet? [standard:./is_example.py] Velg hvilken Initial State -app du bruker: 1. app.initialstate.com 2. [NEW!] iot.app.initialstate.com Angi valg 1 eller 2: Skriv inn iot.app.initialstate.com brukernavn: Skriv inn iot.app.initialstate.com passord:

Når du blir bedt om å automatisk få et eksempelskript, skriver du y. Dette vil opprette et testskript som vi kan kjøre for å sikre at vi kan streame data til opprinnelig tilstand. Den neste ledeteksten vil spørre hvor du vil lagre eksempelfilen. Du kan enten skrive en tilpasset lokal bane eller trykke enter for å godta standardplasseringen. Til slutt blir du spurt hvilken Initial State -app du bruker. Hvis du nylig har opprettet en konto, velger du alternativ 2, skriver inn brukernavn og passord. Etter det vil installasjonen være fullført.

Trinn 4: Tilgangstaster

La oss se på eksempelskriptet som ble opprettet. $ nano is_example.py På linje 15 vil du se en linje som starter med streamer = Streamer (bucket_…. Denne linjen oppretter en ny databøtte med navnet "Python Stream -eksempel" og er knyttet til kontoen din. Denne tilknytningen skjer på grunn av access_key =”…” parameter på den samme linjen. Den lange serien med bokstaver og tall er tilgangsnøkkelen til din opprinnelige statskonto. Hvis du går til din opprinnelige statskonto i nettleseren din, klikker du på brukernavnet ditt øverst til høyre og går deretter til "mine innstillinger", finner du den samme tilgangsnøkkelen nederst på siden under "Streaming Access Keys".

Hver gang du oppretter en datastrøm, vil tilgangsnøkkelen lede datastrømmen til kontoen din (så ikke del nøkkelen med noen).

Trinn 5: Kjør eksemplet

Kjør testskriptet for å sikre at vi kan opprette en datastrøm til din opprinnelige statskonto. Kjør følgende:

$ python er_eksempel.py

Trinn 6: Profitt

Gå tilbake til din opprinnelige statskonto i nettleseren din. En ny databøtte kalt "Python Stream -eksempel" burde ha dukket opp til venstre i logghyllen din (du må kanskje oppdatere siden). Klikk på denne bøtta og klikk deretter på Waves -ikonet for å se testdataene.

Trinn 3: Python Script

Lag et skript og åpne teksteditoren med følgende kommando:

nano vistors.py

Kopier og forbi koden herfra til teksteditoren.

Før vi prøver å kjøre noe, må vi gjøre noen få redigeringer og se hva som skjer i skriptet vårt.

importer RPi. GPIO som GPIO

fra tid til å importere søvn fra ISStreamer. Streamer import Streamer # Fortell Pi at vi skal bruke nummereringssystemet GPIO.setmode (GPIO. BCM) # Pinner som D1 og LED er koblet til PIN = 23 BLÅ = 17 GRØNN = 27 RØD = 22 # Spesifiser vår bevegelsessensor -pin som inngang GPIO.setup (PIN, GPIO. IN) # Spesifiser våre LED -pinner som utgang GPIO.setup (RED, GPIO. OUT) GPIO.output (RED, 0) GPIO.setup (GRØNN, GPIO. OUT) GPIO.output (GRØNN, 0) GPIO.setup (BLÅ, GPIO. OUT) GPIO.output (BLÅ, 0)

Linje 1-21 er for initialisering. Først importerer vi Pi's GPIO -grensesnitt og en måte å sove scriptet vårt på. Deretter importerer vi Initial State -streameren som vi installerte på forrige side.

GPIO.setmode angir hvilket nummereringssystem vi bruker for pinnene. I stedet for fysisk plassering bruker vi Pi -nummereringssystemet. Som i diagrammet vårt tidligere, var pinnene vi valgte 23, 17, 27 og 22. Vi setter deretter opp bevegelsestappen som inngang og LED -pinnene som utgang.

# Initial State bucket name (vist)

BUCKET_NAME = ": jack_o_lantern: Trick or Treat Tracker" # Initial State bucket key (hidden) BUCKET_KEY = "trickortreat" # Initial State access key ACCESS_KEY = "Your_Access_Key" # Variabler som sikrer at vi ikke streamer at det var eller ikke var bevegelse to ganger på rad # Dette sparer på sendte hendelser og prosessorkraft alleredeRecordedMotion = Falsk alleredeRecordedNoMotion = Falsk teller = 0 # Initialiser Initial State Streamer streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) # Slå på og lysdioden til gul GPIO.utgang (RØD, 1) GPIO.utgang (GRØN, 1)

Linje 23-41 er viktig fordi vi initialiserer streameren Initial State og setter LED-en til gul. Sett tilgangsnøkkelen til opprinnelig tilstand på linje 28.

# Sløyfe på ubestemt tid

mens det er sant: # Hvis bevegelsessensoren trekker høyt (oppdager bevegelse): hvis GPIO.input (PIN) == 1: skriv ut "Bevegelse oppdaget" # Hvis vi ikke har streamet ennå: hvis ikke alleredeRecordedMotion: counter = counter + 1 # Sett LED til rød 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 () alreadyRecordedMotion = True alreadyRecordedNoMotion = False else: # Pause manuset i 1 sekund søvn (1) else: print "Ingen bevegelse oppdaget" # Hvis vi ikke har streamet ennå: hvis ikke alleredeRecordedNoMotion: # Sett LED til gul GPIO.output (RED, 1) GPIO.output (GREEN, 1) # Stream to Initial State streamer.log (": ghost: or: chocolate_bar:? ",": no_pedestrians: No One Around ") streamer.flush () alreadyRecordedNoMotion = True alreadyRecordedMotion = False else: # Pause manuset i 1 sekund søvn (1)

Linje 43-77 er kjøttet av koden. Hvis det oppdages bevegelse, vil skriptet sjekke om "Time For Treats!" har allerede blitt streamet. Hvis den ikke har det, sendes den til opprinnelig tilstand og LED -en er satt til rødt; hvis det har det, venter skriptet 1 sekund og leser deretter fra bevegelsessensoren igjen. Det samme gjelder hvis ingen bevegelse oppdages.

Det er på tide å teste koden! Sørg for at du har lagret den redigerte filen med tilgangsnøkkelen din lagt til på linje 28, og angi deretter terminalen:

python visitors.py

Du bør se LED -en tennes og "Ingen bevegelse oppdaget" begynne å skrive ut til kommandolinjen. Prøv å vifte med hånden over bevegelsessensoren - du skulle nå se et rødt lys og "Bevegelse registrert" begynne å skrive ut!

Nå for å bekrefte at avlesningene våre blir streamet til opprinnelig tilstand.

Trinn 4: Trick-or-Treat Dashboard

Trick-or-Treat Dashboard
Trick-or-Treat Dashboard

Gå videre til Initial State og sjekk dashbordet ditt! Du bør se en bøtte som heter "? Trick or Treat Tracker". Vift hånden nær bevegelsessensoren og se den oppdateres!

Dashbordet mitt består av 2 oppsummeringsfliser som viser den siste verdien og et histogram over hendelsestall, slik at jeg kan se hvilke ganger sensoren ble utløst.

Her er noen ting du bør vurdere:

  • Du vil sannsynligvis dele tellingen av "Hungry Humans" med 2 for å ta hensyn til det faktum at den samme personen vil passere foran bevegelsessensoren to ganger - på vei til døren din og på vei tilbake. Du kan gjøre dette med sanntidsuttrykk ved å bruke ligningen "= math.round (([Hungry Humans?]/2), 0)".
  • Du kan teste hvor følsom bevegelsessensoren din er og plassere den på fortauet tilsvarende. Jeg foreslår at du holder den langt nok fra døren til at den ikke utløses når noen står ved døren.
  • Du kan også konfigurere tekstvarsler for å fortelle deg at noen nærmer seg.
  • Velg et bakgrunnsbilde for å gi dashbordet en litt skummel personlighet!

Anbefalt: