Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Laitteiston kokoaminen
- Vaihe 2: Alkutila
- Vaihe 3: Python -skripti
- Vaihe 4: Trick-or-Dashboard
Video: Pumpkin Pi Trick-or-Treat Tracker: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Seuraa lisää tekijältä:
Etsitkö nopeaa Halloween -projektia, joka on hyödyllinen usealla tavalla? Haluatko käyttää sitä Pi Zero WH: tä hyväksi? Haluatko käyttää tietoja määrittääksesi, kuinka paljon karkkia tarvitset ensi vuonna?
Valmistaudu rakentamaan Pumpkin Pi Trick-or-Treat Tracker! Tämä Pi-in-a-Pumpkin, joka toimii koristeena ja ihmisten seurannassa, muuttaa väriä ja virtaa, kun liike havaitaan. Alkaen tyhjästä, tämä projekti ei saisi viedä sinua yli iltapäivän kokoonpanoon - juuri Halloweenin aikaan!
Tarvikkeet
- Pi Zero WH SD -kortilla
- PIR -liiketunnistin
- RGB -LED
- 220 ohmin vastukset
- (3) Sidontaviivat (F/F, M/F, M/M)
- Kannettava akku
- Fake Pumpkin
Vaihe 1: Laitteiston kokoaminen
Kun Pi on käynnissä, meidän on liitettävä liiketunnistin ja LEDit. Varmista, että Pi ei ole kytketty virtalähteeseen tässä vaiheessa.
Liikeanturimme edellyttää, että liitämme sen 3,3 V: n virtalähteeseen, maahan ja datanappiin. Liitin 3.3V -anturin nastan Pi: n nastaan 1, maadoitusanturin nastan Pi: n nastaan 6 ja data -anturin nastan Pi: n nastaan 16. Ensimmäisessä kuvassa näkyy Pi: n ja liiketunnistimen täydellinen yhteys.
LEDit ovat hieman hankalampia kuin liikeanturi, koska ne vaativat vastuksen toimiakseen oikein vahingoittamatta niitä tai Pi: tä. Käytin kolmea 220 ohmin vastusta, mutta 220 ja 330 ohmin vastuksia käytetään yleensä LEDien kanssa.
Johdottaaksesi kaiken voit joko:
- Juotos LED -jalat vastuksiin ja vedä sitten johdot Pi: hen
- Käytä leipälautaa ja solmimislinjoja yhdistääksesi kaiken
- Käytä nippusiteitä ja sähköteippiä kaiken liittämiseen (kuten minä).
Yhdistämme LEDimme nastoihin 11, 13 ja 15. Tämä on kuitenkin hieman hankalampaa kuin liikeanturi, koska LED -jalat vastaavat tiettyä väriä! Pitkä jalka on GND; ja ainakin LED -valossani jalat olivat punaiset, GND, siniset ja vihreät. Yhdistin sinisen Pi -nastaan 11, vihreän Pi -nastaan 13 ja Punaisen Pi -nastaan 15. Toinen kuva esittää piirin viimeiset liitännät.
Vaihe 2: Alkutila
Toki voimme nähdä, milloin LED havaitsee liikkeen, mutta miten aiomme seurata kuinka monta temppua tai -hoitajaa putosi varastamaan karkkia?
Striimaamme kojelautaan joka kerta, kun liike alkaa ja lakkaa havaitsemasta. Koska tämä kojelauta on käytettävissä mistä tahansa Internet -yhteydellä, voimme etänä seurata, lähestyykö joku etuovi/karkkikulhoa.
Vaihe 1: Rekisteröidy alkuperäisen valtion tilille Siirry osoitteeseen https://iot.app.initialstate.com ja luo uusi tili.
Vaihe 2: Asenna ISStreamer
Asenna Initial State Python -moduuli Raspberry Pi -laitteeseesi. Suorita seuraava komento komentokehotteessa (älä unohda SSH: ta Pi: hen).
$ cd/home/pi/
$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash
Vaihe 3: Tee Automagic
Vaiheen 2 jälkeen näet jotain seuraavan kaltaista tulosta näytölle:
pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bash
Salasana: ISStreamer Python Helppo asennus! Asentaminen voi kestää muutaman minuutin, nappaa kahvia:) Mutta älä unohda palata, minulla on kysymyksiä myöhemmin! Löytyi easy_install: setuptools 1.1.6 Löytyi pip: pip 1.5.6 /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip pääversio: 1 pip vähäinen versio: 5 ISStreamer löytyi, päivitetään… Vaatimus on jo ajan tasalla: ISStreamer /Library/Python/2.7/site-packages Siivotaan… Haluatko automaattisesti saada esimerkkikomentosarjan? [y/N] Minne haluat tallentaa esimerkin? [oletus:./is_example.py] Valitse alkuperäinen tila, jota käytät: 1. app.initialstate.com 2. [UUSI!] iot.app.initialstate.com Anna vaihtoehto 1 tai 2: Kirjoita iot.app.initialstate.com -käyttäjänimi: Anna iot.app.initialstate.com -salasana:
Kun sinua kehotetaan hakemaan automaattisesti esimerkkikomentosarja, kirjoita y. Tämä luo testikomentosarjan, jonka voimme suorittaa varmistaaksemme, että voimme suoratoistaa tietoja alkuperäiseen tilaan. Seuraava kehote kysyy minne haluat tallentaa esimerkkitiedoston. Voit joko kirjoittaa mukautetun paikallisen polun tai painaa Enter hyväksyäksesi oletussijainnin. Lopuksi sinulta kysytään, mitä alkuperäisen valtion sovellusta käytät. Jos olet äskettäin luonut tilin, valitse vaihtoehto 2, kirjoita käyttäjänimesi ja salasanasi. Tämän jälkeen asennus on valmis.
Vaihe 4: Avaimet
Katsotaanpa esimerkkiä, joka luotiin. $ nano is_example.py Rivillä 15 näet rivin, joka alkaa streamer = Streamer (bucket_…. Tämä rivi luo uuden tietoryhmän nimeltä Python Stream Example ja liittyy tiliisi. Tämä yhteys johtuu access_key =”…” -parametri samalla rivillä. Tämä pitkä kirjainten ja numeroiden sarja on alkuperäisen valtion tilin käyttöavain. Jos siirryt alkuperäisen valtion tilillesi verkkoselaimessasi, napsauta oikeassa yläkulmassa olevaa käyttäjänimeäsi ja siirry "omat asetukset" -kohtaan, löydät saman käyttöavaimen sivun alareunasta "Streaming Access Keys" -kohdasta.
Joka kerta, kun luot tietovirran, kyseinen käyttöavain ohjaa kyseisen tietovirran tilillesi (joten älä jaa avainta kenellekään).
Vaihe 5: Suorita esimerkki
Suorita testikomentosarja varmistaaksesi, että voimme luoda tietovirran alkuperäisen valtion tilillesi. Suorita seuraava:
$ python on_esimerkki.py
Vaihe 6: Voitto
Palaa alkuperäisen valtion tilillesi verkkoselaimellasi. Python Stream -esimerkiksi kutsutun uuden tietoryhmän olisi pitänyt näkyä lokihyllyn vasemmalla puolella (sivu on ehkä päivitettävä). Napsauta tätä kauhaa ja napsauta sitten Waves -kuvaketta tarkastellaksesi testitietoja.
Vaihe 3: Python -skripti
Luo komentosarja ja avaa tekstieditori seuraavalla komennolla:
nano vistors.py
Kopioi ja ohita koodi täältä tekstieditoriin.
Ennen kuin yritämme suorittaa mitään, meidän on tehtävä muutamia muutoksia ja tarkistettava, mitä skriptissämme tapahtuu.
Tuo RPi. GPIO GPIO: ksi
ajan tuonnin lepotilasta ISStreamerista. Streamerin tuonti Streamer # Kerro Pi: lle, että käytämme sen numerointijärjestelmää GPIO.setmode (GPIO. BCM) # Nastat, jotka D1 ja LED on yhdistetty PIN -koodiin = 23 SININEN = 17 VIHREÄ = 27 PUNAINEN = 22 # Määritä liikeanturimme nasta tuloksi GPIO.setup (PIN, GPIO. IN) # Määritä LED -nastamme lähtöksi GPIO.setup (PUNAINEN, GPIO. LÄHTÖ) GPIO.lähtö (PUNAINEN, 0) GPIO.asetus (VIHREÄ, GPIO. OUT) GPIO. output (GREEN, 0) GPIO.setup (BLUE, GPIO. OUT) GPIO. output (BLUE, 0)
Rivit 1-21 ovat alustamista varten. Ensin tuomme Pi: n GPIO -käyttöliittymän ja tavan nukkua skriptimme. Tuomme sitten alkuperäisen tilan suoratoistimen, jonka asensimme edelliselle sivulle.
GPIO.setmode määrittää, mitä numerointijärjestelmää käytämme nastoille. Käytämme fyysisen sijainnin sijasta Pi: n numerointijärjestelmää. Kuten kaaviossa aiemmin, valitsemamme nastat olivat 23, 17, 27 ja 22. Asetimme sitten liiketapin tuloksi ja LED -nastat lähtöksi.
# Alkutilan kauhan nimi (näytössä)
BUCKET_NAME = ": jack_o_lantern: Trick or Treat Tracker" # Alkutilan kopioavain (piilotettu) BUCKET_KEY = "trickortreat" # Alkutilan käyttöavain ACCESS_KEY = "Your_Access_Key" # Muuttujat, jotka varmistavat, että emme striimaa sitä, onko olemassa tai ei liike kahdesti peräkkäin # Tämä säästää lähetettyjä tapahtumia ja prosessointitehoa joRecordedMotion = False jubaRecordedNoMotion = False counter = 0 # Alusta Initial Streamer streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) # LED muuttuu keltaiseksi GPIO -lähtö (PUNAINEN, 1) GPIO -lähtö (VIHREÄ, 1)
Rivit 23-41 ovat tärkeitä, koska alustamme alkuperäisen tilan suoratoistimen ja asetamme LEDin keltaiseksi. Laita alkutilan käyttöavain riville 28.
# Silmukka loputtomiin
kun taas Tosi: # Jos liikeanturi vetää korkealle (havaitsee liikkeen): jos GPIO.input (PIN) == 1: tulosta "Liike havaittu" # Jos emme ole vielä suoratoistaneet: jos ei ole joRecordedMotion: laskuri = laskuri + 1 # Aseta LED punaiseksi GPIO.output (PUNAINEN, 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 () jauRecordedMotion = Totta joRecordedNoMotion = False else: # Keskeytä skripti 1 sekunnin uneen (1) else: print "Ei liikettä havaittu" # Jos emme ole vielä suoratoistaneet: jos ei ole joRecordedNoMotion: # Aseta LED keltaiseksi GPIO.output (PUNAINEN, 1) GPIO.output (GREEN, 1) # Stream to Initial State streamer.log (": ghost: or: chocolate_bar:? ",": no_pedestrians: No One Around ") streamer.flush () jubaRecordedNoMotion = Totta joRecordedMotion = False else: # Keskeytä skripti 1 sekunniksi (1)
Rivit 43-77 ovat koodin lihaa. Jos liike havaitaan, käsikirjoitus tarkistaa, onko "Time For Treats!" on jo suoratoistettu. Jos näin ei ole, se lähetetään alkuperäiseen tilaan ja LED on punainen; Jos on, skripti odottaa 1 sekunnin ja lukee sitten liiketunnistimesta uudelleen. Sama koskee, jos liikettä ei havaita.
On aika testata koodi! Varmista, että olet tallentanut muokatun tiedoston, johon on lisätty käyttöavain riville 28, ja kirjoita sitten päätelaitteeseen:
python -kävijät.py
Sinun pitäisi nähdä merkkivalon palavan ja "Ei liikettä havaittu" alkaa tulostaa komentoriville. Kokeile heiluttaa kättäsi liiketunnistimen päällä - nyt pitäisi näkyä punainen valo ja "Liike havaittu" aloittaa tulostuksen!
Tarkista nyt, että lukemamme lähetetään alkuperäiseen tilaan.
Vaihe 4: Trick-or-Dashboard
Siirry alkuperäiseen tilaan ja tutustu kojelautaan! Sinun pitäisi nähdä ämpäri nimeltä "? Trick or Treat Tracker". Heiluta kättäsi liiketunnistimen lähellä ja katso sen päivitystä!
Koontinäyttöni koostuu kahdesta yhteenvetoruudusta, joissa näkyy viimeinen arvo ja tapahtumien lukumäärän histogrammi, jotta voin nähdä, milloin anturi on lauennut.
Tässä on joitain asioita, jotka on otettava huomioon:
- Haluat todennäköisesti jakaa "Nälkäisten ihmisten" määrän kahdella, jotta otat huomioon sen, että sama henkilö kulkee liiketunnistimen edessä kahdesti - matkalla ovellesi ja paluumatkalla. Voit tehdä tämän reaaliaikaisilla lausekkeilla käyttämällä yhtälöä "= math.round (([Hungry Humans?]/2), 0)".
- Voit testata liiketunnistimen herkkyyden ja asettaa sen jalkakäytävällesi sen mukaisesti. Ehdotan, että pidät sen riittävän kaukana ovesta, jotta se ei laukea, kun joku seisoo ovella.
- Voit myös asettaa tekstiviestihälytyksiä kertomaan, että joku lähestyy.
- Valitse taustakuva antaaksesi kojelaudallesi hieman aavemaisen persoonallisuuden!
Suositeltava:
Pelottava Pumpkin Candy Machine Halloweenille: 5 vaihetta
Pelottava Pumpkin Candy Machine Halloweenille: Hei kaikille! Hyvää Holloweenia !! Rakensimme kurpitsan lyhdyn, joka soittaa musiikkia ja sylkee karkkeja, kun joku tulee sen luo
Alexa-ohjattu Adam Savage Pumpkin: 5 vaihetta (kuvilla)
Alexa-ohjattu Adam Savage Pumpkin: Kaikki taloni valot ovat älykkäitä, joten olen tottunut huutamaan heille, että ne kytkeytyvät päälle ja pois, mutta se saa minut näyttämään tyhmältä, kun huudan valolle, joka ei ole . Ja näytän erityisen tyhmältä, kun huudan kynttilöitä.Normaalisti tämä ei ole liian mu
Pixel Pumpkin: 8 vaihetta (kuvilla)
Pixel Pumpkin: Luo huomaamaton kurpitsa, joka syttyy sisäpuolelta eri kuvioina kaukosäätimen avulla. Vaikka pikselit ovat monivärisiä, kurpitsan paksu iho suodattaa pois kaiken paitsi oranssin, joten pikselimme värit muuttuvat
Pumpkin Pi Digital Decoration Controller: 5 vaihetta (kuvilla)
Pumpkin Pi Digital Decoration Controller: Hei ihmiset, haluan esitellä teille Pumpkin Pi: n. Yksinkertaisesti sanottuna se on I/O-ohjain Raspberry Pi: lle, jossa on kaksitoista ohjelmoitavaa ulostuloa, mutta pienellä hokuspokuksella (tai Python-koodilla sinulle ja minulle) siitä tulee digitaalinen sisustusohjain
GIMP: 2 Layer Dialogs Trick: 5 vaihetta
The GIMP: 2 Layer Dialogs Trick: Tässä opit GIMP: n asetukset kopioiden tehokkaaseen kopioimiseen kuvien välillä. Tämä tulee tarpeelliseksi, kun käsitellään monimutkaisia teemoja. (Olen kuitenkin käyttänyt kahta abstraktia kuvaa yksinkertaisuuden vuoksi)