Construire un compteur de personnes avec Raspberry Pi et Ubidots
Ubidots est un service cloud qui vous permet de stocker et d'analyser les données des capteurs en temps réel . Il vous permet de créer des applications pour l'Internet des objets, sans aucune connaissance approfondie de la programmation Web, des bases de données ou des API.
– Un petit pack batterie, avec son câble micro-USB:
– Capteur de mouvement par Parallax:
MISE À JOUR Suite à une suggestion de Doug Jefferies (Merci !), les GPIO du Raspberry Pi sont conçus pour 3,3 V mais nous y mettons 5 V. C'est donc une meilleure idée de connecter :
V+ -> Broche n°1 (3,3 V).
Étant donné que le capteur est très sensible au mouvement, j'ai utilisé le cavalier situé derrière lui pour régler la sensibilité la plus basse. De plus, je l'ai placé dans un boîtier sombre avec une petite ouverture, afin que la détection de mouvement se concentre sur un point au lieu d'être aussi omnidirectionnelle :
Codage
Créez un nouveau fichier appelé « peoplecounter.py » :
$ sudo nano peoplecounter.py
Et écrivez-y le code suivant. Assurez-vous de remplacer les valeurs de la clé API et de l'ID de variable par celles de votre compte personnel Ubidots .
(Remarque : le code n'est pas trop élégant, mais bon, je ne suis pas un développeur Python, juste un spécialiste du matériel 🙂
à partir d' ubidots importez ApiClient, importez RPi.GPIO en tant qu'heure d'importation GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(7, GPIO.IN) essayez : api = ApiClient("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3") people = api.get_variable("5238cec3f91b282c7357 a140") sauf : print "Impossible de se connecter à l'API, vérifiez votre connexion Internet" counter = 0 peoplecount = 0 while(1) : présence = GPIO.input(7) if(presence) : peoplecount += 1 présence = 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 compteur de personnes.py
Maintenant que les données sont dans le cloud, vous pouvez ajouter des widgets dans votre dashboard pour afficher l'activité en temps réel. Vous pouvez également configurer des « Événements » dans votre compte Ubidots , afin de recevoir une notification par SMS ou par e-mail lorsque votre variable atteint une limite spécifique.
Conclusion
Ce projet donne une idée du nombre de personnes passant par un point particulier. Il ne fournit pas le nombre exact de personnes, compte tenu des limites du capteur de mouvement, mais dans certaines applications, cela peut suffire.
Des compteurs de personnes plus élaborés utilisent des caméras et des algorithmes de traitement d'image pour détecter ce qu'est l'objet en mouvement (personne, voiture, animal de compagnie...), dans quelle direction il se déplace (entrée/sortie, gauche/droite) et ils pourraient même être étendus, en théorie. , pour connaître l'âge et le sexe de la personne.
Une autre façon de détecter les gens serait de détecter passivement les signaux radio de leurs smartphones, comme le Wifi ou le Bluetooth ( découvrez comment ce type a détecté les smartphones autour de sa maison ). En fin de compte, la iBeacon devrait également être un grand catalyseur de ces applications.
Dans tous les cas, les données collectées peuvent être facilement envoyées à Ubidots , où elles peuvent être interprétées en créant des alertes, dashboards en direct ou en les connectant à d'autres systèmes.