Construyendo un contador de personas con Raspberry Pi y Ubidots
Ubidots es un servicio en la nube que permite almacenar y analizar datos de sensores en tiempo real . Permite crear aplicaciones para el Internet de las Cosas (IoT) sin necesidad de conocimientos avanzados edge programación web, bases de datos o API.

– Una pequeña batería, con su cable micro-USB:

– Sensor de movimiento de Parallax:


ACTUALIZACIÓN: Siguiendo una sugerencia de Doug Jefferies (¡Gracias!), las entradas y salidas de la Raspberry Pi están diseñadas para 3,3 V, pero estamos usando 5 V. Por lo tanto, es mejor conectar:
V+ -> Pin #1 (3,3v).
Dado que el sensor es muy sensible al movimiento, usé el interruptor de puente trasero para ajustar la sensibilidad mínima. Además, lo coloqué en una caja oscura con una pequeña apertura para que la detección de movimiento se centre en un punto en lugar de ser omnidireccional


Codificación
Crea un nuevo archivo llamado “peoplecounter.py”:
$ sudo nano contador de personas.py
Escribe el siguiente código. Asegúrate de reemplazar los valores de la clave API y el ID de la variable con los de tu cuenta personal Ubidots .
(Nota: el código no es muy elegante, pero bueno, no soy un desarrollador de Python, solo un experto en hardware 🙂
from ubidots import ApiClient import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(7, GPIO.IN) try: api = ApiClient("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3") people = api.get_variable("5238cec3f91b282c7357a140") except: print "No se pudo conectar a la API, verifique su conexión a Internet" counter = 0 peoplecount = 0 while(1): presence = GPIO.input(7) if(presence): peoplecount += 1 presence = 0 time.sleep(1.5) time.sleep(1) counter += 1 if(counter==10): print peoplecount people.save_value({'value':peoplecount}) counter = 0 peoplecount = 0
$ python peoplecounter.py
Ahora que los datos están en la nube, puedes añadir widgets a tu dashboard para ver la actividad en tiempo real. También puedes configurar "Eventos" en tu cuenta Ubidots para recibir una notificación por SMS o correo electrónico cuando tu variable alcance un límite específico.
Conclusión

Este proyecto proporciona una pista del número de personas que pasan por un punto determinado. No proporciona el número exacto, dadas las limitaciones del sensor de movimiento, pero en algunas aplicaciones, esto podría ser suficiente.
Los contadores de personas más elaborados utilizan cámaras y algoritmos de procesamiento de imágenes para detectar qué objeto se mueve (persona, coche, mascota...), en qué dirección se mueve (adentro/afuera, izquierda/derecha) e incluso podrían ampliarse, en teoría, para conocer la edad y el sexo de la persona.
Otra forma de detectar personas sería detectar pasivamente las señales de radio de sus smartphones, como wifi o Bluetooth ( mira cómo este hombre detectó smartphones en su casa ). En definitiva, la iBeacon también debería ser un importante impulsor de estas aplicaciones.
En cualquier caso, los datos recopilados se pueden enviar fácilmente a Ubidots , donde se pueden interpretar creando alertas, dashboards en vivo o conectándolos a otros sistemas.

