Taula de continguts:
- Pas 1: requisits
- Pas 2: Configuració
- Pas 3: Configuració del maquinari
- Pas 4: Configuració del microprogramari
- Pas 5: desenvolupament d'aplicacions Ubidots
- Pas 6: configuracions del tauler
Vídeo: Com construir un sistema de detecció de moviment amb Arduino: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Construeix un comptador de producció de moviment i presència mitjançant un Feather HUZZAH programat amb Arduino i alimentat per Ubidots.
La detecció eficaç del moviment físic i de la presència a les cases intel·ligents i la fabricació intel·ligent pot ser molt útil en aplicacions que van des de solucions per a gent gran amb assistència ambiental (AAL) o un sistema de recompte de producció que alimenta un MES més gran. Altres aplicacions per a la detecció de moviment i presència inclouen, entre d'altres,:
- Automatització de portes i portes
- Sensors d’estacionament per designar espais lliures
- Monitorització remota del nivell del tanc
- Llars i instal·lacions intel·ligents per a la il·luminació i la seguretat
- Detecció i recompte d'unitats en línies transportadores
- Detecció de marques en materials impresos
- Detecció de líquids a les inclinacions de cartró, plàstic i paper
- Detecció de distància
- Les persones compten
Tot i que hi ha moltes aplicacions de presència i moviment, hi ha igualment tants sensors per recopilar dades, com ara sensors capacitius, inductius, fotoelèctrics i ultrasons. Depenent dels costos, les condicions ambientals i els requisits de precisió, s’ha de seleccionar el maquinari més adequat per a un entorn i requisits d’aplicació.
Per a aquest tutorial, ens centrarem a construir un comptador de producció en temps real; l'aplicació comptarà totes les unitats que passin per una cinta transportadora. Utilitzarem l’Arduino IDE per programar un Feather HUZZAH ESP8266, un sensor d’ultrasons i Ubidots per desenvolupar la nostra aplicació i mostrar el nostre tauler de control d’IoT.
Pas 1: requisits
- Feather HUZZAH amb ESP8266MB7389-100
- Sensor d'ultrasons
- Arduino IDE 1.8.2 o superior
- Compte Ubidots o llicència STEM
Pas 2: Configuració
- I Configuració de maquinari
- II. Configuració del firmware
- III. Desenvolupament d'aplicacions Ubidots (esdeveniments, variables i taulers)
Pas 3: Configuració del maquinari
El sensor d’ultrasons MB7389-100 és una opció de baix cost per a aplicacions industrials amb requisits d’abast ampli i baix consum en condicions meteorològiques difícils gràcies a la seva qualificació IPv67.
Per començar, reflectiu el diagrama següent per connectar el sensor d’ultrasons al Feather HUZZAH ESP8266.
NOTA: la lectura del sensor es pot prendre com a lectures analògiques o PWM; a continuació explicarem la configuració de la lectura de PWM; per obtenir informació addicional, consulteu els exemples mostrats anteriorment.
[Opcionalment] col·loqueu el microcontrolador i els sensors dins de la caixa IP67 per protegir-los de la pols, l'aigua i altres factors ambientals amenaçadors. El cas estàndard té un aspecte similar al que es mostra a les fotos anteriors.
Pas 4: Configuració del microprogramari
En primer lloc, heu d’instal·lar Feather Huzzah a l’IDE Arduino i compilar el codi. Recordeu que heu de verificar aquesta configuració fent una simple prova de parpelleig. Per obtenir més informació sobre la connexió del dispositiu Feather, consulteu aquesta útil guia de configuració del maquinari.
Per enviar dades del sensor a la plataforma de desenvolupament IoT Ubidots, copieu i enganxeu el codi següent a l'IDE Arduino. Recordeu assignar el nom de la xarxa Wi-Fi, la contrasenya i el testimoni del vostre compte d’Ubidots allà on s’indica al codi.
/ ********************************* Biblioteques incloses *************** ****************/#incloure /****************************** ** Constants i objectes *********************************** * * Ubidots * / const char * SSID_NAME = "xxxxxxxx"; // Poseu aquí el vostre nom SSID nomeconst char * SSID_PASS = "xxxxxxxx"; // Posa aquí el teu passwordconst char * TOKEN = "Assig_your_ubidots_token"; // Posa aquí el teu TOKENconst char * DEVICE_LABEL = "motion-control"; // El vostre dispositiu labelconst char * VARIABLE_LABEL = "distance"; // La vostra variable labelconst char * USER_AGENT = "ESP8266"; const char * VERSION = "1.0"; const char * HTTPSERVER = "industrial.api.ubidots.com"; // Usuaris d'Ubidots Business // const char * HTTPSERVER = " coses.ubidots.com "; // Ubidots Educational usersint HTTPPORT = 80; / * Sensor d'ultrasons * / const int pwPin1 = 5; // El pin PWM on està connectat el sensor Wi-Fi ClientUbi; / ******************************** Funcions auxiliars *** **************************** // ** Obté la longitud de la variable @arg el cos del tipus char @return data Obtingueu la longitud de la variable * / int dataLen (variable char *) {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); / * Espai per emmagatzemar valors per enviar * / char str_val [10]; / * ---- Transforma els valors dels sensors a tipus de caràcter ----- * / / * 4 és ample mínim, 2 és precisió; el valor flotant es copia a str_val * / dtostrf (sensor_value, 4, 2, str_val); / * Construeix el cos que s'enviarà a la sol·licitud * / sprintf (cos, "{"% s / ":% s}", variable_label, str_val); / * Construeix l'HTTP sol·licitud de POST * / sprintf (dades, "POST /api/v1.6/devices/%s", device_label); sprintf (dades, "% s HTTP / 1.1 / r / n", dades); sprintf (dades, "% sHost: things.ubidots.com / r / n", data); sprintf (dades, "% sUser-Agent:% s /% s / r / n", data, USER_AGENT, VERSION); sprintf (data, "% sX-Auth-Token:% s / r / n", data, TOKEN); sprint f (dades, "% sConnection: close / r / n", data); sprintf (dades, "% sContent-Type: application / json / r / n", data); sprintf (dades, "% sConting-Length:% d / r / n / r / n", data, dataLen (body)); sprintf (dades, "% s% s / r / n / r / n", dades, cos); / * Connexió inicial * / clientUbi.connect (HTTPSERVER, HTTPPORT); / * Verifiqueu la connexió del client * / if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Publicació de les vostres variables:")); Serial.println (dades); / * Envia la sol·licitud HTTP * / clientUbi.print (dades); } / * Mentre el client està disponible, llegiu la resposta del servidor * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Memòria lliure * / lliure (dades); lliure (cos); / * Atura el client * / clientUbi.stop ();}
ProTip: podeu comprovar si el vostre dispositiu està correctament connectat obrint el monitor sèrie a l'IDE Arduino.
Podeu verificar que es crea un dispositiu al vostre fons d’Ubidots si el visualitzeu al vostre compte Gestió de dispositius -> Dispositius.
En fer clic al dispositiu, trobareu una variable anomenada "distància" on s'emmagatzemen les lectures del sensor. Aquest nom s'ha assignat al codi que acabeu d'enganxar a l'IDE Arduino. Si voleu ajustar les vostres variables automàtiques, feu-ho editant la targeta del dispositiu o intermitent un codi actualitzat amb la nomenclatura de variables correcta per a la vostra aplicació.
Amb el Feather HUZZAH ESP8266 connectat i informant de dades a Ubidots, ara ha arribat el moment de crear l’aplicació mitjançant la configuració d’aplicacions sense codi dissenyades amb cura per Ubidots.
Pas 5: desenvolupament d'aplicacions Ubidots
Configuració d'esdeveniments Ubidots
Les lectures actuals que estem enviant a Ubidots són entrades de distància. Per traduir aquestes lectures a la sortida desitjada que volem -unitats comptades- hauríem de crear un esdeveniment seguint aquests passos:
- Dins del dispositiu actual "motion-control" creeu una nova variable per defecte anomenada "caixes", que rebrà un 1 cada vegada que es compti una nova unitat.
- Aneu a Gestió de dispositius -> Esdeveniments i feu clic a la icona blava més a l'extrem superior dret de la pàgina per afegir un esdeveniment nou.
- Configureu l'esdeveniment començant per "Si s'activa":
- Seleccioneu una variable: "distància"
- Valor: valor (predeterminat)
- És inferior o igual a [la distància màxima esperada} entre el sensor i les caixes que passen per * la nostra aplicació demana 500 mm
- Durant 0 minuts
- Desa
4. Un cop configurats els activadors segons les especificacions de l'aplicació, feu clic a la icona taronja "més" a l'extrem superior dret per afegir una acció condicional.
5. Seleccioneu "Establir variable" com a acció.
6. A continuació, trieu la variable predeterminada "quadres" creada anteriorment i el valor "1".
7. Deseu els canvis. Si l'esdeveniment està configurat correctament, enviarà un "1" cada vegada que la distància entre el sensor i la unitat sigui superior al llindar indicat, cosa que suggereix que no hi ha cap objecte a prop, i hauria de comptar una nova unitat que acabi de passar.
A la targeta de dispositiu específica de Feather, trobareu que la variable "caixes" on s'envia un "1" cada cop que es percep la presència d'una unitat.
Especialment útil per a cintes transportadores industrials i unitats que compten aquest prototip es poden personalitzar per adaptar-se a diferents entorns o maquinari simplement en la vostra codificació o desenvolupament de les vostres aplicacions.
8. Visualitzeu el nombre d'unitats detectades (o vegades que s'ha detectat un objecte) Ara, mitjançant la variable "caixes", crearem una nova variable de finestra rodant per sumar la quantitat total de lectures rebudes de la variable "caixes" a un correu brossa definit (minuts, hores, dies, setmanes, etc.). Per executar aquest desenvolupament, seguiu aquests senzills passos:
Assigneu les següents credencials a la nova variable de finestra variable
Seleccioneu un dispositiu: control de moviment (o el nom del dispositiu que envieu les vostres dades)
Seleccioneu una variable: quadres
Calculeu la suma:
Cada: "1" hora (o segons les sol·licituds de sol·licitud)
Ara assigneu un nom a la nova variable que indiqui el nombre de caixes (o moviments) comptats en una hora, igual que "caixes / hora" o "unitats / hores".
Pas 6: configuracions del tauler
Finalment, creeu un tauler per mostrar el nombre d’unitats detectades.
Aneu a Gestió de dispositius -> Taulers i afegiu un widget nou. Aquest widget mostrarà la quantitat de caixes comptades avui desglossades per hores.
Assigneu les credencials següents al vostre widget nou per visualitzar el recompte.
Com voldríeu veure les vostres dades ?: gràfic
Seleccioneu un tipus de widget: gràfic de línies
Afegiu un dispositiu: control de moviment
Afegiu una variable: quadres / hora
Acabar. I amb aquest desenvolupament final del tauler, la vostra aplicació és completa i ara teniu un sistema de detecció de moviment i presència eficient i eficaç. Aquí teniu un darrer repàs als nostres resultats.
Recomanat:
Sistema d'alarma SMS de detecció de moviment de bricolatge: 5 passos (amb imatges)
Sistema d'alarma SMS de detecció de moviment de bricolatge: en aquest projecte combinaré un sensor de moviment PIR econòmic amb un mòdul TC35 GSM per crear un sistema d'alarma que us enviï una "ALERTA D'INTRUDER". SMS sempre que algú intenti robar-te coses. Comencem
Llum LED nocturna de llit amb detecció automàtica de moviment: 6 passos (amb imatges)
Llum LED nocturna de llit de detecció automàtica de moviment de bricolatge: Hola, nois, us donem la benvinguda a una altra instrucció que sempre us ajudarà en el vostre dia a dia i que us facilitarà la vostra vida. De vegades, això pot salvar la vida en cas de gent gran que ha de lluitar per aixecar-se al llit
Càmera de correu electrònic Arduino Security 3G / GPRS amb detecció de moviment: 4 passos
Càmera de correu electrònic Arduino Security 3G / GPRS amb detecció de moviment: en aquest manual, m’agradaria parlar d’una versió de la construcció d’un sistema de vigilància de seguretat amb un detector de moviment i l’enviament de fotografies a la bústia mitjançant l’escut 3G / GPRS. altres instruccions: instrucció 1 i instrucció
Sistema d'alarma de detecció de moviment: 11 passos (amb imatges)
Sistema d'alarma de detecció de moviment: Nota! Reactive Blocks ja no està disponible per descarregar. Es pot utilitzar una càmera USB bàsica per detectar moviments en una habitació. En els passos següents us mostrarem com podeu utilitzar Reactive Blocks per programar una aplicació Java preparada per executar que envia SMS
Presa controlada pel moviment: des d’una llum de detecció de moviment: 6 passos
Presa controlada pel moviment: des d’una llum de detecció de moviment: Imagineu-vos que sou un enganyós que aneu a la casa més terrorífica de la casa. Després de passar per davant de tots els dimonis, fantasmes i cementiris, finalment arribareu al darrer camí. Podeu veure els caramels en un bol que teniu al davant! Però de sobte un gho