INHOUDSOPGAWE:

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

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

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

Volg meer deur die skrywer:

Hoe om 'n Raspberry Pi -temperatuurmonitor te bou
Hoe om 'n Raspberry Pi -temperatuurmonitor te bou
Hoe om 'n Raspberry Pi -temperatuurmonitor te bou
Hoe om 'n Raspberry Pi -temperatuurmonitor te bou
Stroom data vanaf Google Blaaie na 'n dashboard
Stroom data vanaf Google Blaaie na 'n dashboard
Stroom data vanaf Google Blaaie na 'n dashboard
Stroom data vanaf Google Blaaie na 'n dashboard
Netwerk van temperatuursensors
Netwerk van temperatuursensors
Netwerk van temperatuursensors
Netwerk van temperatuursensors

Op soek na 'n vinnige Halloween -projek wat op meer as een manier nuttig is? Wil u die Pi Zero WH goed gebruik? Wil u data gebruik om te bepaal hoeveel lekkergoed u volgende jaar benodig?

Maak gereed om die Pumpkin Pi Trick-or-Treat Tracker te bou! Hierdie Pi-in-a-Pumpkin is 'n dekorasie en 'n volksopsporing, en verander van kleur en strome wanneer beweging opgespoor word. Van 'n absolute punt af behoort hierdie projek u nie meer as 'n middag te neem nie - net betyds vir Halloween!

Voorrade

  • Pi Zero WH met SD -kaart
  • PIR bewegingsensor
  • RGB LED
  • Weerstands van 220 ohm
  • (3) Bindlyne (F/F, M/F, M/M)
  • Draagbare battery
  • Valse pampoen

Stap 1: Hardeware -samestelling

Hardeware vergadering
Hardeware vergadering
Hardeware vergadering
Hardeware vergadering
Hardeware vergadering
Hardeware vergadering

As u eers u Pi aan die gang het, moet ons die bewegingsensor en LED's verbind. Maak seker dat Pi nie op hierdie stadium aan die krag gekoppel is nie.

Ons bewegingsensor vereis dat ons dit aansluit op 3.3V krag, grond en 'n datapennetjie. Ek het die 3.3V -sensorpen aan pen 1 van die Pi gekoppel, die grondsensorpen aan pen 6 van die Pi en die datasensorpen aan pen 16 van die Pi. Die eerste foto toon die volledige verbinding vir die Pi en die bewegingsensor.

LED's is 'n bietjie moeiliker as die bewegingsensor omdat hulle 'n weerstand benodig om korrek te werk sonder om hulle of die Pi te beskadig. Ek het drie 220 ohm weerstande gebruik, maar 220 en 330 ohm weerstande word gewoonlik met LED's gebruik.

Om alles op te hef, kan jy:

  • Soldeer die LED -bene aan die weerstande en voer dan die drade in die Pi
  • Gebruik 'n broodbord en bind lyne om alles met mekaar te verbind
  • Gebruik bindlyne en elektriese band om alles aan te sluit (soos ek gedoen het).

Ons sal ons LED verbind met penne 11, 13 en 15. Dit is 'n bietjie moeiliker as die bewegingsensor, want die bene op die LED stem ooreen met 'n spesifieke kleur! Die lang been is GND; en ten minste op my LED is die bene rooi, GND, blou, groen. Ek het Blue verbind met Pi -pin 11, Green met Pi -pin 13 en Rooi aan Pin -pin 15. Die tweede prentjie toon die finale stroomverbindings.

Stap 2: Aanvanklike toestand

Aanvanklike staat
Aanvanklike staat
Aanvanklike staat
Aanvanklike staat

Sekerlik kan ons sien wanneer beweging met die LED opgespoor word, maar hoe gaan ons kyk hoeveel bedrieërs daar ingeloop het om ons lekkergoed te steel?

Ons stroom na 'n paneelbord elke keer as beweging begin en nie meer opgespoor word nie. Aangesien hierdie paneelbord oral toeganklik is met 'n internetverbinding, kan ons op afstand monitor of iemand die voordeur/lekkergoedbak nader of nie.

Stap 1: Registreer vir die aanvanklike staatsrekening Gaan na https://iot.app.initialstate.com en skep 'n nuwe rekening.

Stap 2: Installeer die ISStreamer

Installeer die Initial State Python -module op u Raspberry Pi. Voer die volgende opdrag uit by 'n opdragprompt (moenie vergeet om eers in u Pi te SSH nie):

$ cd/home/pi/

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

Stap 3: Maak 'n bietjie Automagic

Na stap 2 sien u iets soortgelyk aan die volgende uitset op die skerm:

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

Wagwoord: Begin met die eenvoudige installering van ISStreamer Python! Dit kan 'n paar minute neem om te installeer, koffie te drink:) Maar vergeet nie om terug te kom nie, ek het later vrae! Easy_install: setuptools 1.1.6 Gevind pip: pip 1.5.6 van /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip hoof weergawe: 1 pip minor weergawe: 5 ISStreamer gevind, word opgedateer … Vereis reeds op datum: ISStreamer in /Library/Python/2.7/site-packages Maak skoon … Wil u outomaties 'n voorbeeldskrif kry? [j/n] Waar wil u die voorbeeld stoor? [standaard:./is_example.py] Kies asseblief watter aanvanklike staatsprogram u gebruik: 1. app.initialstate.com 2. [NUUT!] iot.app.initialstate.com Voer keuse 1 of 2 in: voer iot.app in.initialstate.com gebruikersnaam: Voer wagwoord iot.app.initialstate.com in:

Tik y as u gevra word om 'n voorbeeldskrip outomaties te kry. Dit sal 'n toetsskrif skep wat ons kan uitvoer om te verseker dat ons data na die oorspronklike toestand kan stroom. Die volgende aanwysing vra waar u die voorbeeldlêer wil stoor. U kan 'n aangepaste plaaslike pad tik of op Enter druk om die standaard ligging te aanvaar. Uiteindelik sal u gevra word watter aanvanklike staat -app u gebruik. As u onlangs 'n rekening geskep het, kies opsie 2, voer u gebruikersnaam en wagwoord in. Daarna sal die installasie voltooi wees.

Stap 4: Toegangssleutels

Kom ons kyk na die voorbeeldskrif wat geskep is. $ nano is_example.py Op reël 15 sien u 'n reël wat begin met streamer = Streamer (bucket_ …. Hierdie reëls skep 'n nuwe data -emmer met die naam "Python Stream -voorbeeld" en word met u rekening geassosieer. Hierdie assosiasie gebeur as gevolg van die access_key = "…" parameter op dieselfde reël. Daardie lang reeks letters en syfers is die toegangsleutel van u aanvanklike staatrekening. As u na u aanvanklike staatrekening in u webblaaier gaan, klik dan op u gebruikersnaam regs bo en gaan dan na "my instellings", vind u dieselfde toegangsleutel onderaan die bladsy onder "Toegangssleutels vir streaming".

Elke keer as u 'n datastroom skep, stuur die toegangsleutel die datastroom na u rekening (moenie u sleutel met iemand deel nie).

Stap 5: voer die voorbeeld uit

Begin die toetsskrif om seker te maak dat ons 'n datastroom na u aanvanklike staatrekening kan skep. Voer die volgende uit:

$ python is_voorbeeld.py

Stap 6: Wins

Gaan terug na u aanvanklike staatrekening in u webblaaier. 'N Nuwe data -emmer met die naam "Python Stream -voorbeeld" moes links in u logblad verskyn (u moet die bladsy moontlik herlaai). Klik op hierdie emmer en klik dan op die Waves -ikoon om die toetsdata te sien.

Stap 3: Python Script

Skep 'n script en maak die teksredakteur oop met die volgende opdrag:

nano vistors.py

Kopieer die kode van hier af na u teksredigeerder.

Voordat ons probeer om iets uit te voer, moet ons 'n paar wysigings aanbring en kyk wat in ons skrif gebeur.

voer RPi. GPIO in as GPIO

van tyd af invoer slaap vanaf ISStreamer. Streamer invoer Streamer # Vertel die Pi ons gaan die nommerstelsel gebruik GPIO.setmode (GPIO. BCM) # Spelde wat D1 en LED gekoppel is aan PIN = 23 BLOU = 17 GROEN = 27 ROOI = 22 # Spesifiseer ons bewegingsensorpen as invoer GPIO.setup (PIN, GPIO. IN) # Spesifiseer ons LED -penne as uitgang GPIO.setup (RED, GPIO. OUT) GPIO.output (RED, 0) GPIO.setup (GROEN, GPIO. OUT) GPIO.output (GROEN, 0) GPIO.setup (BLUE, GPIO. OUT) GPIO.output (BLUE, 0)

Reëls 1-21 is vir inisialisering. Eerstens voer ons die Pi se GPIO -koppelvlak in en 'n manier om ons script te slaap. Dan voer ons die Initial State -streamer in wat ons op die vorige bladsy geïnstalleer het.

GPIO.setmode spesifiseer watter nommerstelsel ons vir die penne gebruik. In plaas van die fisiese ligging, gebruik ons die nommeringstelsel van die Pi. Soos in ons diagram vroeër, was die penne wat ons gekies het 23, 17, 27 en 22. Ons stel dan die bewegingspen as invoer in en die LED -penne as uitset.

# Aanvanklike staat emmernaam (vertoon)

BUCKET_NAME = ": jack_o_lantern: Trick or Treat Tracker" # Eerste staat emmersleutel (versteek) BUCKET_KEY = "trickortreat" # Aanvanklike staat toegangs sleutel ACCESS_KEY = "Your_Access_Key" # Veranderlikes wat verseker dat ons nie stroom dat daar was of nie was nie beweging twee keer in 'n ry # Dit bespaar op gestuurde gebeurtenisse en verwerkingskrag reedsRecordedMotion = Onwaar reedsRecordedNoMotion = Valse teller = 0 # Initialiseer die aanvanklike staatstreamer streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) # Skakel aan en die LED na geel GPIO.output (ROOI, 1) GPIO.output (GROEN, 1)

Lyne 23-41 is belangrik omdat ons die Initial State-streamer initialiseer en die LED op geel stel. Plaas u toegangsleutel vir aanvanklike staat op reël 28.

# Loop onbepaald

terwyl dit waar is: # As die bewegingsensor hoog trek (beweging opspoor): as GPIO.input (PIN) == 1: druk "Beweging opgespoor" # As ons nog nie gestroom het nie: indien nie reedsRecordedMotion: counter = counter + 1 # Stel LED op rooi GPIO.output (ROOI, 1) GPIO.output (GROEN, 0) # Stroom na Initial State streamer.log (": ghost: of: chocolate_bar:?", ": chocolate_bar: Time For Treats!") streamer.log (": candy: Hungry Humans?: candy:", counter) streamer.flush () alreadyRecordedMotion = True alreadyRecordedNoMotion = Onwaar anders: # Onderbreek die script vir 1 sekonde slaap (1) anders: druk "Geen beweging bespeur nie" # As ons nog nie gestroom het nie: indien nie reedsRecordedNoMotion: # Stel LED op geel GPIO.output (ROOI, 1) GPIO.output (GROEN, 1) # Stroom na Initial State streamer.log (": ghost: of: chocolate_bar:? ",": no_pedestrians: Niemand in die omtrek ") streamer.flush () alreadyRecordedNoMotion = True alreadyRecordedMotion = Onwaar anders: # Onderbreek die script vir 1 sekonde slaap (1)

Reëls 43-77 is die vleis van die kode. As beweging opgespoor word, sal die draaiboek kyk of 'Tyd vir lekkernye!' is al gestroom. As dit nie die geval is nie, word dit na die oorspronklike toestand gestuur en die LED is rooi; as dit die geval is, wag die skrif 1 sekonde en lees dit dan weer van die bewegingsensor af. Dieselfde geld as daar geen beweging opgespoor word nie.

Dit is tyd om die kode uit te toets! Maak seker dat u u geredigeerde lêer gestoor het met u toegangsleutel wat op reël 28 bygevoeg is, en voer dan die terminale in:

python -besoekers.py

U moet sien dat die LED aanskakel en 'Geen beweging bespeur' begin druk na die opdragreël. Probeer om met u hand oor die bewegingsensor te waai - u moet nou 'n rooi lig sien en 'Beweging opgespoor' begin druk!

Nou om te verifieer dat ons lesings na die oorspronklike toestand gestroom word.

Stap 4: Trick-or-Treat-dashboard

Trick-or-Treat-kontroleskerm
Trick-or-Treat-kontroleskerm

Gaan na die oorspronklike toestand en kyk na u dashboard! U moet 'n emmer met die naam "Trick or Treat Tracker" sien. Swaai u hand naby die bewegingsensor en kyk hoe dit opdateer!

My paneelbord bestaan uit 2 opsommingsteëls met die laaste waarde en 'n histogram van gebeurtenistelling, sodat ek kan sien hoe laat die sensor geaktiveer is.

Hier is 'n paar dinge wat u moet oorweeg:

  • U wil waarskynlik die telling van "Hungry Humans" met 2 deel om te verklaar dat dieselfde persoon twee keer voor die bewegingsensor sal verbygaan - op pad na u deur en op pad terug. U kan dit doen met Real-Time Expressions deur die vergelyking "= math.round (([Hungry Humans?]/2), 0)" te gebruik.
  • U kan toets hoe sensitief u bewegingsensor is en dit dienooreenkomstig op u sypaadjie plaas. Ek stel voor om dit ver genoeg van die deur af te hou sodat dit nie ontketen as iemand by die deur staan nie.
  • U kan ook tekswaarskuwings opstel om u te vertel dat iemand nader.
  • Kies 'n agtergrondprent om u dashboard 'n bietjie spookagtige persoonlikheid te gee!

Aanbeveel: