Sisällysluettelo:

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

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

Video: Pumpkin Pi Trick-or-Treat Tracker: 5 vaihetta
Video: CAMPING on MOUNTAIN - Elevated TENT - RAIN 2024, Marraskuu
Anonim
Pumpkin Pi Trick-or-Treat Tracker
Pumpkin Pi Trick-or-Treat Tracker

Seuraa lisää tekijältä:

Raspberry Pi -lämpötilamittarin rakentaminen
Raspberry Pi -lämpötilamittarin rakentaminen
Raspberry Pi -lämpötilamittarin rakentaminen
Raspberry Pi -lämpötilamittarin rakentaminen
Suoratoista tietoja Google Sheetsistä hallintapaneeliin
Suoratoista tietoja Google Sheetsistä hallintapaneeliin
Suoratoista tietoja Google Sheetsistä hallintapaneeliin
Suoratoista tietoja Google Sheetsistä hallintapaneeliin
Lämpötila -anturien verkko
Lämpötila -anturien verkko
Lämpötila -anturien verkko
Lämpötila -anturien verkko

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

Laitteiston kokoonpano
Laitteiston kokoonpano
Laitteiston kokoonpano
Laitteiston kokoonpano
Laitteiston kokoonpano
Laitteiston kokoonpano

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

Alkuperäinen tila
Alkuperäinen tila
Alkuperäinen tila
Alkuperäinen tila

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

Trick-or-Treat Dashboard
Trick-or-Treat 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: