Sommario:

Tracker Dolcetto o scherzetto Pumpkin Pi: 5 passaggi
Tracker Dolcetto o scherzetto Pumpkin Pi: 5 passaggi

Video: Tracker Dolcetto o scherzetto Pumpkin Pi: 5 passaggi

Video: Tracker Dolcetto o scherzetto Pumpkin Pi: 5 passaggi
Video: СТРАННЫЕ НОВОСТИ НЕДЕЛИ - 22 | Таинственный | Вселенная | НЛО | Паранормальный 2024, Luglio
Anonim
Tracker dolcetto o scherzetto Pumpkin Pi
Tracker dolcetto o scherzetto Pumpkin Pi

Di elizabethnaFollow Altro dell'autore:

Come costruire un monitor di temperatura Raspberry Pi
Come costruire un monitor di temperatura Raspberry Pi
Come costruire un monitor di temperatura Raspberry Pi
Come costruire un monitor di temperatura Raspberry Pi
Trasmetti dati da Fogli Google a una dashboard
Trasmetti dati da Fogli Google a una dashboard
Trasmetti dati da Fogli Google a una dashboard
Trasmetti dati da Fogli Google a una dashboard
Rete di sensori di temperatura
Rete di sensori di temperatura
Rete di sensori di temperatura
Rete di sensori di temperatura

Cerchi un progetto veloce di Halloween che sia utile in più di un modo? Vuoi mettere a frutto quel Pi Zero WH? Hai voglia di usare i dati per determinare quante caramelle ti serviranno per il prossimo anno?

Preparati a costruire il tracker Dolcetto o scherzetto di Pumpkin Pi! Questo Pi-in-a-Pumpkin, che funge anche da decorazione e tracker di persone, cambia colore e scorre quando viene rilevato un movimento. Partendo da zero, questo progetto non dovrebbe richiedere più di un pomeriggio per essere messo insieme, giusto in tempo per Halloween!

Forniture

  • Pi Zero WH con scheda SD
  • Sensore di movimento PIR
  • LED RGB
  • Resistori da 220 ohm
  • (3) Linee di collegamento (F/F, M/F, M/M)
  • Batteria portatile
  • zucca finta

Passaggio 1: assemblaggio dell'hardware

Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware

Una volta installato e funzionante il Pi, è necessario collegare il sensore di movimento e i LED. Assicurati che Pi non sia collegato all'alimentazione a questo punto.

Il nostro sensore di movimento richiede che lo colleghiamo a 3,3 V di alimentazione, terra e un pin dati. Ho collegato il pin del sensore da 3,3 V al pin 1 del Pi, il pin del sensore Ground al pin 6 del Pi e il pin del sensore dati al pin 16 del Pi. La prima immagine mostra la connessione completa per il Pi e il sensore di movimento.

I LED sono un po' più complicati del sensore di movimento perché richiedono un resistore per funzionare correttamente senza danneggiare loro o il Pi. Ho usato tre resistori da 220 ohm, ma i resistori da 220 e 330 ohm sono solitamente usati con i LED.

Per cablare tutto puoi:

  • Saldare le gambe del LED ai resistori e quindi eseguire i fili nel Pi
  • Usa una breadboard e delle linee di collegamento per collegare tutto
  • Usa linee di collegamento e nastro isolante per collegare tutto (come ho fatto io).

Collegheremo il nostro LED ai pin 11, 13 e 15. Questo è un po' più complicato del sensore di movimento, però, perché le gambe del LED corrispondono a un colore specifico! La gamba lunga è GND; e, almeno sul mio LED, le gambe sono diventate Rosso, GND, Blu, Verde. Ho collegato il blu al pin 11, il verde al pin 13 e il rosso al pin 15. La seconda immagine mostra le connessioni finali del circuito.

Passaggio 2: stato iniziale

Stato iniziale
Stato iniziale
Stato iniziale
Stato iniziale

Certo, possiamo vedere quando viene rilevato un movimento con il LED, ma come faremo a tenere traccia di quanti dolcetti o scherzetti sono passati per rubare le nostre caramelle?

Andremo in streaming su una dashboard ogni volta che il movimento inizia e smette di essere rilevato. Poiché questa dashboard è accessibile da qualsiasi luogo con una connessione Internet, possiamo monitorare in remoto se qualcuno si sta avvicinando o meno alla porta d'ingresso/alla ciotola delle caramelle.

Passaggio 1: registrarsi per l'account di stato inizialeVai a https://iot.app.initialstate.com e crea un nuovo account.

Passaggio 2: installa ISStreamer

Installa il modulo Python stato iniziale sul tuo Raspberry Pi. Al prompt dei comandi (non dimenticare di SSH prima nel tuo Pi), esegui il seguente comando:

$ cd /home/pi/

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

Passaggio 3: crea un po' di Automagic

Dopo il passaggio 2 vedrai qualcosa di simile al seguente output sullo schermo:

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

Password: inizia l'installazione facile di ISStreamer Python! L'installazione potrebbe richiedere un paio di minuti, prendi un caffè:) Ma non dimenticare di tornare, avrò domande più tardi! Trovato easy_install: setuptools 1.1.6 Trovato pip: pip 1.5.6 da /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 trovato, aggiornamento… Requisito già aggiornato: ISStreamer in /Library/Python/2.7/site-packages Pulizia… Vuoi ottenere automaticamente uno script di esempio? [y/N] Dove vuoi salvare l'esempio? [predefinito:./is_example.py] Seleziona quale app stato iniziale stai utilizzando: 1. app.initialstate.com 2. [NOVITÀ!] iot.app.initialstate.com Inserisci la scelta 1 o 2: inserisci iot.app Nome utente.initialstate.com: Inserisci la password iot.app.initialstate.com:

Quando viene richiesto di ottenere automaticamente uno script di esempio, digitare y. Questo creerà uno script di test che possiamo eseguire per assicurarci di poter trasmettere i dati allo stato iniziale. Il prompt successivo ti chiederà dove vuoi salvare il file di esempio. Puoi digitare un percorso locale personalizzato o premere invio per accettare la posizione predefinita. Infine, ti verrà chiesto quale app Stato iniziale stai utilizzando. Se hai creato un account di recente, seleziona l'opzione 2, inserisci il nome utente e la password. Dopodiché l'installazione sarà completata.

Passaggio 4: chiavi di accesso

Diamo un'occhiata allo script di esempio che è stato creato. $ nano is_example.py Sulla riga 15, vedrai una riga che inizia con streamer = Streamer(bucket_ …. Questa riga crea un nuovo bucket di dati chiamato "Python Stream Example" ed è associato al tuo account. Questa associazione avviene a causa del access_key="…" parametro su quella stessa riga. Quella lunga serie di lettere e numeri è la chiave di accesso al tuo account di stato iniziale. Se vai al tuo account di stato iniziale nel tuo browser web, fai clic sul tuo nome utente in alto a destra, quindi vai in "le mie impostazioni", troverai la stessa chiave di accesso nella parte inferiore della pagina sotto "Chiavi di accesso allo streaming".

Ogni volta che crei un flusso di dati, quella chiave di accesso indirizzerà quel flusso di dati al tuo account (quindi non condividere la tua chiave con nessuno).

Passaggio 5: eseguire l'esempio

Esegui lo script di prova per assicurarci di poter creare un flusso di dati sul tuo account Stato iniziale. Esegui quanto segue:

$ python è_esempio.py

Passaggio 6: profitto

Torna al tuo account di stato iniziale nel tuo browser web. Un nuovo bucket di dati chiamato "Python Stream Example" dovrebbe essere visualizzato a sinistra nel tuo scaffale di registro (potrebbe essere necessario aggiornare la pagina). Fare clic su questo bucket e quindi sull'icona Waves per visualizzare i dati del test.

Passaggio 3: script Python

Crea uno script e apri l'editor di testo con il seguente comando:

nano visitatori.py

Copia e incolla il codice da qui a nel tuo editor di testo.

Prima di provare a eseguire qualsiasi cosa, dobbiamo apportare alcune modifiche e rivedere cosa sta succedendo nel nostro script.

importa RPi. GPIO come GPIO

from time import sleep from ISStreamer. Streamer import Streamer # Comunica al Pi che utilizzeremo il suo sistema di numerazione GPIO.setmode(GPIO. BCM) # Pin a cui D1 e LED sono collegati al PIN = 23 BLU = 17 VERDE = 27 ROSSO = 22 # Specifica il nostro pin del sensore di movimento come input GPIO.setup(PIN, GPIO. IN) # Specifica i nostri pin LED come output GPIO.setup(RED, GPIO. OUT) GPIO.output(RED, 0) GPIO.setup(GREEN, GPIO. OUT) GPIO.output(VERDE, 0) GPIO.setup(BLUE, GPIO. OUT) GPIO.output(BLU, 0)

Le righe 1-21 sono per l'inizializzazione. Per prima cosa importiamo l'interfaccia GPIO del Pi e un modo per dormire il nostro script. Quindi importiamo lo streamer Stato iniziale che abbiamo installato nella pagina precedente.

GPIO.setmode specifica quale sistema di numerazione stiamo usando per i pin. Piuttosto che la posizione fisica, stiamo usando il sistema di numerazione del Pi. Come nel nostro diagramma precedente, i pin che abbiamo scelto erano 23, 17, 27 e 22. Quindi impostiamo il pin di movimento come input e i pin LED come output.

# Nome del bucket di stato iniziale (visualizzato)

BUCKET_NAME = ":jack_o_lantern: Dolcetto o scherzetto Tracker" # Chiave del bucket dello stato iniziale (nascosta) BUCKET_KEY = "trickortreat" # Chiave di accesso dello stato iniziale ACCESS_KEY = "Your_Access_Key" # Variabili che ci assicurano di non trasmettere in streaming che c'era o non c'era motion due volte di seguito # Ciò consente di risparmiare sugli eventi inviati e sulla potenza di elaborazione giàRecordedMotion = False giàRecordedNoMotion = False counter = 0 # Inizializza lo stato iniziale Streamer streamer = Streamer(bucket_name=BUCKET_NAME, bucket_key=BUCKET_KEY, access_key=ACCESS_KEY) # Accendi e imposta il LED diventa giallo GPIO.output(RED, 1) GPIO.output(VERDE, 1)

Le righe 23-41 sono importanti perché stiamo inizializzando lo streamer Stato iniziale e impostando il LED su giallo. Inserisci la tua chiave di accesso per lo stato iniziale sulla linea 28.

# Loop indefinitamente

while True: # Se il sensore di movimento si alza (rileva il movimento): if GPIO.input(PIN) == 1: print "Movimento rilevato" # Se non abbiamo ancora trasmesso in streaming: if non giàRecordedMotion: counter = counter + 1 # Imposta il LED su rosso GPIO.output(RED, 1) GPIO.output(GREEN, 0) # Trasmetti allo stato iniziale streamer.log(":ghost: or:chocolate_bar:?", ":chocolate_bar: Time For Treats!") streamer.log(":candy: Hungry Humans?:candy:", counter) streamer.flush() giàRecordedMotion = True theseRecordedNoMotion = False else: # Sospende lo script per 1 secondo sleep(1) else: print "Nessun movimento rilevato" # Se non abbiamo ancora trasmesso in streaming: se non giàRecordedNoMotion: # Imposta il LED su giallo GPIO.output(RED, 1) GPIO.output(GREEN, 1) # Streaming allo stato iniziale streamer.log(":ghost: or:chocolate_bar:?", ":no_pedestrians: No One Around") streamer.flush() giàRecordedNoMotion = True giàRecordedMotion = False else: # Sospende lo script per 1 secondo sleep(1)

Le righe 43-77 sono la carne del codice. Se viene rilevato un movimento, lo script verificherà se "Time For Treats!" è già stato trasmesso in streaming. In caso contrario, viene inviato allo stato iniziale e il LED è rosso; in caso affermativo, lo script attende 1 secondo e poi legge di nuovo dal sensore di movimento. Lo stesso vale se non viene rilevato alcun movimento.

È ora di testare il codice! Assicurati di aver salvato il file modificato con la tua chiave di accesso aggiunta alla riga 28, quindi inserisci nel terminale:

python visitatori.py

Dovresti vedere il LED accendersi e "Nessun movimento rilevato" iniziare a stampare sulla riga di comando. Prova ad agitare la mano sul sensore di movimento: ora dovresti vedere una luce rossa e "Movimento rilevato" iniziare a stampare!

Ora per verificare che le nostre letture vengano trasmesse allo stato iniziale.

Passaggio 4: dashboard Dolcetto o scherzetto

Dashboard Dolcetto o scherzetto
Dashboard Dolcetto o scherzetto

Vai a Stato iniziale e controlla la tua dashboard! Dovresti vedere un secchio chiamato "Trick or Treat Tracker". Agita la mano vicino al sensore di movimento e guardalo aggiornarsi!

La mia dashboard è composta da 2 riquadri di riepilogo che mostrano l'ultimo valore e un istogramma del conteggio degli eventi in modo da poter vedere a che ora è stato attivato il sensore.

Ecco alcune cose da considerare:

  • Probabilmente vorrai dividere il conteggio di "Hungry Humans" per 2 per tenere conto del fatto che la stessa persona passerà davanti al sensore di movimento due volte: sulla strada per la tua porta e sulla via del ritorno. Puoi farlo con le espressioni in tempo reale usando l'equazione "=math.round(([Hungry Humans?]/2), 0)".
  • Puoi testare la sensibilità del tuo sensore di movimento e posizionarlo di conseguenza sul marciapiede. Suggerisco di tenerlo abbastanza lontano dalla porta in modo che non si attivi quando qualcuno è in piedi sulla porta.
  • Puoi anche impostare avvisi di testo per dirti che qualcuno si sta avvicinando.
  • Scegli un'immagine di sfondo per dare alla tua dashboard una personalità un po' spettrale!

Consigliato: