Projets IoT

Construisez un compteur de personnes pour 30 $ à l'aide d'un ESP8266 et d'un NodeMCU

Maria Hernández
· 7 min de lecture
Envoyer par email

Un compteur de personnes est un appareil utilisé pour mesurer le nombre de corps traversant une entrée, un couloir, un coin de rue, etc. Si vous avez besoin de savoir combien de personnes existent dans un espace, c'est votre solution simple. Généralement utilisé dans les magasins de détail, les grands événements et les immeubles de bureaux intelligents. Cette technologie de comptage a permis de mieux comprendre à la fois le nombre de corps dans un environnement et leur comportement. Imaginez que vous êtes le propriétaire du magasin ; ce compteur peut vous alerter des visiteurs quotidiens, des sentiers pédestres empruntés, des points d'arrêt les plus fréquents et de la durée pendant laquelle une personne s'attarde dans un lieu. N'aimeriez-vous pas savoir quels matériaux/produits retiennent le plus l'attention ? Grâce à ces informations, un spécialiste du marketing peut repositionner géographiquement les produits pour accroître leur notoriété. Ceci, au bénéfice des besoins de vos clients et de vos résultats.

Dans ce guide, vous apprendrez à construire votre propre compteur de personnes fait maison. Des instructions sont également incluses pour que vos données nouvellement collectées soient utilisées via Ubidots , une plate-forme d'activation d'applications.

Matériel requis

  • Nœud MCU ESP8266

2.png

  • Capteur de mouvement PIR

3.png

  • Femelle – Fils femelles

4.png

  • Étui de protection en plastique

5.png

  • Câble microUSB

6.png

Câblage et boîtier

Comme vous pouvez le voir, le capteur de mouvement a trois broches : V+, Masse et une troisième pour le signal de sortie (« 1 » = mouvement et « 0 » environnement statique). Tout d'abord, branchez les câbles directement sur les broches de votre NodeMCU, suivez le tableau et le schéma ci-dessous :

NoeudMCU Capteur PIR NoeudMCU DIRIGÉ
GND GND GND GND
D6 DEHORS D4 VCC
3,3 V VCC

Étant donné que le capteur de mouvement PIR est très sensible au mouvement, j'ai utilisé un interrupteur derrière lui pour régler la sensibilité la plus basse. J'ai également peint les coins de l'objectif pour me concentrer sur un espace spécifique plutôt que omnidirectionnel. (Ne vous limitez pas, vous pouvez explorer et innover) Les résultats de ces quelques minutes de travail supplémentaires aboutissent à l'appareil convivial et confiné illustré ci-dessous.

7.png

Une fois le boîtier et l'appareil assemblés, nous devons maintenant nous connecter à l'IDE Arduino.

Pour commencer, connectez votre NodeMCU au port de votre ordinateur à l'aide du micro USB

REMARQUE : Si vous ne disposez pas déjà de l' IDE Arduino , cliquez ici pour le télécharger.

1.- Ouvrez l'IDE Arduino, sélectionnez Fichier -> Préférences. Ensuite, saisissez l'URL suivante dans la URL supplémentaires du gestionnaire de cartes . Vous pouvez ajouter plusieurs URL en les séparant par des virgules, si nécessaire.

http://arduino.esp8266.com/stable/package_esp8266com_index.json

REMARQUE : si vous êtes un utilisateur Mac , veuillez noter qu'Arduino contient des fonctions déroulantes différentes par rapport au système d'exploitation Windows. Vous devrez également installer le pilote pour pouvoir télécharger votre NodeMCU.

8.png

2.- Ouvrez Boards Manager depuis le menu Outils -> Board et installez la plateforme ESP8266. Pour trouver simplement le bon appareil, recherchez ESP8266 dans la barre de recherche.

9.png

3.- Sélectionnez votre NodeMCU 1.0 (module ESP-12) dans Outils > Carte .

10.png

De plus, nous devons pouvoir communiquer avec le NodeMCU ; sélectionnez le bon port com pour votre appareil.

Accédez à Outils > Port > Sélectionnez le PORT approprié pour la connexion de votre ordinateur/appareil.

11.png

De plus, pour que tout fonctionne rapidement et sans problème, assurons-nous que la vitesse de téléchargement est optimisée à 115 200.

Accédez à Outils > Vitesse de téléchargement > 115200 :

12.png

4.- Ensuite, nous devons télécharger la Ubidots MQTT ESP depuis Github. Pour ce faire, ouvrez la bibliothèque MQTT ESP ici , téléchargez la bibliothèque en cliquant sur le bouton vert appelé « Cloner ou télécharger » et sélectionnez « Télécharger ZIP ».

13.png

5.- Revenez maintenant à votre IDE Arduino, cliquez sur Sketch -> Include Library -> Add .ZIP Library

6.- Sélectionnez le fichier .ZIP d' ubidots MQTTESP puis « Accepter » ou « Choisir »

En cas de succès, vous recevrez ce message ci-dessous dans l'IDE Arduino confirmant votre bibliothèque :

14.png

7.- Ensuite, allez dans Sketch/Program -> Include Library -> Library Manager et installez la bibliothèque PubSubClient Pour trouver simplement la bonne bibliothèque, recherchez PubSubClient dans la barre de recherche.

15.png

8.- Fermez l'IDE Arduino et rouvrez-le. Ce redémarrage est nécessaire. Ne manquez pas cette étape !!

Il est maintenant temps de commencer à coder 🙂

Copiez le code ci-dessous et collez-le dans l'IDE Arduino.

Une fois que vous avez copié le code, vous devrez attribuer les paramètres : nom et mot de passe Wi-Fi, ainsi que votre TOKEN Ubidots unique individuel. Si vous ne savez pas comment localiser votre TOKEN Ubidots , veuillez vous référer à cet article ci-dessous.

// Réalisé par : Maria Carlina Hernandez /****************************************** * Inclure les bibliothèques ****************************************/ #include " Ubidots ESPMQTT.h " /*************************************** * Définir les constantes ***** ***********************************/ #define TOKEN "..." // Votre JETON Ubidots # définir WIFINAME "..." //Votre SSID #define WIFIPASS "..." // Votre Wifi Pass #define DEVICE "pir-sensor" // Attribuer l'étiquette de l'appareil #define VARIABLE "motion" // Attribuer l'étiquette de la variable #define LED 2 #define CAPTEUR D6 uint8_t counter=0; état long non signé = 0 ; Client Ubidots (JETON); /****************************************** * Fonctions auxiliaires ****** **********************************/ rappel nul (sujet char*, charge utile octet*, longueur int non signée) { Serial.print("Message arrivé ["); Serial.print (sujet); Série.print("] "); pour (int je = 0; je <length;i++) { Serial.print((char)payload[i]); } Serial.println(); } /**************************************** * Main Functions ****************************************/ void setup() { // put your setup code here, to run once: Serial.begin(115200); pinMode(SENSOR, INPUT); pinMode(LED, OUTPUT); client.wifiConnection(WIFINAME, WIFIPASS); client.begin(callback); } void loop() { // put your main code here, to run repeatedly: if (!client.connected()) { digitalWrite(LED, LOW); client.reconnect(); digitalWrite(LED, HIGH); } else { digitalWrite(LED, HIGH); } uint8_t sensorValue = digitalRead(SENSOR); bool flag = false; if(sensorValue> 0){ for(uint8_t wait=0; wait<=4; wait++){ sensorValue = digitalRead(SENSOR); Serial.println(sensorValue); if(sensorValue==1){ compteur++; } if(counter>3){ flag = true; } délai (500); } } Serial.println("envoi de données"); valeur uint8_t ; if(drapeau){ valeur = 1 ; client.add(VARIABLE, valeur); client. ubidots Publier(DEVICE); }else{ valeur = 0 ; if(state == 10000){ client.add(VARIABLE, valeur); client. ubidots Publier(DEVICE); état = 0 ; } } état++; client.loop(); compteur = 0 ; }

Une fois que vous avez collé le code et mis à jour les paramètres WiFi, vous devez le vérifier dans l'IDE Arduino. Pour ce faire, dans le coin supérieur gauche de notre IDE Arduino, vous verrez les icônes ci-dessous. Choisissez l’icône Coche pour vérifier n’importe quel code.

16.png

Une fois le code vérifié, vous recevrez un message « Compilation terminée » dans l'IDE Arduino.

17.png

Ensuite, vous devez télécharger le code dans votre NodeMCU. Pour ce faire, choisissez l'icône de flèche droite à côté de l'icône de coche.

18.png

Une fois le code téléchargé, vous recevrez un message « Téléchargement terminé » dans l'IDE Arduino.

19.png
Votre capteur envoie désormais des données au Cloud Ubidots !

LED d'état

Une fois votre code téléchargé, la LED intégrée vous alertera de la connectivité des appareils.

  • LED allumée -> Ok, appareil connecté et envoie des données.
  • La LED clignote (1 seconde) -> Tentative de reconnexion. J'ai perdu la connexion. Pas d'accès à Internet.
  • LED éteinte -> Appareil non connecté

Gestion des données dans Ubidots

Si votre appareil est correctement connecté, vous verrez un nouvel appareil créé dans la section de votre appareil dans votre Ubidots . Le nom de l'appareil sera « sensor-pir », également à l'intérieur de l'appareil, vous verrez la variable créée appelée « motion ». "

Si vous souhaitez modifier les noms de votre appareil et de vos variables pour des noms plus conviviaux, veuillez consulter cet article.

20.png

Ensuite, pour compter le nombre de personnes détectées par votre appareil, nous devons créer une nouvelle variable dérivée pour pouvoir gérer les données et compter le nombre de personnes détectées.

Cliquez sur « Ajouter une variable » et sélectionnez « Synthétique » :

synthétique

Sélectionnez l'appareil appelé « pir-sensor » et la variable « motion » puis calculez la somme à chaque fois définie comme vous le désirez (1 minute ; 1 heure ; 1 jour) pour obtenir le nombre de personnes détectées. Appuyez sur Enregistrer et attribuez un nom à la variable. Votre formule ressemblera un peu à ceci :

somme(mouvement, "1H")

variable

Une fois votre variable créée, vous recevrez le nombre de personnes détectées dans cette nouvelle variable synthétique. Ci-dessous une illustration du résultat final :

23.png

Résultat

Ce projet sensibilise les administrateurs et les décideurs au nombre de personnes passant par un espace particulier et à leur fonctionnement. Veuillez noter que toutes les personnes ne seront pas détectées en raison des limitations du capteur de mouvement. La ligne de vue est importante pour nous, les humains, et les machines y sont également confrontées. Mais nous y travaillons !

Il est maintenant temps de créer un dashboard pour contrôler et gérer les variables de votre propre compteur de personnes. Pour en savoir plus sur Ubidots , consultez ces didacticiels vidéo et inscrivez-vous gratuitement dès aujourd'hui !