Tabla de contenido:

Rastreador de truco o trato de Pumpkin Pi: 5 pasos
Rastreador de truco o trato de Pumpkin Pi: 5 pasos

Video: Rastreador de truco o trato de Pumpkin Pi: 5 pasos

Video: Rastreador de truco o trato de Pumpkin Pi: 5 pasos
Video: НАУКА ЗА РАЗВОДОМ ЯРМАРОК - и как победить 2024, Mes de julio
Anonim
Rastreador de truco o trato de Pumpkin Pi
Rastreador de truco o trato de Pumpkin Pi

Por elizabethna

Cómo construir un monitor de temperatura Raspberry Pi
Cómo construir un monitor de temperatura Raspberry Pi
Cómo construir un monitor de temperatura Raspberry Pi
Cómo construir un monitor de temperatura Raspberry Pi
Transmitir datos desde Google Sheets a un panel
Transmitir datos desde Google Sheets a un panel
Transmitir datos desde Google Sheets a un panel
Transmitir datos desde Google Sheets a un panel
Red de sensores de temperatura
Red de sensores de temperatura
Red de sensores de temperatura
Red de sensores de temperatura

¿Busca un proyecto rápido de Halloween que sea útil en más de un sentido? ¿Quieres darle un buen uso a ese Pi Zero WH? ¿Quiere usar datos para determinar cuántos dulces necesitará para el próximo año?

¡Prepárate para construir el rastreador de trucos o golosinas Pumpkin Pi! Doblando como decoración y como un rastreador de personas, este Pi-in-a-Pumpkin cambia de color y fluye cuando se detecta movimiento. Comenzando desde cero, este proyecto no debería llevarte más de una tarde armarlo, ¡justo a tiempo para Halloween!

Suministros

  • Pi Zero WH con tarjeta SD
  • Sensor de movimiento PIR
  • LED RGB
  • Resistencias de 220 ohmios
  • (3) Líneas de unión (F / F, M / F, M / M)
  • Batería portátil
  • Calabaza falsa

Paso 1: Montaje de hardware

Ensamblaje de hardware
Ensamblaje de hardware
Ensamblaje de hardware
Ensamblaje de hardware
Ensamblaje de hardware
Ensamblaje de hardware

Una vez que tenga su Pi en funcionamiento, debemos conectar el sensor de movimiento y los LED. Asegúrese de que su Pi no esté conectado a la alimentación en este momento.

Nuestro sensor de movimiento requiere que lo conectemos a una potencia de 3.3V, tierra y un pin de datos. Conecté el pin del sensor de 3.3V al pin 1 del Pi, el pin del sensor de tierra al pin 6 del Pi y el pin del sensor de datos al pin 16 del Pi. La primera imagen muestra la conexión completa para el Pi y el sensor de movimiento.

Los LED son un poco más complicados que el sensor de movimiento porque requieren una resistencia para funcionar correctamente sin dañarlos ni dañar el Pi. Usé tres resistencias de 220 ohmios, pero las resistencias de 220 y 330 ohmios se usan generalmente con LED.

Para conectar todo, puede:

  • Suelde las patas del LED a las resistencias y luego coloque los cables en el Pi
  • Use una placa de pruebas y líneas de amarre para conectar todo
  • Use líneas de amarre y cinta aislante para conectar todo (como hice yo).

Conectaremos nuestro LED a los pines 11, 13 y 15. Sin embargo, esto es un poco más complicado que el sensor de movimiento, ¡porque las patas del LED corresponden a un color específico! La pierna larga es GND; y, en mi LED al menos, las patas se pusieron rojo, GND, azul, verde. Conecté el azul al pin 11 de Pi, el verde al pin 13 de Pi y el rojo al pin 15. La segunda imagen muestra las conexiones finales del circuito.

Paso 2: estado inicial

Estado inicial
Estado inicial
Estado inicial
Estado inicial

Claro que podemos ver cuándo se detecta movimiento con el LED, pero ¿cómo vamos a rastrear cuántos trucos o trucos pasaron para robar nuestros dulces?

Vamos a transmitir a un tablero cada vez que se inicie y deje de detectarse movimiento. Dado que se puede acceder a este tablero desde cualquier lugar con una conexión a Internet, podemos monitorear de forma remota si alguien se acerca o no a la puerta principal o al cuenco de dulces.

Paso 1: Regístrese para obtener una cuenta estatal inicial Vaya a https://iot.app.initialstate.com y cree una nueva cuenta.

Paso 2: Instale ISStreamer

Instale el módulo Python de estado inicial en su Raspberry Pi. En un símbolo del sistema (no olvides SSH en tu Pi primero), ejecuta el siguiente comando:

$ cd / inicio / pi /

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

Paso 3: haz algo de Automagic

Después del paso 2, verá algo similar al siguiente resultado en la pantalla:

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

Contraseña: Comenzando con ISStreamer Python ¡Fácil instalación! Esto puede tardar un par de minutos en instalarse, tómate un café:) Pero no olvides volver, ¡tendré preguntas más tarde! Encontrado easy_install: setuptools 1.1.6 Encontrado pip: pip 1.5.6 de /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip versión principal: 1 pip versión menor: 5 ISStreamer encontrado, actualizando… Requisito ya actualizado: ISStreamer en /Library/Python/2.7/site-packages Limpiando… ¿Desea obtener automáticamente un script de ejemplo? [s / N] ¿Dónde desea guardar el ejemplo? [predeterminado:./is_example.py] Seleccione qué aplicación de estado inicial está utilizando: 1. app.initialstate.com 2. [¡NUEVO!] iot.app.initialstate.com Ingrese la opción 1 o 2: Ingrese iot.app.initialstate.com nombre de usuario: Ingrese la contraseña de iot.app.initialstate.com:

Cuando se le solicite obtener automáticamente un script de ejemplo, escriba y. Esto creará un script de prueba que podemos ejecutar para asegurarnos de que podemos transmitir datos al estado inicial. El siguiente mensaje le preguntará dónde desea guardar el archivo de ejemplo. Puede escribir una ruta local personalizada o presionar enter para aceptar la ubicación predeterminada. Finalmente, se le preguntará qué aplicación de estado inicial está utilizando. Si ha creado una cuenta recientemente, seleccione la opción 2, ingrese su nombre de usuario y contraseña. Después de eso, la instalación estará completa.

Paso 4: claves de acceso

Echemos un vistazo a la secuencia de comandos de ejemplo que se creó. $ nano is_example.py En la línea 15, verá una línea que comienza con streamer = Streamer (bucket_…. Esta línea crea un nuevo depósito de datos llamado "Python Stream Example" y está asociado con su cuenta. Esta asociación ocurre debido a access_key =”…” parámetro en esa misma línea. Esa larga serie de letras y números es la clave de acceso a su cuenta de estado inicial. Si va a su cuenta de estado inicial en su navegador web, haga clic en su nombre de usuario en la parte superior derecha, luego vaya a "mi configuración", encontrará la misma clave de acceso en la parte inferior de la página en "Claves de acceso de transmisión".

Cada vez que crea un flujo de datos, esa clave de acceso dirigirá ese flujo de datos a su cuenta (por lo tanto, no comparta su clave con nadie).

Paso 5: ejecutar el ejemplo

Ejecute el script de prueba para asegurarse de que podamos crear un flujo de datos en su cuenta de estado inicial. Ejecute lo siguiente:

$ python is_example.py

Paso 6: Beneficio

Regrese a su cuenta de estado inicial en su navegador web. Debería haber aparecido un nuevo depósito de datos llamado "Python Stream Example" a la izquierda de su estantería de registros (es posible que deba actualizar la página). Haga clic en este cubo y luego haga clic en el icono de Waves para ver los datos de la prueba.

Paso 3: secuencia de comandos de Python

Cree un script y abra el editor de texto con el siguiente comando:

nano vistors.py

Copie y pegue el código de aquí a su editor de texto.

Antes de intentar ejecutar algo, debemos hacer algunas ediciones y revisar lo que está sucediendo en nuestro script.

importar RPi. GPIO como GPIO

from time import sleep desde ISStreamer. Streamer import Streamer # Dígale al Pi que vamos a usar su sistema de numeración GPIO.setmode (GPIO. BCM) # Pines que D1 y LED están conectados al PIN = 23 AZUL = 17 VERDE = 27 ROJO = 22 # Especifique nuestro pin de sensor de movimiento como entrada GPIO.setup (PIN, GPIO. IN) # Especifique nuestros pines de LED como salida GPIO.setup (RED, GPIO. OUT) GPIO.output (RED, 0) GPIO.setup (VERDE, GPIO. OUT) GPIO.output (VERDE, 0) GPIO.setup (AZUL, GPIO. OUT) GPIO.output (AZUL, 0)

Las líneas 1-21 son para inicialización. Primero importamos la interfaz GPIO de Pi y una forma de dormir nuestro script. Luego importamos el transmisor de estado inicial que instalamos en la página anterior.

GPIO.setmode especifica qué sistema de numeración estamos usando para los pines. En lugar de la ubicación física, estamos utilizando el sistema de numeración de Pi. Como en nuestro diagrama anterior, los pines que elegimos fueron 23, 17, 27 y 22. Luego configuramos el pin de movimiento como entrada y los pines LED como salida.

# Nombre del depósito de estado inicial (mostrado)

BUCKET_NAME = ": jack_o_lantern: Trick or Treat Tracker" # Clave de depósito de estado inicial (oculta) BUCKET_KEY = "trickortreat" # Clave de acceso de estado inicial ACCESS_KEY = "Your_Access_Key" # Variables que aseguran que no transmitamos que hubo o no hubo movimiento dos veces seguidas # Esto ahorra eventos enviados y potencia de procesamiento. el LED a amarillo GPIO.output (ROJO, 1) GPIO.output (VERDE, 1)

Las líneas 23-41 son importantes porque estamos inicializando el transmisor de estado inicial y configurando el LED en amarillo. Ponga su clave de acceso de estado inicial en la línea 28.

# Bucle indefinidamente

while Verdadero: # Si el sensor de movimiento tira alto (detecta movimiento): si GPIO.input (PIN) == 1: imprime "Movimiento detectado" # Si aún no lo hemos transmitido: si aún no lo hemos hechoRecordedMotion: contador = contador + 1 # Establezca el LED en rojo GPIO.output (ROJO, 1) GPIO.output (VERDE, 0) # Transmitir al estado inicial streamer.log (": ghost: o: chocolate_bar:?", ": chocolate_bar: Time For Treats!") streamer. # Si aún no lo hemos transmitido: si aún no lo hemos registradoRecordedNoMotion: # Establezca el LED en amarillo GPIO.output (RED, 1) GPIO.output (VERDE, 1) # Transmita al estado inicial streamer.log (": ghost: o: chocolate_bar:? ",": no_pedestrians: No One Around ") streamer.flush () alreadyRecordedNoMotion = True alreadyRecordedMotion = False else: # Pausar el script durante 1 segundo de suspensión (1)

Las líneas 43 a 77 son el meollo del código. Si se detecta movimiento, la secuencia de comandos verificará si "¡Hora de las golosinas!" ya se ha transmitido. Si no es así, se envía al estado inicial y el LED se fija en rojo; si es así, la secuencia de comandos espera 1 segundo y luego vuelve a leer desde el sensor de movimiento. Lo mismo ocurre si no se detecta movimiento.

¡Es hora de probar el código! Asegúrese de haber guardado su archivo editado con su clave de acceso agregada en la línea 28, y luego ingrese en la terminal:

visitantes de python.py

Debería ver que el LED se enciende y "No se detectó movimiento" comenzar a imprimirse en la línea de comando. Intente pasar la mano sobre el sensor de movimiento; ahora debería ver una luz roja y el mensaje "Movimiento detectado" comenzará a imprimirse.

Ahora para verificar que nuestras lecturas se estén transmitiendo al estado inicial.

Paso 4: Panel de truco o trato

Tablero de truco o trato
Tablero de truco o trato

¡Dirígete al estado inicial y revisa tu tablero! Debería ver un cubo llamado "? Trick or Treat Tracker". ¡Mueva la mano cerca del sensor de movimiento y observe cómo se actualiza!

Mi tablero consta de 2 mosaicos de resumen que muestran el último valor y un histograma de recuento de eventos para que pueda ver las veces que se activó el sensor.

A continuación, se incluyen algunas cosas a considerar:

  • Probablemente desee dividir el recuento de "seres humanos hambrientos" por 2 para tener en cuenta el hecho de que la misma persona pasará por delante del sensor de movimiento dos veces, de camino a su puerta y de regreso. Puede hacer esto con Expresiones en tiempo real usando la ecuación "= math.round (([Hungry Humans?] / 2), 0)".
  • Puede probar qué tan sensible parece ser su sensor de movimiento y colocarlo en su acera en consecuencia. Sugiero mantenerlo lo suficientemente lejos de la puerta para que no se dispare cuando alguien está parado en la puerta.
  • También puede configurar alertas de texto para avisarle que alguien se acerca.
  • ¡Elija una imagen de fondo para darle a su tablero una personalidad espeluznante!

Recomendado: