Innehållsförteckning:

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

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

Video: Pumpkin Pi Trick-or-Treat Tracker: 5 steg
Video: PAW Patrol Halloween Trick-or-Treat Rescues! 🎃 | 30 Minute Compilation | Nick Jr. 2024, Juli
Anonim
Pumpkin Pi Trick-or-Treat Tracker
Pumpkin Pi Trick-or-Treat Tracker

Av elizabethnaFölj mer av författaren:

Hur man bygger en Raspberry Pi temperaturmätare
Hur man bygger en Raspberry Pi temperaturmätare
Hur man bygger en Raspberry Pi temperaturmätare
Hur man bygger en Raspberry Pi temperaturmätare
Strömma data från Google Kalkylark till en instrumentpanel
Strömma data från Google Kalkylark till en instrumentpanel
Strömma data från Google Kalkylark till en instrumentpanel
Strömma data från Google Kalkylark till en instrumentpanel
Nätverk av temperatursensorer
Nätverk av temperatursensorer
Nätverk av temperatursensorer
Nätverk av temperatursensorer

Letar du efter ett snabbt Halloween -projekt som är användbart på fler sätt än ett? Vill du använda den Pi Zero WH till god användning? Vill du använda data för att avgöra hur mycket godis du behöver nästa år?

Gör dig redo att bygga Pumpkin Pi Trick-or-Treat Tracker! Denna Pi-in-a-Pumpkin fungerar som dekoration och är en folkspårare och ändrar färg och strömmar när rörelse detekteras. Från absolut grund bör detta projekt inte ta dig mer än en eftermiddag att sätta ihop - lagom till Halloween!

Tillbehör

  • Pi Zero WH med SD -kort
  • PIR -rörelsessensor
  • RGB LED
  • 220 ohm motstånd
  • (3) Tie Lines (F/F, M/F, M/M)
  • Bärbart batteri
  • Falsk pumpa

Steg 1: Hårdvarumontage

Hårdvara Montering
Hårdvara Montering
Hårdvara Montering
Hårdvara Montering
Hårdvara Montering
Hårdvara Montering

När du väl har din Pi igång måste vi ansluta rörelsesensorn och lysdioderna. Se till att Pi inte är ansluten till strömmen just nu.

Vår rörelsesensor kräver att vi ansluter den till 3,3V ström, jord och en datapinne. Jag kopplade 3,3V sensorstiftet till pin 1 på Pi, Ground sensor pin till pin 6 på Pi och Data sensor pin till pin 16 på Pi. Den första bilden visar hela anslutningen för Pi och rörelsesensorn.

Lysdioder är lite mer knepiga än rörelsesensorn eftersom de kräver ett motstånd för att köra korrekt utan att skada dem eller Pi. Jag använde tre 220 ohm motstånd men 220 och 330 ohm motstånd används vanligtvis med lysdioder.

För att koppla upp allt kan du antingen:

  • Löd LED -benen till motstånden och kör sedan ledningarna in i Pi
  • Använd en brödbräda och binda linjer för att ansluta allt
  • Använd bindelinjer och eltejp för att ansluta allt (som jag gjorde).

Vi kommer dock att ansluta vår LED till stift 11, 13 och 15. Detta är dock lite knepigare än rörelsesensorn, eftersom benen på lysdioden motsvarar en specifik färg! Det långa benet är GND; och åtminstone på min LED blev benen röda, GND, blå, gröna. Jag kopplade Blue till Pi pin 11, Green till Pi pin 13 och Red till Pi pin 15. Den andra bilden visar de slutliga kretsanslutningarna.

Steg 2: Ursprunglig status

Initialtillstånd
Initialtillstånd
Initialtillstånd
Initialtillstånd

Visst kan vi se när rörelse detekteras med lysdioden, men hur ska vi spåra hur många trick-or-treaters som släppte förbi för att stjäla vårt godis?

Vi kommer att strömma till en instrumentpanel varje gång rörelse startar och slutar upptäckas. Eftersom denna instrumentpanel är tillgänglig var som helst med en internetanslutning kan vi fjärrövervaka om någon närmar sig ytterdörren/godisskålen eller inte.

Steg 1: Registrera dig för det första statskontot Gå till https://iot.app.initialstate.com och skapa ett nytt konto.

Steg 2: Installera ISStreamer

Installera Initial State Python -modulen på din Raspberry Pi. Vid en kommandotolk (glöm inte att SSH in i din Pi först), kör följande kommando:

$ cd/home/pi/

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

Steg 3: Gör lite Automagic

Efter steg 2 ser du något som liknar följande utmatning till skärmen:

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

Lösenord: Börjar ISStreamer Python Enkel installation! Det kan ta ett par minuter att installera, ta lite kaffe:) Men glöm inte att komma tillbaka, jag har frågor senare! Hittade easy_install: setuptools 1.1.6 Hittade pip: pip 1.5.6 från /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip major version: 1 pip minor version: 5 ISStreamer hittades, uppdateras … Kravet är redan uppdaterat: ISStreamer i /Library/Python/2.7/site-packages Rengöring … Vill du automatiskt få ett exempelskript? [y/N] Var vill du spara exemplet? [standard:./is_example.py] Vänligen välj vilken Initial State -app du använder: 1. app.initialstate.com 2. [NEW!] iot.app.initialstate.com Ange val 1 eller 2: Ange iot.app.initialstate.com användarnamn: Ange iot.app.initialstate.com lösenord:

När du uppmanas att automatiskt hämta ett exempelskript skriver du y. Detta skapar ett testskript som vi kan köra för att säkerställa att vi kan strömma data till initialstatus. Nästa prompt frågar var du vill spara exempelfilen. Du kan antingen skriva en anpassad lokal sökväg eller trycka på enter för att acceptera standardplatsen. Slutligen kommer du att bli tillfrågad vilken Initial State -app du använder. Om du nyligen har skapat ett konto väljer du alternativ 2, anger ditt användarnamn och lösenord. Därefter är installationen klar.

Steg 4: Åtkomstnycklar

Låt oss ta en titt på exempelskriptet som skapades. $ nano is_example.py På rad 15 ser du en rad som börjar med streamer = Streamer (bucket_…. Dessa rader skapar en ny datahink med namnet "Python Stream Exempel" och är kopplad till ditt konto. Denna koppling sker på grund av access_key =”…” parameter på samma rad. Den där långa serien av bokstäver och siffror är din nyckelnyckel för initialstatskontot. Om du går till ditt ursprungliga statskonto i din webbläsare klickar du på ditt användarnamn längst upp till höger och går sedan till till "mina inställningar", hittar du samma åtkomstnyckel längst ner på sidan under "Strömmande åtkomstnycklar".

Varje gång du skapar en dataström, leder den åtkomstnyckeln den dataströmmen till ditt konto (så dela inte din nyckel med någon).

Steg 5: Kör exemplet

Kör testskriptet för att se till att vi kan skapa en dataström till ditt Initial State -konto. Kör följande:

$ python är_exempel.py

Steg 6: Vinst

Gå tillbaka till ditt ursprungliga statskonto i din webbläsare. En ny datahink som heter "Python Stream Exempel" borde ha dykt upp till vänster i din logghylla (du kan behöva uppdatera sidan). Klicka på den här hinken och klicka sedan på ikonen Waves för att se testdata.

Steg 3: Python Script

Skapa ett skript och öppna textredigeraren med följande kommando:

nano vistors.py

Kopiera och förbi koden härifrån till din textredigerare.

Innan vi försöker köra något måste vi göra några redigeringar och granska vad som händer i vårt manus.

importera RPi. GPIO som GPIO

från tid importera sömn från ISStreamer. Streamer import Streamer # Berätta för Pi att vi ska använda dess numreringssystem GPIO.setmode (GPIO. BCM) # Stift som D1 och LED är anslutna till PIN = 23 BLÅ = 17 GRÖN = 27 RÖD = 22 # Ange vår rörelsesensorstift som ingång GPIO.setup (PIN, GPIO. IN) # Ange våra LED -stift som utgång GPIO.setup (RÖD, GPIO. OUT) GPIO.output (RÖD, 0) GPIO.setup (GRÖN, GPIO. OUT) GPIO.output (GRÖN, 0) GPIO.setup (BLÅ, GPIO. OUT) GPIO.output (BLÅ, 0)

Linjerna 1-21 är för initialisering. Först importerar vi Pi: s GPIO -gränssnitt och ett sätt att sova vårt manus. Sedan importerar vi Initial State -streameren som vi installerade på föregående sida.

GPIO.setmode anger vilket nummersystem vi använder för stiften. I stället för fysisk plats använder vi Pi: s nummersystem. Som i vårt diagram tidigare var stiften vi valde 23, 17, 27 och 22. Vi ställer sedan in rörelsestiftet som ingång och LED -stiften som utgång.

# Initialt statens hinknamn (visas)

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 säkerställer att vi inte streamar att det fanns eller inte var rörelse två gånger i rad # Detta sparar på skickade händelser och processorkraft redanRecordedMotion = Falskt redanRecordedNoMotion = Falsk räknare = 0 # Initiera initialstatistreameren streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) # Slå på och lysdioden till gul GPIO.output (RÖD, 1) GPIO.output (GRÖN, 1)

Linjer 23-41 är viktiga eftersom vi initierar Initial State-streameren och ställer in lysdioden till gul. Sätt din initiala åtkomstnyckel på rad 28.

# Loop på obestämd tid

medan Sant: # Om rörelsessensorn drar högt (detekterar rörelse): om GPIO.input (PIN) == 1: skriv ut "Rörelse upptäckt" # Om vi inte har streamat än: om inte redanRecordedMotion: counter = counter + 1 # Ställ in lysdioden på 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 = Falskt annat: # Pausa manuset i 1 sekund sömn (1) else: print "Ingen rörelse upptäckt" # Om vi inte har streamat än: om inte redanRecordedNoMotion: # Ställ in LED på gul GPIO.output (RED, 1) GPIO.output (GRÖN, 1) # Stream till Initial State streamer.log (": ghost: eller: chocolate_bar:? ",": no_pedestrians: No One Around ") streamer.flush () alreadyRecordedNoMotion = True alreadyRecordedMotion = Falskt annat: # Pausa manuset i 1 sekunds sömn (1)

Linjerna 43-77 är kodens kött. Om rörelse upptäcks kommer manuset att kontrollera om "Time For Treats!" har redan streamats. Om den inte har det skickas det till utgångsläget och lysdioden är röd; om det har det väntar manuset 1 sekund och läser sedan från rörelsesensorn igen. Detsamma gäller om ingen rörelse detekteras.

Det är dags att testa koden! Se till att du har sparat din redigerade fil med din åtkomstnyckel tillagd på rad 28 och ange sedan terminalen:

python -besökare.py

Du bör se att lysdioden tänds och "Ingen rörelse detekterad" börjar skriva ut till kommandoraden. Prova att vifta med handen över rörelsesensorn - du ska nu se ett rött ljus och "Rörelse upptäckt" börja skriva ut!

Nu för att verifiera att våra avläsningar streamas till Initial State.

Steg 4: Trick-or-Treat-instrumentpanel

Trick-or-Treat-instrumentpanel
Trick-or-Treat-instrumentpanel

Gå vidare till Initial State och kolla in din instrumentpanel! Du borde se en hink som heter "? Trick or Treat Tracker". Vifta med handen nära rörelsesensorn och se hur den uppdateras!

Min instrumentpanel består av 2 Sammanfattningsplattor som visar det sista värdet och ett histogram över händelseantal så att jag kan se vilka gånger sensorn utlöstes.

Här är några saker att tänka på:

  • Du vill förmodligen dela antalet "Hungry Humans" med 2 för att redogöra för att samma person kommer att passera framför rörelsesensorn två gånger - på väg till din dörr och på väg tillbaka. Du kan göra detta med realtidsuttryck med ekvationen "= math.round (([Hungry Humans?]/2), 0)".
  • Du kan testa hur känslig din rörelsesensor verkar vara och placera den på trottoaren i enlighet därmed. Jag föreslår att du håller den tillräckligt långt från dörren så att den inte utlöses när någon står vid dörren.
  • Du kan också ställa in textvarningar för att berätta att någon närmar sig.
  • Välj en bakgrundsbild för att ge din instrumentpanel en lite skrämmande personlighet!

Steg 5: Pumpkin Pi

Rekommenderad: