Indholdsfortegnelse:

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

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

Video: Pumpkin Pi Trick-or-Treat Tracker: 5 trin
Video: Trick or TRACE-E | Marvel's Spidey and His Amazing Friends | @disneyjunior 2024, Juli
Anonim
Pumpkin Pi Trick-or-Treat Tracker
Pumpkin Pi Trick-or-Treat Tracker

Af elizabethnaFølg mere af forfatteren:

Sådan bygger du en Raspberry Pi temperaturmonitor
Sådan bygger du en Raspberry Pi temperaturmonitor
Sådan bygger du en Raspberry Pi temperaturmonitor
Sådan bygger du en Raspberry Pi temperaturmonitor
Stream data fra Google Sheets til et dashboard
Stream data fra Google Sheets til et dashboard
Stream data fra Google Sheets til et dashboard
Stream data fra Google Sheets til et dashboard
Netværk af temperatursensorer
Netværk af temperatursensorer
Netværk af temperatursensorer
Netværk af temperatursensorer

Leder du efter et hurtigt Halloween -projekt, der er nyttigt på flere måder end én? Vil du bruge den Pi Zero WH til god brug? Har du lyst til at bruge data til at bestemme, hvor meget slik du skal bruge til næste år?

Gør dig klar til at bygge Pumpkin Pi Trick-or-Treat Tracker! Denne Pi-in-a-Pumpkin er fordoblet som dekoration og en folkesporer og skifter farve og strømmer, når der registreres bevægelse. Fra absolut bunden bør dette projekt ikke tage dig mere end en eftermiddag at sammensætte - lige i tide til Halloween!

Forbrugsvarer

  • Pi Zero WH med SD -kort
  • PIR bevægelsessensor
  • RGB LED
  • 220 ohm modstande
  • (3) Tie Lines (F/F, M/F, M/M)
  • Bærbart batteri
  • Falske græskar

Trin 1: Hardware -samling

Hardware samling
Hardware samling
Hardware samling
Hardware samling
Hardware samling
Hardware samling

Når du har din Pi i gang, skal vi tilslutte bevægelsessensoren og lysdioderne. Sørg for, at Pi ikke er tilsluttet strøm på dette tidspunkt.

Vores bevægelsessensor kræver, at vi slutter den til 3,3V strøm, jord og en datapind. Jeg tilsluttede 3,3V sensorstift 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 billede viser den fulde forbindelse til Pi og bevægelsessensoren.

Lysdioder er lidt mere vanskelige end bevægelsessensoren, fordi de kræver en modstand for at køre korrekt uden at beskadige dem eller Pi. Jeg brugte tre 220 ohm modstande, men 220 og 330 ohm modstande bruges normalt med lysdioder.

For at tilslutte alt kan du enten:

  • Lodde LED -benene til modstandene, og før derefter ledningerne ind i Pi
  • Brug et brødbræt og bind linjer til at forbinde alt
  • Brug bindelinjer og elektrisk tape til at forbinde alt (som jeg gjorde).

Vi forbinder vores LED med stifterne 11, 13 og 15. Dette er dog en smule vanskeligere end bevægelsessensoren, fordi benene på LED'en svarer til en bestemt farve! Det lange ben er GND; og i det mindste på min LED blev benene røde, GND, blå, grønne. Jeg tilsluttede Blue til Pi pin 11, Green til Pi pin 13 og Red til Pi pin 15. Det andet billede viser de sidste kredsløbstilslutninger.

Trin 2: Oprindelig tilstand

Oprindelig tilstand
Oprindelig tilstand
Oprindelig tilstand
Oprindelig tilstand

Sikker på, at vi kan se, når der registreres bevægelse med LED'en, men hvordan skal vi spore, hvor mange trick-or-behandlere, der faldt forbi for at stjæle vores slik?

Vi vil streame til et dashboard, hver gang bevægelse starter og stopper med at blive registreret. Da dette instrumentbræt er tilgængeligt overalt med en internetforbindelse, kan vi fjernovervåge, om nogen nærmer sig hoveddøren/slikskålen.

Trin 1: Registrer dig til den oprindelige statskonto Gå til https://iot.app.initialstate.com og opret en ny konto.

Trin 2: Installer ISStreamer

Installer Initial State Python -modulet på din Raspberry Pi. Ved en kommandoprompt (glem ikke at SSH først i din Pi), kør følgende kommando:

$ cd/home/pi/

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

Trin 3: Lav noget Automagic

Efter trin 2 vil du se noget, der ligner følgende output til skærmen:

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

Adgangskode: Begyndende ISStreamer Python Nem installation! Dette kan tage et par minutter at installere, få en kop kaffe:) Men glem ikke at komme tilbage, jeg har spørgsmål senere! Fundet easy_install: setuptools 1.1.6 Fundet pip: pip 1.5.6 fra /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip major version: 1 pip mindre version: 5 ISStreamer fundet, opdaterer … Krav allerede opdateret: ISStreamer i /Library/Python/2.7/site-packages Rydder op … Vil du automatisk få et eksempel script? [y/N] Hvor vil du gemme eksemplet? [standard:./is_example.py] Vælg, hvilken starttilstandsapp du bruger: 1. app.initialstate.com 2. [NEW!] iot.app.initialstate.com Indtast valg 1 eller 2: Indtast iot.app.initialstate.com brugernavn: Indtast iot.app.initialstate.com adgangskode:

Når du bliver bedt om automatisk at hente et eksempel script, skal du skrive y. Dette vil oprette et test script, som vi kan køre for at sikre, at vi kan streame data til den oprindelige tilstand. Den næste prompt spørger, hvor du vil gemme eksempelfilen. Du kan enten skrive en tilpasset lokal sti eller trykke på enter for at acceptere standardplaceringen. Endelig bliver du spurgt, hvilken Initial State -app du bruger. Hvis du for nylig har oprettet en konto, skal du vælge mulighed 2, indtaste dit brugernavn og din adgangskode. Herefter vil installationen være fuldført.

Trin 4: Adgangstaster

Lad os se på eksemplet på script, der blev oprettet. $ nano is_example.py På linje 15 vil du se en linje, der starter med streamer = Streamer (bucket_…. Disse linjer opretter en ny databucket med navnet "Python Stream -eksempel" og er tilknyttet din konto. Denne tilknytning sker på grund af access_key =”…” parameter på den samme linje. Den lange række bogstaver og tal er din adgangsnøgle i din oprindelige statskonto. Hvis du går til din oprindelige statskonto i din webbrowser, skal du klikke på dit brugernavn øverst til højre og derefter gå til til "mine indstillinger", finder du den samme adgangsnøgle nederst på siden under "Streamingadgangsnøgler".

Hver gang du opretter en datastrøm, leder denne adgangsnøgle datastrømmen til din konto (så del ikke din nøgle med nogen).

Trin 5: Kør eksemplet

Kør testskriptet for at sikre, at vi kan oprette en datastrøm til din Initial State -konto. Kør følgende:

$ python er_eksempel.py

Trin 6: Profit

Gå tilbage til din Initial State -konto i din webbrowser. En ny dataskovl kaldet "Python Stream -eksempel" skulle have vist sig til venstre i din loghylde (du skal muligvis opdatere siden). Klik på denne spand, og klik derefter på ikonet Waves for at se testdataene.

Trin 3: Python Script

Opret et script, og åbn teksteditoren med følgende kommando:

nano vistors.py

Kopier og forbi koden herfra til i din teksteditor.

Inden vi prøver at køre noget, skal vi foretage et par redigeringer og gennemgå, hvad der sker i vores script.

importer RPi. GPIO som GPIO

fra tid importere søvn fra ISStreamer. Streamer import Streamer # Fortæl Pi, at vi skal bruge det nummereringssystem GPIO.setmode (GPIO. BCM) # Stifter, som D1 og LED er forbundet til PIN = 23 BLÅ = 17 GRØN = 27 RØD = 22 # Angiv vores bevægelsessensor -pin som input GPIO.setup (PIN, GPIO. IN) # Angiv vores LED -ben som output GPIO.setup (RØD, GPIO. OUT) GPIO.output (RØD, 0) GPIO.setup (GRØN, GPIO. OUT) GPIO.output (GRØN, 0) GPIO.opsætning (BLÅ, GPIO. OUT) GPIO.output (BLÅ, 0)

Linje 1-21 er til initialisering. Først importerer vi Pi's GPIO -interface og en måde at sove vores script på. Derefter importerer vi den oprindelige tilstandsstreamer, som vi installerede på den forrige side.

GPIO.setmode angiver hvilket nummereringssystem vi bruger til stifterne. I stedet for fysisk placering bruger vi Pi's nummereringssystem. Som i vores diagram tidligere var stifterne, vi valgte, 23, 17, 27 og 22. Vi opsætter derefter bevægelsestappen som input og LED -benene som output.

# Indledende tilstandsbucketavn (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, der sikrer, at vi ikke streamer, at der var eller ikke var bevægelse to gange i træk # Dette sparer på sendte hændelser og processorkraft alleredeRecordedMotion = Falsk alleredeRecordedNoMotion = Falsk tæller = 0 # Initialiser den oprindelige tilstandsstreamer streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) # Tænd og LED'en til gul GPIO.output (RØD, 1) GPIO.output (GRØN, 1)

Linjerne 23-41 er vigtige, fordi vi initialiserer streameren Initial State og sætter LED'en til gul. Sæt din adgangsnøgle til første tilstand på linje 28.

# Sløjfe på ubestemt tid

mens True: # Hvis bevægelsessensoren trækker højt (registrerer bevægelse): hvis GPIO.input (PIN) == 1: udskriv "Bevægelse registreret" # Hvis vi ikke har streamet endnu: hvis ikke alleredeRecordedMotion: counter = counter + 1 # Indstil LED til rød GPIO.output (RØD, 1) GPIO.output (GRØN, 0) # Stream til Initial State streamer.log (": ghost: eller: chocolate_bar:?", ": chocolate_bar: Time For Treats!") streamer.log (": candy: Hungry Humans?: candy:", counter) streamer.flush () alreadyRecordedMotion = True alreadyRecordedNoMotion = Falsk ellers: # Sæt scriptet på pause i 1 sekund søvn (1) else: print "Ingen bevægelse registreret" # Hvis vi ikke har streamet endnu: hvis ikke alleredeRecordedNoMotion: # Indstil LED til gul GPIO.output (RØD, 1) GPIO.output (GRØN, 1) # Stream til Initial State streamer.log (": ghost: eller: chocolate_bar:? ",": no_pedestrians: No One Around ") streamer.flush () alleredeRecordedNoMotion = True alleredeRecordedMotion = Falsk andet: # Sæt scriptet på pause i 1 sekund søvn (1)

Linje 43-77 er kødet af koden. Hvis der registreres bevægelse, kontrollerer scriptet, om "Time For Treats!" er allerede streamet. Hvis den ikke har det, sendes den til den oprindelige tilstand, og lysdioden er indstillet til rød; hvis det har det, venter scriptet 1 sekund og læser derefter fra bevægelsessensoren igen. Det samme gælder, hvis der ikke registreres nogen bevægelse.

Det er tid til at teste koden! Sørg for, at du har gemt din redigerede fil med din adgangsnøgle tilføjet på linje 28, og indtast derefter terminalen:

python -besøgende.py

Du skal se LED'en tænde og "Ingen bevægelse registreret" begynde at udskrive til kommandolinjen. Prøv at vifte med hånden over bevægelsessensoren - du skulle nu se et rødt lys og "Motion detect" begynde at udskrive!

Nu for at kontrollere, at vores aflæsninger streames til den oprindelige tilstand.

Trin 4: Trick-or-Treat Dashboard

Trick-or-Treat-instrumentbræt
Trick-or-Treat-instrumentbræt

Gå videre til Initial State og tjek dit dashboard! Du bør se en spand kaldet "? Trick or Treat Tracker". Vift din hånd nær bevægelsessensoren, og se den opdateres!

Mit instrumentbræt består af 2 Resuméfliser, der viser den sidste værdi og et histogram over hændelsestælling, så jeg kan se, hvilke gange sensoren blev udløst.

Her er nogle ting at overveje:

  • Du vil sandsynligvis opdele antallet af "sultne mennesker" med 2 for at tage højde for, at den samme person vil passere foran bevægelsessensoren to gange - på vej til din dør og på vej tilbage. Du kan gøre dette med realtidsudtryk ved at bruge ligningen "= math.round (([Hungry Humans?]/2), 0)".
  • Du kan teste, hvor følsom din bevægelsessensor ser ud til at være og placere den på fortovet i overensstemmelse hermed. Jeg foreslår at holde det langt nok fra døren, så det ikke udløses, når nogen står ved døren.
  • Du kan også konfigurere tekstadvarsler for at fortælle dig, at nogen nærmer sig.
  • Vælg et baggrundsbillede for at give dit instrumentbræt en lidt uhyggelig personlighed!

Anbefalede: