Innehållsförteckning:
- Tillbehör
- Steg 1: Hårdvarumontage
- Steg 2: Ursprunglig status
- Steg 3: Python Script
- Steg 4: Trick-or-Treat-instrumentpanel
- Steg 5: Pumpkin Pi
Video: Pumpkin Pi Trick-or-Treat Tracker: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
Av elizabethnaFölj mer av författaren:
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
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
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
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:
CMD -trick: 9 steg
CMD -trick: Nyligen lade jag upp en annan CMD (kommandotolk) om ett Star Wars IV -trick så jag bestämde mig för att lägga upp lite mer. CMD är ett Windows -verktyg för att transportera filer, kopiera, ta bort och mycket mer. Den använder " språket " batch.Denna instruerbara är bara en touchin
Enkla trick att börja med elektronik: 6 steg
Enkla knep för att börja med elektronik: Entusiasmen för elektronik kan börja med att lysa en lysdiod med ett batteri. I denna instruktion kommer jag att förklara hur du kan bygga några häftiga elektroniska testverktyg och komponenter från lättillgängliga delar. Observera att dessa verktyg är f
Raspberry Pi Stretch - 2018 -trick: 7 steg
Raspberry Pi Stretch - 2018 Tricks: Introduktion Det har varit ett tag sedan jag senast satte upp en Raspberry Pi från början. Vissa saker har förändrats (ganska mycket till det bättre). Detta instruerbara beskriver några av de nya sakerna, antingen nya i systemet eller kanske bara nyligen lärt av mig.
Cool Itunes Trick - VISUALIZER: 7 steg
Cool Itunes Trick - VISUALIZER: Jag ska berätta hur du lägger vizualizer på Itunes. Visualizer är en riktigt cool sak och du kan styra den
Coola Mac OS X Leopard -trick !: 4 steg
Coola Mac OS X Leopard -tricks!: Har du någonsin undrat hur du gör vissa saker på en Mac som du kan göra på en PC, men eftersom du inte bytte till det? Eller har du någonsin undrat hur du kan stoppa vissa irriterande saker på din mac? I denna instruerbara, kommer jag att förklara hur man gör lite coo