Table des matières:
- Étape 1: Exigences
- Étape 2: configuration
- Étape 3: configuration du matériel
- Étape 4: configuration du micrologiciel
- Étape 5: Développement d'applications Ubidots
- Étape 6: Configurations du tableau de bord
Vidéo: Comment construire un système de détection de mouvement avec Arduino : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
Construisez un compteur de production de mouvement et de présence à l'aide d'un Feather HUZZAH programmé avec Arduino et alimenté par Ubidots.
Une détection efficace des mouvements physiques et de la présence dans les maisons intelligentes et la fabrication intelligente peut être très utile dans des applications allant des solutions d'assistance à l'autonomie aux personnes âgées (AAL) pour les personnes âgées ou un système de comptage de production qui alimente un plus grand MES. D'autres applications pour la détection de mouvement et de présence incluent, sans s'y limiter:
- Automatismes de portes et portails
- Des capteurs de stationnement pour désigner des places libres
- Surveillance à distance du niveau du réservoir
- Maisons et installations intelligentes pour l'éclairage et la sécurité
- Détection et comptage d'unités dans les lignes de convoyage
- Détection de marques sur les documents imprimés
- Détection de liquide à l'intérieur des inclinaisons de carton, de plastique et de papier
- Détection de distance
- Compteurs de personnes
S'il existe de nombreuses applications pour la présence et le mouvement, il existe tout autant de capteurs pour collecter des données, tels que des capteurs capacitifs, inductifs, photoélectriques et à ultrasons. En fonction des coûts, des conditions environnementales et des exigences de précision, il convient de sélectionner le matériel le mieux adapté à l'environnement et aux exigences de l'application.
Pour ce tutoriel, nous allons nous concentrer sur la construction d'un compteur de production en temps réel; l'application comptera chaque unité passant sur une bande transporteuse. Nous utiliserons l'IDE Arduino pour programmer un Feather HUZZAH ESP8266, un capteur à ultrasons et des Ubidots pour développer notre application et afficher notre tableau de bord IoT.
Étape 1: Exigences
- Plume HUZZAH avec ESP8266MB7389-100
- Capteur à ultrasons
- Arduino IDE 1.8.2 ou supérieur
- Compte Ubidots -ou-Licence STEM
Étape 2: configuration
- I Configuration du matériel
- II. Configuration du micrologiciel
- III. Développement d'applications Ubidots (événements, variables et tableaux de bord)
Étape 3: configuration du matériel
Le capteur à ultrasons MB7389-100 est une option économique pour les applications industrielles avec des exigences de large gamme et de faible consommation d'énergie dans des conditions météorologiques difficiles grâce à sa classification IPv67.
Pour commencer, reproduisez le schéma ci-dessous pour fixer le capteur à ultrasons au Feather HUZZAH ESP8266.
REMARQUE: La lecture du capteur peut être prise en tant que lectures analogiques ou PWM; ci-dessous, nous allons expliquer la configuration de la lecture PWM, pour plus d'informations, veuillez consulter les exemples ci-dessus.
[En option] placez le microcontrôleur et les capteurs à l'intérieur du boîtier IP67 pour les protéger de la poussière, de l'eau et d'autres facteurs environnementaux menaçants. Le boîtier standard ressemble à celui présenté sur les photos ci-dessus.
Étape 4: configuration du micrologiciel
Tout d'abord, vous devez installer Feather Huzzah dans l'IDE Arduino et compiler le code. N'oubliez pas de vérifier cette configuration en effectuant un simple test de clignotement. Pour plus d'informations sur la connexion de votre appareil Feather, consultez ce guide de configuration matérielle utile.
Pour envoyer des données de capteur à la plate-forme de développement Ubidots IoT, copiez et collez le code ci-dessous dans l'IDE Arduino. N'oubliez pas d'attribuer le nom du réseau Wi-Fi, le mot de passe et votre jeton de compte Ubidots à l'endroit indiqué dans le code.
/************************************ Bibliothèques incluses *************** ****************/#comprendre /****************************** ** Constantes et objets *******************************//* Ubidots */const char* SSID_NAME = "xxxxxxxx"; // Mettez ici votre nom SSIDconst char* SSID_PASS = "xxxxxxxx"; // Mettez ici votre mot de passeconst char* TOKEN = "Assig_your_ubidots_token"; // Mettez ici votre TOKENconst char* DEVICE_LABEL = "motion-control"; // Votre appareil labelconst char* VARIABLE_LABEL = "distance"; // Votre variable labelconst char* USER_AGENT = "ESP8266";const char* VERSION = "1.0";const char* HTTPSERVER = "industrial.api.ubidots.com";// Ubidots Business users//const char* HTTPSERVER = " choses.ubidots.com"; // Ubidots Educational usersint HTTPPORT = 80;/* Capteur à ultrasons */const int pwPin1 = 5; // La broche PWM où le capteur est connectéWiFiClient clientUbi;/************************************ Fonctions Auxiliaires *** **************************//** Obtient la longueur du corps de la variable @arg le corps de type char @return dataLen le longueur de la variable*/int dataLen(char* variable) { uint8_t dataLen = 0; for (int i = 0; i distance / 25,4 */ float distance = pulseIn(pwPin1, HIGH); sendToUbidots(DEVICE_LABEL, VARIABLE_LABEL, distance); delay(1000);}void sendToUbidots(const char* device_label, const char* variable_label, float sensor_value) { char* body = (char *) malloc(sizeof(char) * 150); char* data = (char *) malloc(sizeof(char) * 300); /* Espace pour stocker les valeurs à envoyer * / char str_val[10]; /*---- Transforme les valeurs des capteurs en type char -----*/ /* 4 est la largeur minimale, 2 est la précision; la valeur flottante est copiée sur str_val*/ dtostrf(sensor_value, 4, 2, str_val); /* Construit le corps à envoyer dans la requête*/ sprintf(body, "{"%s\":%s}", variable_label, str_val); /* Construit le HTTP demande d'être POST */ sprintf(data, "POST /api/v1.6/devices/%s", device_label); sprintf(data, "%s HTTP/1.1\r\n", data); sprintf(data, "%sHost: Things.ubidots.com\r\n", data); sprintf(data, "%sUser-Agent: %s/%s\r\n", data, USER_AGENT, VERSION); sprintf(data, "%sX-Auth-Token: %s\r\n", data, TOKEN); sprint f(données, "%sConnexion: fermer\r\n", données); sprintf(data, "%sContent-Type: application/json\r\n", data); sprintf(data, "%sContent-Length: %d\r\n\r\n", data, dataLen(body)); sprintf(données, "%s%s\r\n\r\n", données, corps); /* Connexion initiale */ clientUbi.connect(HTTPSERVER, HTTPPORT); /* Vérifier la connexion client */ if (clientUbi.connect(HTTPSERVER, HTTPPORT)) { Serial.println(F("Posting your variables: ")); Serial.println(données); /* Envoie la requête HTTP */ clientUbi.print(data); } /* Tant que le client est disponible, lit la réponse du serveur */ while (clientUbi.available()) { char c = clientUbi.read(); Serial.write(c); } /* Mémoire libre */ free(data); corps libre); /* Arrêter le client */ clientUbi.stop();}
Astuce de pro: vous pouvez vérifier si votre appareil est correctement connecté en ouvrant le moniteur série dans l'IDE Arduino.
Vous pouvez vérifier qu'un appareil est créé dans votre backend Ubidots en le visualisant dans votre compte Gestion des appareils -> Appareils.
En cliquant sur votre appareil, vous trouverez une variable appelée "distance" où les lectures du capteur sont stockées. Ce nom a été attribué dans le code que vous venez de coller dans l'IDE Arduino. Si vous souhaitez ajuster vos variables automatiques, veuillez le faire en éditant la fiche Appareil ou en flashant un code mis à jour avec la nomenclature de variables correcte pour votre application.
Avec le Feather HUZZAH ESP8266 connecté et rapportant des données à Ubidots, il est maintenant temps de créer l'application en utilisant la configuration d'application sans code soigneusement conçue par Ubidots.
Étape 5: Développement d'applications Ubidots
Configuration de l'événement Ubidots
Les lectures actuelles que nous envoyons à Ubidots sont des entrées de distance. Pour traduire ces lectures en la sortie souhaitée que nous voulons - unités comptées - nous devons créer un événement en suivant ces étapes:
- À l'intérieur du dispositif actuel "motion-control", créez une nouvelle variable par défaut appelée "boxes", qui recevra un 1 à chaque fois qu'une nouvelle unité est comptée.
- Accédez à Gestion des appareils -> Événements, puis cliquez sur l'icône bleue plus dans le coin supérieur droit de la page pour ajouter un nouvel événement.
- Configurez votre événement en commençant par « Si les déclencheurs »:
- Sélectionnez une variable: "distance"
- Valeur: valeur (par défaut)
- Est inférieur ou égal à [la distance maximale attendue} entre le capteur et les boîtiers qui passent*notre application demande 500 mm
- Pendant 0 minute
- sauvegarder
4. Une fois les déclencheurs configurés selon les spécifications de votre application, cliquez sur l'icône orange "plus" dans le coin supérieur droit pour ajouter une action conditionnelle.
5. Sélectionnez "Définir la variable" comme action.
6. Ensuite, choisissez la variable par défaut "boxes" précédemment créée et la valeur "1".
7. Enregistrez les modifications. Si l'événement est correctement configuré, il enverra un "1" à chaque fois que la distance entre le capteur et l'unité est supérieure à un seuil indiqué, ce qui suggère qu'il n'y a aucun objet à proximité - et devrait compter une nouvelle unité qui vient de passer.
Dans la carte de périphérique spécifique à Feather, vous constaterez que la variable "boîtes" où un "1" est envoyé chaque fois que la présence d'une unité est détectée.
Particulièrement utile pour les bandes transporteuses industrielles et le comptage d'unités, ce prototype peut être personnalisé pour s'adapter à différents environnements ou matériels simplement dans votre codage ou le développement de vos applications.
8. Visualisez le nombre d'unités détectées (ou de fois qu'un objet a été détecté) Maintenant, en utilisant la variable "boîtes", nous allons créer une nouvelle variable de fenêtre mobile pour additionner le nombre total de lectures reçues de la variable "boîtes" dans un spam défini (minutes, heures, jours, semaines, etc.). Pour exécuter ce développement, suivez ces étapes simples:
Attribuez les informations d'identification suivantes à votre nouvelle variable de fenêtre mobile
Sélectionnez un appareil: contrôle de mouvement (ou le nom de l'appareil auquel vous envoyez vos données)
Sélectionnez une variable: cases
Calculer la: somme
Toutes les: "1" heure (ou selon vos demandes d'application)
Attribuez maintenant un nom à la nouvelle variable qui indique le nombre de boîtes (ou mouvements) comptés en une heure, tout comme "boîtes/heure" ou "unités/heures.
Étape 6: Configurations du tableau de bord
Enfin, créez un tableau de bord pour afficher le nombre d'unités détectées.
Accédez à Gestion des appareils -> Tableaux de bord et ajoutez un nouveau widget. Ce widget affichera le nombre de boîtes comptées aujourd'hui ventilées par heure.
Attribuez les informations d'identification suivantes à votre nouveau widget pour visualiser votre nombre.
Comment voudriez-vous voir vos données ?: Graphique
Sélectionnez un type de widget: graphique en courbes
Ajouter un appareil: contrôle de mouvement
Ajouter une variable: cases/heure
Finir. Et avec ce développement final du tableau de bord, votre application est terminée et vous disposez désormais d'un système de détection de mouvement et de présence efficace et performant. Voici un dernier aperçu de nos résultats.
Conseillé:
Système d'alarme SMS de détection de mouvement DIY : 5 étapes (avec photos)
Système d'alarme SMS de détection de mouvement DIY : Dans ce projet, je combinerai un capteur de mouvement PIR bon marché avec un module GSM TC35 pour construire un système d'alarme qui vous envoie une " ALERTE INTRUSION ". SMS chaque fois que quelqu'un essaie de voler vos affaires. Commençons
Visuino Construire un système de détection d'intrusion à l'aide d'Arduino : 8 étapes
Visuino Construire un système de détection d'intrusion à l'aide d'Arduino : Dans ce didacticiel, nous utiliserons un capteur de mouvement radar à micro-ondes XYC-WB-DC connecté à Arduino UNO et Visuino pour détecter tout mouvement dans un rayon d'environ 5 m, y compris les parois minces. Regardez une vidéo de démonstration
Système d'alarme à détection de mouvement : 11 étapes (avec photos)
Système d'alarme de détection de mouvement : Remarque ! Les blocs réactifs ne sont plus disponibles au téléchargement. Une caméra USB de base peut être utilisée pour détecter un mouvement dans une pièce. Dans les étapes suivantes, nous allons vous montrer comment utiliser les blocs réactifs pour programmer une application Java prête à l'emploi qui envoie des SMS
Comment construire une boîte de haut-parleur pour guitare ou en construire deux pour votre chaîne stéréo. : 17 étapes (avec photos)
Comment construire un boîtier de haut-parleur de guitare ou en construire deux pour votre stéréo. : Je voulais un nouveau haut-parleur de guitare pour aller avec l'ampli à lampes que je construis. Le haut-parleur restera dans ma boutique, il n'a donc pas besoin d'être quelque chose de trop spécial. Le revêtement Tolex pourrait être trop facilement endommagé alors j'ai juste pulvérisé l'extérieur en noir après un léger ponçage
Sortie à contrôle de mouvement - À partir d'une lumière à détection de mouvement : 6 étapes
Sortie à contrôle de mouvement - À partir d'une lampe à détection de mouvement : Imaginez que vous êtes un trick-or-treater allant à la maison la plus effrayante du bloc. Après avoir dépassé toutes les goules, fantômes et cimetières, vous arrivez enfin au dernier chemin. Vous pouvez voir les bonbons dans un bol devant vous ! Mais soudain, un gho