Ir al contenido principal
Todas las coleccionesTutoriales de proyectos IoT
Construyendo un Contador de Personas con Raspberry Pi y Ubidots
Construyendo un Contador de Personas con Raspberry Pi y Ubidots

Un contador de personas simple utilizando Raspberry Pi, un sensor de movimiento y Ubidots.

Sergio M avatar
Escrito por Sergio M
Actualizado hace más de 3 meses

Los contadores de personas se utilizan principalmente en la industria minorista para obtener mejores conocimientos sobre cómo se comportan los compradores. También se encuentran en aplicaciones de seguridad, gestión de eventos y ciudades inteligentes. Imagina que gestionas un gran centro comercial; estos contadores te ayudarían a saber cuántas personas entran en tu centro comercial, qué caminos toman, dónde se detienen y, sobre todo, cuándo ocurre todo esto.

Al igual que la mayoría de los sensores, los contadores de personas han estado disponibles durante un tiempo. Sin embargo, sus datos no siempre están centralizados y conectados a sistemas empresariales donde pueden apoyar la toma de decisiones.

En este artículo exploraremos un contador de personas muy básico hecho en casa y transmitiremos sus datos a la nube de Ubidots, donde se pueden crear mejores conocimientos.

Construí esto un día antes de una demostración en el Boston New Tech Meetup la semana pasada, ¡así que puedo decirte que fue un proyecto de bricolaje rápido y de bajo costo!

¿Qué es Ubidots?

Ubidots es un servicio en la nube para almacenar y analizar datos de sensores en tiempo real. Te permite crear aplicaciones para el Internet de las Cosas, sin necesidad de saber sobre programación web, bases de datos o APIs.

1. Lo que necesitarás

  • Raspberry Pi Modelo B:

  • 3 cables hembra-hembra

  • Una pequeña caja para acomodar todos los componentes

2. Cableado y Caja

Como puedes ver, el sensor de movimiento tiene solo tres pines: V+, Tierra y un tercero que emite la señal: "1" cuando hay movimiento, y "0" cuando no lo hay. No es necesario soldar nada, ni escribir funciones I2C o serial para detectar esta señal; simplemente conecta los cables directamente a los pines GPIO de tu Raspberry Pi:

Así es como se ve nuestro modelo:

**ACTUALIZACIÓN** Siguiendo una sugerencia de Doug Jefferies (¡Gracias!), los GPIO de Raspberry Pi están diseñados para 3.3v, pero estamos poniendo 5v allí. Así que es mejor idea conectar:

V+ --> Pin #1 (3.3v).

Debido a que el sensor es muy sensible al movimiento, utilicé el interruptor de salto detrás de él para establecer la sensibilidad más baja. Además, lo coloqué en una caja oscura con una pequeña apertura, para que la detección de movimiento se enfoque en un punto en lugar de ser tan omnidireccional:

3. Programación

En este punto, asumiremos que has realizado una configuración básica de tu Raspberry Pi y estás viendo su línea de comandos de Linux. Si no, te recomendamos seguir primero esta guía. También puedes consultar esta publicación sobre la configuración de WiFi en Raspberry Pi.

Asegurémonos de tener todas las bibliotecas:

$ sudo apt-get update$ sudo apt-get upgrade$ sudo apt-get install python-setuptools$ sudo easy_install pip$ pip install ubidots

Crea un nuevo archivo llamado "peoplecounter.py":

$ sudo nano peoplecounter.py

Y escribe el código disponible en él. Asegúrate de reemplazar los valores de la etiqueta del dispositivo, la etiqueta de la variable y el token de ubidots con los de tu cuenta personal de Ubidots.

(Nota: el código no es muy elegante, pero hey, no soy un desarrollador de Python, solo un chico de hardware :)

El script consiste en un bucle que verifica el estado del pin #7 (el sensor de movimiento). Si lee un "1", lo que significa que hubo movimiento, entonces incrementa la variable "peoplecount" y espera 1.5 segundos para que el sensor de movimiento vuelva a la normalidad. Esto se hace 10 veces, asegurándose de que haya al menos 1 segundo entre cada ciclo, luego envía la suma total de "movimientos" a Ubidots. Si necesitas calibrar el contador de personas, deberías jugar con las líneas "time.sleep" con otros valores.

Cuando el script haya terminado, estás listo para ejecutarlo desde la consola:

$ python peoplecounter.py

¡Eso es todo! Así es como se veían los datos en bruto en mi caso:

Ahora que los datos están en la nube, puedes agregar widgets en tu panel para mostrar la actividad en tiempo real. También puedes configurar "Eventos" en tu cuenta de Ubidots, para que recibas una notificación por SMS o correo electrónico cuando tu variable alcance un límite específico.

4. Conclusión

Este proyecto proporciona una indicación de la cantidad de personas que pasan por un punto particular. No proporciona el número exacto de personas, dadas las limitaciones del sensor de movimiento, pero en algunas aplicaciones esto podría ser suficiente.

Contadores de personas más elaborados utilizan cámaras y algoritmos de procesamiento de imágenes para detectar qué es el objeto en movimiento (persona, coche, mascota..), en qué dirección se mueve (dentro / fuera, izquierda / derecha) e incluso podrían extenderse, en teoría, para conocer la edad y el género de la persona.

Otra forma de detectar personas sería captar pasivamente las señales de radio de sus teléfonos inteligentes, como Wifi o Bluetooth (mira cómo este tipo detectó teléfonos inteligentes alrededor de su casa). En última instancia, la tecnología iBeacon también debería ser un gran facilitador de estas aplicaciones.

En cualquier caso, los datos recopilados se pueden enviar fácilmente a Ubidots, donde se pueden interpretar creando alertas, paneles en vivo o conectándolo a otros sistemas.

¿Tienes ideas de proyectos con sensores?

¡Crea una cuenta en Ubidots y hazlas realidad!

Contenido publicado originalmente en Ubidots Blog el 26 de agosto de 2013.

¿Ha quedado contestada tu pregunta?