Análisis de código
Análisis de código
Analicemos a continuación el significado de las líneas del código Walking_stick:
El comando include carga las librerías necesarias para el funcionamiento del sensor.La librería ArduinoHttpClient permite a Arduino interactuar con servidores web utilizando HTTP y WebSocket. La librería WiFi101 proporciona conexión a Internet de forma inalámbrica y con autenticación criptográfica.
Las líneas 13 y 14 se refieren a información privada: la identificación de red y la contraseña de acceso. Por esa razón, las variables SECRET_SSID y SECRET_PASS se establecen en una pestaña secreta (debes escribir el comando #include "arduino_secrets.h" en la línea 10; el comando se ocultará inmediatamente después de escribirlo). Luego debes definir los valores de las variables en la pestaña secreta:
Llegados a este punto, vamos a presentar dweet.io, un servicio gratuito de mensajería y alertas para el Internet de las Cosas. Dweet.io te permite publicar y suscribirte fácilmente a datos sin ningún tipo de configuración ni registro.
La línea 16 asigna la dirección del servidor (que es la dirección del servicio dweet) a serverAddress, y, en la línea siguiente, establecemos 80 al puerto variable (el puerto 80 es el que se utiliza para la navegación web).
La línea 19 crea un cliente que puede conectarse a la dirección y puerto de Internet especificados. Las líneas 20 y 21 definen el objeto cliente y almacenan el estado de la radio Wifi en la variable status.
Las líneas 23 y 24 definen los pines digitales 11 y 12 a echoPin y trigPin, respectivamente. Las variables duración y distancia se definen en las líneas 27 y 28.
La línea 31 ajusta el pin 12 (trigPin) para que se comporte como un canal de salida, y la línea 32 ajusta el pin 11 (echoPin) para que actúe como un canal de entrada. Tras configurar la velocidad de transmisión de datos serie (línea 33), intentamos establecer una conexión satisfactoria con la red WiFi (a partir de la línea 37).
Después de borrar el pin 12 (línea 48), la línea 51 pone el mismo pin a un valor alto durante diez microsegundos, y la línea 53 vuelve a borrar el pin.
En la línea 55, leemos el valor del pin digital 11 (echoPin) y lo almacenamos en la variable duración. En la línea 57, calculamos la distancia como el producto entre la duración y la velocidad del sonido, dividido por dos (porque para recibir el valor, el sonido necesita ir y volver). Luego, enviamos el resultado al puerto serie (líneas 59 a 61).
Estas líneas ensamblan la ruta para el mensaje POST que enviará el valor del sensor al servicio dweet.io.
Dweet.io requiere que cada servicio publicado tenga un nombre único. Esto evita confusiones entre los distintos servicios publicados. La mejor forma de asignar un nombre único a nuestro servicio es generar un GUID (Global Unique Identifier) como el asignado en la línea 65 a la variable dweetName.
Un GUID es un número entero de 128 bits que se utiliza para identificar recursos. Podemos generar nuestro nombre único con un generador de GUID en línea.
Estas líneas forman el cuerpo del mensaje POST.
Finalmente, enviamos un anuncio al puerto serie y enviamos la petición POST al servicio dweet.io. La línea 80 define un retraso de 60 segundos hasta la siguiente lectura del sensor.
Una vez compilado el código y cargado en la placa Arduino Uno WiFi, el monitor serie comienza a mostrar la actividad.