Cuprins:

Pumpkin Pi Trick-or-Treat Tracker: 5 pași
Pumpkin Pi Trick-or-Treat Tracker: 5 pași

Video: Pumpkin Pi Trick-or-Treat Tracker: 5 pași

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

De elizabethna Urmăriți mai multe de la autor:

Cum se construiește un monitor de temperatură Raspberry Pi
Cum se construiește un monitor de temperatură Raspberry Pi
Cum se construiește un monitor de temperatură Raspberry Pi
Cum se construiește un monitor de temperatură Raspberry Pi
Transmiteți date din Foi de calcul Google într-un tablou de bord
Transmiteți date din Foi de calcul Google într-un tablou de bord
Transmiteți date din Foi de calcul Google într-un tablou de bord
Transmiteți date din Foi de calcul Google într-un tablou de bord
Rețea de senzori de temperatură
Rețea de senzori de temperatură
Rețea de senzori de temperatură
Rețea de senzori de temperatură

Căutați un proiect rapid de Halloween care să fie util în mai multe moduri? Doriți să folosiți acea Pi Zero WH? Aveți chef să folosiți date pentru a determina câtă bomboană veți avea nevoie pentru anul viitor?

Pregătește-te să construiești Pumpkin Pi Trick-or-Treat Tracker! Dublat ca decor și ca un tracker de oameni, acest Pi-in-a-Pumpkin își schimbă culoarea și curge atunci când este detectată mișcarea. Începând de la zero, acest proiect nu ar trebui să vă ia mai mult de o după-amiază pentru a pune împreună - tocmai la timp pentru Halloween!

Provizii

  • Pi Zero WH cu card SD
  • Senzor de mișcare PIR
  • LED RGB
  • Rezistențe de 220 ohmi
  • (3) Linii de legătură (F / F, M / F, M / M)
  • Baterie portabilă
  • Dovleac fals

Pasul 1: Asamblare hardware

Asamblare hardware
Asamblare hardware
Asamblare hardware
Asamblare hardware
Asamblare hardware
Asamblare hardware

Odată ce ai Pi-ul în funcțiune, trebuie să conectăm senzorul de mișcare și LED-urile. Asigurați-vă că Pi nu este conectat la alimentare în acest moment.

Senzorul nostru de mișcare necesită conectarea acestuia la o alimentare de 3,3 V, la masă și la un pin de date. Am conectat pinul senzorului de 3,3 V la pinul 1 al Pi, pinul senzorului de masă la pinul 6 al Pi și pinul senzorului de date la pinul 16 al Pi. Prima imagine arată conexiunea completă pentru Pi și senzorul de mișcare.

LED-urile sunt puțin mai complicate decât senzorul de mișcare, deoarece necesită un rezistor pentru a funcționa corect fără a le deteriora sau pe Pi. Am folosit trei rezistențe de 220 ohmi, dar rezistențele de 220 și 330 ohmi sunt de obicei folosite cu LED-uri.

Pentru a conecta totul, puteți:

  • Lipiți picioarele LED la rezistențe și apoi rulați firele în Pi
  • Utilizați o placă de calcul și legați linii pentru a conecta totul
  • Folosiți linii de legare și bandă electrică pentru a conecta totul (așa cum am făcut-o).

Vom conecta LED-ul nostru la pinii 11, 13 și 15. Acest lucru este puțin mai dificil decât senzorul de mișcare, deoarece picioarele de pe LED corespund unei culori specifice! Piciorul lung este GND; și, cel puțin pe LED-ul meu, picioarele au devenit roșu, GND, albastru, verde. Am conectat albastru la pinul 11, verde la pinul 13 și roșu la pinul 15. A doua imagine arată conexiunile finale ale circuitului.

Pasul 2: Starea inițială

Stare initiala
Stare initiala
Stare initiala
Stare initiala

Sigur, putem vedea când este detectată mișcarea cu LED-ul, dar cum vom urmări câte trucuri sau tratamente au căzut pentru a ne fura bomboanele?

Vom transmite la un tablou de bord de fiecare dată când mișcarea începe și nu mai este detectată. Deoarece acest tablou de bord este accesibil de oriunde cu o conexiune la internet, putem monitoriza de la distanță dacă cineva se apropie sau nu de ușa din față / bolul cu bomboane.

Pasul 1: Înregistrați-vă pentru contul de stat inițial Accesați https://iot.app.initialstate.com și creați un cont nou.

Pasul 2: Instalați ISStreamer

Instalați modulul Initial State Python pe Raspberry Pi. La promptul de comandă (nu uitați mai întâi SSH în Pi), rulați următoarea comandă:

$ cd / home / pi /

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

Pasul 3: Faceți ceva Automagic

După Pasul 2 veți vedea ceva similar cu următoarea ieșire pe ecran:

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

Parolă: Începând cu ISStreamer Python Instalare ușoară! Acest lucru poate dura câteva minute pentru a instala, luați o cafea:) Dar nu uitați să vă întoarceți, voi avea întrebări mai târziu! S-a găsit easy_install: setuptools 1.1.6 S-a găsit pip: pip 1.5.6 din /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) versiune principală pip: 1 versiune pip minoră: 5 ISStreamer găsit, actualizare … Cerință deja actualizată: ISStreamer în /Library/Python/2.7/site-packages Curățare … Doriți să obțineți automat un exemplu de script? [y / N] Unde doriți să salvați exemplul? [implicit:./is_example.py] Vă rugăm să selectați aplicația Stare inițială pe care o utilizați: 1. app.initialstate.com 2. [NOU!] iot.app.initialstate.com Introduceți alegerea 1 sau 2: Introduceți iot.app.initialstate.com nume utilizator: Introduceți parola iot.app.initialstate.com:

Când vi se solicită să obțineți automat un exemplu de script, tastați y. Aceasta va crea un script de testare pe care îl putem rula pentru a ne asigura că putem transmite în flux date în starea inițială. Următorul prompt vă va întreba unde doriți să salvați fișierul de exemplu. Puteți să tastați o cale locală personalizată sau să apăsați Enter pentru a accepta locația implicită. În cele din urmă, veți fi întrebat ce aplicație de stare inițială utilizați. Dacă ați creat recent un cont, selectați opțiunea 2, introduceți numele de utilizator și parola. După aceea, instalarea va fi completă.

Pasul 4: Taste de acces

Să aruncăm o privire la exemplul de script care a fost creat. $ nano is_example.py Pe linia 15, veți vedea o linie care începe cu streamer = Streamer (bucket_ …. Această linie creează o nouă bucket de date numită „Exemplu de flux Python” și este asociată contului dvs. access_key = "…" parametru pe aceeași linie. Această serie lungă de litere și cifre este cheia de acces la contul dvs. de stat inițial. Dacă accesați contul dvs. de stat inițial din browserul dvs. web, faceți clic pe numele de utilizator din dreapta sus, apoi accesați la „setările mele”, veți găsi aceeași cheie de acces în partea de jos a paginii sub „Chei de acces în flux”.

De fiecare dată când creați un flux de date, acea cheie de acces va direcționa fluxul de date către contul dvs. (deci nu partajați cheia cu nimeni).

Pasul 5: Rulați exemplul

Rulați scriptul de testare pentru a ne asigura că putem crea un flux de date în contul dvs. de stare inițială. Rulați următoarele:

$ python is_example.py

Pasul 6: Profit

Reveniți la contul de stat inițial din browserul dvs. web. O nouă bucată de date numită „Exemplu de flux Python” ar fi trebuit să apară în stânga în raftul jurnalului (poate fi necesar să reîmprospătați pagina). Faceți clic pe acest compartiment și apoi faceți clic pe pictograma Waves pentru a vizualiza datele de testare.

Pasul 3: Script Python

Creați un script și deschideți editorul de text cu următoarea comandă:

nano vistors.py

Copiați și treceți codul de aici în editorul de text.

Înainte de a încerca să rulăm ceva, trebuie să facem câteva modificări și să examinăm ceea ce se întâmplă în scriptul nostru.

importați RPi. GPIO ca GPIO

din timp import somn de la ISStreamer. Streamer import Streamer # Spuneți Pi că vom folosi sistemul său de numerotare GPIO.setmode (GPIO. BCM) # Pinii care D1 și LED sunt conectați la PIN = 23 ALBASTRU = 17 VERDE = 27 ROȘU = 22 # Specificați pinul senzorului de mișcare ca intrare GPIO.setup (PIN, GPIO. IN) # Specificați pinii LED-ului nostru ca ieșire GPIO.setup (RED, GPIO. OUT) GPIO.output (RED, 0) GPIO.setup (VERDE), GPIO. OUT) GPIO.output (VERZ, 0) GPIO.setup (ALBASTRU, GPIO. OUT) GPIO.output (ALBASTRU, 0)

Liniile 1-21 sunt pentru inițializare. Mai întâi importăm interfața GPIO a lui Pi și o modalitate de a ne dormi scriptul. Apoi importăm streamerul de stare inițială pe care l-am instalat pe pagina anterioară.

GPIO.setmode specifică sistemul de numerotare pe care îl folosim pentru pini. Mai degrabă decât locația fizică, folosim sistemul de numerotare Pi. La fel ca în diagrama noastră anterioară, pinii pe care i-am ales au fost 23, 17, 27 și 22. Am configurat apoi pinul de mișcare ca intrare și pinii LED ca ieșire.

# Numele inițial al cupei de stat (afișat)

BUCKET_NAME = ": jack_o_lantern: Trick or Treat Tracker" # Cheie de bucket de stare inițială (ascunsă) BUCKET_KEY = "trickortreat" # Cheie de acces de stare inițială ACCESS_KEY = "Your_Access_Key" # Variabile care ne asigură că nu difuzăm că a existat sau nu a existat mișcare de două ori la rând # Aceasta economisește evenimentele trimise și puterea de procesare deja RecordedMotion = False deja RecordedNoMotion = Contor fals = 0 # Inițializați Initial State Streamer streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) # Porniți și setați ieșirea LED la galben GPIO.output (RED, 1) GPIO.output (VERDE, 1)

Liniile 23-41 sunt importante deoarece inițializăm streamerul de stare inițială și setăm LED-ul la galben. Puneți cheia de acces la starea inițială pe linia 28.

# Buclați la nesfârșit

în timp ce este adevărat: # Dacă senzorul de mișcare trage în sus (detectează mișcarea): dacă GPIO.input (PIN) == 1: tipăriți "Mișcare detectată" # Dacă nu am transmis încă: dacă nu deja RecordedMotion: contor = contor + 1 # Setați LED-ul la GPIO.output roșu (RED, 1) GPIO.output (GREEN, 0) # Flux la starea inițială streamer.log (": ghost: or: chocolate_bar:?", ": chocolate_bar: Time For Treats!") streamer.log (": candy: Hungry Humans?: candy:", counter) streamer.flush () alreadyRecordedMotion = Adevărat dejaRecordedNoMotion = Altceva fals: # Întrerupeți scriptul pentru o secundă de somn (1) altceva: tipăriți "Nu a fost detectată nicio mișcare" # Dacă nu am transmis încă un flux: dacă nu deja Înregistrat NoMotion: # Setați LED-ul pe galben GPIO.output (RED, 1) GPIO.output (GREEN, 1) # Stream către Initial State streamer.log (": ghost: or: chocolate_bar:? ",": no_pedestrians: No One Around ") streamer.flush () alreadyRecordedNoMotion = Adevărat dejaRecordedMotion = Altceva fals: # Întrerupeți scriptul pentru o secundă de somn (1)

Liniile 43-77 sunt carnea codului. Dacă se detectează mișcare, scriptul va verifica dacă „Timpul pentru tratamente!” a fost deja transmis în flux. Dacă nu, este trimis la starea inițială și LED-ul este setat la roșu; dacă are, scriptul așteaptă 1 secundă și apoi citește din nou din senzorul de mișcare. Același lucru este valabil dacă nu este detectată nicio mișcare.

Este timpul să testați codul! Asigurați-vă că ați salvat fișierul editat cu cheia de acces adăugată pe linia 28, apoi intrați în terminal:

python visitors.py

Ar trebui să vedeți LED-ul aprins și „Fără mișcare detectată” începe să imprimați pe linia de comandă. Încercați să fluturați mâna peste senzorul de mișcare - ar trebui să vedeți acum o lumină roșie și „Mișcare detectată” începe să imprimați!

Acum, pentru a verifica dacă citirile noastre sunt transmise la starea inițială.

Pasul 4: Tablou de bord Trick-or-Treat

Tabloul de bord Trick-or-Treat
Tabloul de bord Trick-or-Treat

Mergeți la Starea inițială și verificați tabloul de bord! Ar trebui să vedeți o găleată numită „? Urmărire trucuri sau tratamente”. Fluturați mâna lângă senzorul de mișcare și urmăriți-l cum se actualizează!

Tabloul meu de bord constă din 2 plăci sumare care afișează ultima valoare și o histogramă a numărului de evenimente, astfel încât să pot vedea la ce oră a fost declanșat senzorul.

Iată câteva lucruri de luat în considerare:

  • Probabil că doriți să împărțiți numărul „Oamenilor înfometați” la 2 pentru a explica faptul că aceeași persoană va trece în fața senzorului de mișcare de două ori - în drumul spre ușa dvs. și pe drumul de întoarcere. Puteți face acest lucru cu expresiile în timp real folosind ecuația „= math.round (([Hungry Humans?] / 2), 0)”.
  • Puteți testa cât de sensibil pare senzorul dvs. de mișcare și îl puteți așeza pe trotuar în consecință. Vă sugerez să îl păstrați suficient de departe de ușă încât să nu se declanșeze când cineva stă la ușă.
  • De asemenea, puteți configura alerte text pentru a vă spune că se apropie cineva.
  • Alegeți o imagine de fundal pentru a oferi tabloului de bord o personalitate puțin înfricoșătoare!

Recomandat: