Tabla de contenido:

Conecte su planta a la nube: 10 pasos
Conecte su planta a la nube: 10 pasos

Video: Conecte su planta a la nube: 10 pasos

Video: Conecte su planta a la nube: 10 pasos
Video: “ABANDONO la MODIFICACIÓN y DEJO PASO a los JÓVENES” dice BLACK ALIEN 2024, Mes de julio
Anonim
Conecte su planta a la nube
Conecte su planta a la nube
Conecte su planta a la nube
Conecte su planta a la nube
Conecte su planta a la nube
Conecte su planta a la nube

En nuestra oficina hay un cactus que no estaba recibiendo la atención que merecía. Como trabajo en una empresa de TI y quería experimentar con LoRa, soluciones sin servidor y AWS, llamé a nuestro cactus Steeve y lo conecté a la nube. Ahora puedes monitorear a Steeve desde casi cualquier lugar del mundo usando la página web que hice para él: la interfaz web de Steeve.

Suministros

1 cactus / tu planta favorita

1 Arduino MKR WAN 1300 (tienda Arduino)

1 antena de 868 mHz / 914 mHz (depende de su ubicación) (Amazon)

1 LoRa Gateway cuando no está dentro del alcance de uno (Amazon)

2 pilas AA

1 sensor TMP102 (Amazon)

1 sensor de humedad del suelo (Amazon)

Cables conductores (Amazon)

soldador

Soporte de batería (Amazon)

caso

opcional: impresora 3D (si puede usar una impresora 3d, entonces no necesita un soporte de batería o un estuche)

Paso 1: Impresión de la carcasa (opcional)

Impresión de la carcasa (opcional)
Impresión de la carcasa (opcional)
Impresión de la carcasa (opcional)
Impresión de la carcasa (opcional)

Descargue este archivo zip, descomprímalo e imprima los archivos. Los archivos están marcados con la cantidad necesaria del artículo.

Siéntase libre de agregar algo a la tapa como lo hice yo.

Los imprimí con una altura de capa de 0,2 mm y un relleno del 15%.

Los ganchos de caja se pueden acoplar con tornillos m3.

Cuando la caja está impresa, puede usar un cable para hacer las conexiones necesarias en el soporte de la batería. Puede utilizar la imagen proporcionada como referencia.

Paso 2: cableado

Alambrado
Alambrado
  • Antes de encender el arduino, asegúrese de que la antena esté conectada, encender el arduino sin la antena puede causar daños.
  • Conecte todo de acuerdo con el diagrama de cableado proporcionado.
  • Si está soldando estos cables, asegúrese de no puentear ninguna clavija en los sensores o el arduino.

Paso 3: crea una aplicación en la red de Things

  • Vaya a https://www.thethingsnetwork.org/ y si aún no tiene una cuenta, cree una.
  • Una vez que tenga una cuenta y haya iniciado sesión, puede ir a la consola (en la esquina superior derecha, haga clic en su nombre de usuario y luego en la consola).
  • Haga clic en aplicaciones.
  • Una vez que se cargue la página, debería poder hacer clic en "agregar aplicación".
  • Complete el formulario y elija la región correcta en la parte inferior. Haga clic en "agregar aplicación".
  • Felicitaciones, acaba de crear una aplicación en la red de cosas. = D

Paso 4: Conectando el Arduino a la red Things

Para programar el arduino, le aconsejo que utilice el arduino ide en línea, esto hace que cargar en la biblioteca necesaria sea muy fácil.

  • Abra su aplicación en la red de cosas.
  • Debe haber un campo titulado dispositivos, haga clic en registrar dispositivo.
  • verá un campo llamado Id. de dispositivo. este es el nombre que desea darle a su sensor. Debería haber otro etiquetado Device EUI, esta es la clave única que usa su arduino para autenticarse.
  • Para obtener esta clave, necesitamos flashear el arduino con un boceto específico. El boceto se puede encontrar allí. Este boceto debe ejecutarse y sobre el monitor de serie se debe enviar el eui. Copie el eui del monitor en serie al campo Device EUI en la red de cosas.
  • Haga clic en registrarse.
  • Ahora hemos registrado nuestro arduino en la nube. Es hora de empezar a enviar mensajes.
  • Debería haber sido redirigido a una página llamada descripción general del dispositivo. Aquí puede ver el eui de su dispositivo, el eui de la aplicación y la clave de la aplicación.
  • Para continuar, necesitamos flashear el boceto final en el arduino. El boceto se puede encontrar aquí.
  • Cuando abra este enlace, verá que hay varias pestañas. Abre la pestaña de secretos. Hay 2 claves que necesita para hacer frente desde la red de cosas hasta el archivo de secretos.
  • Una vez que se hayan completado estas claves, puede flashear el arduino. Comenzará a enviar datos a la red de cosas una vez cada hora.
  • Si todo salió bien, debería poder ver los mensajes que ingresan en la pestaña Datos en la red de cosas al reiniciar el arduino (el único botón en la placa).

    • Si no aparecen datos allí, esto podría significar que no está dentro del alcance de una puerta de enlace LoRa correcta. Puede consultar un mapa con todas las puertas de enlace disponibles en https://thethingsnetwork.org. Las puertas de enlace LoRa de un solo canal no funcionarán con el arduino recomendado.
    • Si no está dentro del alcance de una puerta de enlace, puede acoplar su propia puerta de enlace a la red de cosas. Estas puertas de enlace suelen tener tutoriales bastante buenos sobre cómo conectarlas. Busque en la lista de suministros la puerta de enlace recomendada.

Paso 5: Interpretación de los datos en la red de Things

  • Para obtener datos utilizables de los mensajes en la red de cosas, necesitamos decodificar la corriente de bytes.
  • En la red de cosas, vaya a su aplicación.
  • Debería haber una pestaña denominada "Formatos de carga útil", haga clic en esta pestaña.
  • Hay 4 botones uno al lado del otro: "decodificador", "convertidor", "validador", "codificador".
  • Haga clic en decodificador.
  • Pegue el siguiente código allí.

function Decoder (bytes, port) {// Decodifica un mensaje de enlace ascendente desde un búfer // (matriz) de bytes a un objeto de campos. var stringToDecode = bin2String (bytes); var res = stringToDecode.split (""); var temp = res [1]; var húmedo = res [3]; var bat = res [5]; var decoded = {"temperatura": temp, "humedad": húmedo, "batería": bat}; retorno decodificado; } función bin2String (matriz) {var result = ""; for (var i = 0; i <array.length; ++ i) {result + = (String.fromCharCode (array )); } devolver resultado;}

  • Clic en Guardar.
  • Cuando reinicia el arduino y ve la pestaña de datos, debería ver un objeto json con un formato agradable que puede leer fácilmente.

Paso 6: Conexión de su aplicación a AWS

Usaremos AWS para almacenar y usar los datos de la red de cosas. Todos los recursos que vamos a utilizar están cubiertos por el nivel gratuito de AWS.

  • Vaya a AWS
  • Ingresar o Crear una cuenta.
  • Para conectar su aplicación en la red de cosas a AWS, le recomiendo seguir este tutorial:
  • Una vez que haya completado este tutorial, navegue en la consola de AWS hasta el segmento de IoT-Core.
  • En la barra de menú de la izquierda hay una etiqueta "Administrar", haga clic aquí.
  • Ahora debería ver una tarjeta con el nombre de su sensor.
  • De nuevo, en la barra de menú de la izquierda, haga clic en "Actuar".
  • Si hay una tarjeta con la etiqueta Tienda, está listo para comenzar.
  • Si no es así, haga clic en "Crear".
  • Complete el nombre "Tienda".
  • Puede agregar una descripción si lo desea.
  • Como una declaración de consulta, complete el siguiente código: SELECT dev_id, metadata.time, payload_fields.temperature, payload_fields.moisture, payload_fields.battery FROM 'cactus_network / devices / + / up'.
  • En "Establecer una o más acciones", haga clic en agregar acción.
  • Seleccione "Dividir el mensaje en varias columnas de una tabla de DynamoDb (DynamoDBv2)".
  • Haga clic en configurar acción
  • Haga clic en crear nuevo recurso.
  • Haga clic en crear tabla y asigne un nombre a su tabla.
  • Debajo de la clave principal, complete "dev_id".
  • Haga clic en agregar clave de clasificación
  • Complete "tiempo".
  • Haga clic en crear.
  • Si todo salió bien, debería estar de nuevo en la página de acción de configuración.
  • Hay un área ligeramente atenuada en "Elija o cree un rol para otorgar acceso a AWS IoT para realizar esta acción".
  • Haga clic en crear función y asigne un nombre a esta función.
  • Haga clic en crear rol.
  • Haga clic en agregar acción.
  • Haga clic en crear regla.
  • Ahora debería tener una regla que almacene automáticamente todos los mensajes entrantes de la red de cosas en DynamoDb.
  • Puede verificar si esto funciona reiniciando el arduino e ir a buscar en la tabla de DynamoDb que acaba de crear.
  • Debe haber un registro con el mensaje.

Paso 7: creación de una Lambda

Para leer los datos de DynamoDB vamos a escribir una lambda de AWS.

  • En la consola de administración de AWS, debajo de los servicios, hay un enlace con la etiqueta "Lambda", haga clic en este.
  • Haga clic en crear función.
  • Escoge un nombre.
  • Establezca el tiempo de ejecución en Python 3.7.
  • Haga clic en crear función.
  • Pegue este código en el IDE integrado.

importar json

import boto3 import time from datetime import datetime, timedelta from boto3.dynamodb.conditions import Key, Attr def lambda_handler (evento, contexto): return retreive_data () def retreive_data (): # Obtiene el recurso del servicio. dynamodb = boto3.resource ('dynamodb') table = dynamodb. Table ('NOMBRE DE LA TABLA AQUÍ') ahora = datetime.now () ayer = ahora - timedelta (horas = 24) fe = Key ('time'). between (ayer. f en recordsToDelete ['Items']: #print (f) table.delete_item (Key = {'dev_id': f ['dev_id'], 'time': f ['time']}) data = response ['Items '] devolver datos

  • Cambie el nombre de la tabla por el que elija.
  • Desplácese hacia abajo hasta el rol de ejecución.
  • Haga clic en crear un nuevo rol a partir de las plantillas de políticas de AWS.
  • Escoge un nombre.
  • En las plantillas de políticas, seleccione "Permisos de aprovechamiento de pruebas" y "Permisos de microservicio simples".
  • Clic en Guardar.
  • Haga clic en prueba.
  • Puede aparecer una ventana emergente, simplemente elija un nombre y guarde.
  • Haga clic en probar nuevamente.
  • En la parte superior debería haber una pancarta verde que diga "Resultado de la ejecución: correcto".
  • Al hacer clic en este banner, debería ver el resultado de esta función, esto debería ser una lista de sensordata.
  • Tenga en cuenta que este script elimina todos los datos que tengan más de 24 horas.
  • En caso de que su banner no sea verde sino rojo, se le ha pasado algo y al hacer clic en este banner obtendrá el mensaje de error completo. En este caso, Google es tu mejor amigo.

Paso 8: creación de un punto final de API

  • En la consola de administración de AWS, bajo servicios, hay un enlace con la etiqueta "api-gateway", haga clic en este.
  • Haga clic en crear API.
  • Asegúrese de que "REST" y "Nueva API" estén seleccionados.
  • Elija un nombre para su api.
  • Haga clic en crear API.
  • Ahora debería haber un botón etiquetado acciones en la pantalla, haga clic en él.
  • Luego haga clic en crear recurso.
  • Como nombre de recurso, debe tomar algo simple como "planta" o "datos de planta".
  • Haga clic en crear recurso.
  • A la izquierda ahora debería estar el nombre que acaba de ingresar. haga clic en este nombre.
  • Ahora haga clic en acciones nuevamente y ahora haga clic en agregar método.
  • Seleccione OBTENER.
  • Haga clic en la marca de verificación.
  • Debe haber un cuadro de texto etiquetado como Función Lambda.
  • Ingrese el nombre que le dio a la función lambda aquí.
  • Clic en Guardar.
  • Puede haber una ventana emergente que le advierte que está creando permisos adicionales.
  • Acepta esta ventana emergente.
  • Ahora, en acciones, haga clic en habilitar cors.
  • Haga clic en "habilitar CORS y reemplazar los encabezados CORS existentes".
  • Haga clic en "sí, …".
  • Vuelva a hacer clic en acciones y haga clic en Implementar API.
  • En la etapa de implementación, seleccione [Nueva etapa].
  • Escoge un nombre.
  • Haga clic en implementar.
  • Ahora ha publicado su api en línea para el mundo.
  • En la pantalla a la que ha llegado, haga clic en "OBTENER" y seleccione el recurso que acaba de crear.
  • Debe haber un enlace en la parte superior con la etiqueta "invocar URL".
  • Copia este enlace.
  • Péguelo en un navegador y presione enter.
  • Debería ver los datos que están en la base de datos.

Paso 9: conecte su planta a la red social de plantas

  • Vaya a
  • Haga clic en "Iniciar sesión".
  • Haga clic en crear cuenta.
  • Complete el formulario para crear su cuenta.
  • Tenga en cuenta que el nombre de usuario también debe ser su correo electrónico.
  • Haga clic en crear cuenta.
  • Es posible que deba verificar su correo electrónico antes de poder continuar.
  • Asegúrate de haber iniciado sesión.
  • Vuelva a la página de inicio (haga clic en el logotipo en la esquina superior izquierda).
  • Desliza el botón de configuración.
  • Complete el formulario, debe completar todos los campos.
  • El enlace a la API es el enlace que guardó después de crear el punto final de la API.
  • Cuando todo esté lleno, haga clic en el botón Guardar planta. el sistema ahora verificará el enlace de la API que ingresó y, si es correcto, guardará su planta en la red.
  • Vuelve a la página de inicio.
  • Ahora puede hacer clic en todas las plantas, debería poder ver todas las plantas registradas. tu planta también debería estar ahí. haga clic en la tarjeta y se le llevará a una página de descripción general de su planta, que también mostrará consejos basados en los valores que estableció en la configuración.

Paso 10: recuéstese y dése una palmada en la espalda

Acaba de conectar una planta a Internet. Bastante impresionante, ¿verdad?

Recomendado: