Table des matières:

Tracker Pumpkin Pi Trick-or-Treat: 5 étapes
Tracker Pumpkin Pi Trick-or-Treat: 5 étapes

Vidéo: Tracker Pumpkin Pi Trick-or-Treat: 5 étapes

Vidéo: Tracker Pumpkin Pi Trick-or-Treat: 5 étapes
Vidéo: Smart Ways That Will Get You More Halloween Candy When You Trick or Treat 2024, Juillet
Anonim
Traqueur Trick-or-Treat Pumpkin Pi
Traqueur Trick-or-Treat Pumpkin Pi

Par elizabethnaSuivez plus par l'auteur:

Comment construire un moniteur de température Raspberry Pi
Comment construire un moniteur de température Raspberry Pi
Comment construire un moniteur de température Raspberry Pi
Comment construire un moniteur de température Raspberry Pi
Diffuser des données de Google Sheets vers un tableau de bord
Diffuser des données de Google Sheets vers un tableau de bord
Diffuser des données de Google Sheets vers un tableau de bord
Diffuser des données de Google Sheets vers un tableau de bord
Réseau de capteurs de température
Réseau de capteurs de température
Réseau de capteurs de température
Réseau de capteurs de température

Vous cherchez un projet d'Halloween rapide et utile à plus d'un titre ? Vous voulez faire bon usage de ce Pi Zero WH ? Envie d'utiliser des données pour déterminer la quantité de bonbons dont vous aurez besoin pour l'année prochaine ?

Préparez-vous à construire le traqueur Pumpkin Pi Trick-or-Treat ! Double comme décoration et traqueur de personnes, ce Pi-in-a-Pumpkin change de couleur et diffuse lorsqu'un mouvement est détecté. En partant de zéro, ce projet ne devrait pas vous prendre plus d'un après-midi à monter - juste à temps pour Halloween !

Fournitures

  • Pi Zero WH avec carte SD
  • Capteur de mouvement PIR
  • LED RVB
  • Résistances 220 ohms
  • (3) lignes de cravate (F/F, M/F, M/M)
  • Batterie portable
  • Fausse citrouille

Étape 1: Assemblage du matériel

Assemblage du matériel
Assemblage du matériel
Assemblage du matériel
Assemblage du matériel
Assemblage du matériel
Assemblage du matériel

Une fois que votre Pi est opérationnel, nous devons connecter le capteur de mouvement et les LED. Assurez-vous que votre Pi n'est pas connecté à l'alimentation à ce stade.

Notre capteur de mouvement nécessite que nous le connections à une alimentation de 3,3 V, à la terre et à une broche de données. J'ai connecté la broche du capteur 3,3 V à la broche 1 du Pi, la broche du capteur de masse à la broche 6 du Pi et la broche du capteur de données à la broche 16 du Pi. La première image montre la connexion complète pour le Pi et le capteur de mouvement.

Les LED sont un peu plus délicates que le capteur de mouvement car elles nécessitent une résistance pour fonctionner correctement sans les endommager ni le Pi. J'ai utilisé trois résistances de 220 ohms mais les résistances de 220 et 330 ohms sont généralement utilisées avec les LED.

Pour tout câbler, vous pouvez soit:

  • Soudez les pattes LED aux résistances, puis faites passer les fils dans le Pi
  • Utilisez une planche à pain et des attaches pour tout connecter
  • Utilisez des attaches et du ruban électrique pour tout connecter (comme je l'ai fait).

Nous allons connecter notre LED aux broches 11, 13 et 15. C'est un peu plus délicat que le capteur de mouvement, car les pattes de la LED correspondent à une couleur spécifique ! La longue jambe est GND; et, sur ma LED au moins, les jambes sont devenues Rouge, GND, Bleu, Vert. J'ai connecté le bleu à la broche Pi 11, le vert à la broche Pi 13 et le rouge à la broche Pi 15. La deuxième image montre les connexions finales du circuit.

Étape 2: État initial

Etat initial
Etat initial
Etat initial
Etat initial

Bien sûr, nous pouvons voir quand un mouvement est détecté avec la LED, mais comment allons-nous suivre combien de bonbons ou de bonbons sont passés pour voler nos bonbons ?

Nous allons diffuser sur un tableau de bord chaque fois qu'un mouvement commence et cesse d'être détecté. Étant donné que ce tableau de bord est accessible de n'importe où avec une connexion Internet, nous pouvons surveiller à distance si quelqu'un s'approche ou non de la porte d'entrée/du bol de bonbons.

Étape 1: Inscrivez-vous au compte d'état initial Accédez à https://iot.app.initialstate.com et créez un nouveau compte.

Étape 2: Installez l'ISStreamer

Installez le module Python Initial State sur votre Raspberry Pi. À une invite de commande (n'oubliez pas d'abord de SSH dans votre Pi), exécutez la commande suivante:

$ cd /home/pi/

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

Étape 3: Faites de l'Automagic

Après l'étape 2, vous verrez quelque chose de similaire à la sortie suivante à l'écran:

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

Mot de passe: Début de l'installation facile d'ISStreamer Python ! Cela peut prendre quelques minutes à installer, prenez un café:) Mais n'oubliez pas de revenir, j'aurai des questions plus tard ! Trouvé easy_install: setuptools 1.1.6 Pip trouvé: pip 1.5.6 de /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) version majeure de pip: 1 version mineure de pip: 5 ISStreamer trouvé, mise à jour… Exigence déjà à jour: ISStreamer dans /Library/Python/2.7/site-packages Nettoyage… Voulez-vous obtenir automatiquement un exemple de script ? [o/N] Où voulez-vous enregistrer l'exemple ? [par défaut:./is_example.py] Veuillez sélectionner l'application Initial State que vous utilisez: 1. app.initialstate.com 2. [NOUVEAU !] iot.app.initialstate.com Entrez le choix 1 ou 2: Entrez iot.app Nom d'utilisateur.initialstate.com: Entrez le mot de passe iot.app.initialstate.com:

Lorsque vous êtes invité à obtenir automatiquement un exemple de script, tapez y. Cela créera un script de test que nous pouvons exécuter pour nous assurer que nous pouvons diffuser des données vers l'état initial. L'invite suivante vous demandera où vous souhaitez enregistrer le fichier d'exemple. Vous pouvez soit taper un chemin local personnalisé, soit appuyer sur Entrée pour accepter l'emplacement par défaut. Enfin, il vous sera demandé quelle application Initial State vous utilisez. Si vous avez récemment créé un compte, sélectionnez l'option 2, entrez votre nom d'utilisateur et votre mot de passe. Après cela, l'installation sera terminée.

Étape 4: Clés d'accès

Jetons un coup d'œil à l'exemple de script qui a été créé. $ nano is_example.py À la ligne 15, vous verrez une ligne commençant par streamer = Streamer(bucket_ …. Cette ligne crée un nouveau seau de données nommé « Python Stream Example » et est associé à votre compte. Cette association se produit en raison du access_key = "…" paramètre sur cette même ligne. Cette longue série de lettres et de chiffres est votre clé d'accès au compte Initial State. Si vous accédez à votre compte Initial State dans votre navigateur Web, cliquez sur votre nom d'utilisateur en haut à droite, puis allez à "mes paramètres", vous trouverez cette même clé d'accès en bas de la page sous "Clés d'accès en streaming".

Chaque fois que vous créez un flux de données, cette clé d'accès dirigera ce flux de données vers votre compte (donc ne partagez votre clé avec personne).

Étape 5: Exécuter l'exemple

Exécutez le script de test pour vous assurer que nous pouvons créer un flux de données sur votre compte Initial State. Exécutez ce qui suit:

$ python is_example.py

Étape 6: Profiter

Revenez à votre compte Initial State dans votre navigateur Web. Un nouveau compartiment de données appelé "Python Stream Example" aurait dû s'afficher à gauche dans votre étagère de journaux (vous devrez peut-être actualiser la page). Cliquez sur ce bucket, puis sur l'icône Waves pour afficher les données de test.

Étape 3: Script Python

Créez un script et ouvrez l'éditeur de texte avec la commande suivante:

nano vistors.py

Copiez et collez le code d'ici dans votre éditeur de texte.

Avant d'essayer d'exécuter quoi que ce soit, nous devons apporter quelques modifications et revoir ce qui se passe dans notre script.

importer RPi. GPIO en tant que GPIO

from time import sleep from ISStreamer. Streamer import Streamer # Dites au Pi que nous allons utiliser son système de numérotation GPIO.setmode(GPIO. BCM) # Broches auxquelles D1 et LED sont connectées PIN = 23 BLEU = 17 VERT = 27 ROUGE = 22 # Spécifiez notre broche de capteur de mouvement comme entrée GPIO.setup(PIN, GPIO. IN) # Spécifiez nos broches LED comme sortie GPIO.setup(RED, GPIO. OUT) GPIO.output(RED, 0) GPIO.setup(GREEN), GPIO. OUT) GPIO.output(GREEN, 0) GPIO.setup(BLUE, GPIO. OUT) GPIO.output(BLUE, 0)

Les lignes 1-21 sont pour l'initialisation. Tout d'abord, nous importons l'interface GPIO du Pi et un moyen de mettre en veille notre script. Ensuite, nous importons le streamer Initial State que nous avons installé à la page précédente.

GPIO.setmode spécifie le système de numérotation que nous utilisons pour les broches. Plutôt que l'emplacement physique, nous utilisons le système de numérotation du Pi. Comme dans notre schéma précédent, les broches que nous avons choisies étaient 23, 17, 27 et 22. Nous avons ensuite configuré la broche de mouvement comme entrée et les broches LED comme sortie.

# Nom du compartiment d'état initial (affiché)

BUCKET_NAME = ":jack_o_lantern: Trick or Treat Tracker" # Clé de compartiment d'état initial (cachée) BUCKET_KEY = "trickortreat" # Clé d'accès d'état initial ACCESS_KEY = "Your_Access_Key" # Variables qui garantissent que nous ne diffusons pas s'il y en a eu ou non mouvement deux fois de suite # Cela permet d'économiser sur les événements envoyés et la puissance de traitement déjàRecordedMotion = False déjàRecordedNoMotion = False counter = 0 # Initialiser l'état initial Streamer streamer = Streamer(bucket_name=BUCKET_NAME, bucket_key=BUCKET_KEY, access_key=ACCESS_KEY) # Allumer et définir la LED au jaune GPIO.output (RED, 1) GPIO.output (GREEN, 1)

Les lignes 23-41 sont importantes car nous initialisons le streamer Initial State et réglons la LED sur jaune. Mettez votre clé d'accès à l'état initial à la ligne 28.

# Boucle indéfiniment

while True: # Si le capteur de mouvement tire vers le haut (détecte le mouvement): if GPIO.input(PIN) == 1: imprimez "Mouvement détecté" # Si nous n'avons pas encore diffusé: si ce n'est pas déjà faitRecordedMotion: counter = counter + 1 # Réglez la LED sur rouge GPIO.output(RED, 1) GPIO.output(GREEN, 0) # Flux à l'état initial streamer.log(":ghost: ou:chocolate_bar:?", ":chocolate_bar: Time For Treats!") streamer.log(":candy: Hungry Humans?:candy:", counter) streamer.flush() déjàRecordedMotion = True déjàRecordedNoMotion = False else: # Pause le script pendant 1 seconde sleep(1) else: print "Aucun mouvement détecté" # Si nous n'avons pas encore diffusé: si ce n'est pas déjà faitRecordedNoMotion: # Réglez la LED sur jaune GPIO.output(RED, 1) GPIO.output(GREEN, 1) # Diffusez sur l'état initial streamer.log(":ghost: ou:chocolate_bar:?", ":no_pedestrians: No One Around") streamer.flush() déjàRecordedNoMotion = True déjàRecordedMotion = False else: # Pause le script pendant 1 seconde sleep(1)

Les lignes 43-77 sont la viande du code. Si un mouvement est détecté, le script vérifiera si « Time For Treats ! » a déjà été diffusé. Si ce n'est pas le cas, il est envoyé à l'état initial et la LED est réglée sur rouge; si c'est le cas, le script attend 1 seconde, puis lit à nouveau à partir du capteur de mouvement. Il en va de même si aucun mouvement n'est détecté.

Il est temps de tester le code ! Assurez-vous d'avoir enregistré votre fichier édité avec votre clé d'accès ajoutée à la ligne 28, puis entrez dans le terminal:

visiteurs python.py

Vous devriez voir le voyant s'allumer et "Aucun mouvement détecté" commencer à imprimer sur la ligne de commande. Essayez de passer votre main au-dessus du capteur de mouvement - vous devriez maintenant voir une lumière rouge et "Mouvement détecté" commencer à imprimer !

Maintenant, vérifiez que nos lectures sont transmises à l'état initial.

Étape 4: Tableau de bord Trick-or-Treat

Tableau de bord Trick-or-Treat
Tableau de bord Trick-or-Treat

Rendez-vous sur Initial State et consultez votre tableau de bord ! Vous devriez voir un seau appelé « ?Trick or Treat Tracker ». Agitez votre main près du capteur de mouvement et regardez-le se mettre à jour !

Mon tableau de bord se compose de 2 vignettes récapitulatives affichant la dernière valeur et un histogramme du nombre d'événements afin que je puisse voir à quelle heure le capteur a été déclenché.

Voici quelques trucs à prendre en compte:

  • Vous voudrez probablement diviser le nombre d'"humains affamés" par 2 pour tenir compte du fait que la même personne passera deux fois devant le détecteur de mouvement - en se rendant à votre porte et en revenant. Vous pouvez le faire avec des expressions en temps réel en utilisant l'équation "=math.round(([Hungry Humans?]/2), 0)".
  • Vous pouvez tester la sensibilité de votre capteur de mouvement et le placer sur votre trottoir en conséquence. Je suggère de le garder suffisamment loin de la porte pour qu'il ne se déclenche pas lorsque quelqu'un se tient à la porte.
  • Vous pouvez également configurer des alertes textuelles pour vous dire que quelqu'un s'approche.
  • Choisissez une image d'arrière-plan pour donner à votre tableau de bord une personnalité un peu effrayante !

Conseillé: