Tabla de contenido:

IOT123 - ASIMILAR EL HUB DEL SENSOR: WEBSEREVER DE PERSONALIZACIÓN ICOS10: 11 Pasos
IOT123 - ASIMILAR EL HUB DEL SENSOR: WEBSEREVER DE PERSONALIZACIÓN ICOS10: 11 Pasos

Video: IOT123 - ASIMILAR EL HUB DEL SENSOR: WEBSEREVER DE PERSONALIZACIÓN ICOS10: 11 Pasos

Video: IOT123 - ASIMILAR EL HUB DEL SENSOR: WEBSEREVER DE PERSONALIZACIÓN ICOS10: 11 Pasos
Video: CompTIA Основы ИТ (ITF+) FC0-U61 Полный курс 2024, Mes de julio
Anonim
IOT123 - ASIMILAR SENSOR HUB: WEBSEREVER DE PERSONALIZACIÓN ICOS10
IOT123 - ASIMILAR SENSOR HUB: WEBSEREVER DE PERSONALIZACIÓN ICOS10
IOT123 - ASIMILAR SENSOR HUB: WEBSEREVER DE PERSONALIZACIÓN ICOS10
IOT123 - ASIMILAR SENSOR HUB: WEBSEREVER DE PERSONALIZACIÓN ICOS10
IOT123 - ASIMILAR SENSOR HUB: WEBSEREVER DE PERSONALIZACIÓN ICOS10
IOT123 - ASIMILAR SENSOR HUB: WEBSEREVER DE PERSONALIZACIÓN ICOS10

Los esclavos ASSIMILATE SENSOR / ACTOR incrustan metadatos que se utilizan para definir visualizaciones en Crouton. Esta compilación agrega un servidor web al ESP8266 Master, sirve algunos archivos de configuración que el usuario puede modificar y luego usa esos archivos para redefinir las visualizaciones. Por lo tanto, se pueden cambiar los nombres de las tarjetas del tablero y la mayoría de las propiedades configurables. Esto era necesario, p. Ej. el DHT11 publica las propiedades de Temperatura y Humedad: si un sitio tiene varios nodos con sensores DHT11 separados, no todos pueden llamarse Temperatura (Temp. de garaje, Temp. de patio…). La restricción de longitud de metadatos establecida por el bus I2C (16 caracteres) no existe y se pueden aplicar valores más ricos (hasta 64 caracteres).

La autenticación básica opcional es configurable para la página web de edición, así como una lista de exclusión de la autenticación para otros recursos.

Un interruptor de lado bajo que apaga los esclavos cuando es necesario, también se ha desarrollado en una placa hija existente.

Como nota técnica, antes de comenzar esta compilación, la huella de memoria era del 70% debido a un gráfico de objeto de metadatos global. La última biblioteca AssimilateBus ha tenido cambios importantes que desacoplan la variable global en archivos JSON más pequeños guardados en SPIFFS. Esto ha devuelto la huella a ~ 50%, lo que es más seguro para todo el análisis / compilación de JSON. La biblioteca AssimilateBusSlave sigue siendo la misma (ASSIM_VERSION 2) a lo largo de estos cambios.

CARACTERISTICAS Y VISION

Actualmente, los esclavos (sensores y actores) son autónomos y se basan en mensajes I2C basados en convenciones para leer propiedades o actuar según los comandos. El maestro recoge los metadatos y las propiedades de los esclavos y los envía a un corredor de MQTT. También inicia un servidor web y sirve archivos JSON que se pueden editar para configurar el maestro y personalizar los metadatos / propiedades que finalmente consume Crouton. Los sensores / actores individuales se leen / controlan a través de Crouton sin que el maestro tenga ningún conocimiento previo de lo que hacen los esclavos.

Uno de los objetivos de ASSIMILATE IOT NETWORK es personalizar Crouton para que los editores de mashup servidos desde los servidores web IOT NODE (como esta compilación), se agreguen como componentes web que darán un control completo de lo que hace la cosa, es decir, el maestro no está programado, los esclavos tienen conjuntos de funciones básicas, ¡pero el tablero de Crouton incorpora todas las reglas comerciales necesarias para ejecutarlo!

La horquilla Crouton se ve como una opción para el control / configuración descentralizada de las cosas. En esencia, cualquier combinación de cliente / GUI MQTT puede administrar sus cosas, ya que todas las funciones (sensores y actores) están expuestas como puntos finales MQTT.

Paso 1: Crutón

Cuscurro
Cuscurro
Cuscurro
Cuscurro

Cuscurro. https://crouton.mybluemix.net/ Crouton es un panel que le permite visualizar y controlar sus dispositivos IOT con una configuración mínima. Esencialmente, es el panel de control más fácil de configurar para cualquier entusiasta del hardware IOT que utilice solo MQTT y JSON.

Los ASSIMILATE SLAVES (sensores y actores) tienen metadatos y propiedades incrustados que el maestro usa para construir el paquete deviceInfo json que Crouton usa para construir el tablero. El intermediario entre ASSIMILATE NODES y Crouton es un bróker MQTT compatible con websockets: Mosquito se utiliza para la demostración.

A medida que ASSIMILATE MASTER (esta compilación) solicita propiedades, formatea los valores de respuesta en el formato requerido para las actualizaciones de Crouton.

Paso 2: el servidor web / editor

El servidor web / editor
El servidor web / editor
El servidor web / editor
El servidor web / editor

Cuando el maestro arranca (esta compilación), se inicia un servidor web integrado. La dirección IP se envía a la consola serie; eventualmente, esto se publicará en el panel de Crouton.

Cuando navegue a la URL indicada, se cargará el EDITOR ACE:

Ace es un editor de código incrustable escrito en JavaScript. Coincide con las funciones y el rendimiento de editores nativos como Sublime, Vim y TextMate.

Ace es popular entre los servidores web integrados y ofrece una buena interfaz para editar y guardar archivos JSON.

Al hacer clic en un nombre de archivo a la izquierda, se leerá el archivo de SPIFFS en el ESP8266 y se cargará el contenido para editarlo a la derecha. El archivo se puede guardar desde la barra de herramientas superior.

Para cargar un archivo:

  1. Elija Archivo de su sistema de archivos local.
  2. Inserte una ruta de carpeta (si es necesario) en el cuadro de texto.
  3. Haga clic en Cargar.
  4. Recarga la página.

Paso 3: personalización del dispositivo

Personalización de dispositivos
Personalización de dispositivos

La configuración del dispositivo (el ESP8266) se realiza a través del archivo device.json.

Algunas de estas entradas (wifi_ssid, wifi_key) deberán modificarse antes de cargar los datos en SPIFFS (ESP8266 Sketch Data Upload).

Busque la raíz del servidor web (que se muestra en la salida de la consola como

EDICIÓN

En ACE EDITOR, elija config / device.json.

Las entradas son:

  • www_auth_username: nombre de usuario de autorización para archivos del servidor web (vacío para no autorización).
  • www_auth_password: contraseña de autorización para los archivos del servidor web (si se define el nombre de usuario).
  • www_auth_exclude_files: lista delimitada por punto y coma de rutas de archivos para excluir de las comprobaciones de autorización (si se define el nombre de usuario).
  • sensor_interval: los milisegundos entre las publicaciones de datos al MQTT Broker.
  • ntp_server_name: el nombre del servidor horario que se utilizará.
  • time_zone: el desfase en horas de su hora local.
  • wifi_ssid: el SSID de su punto de acceso local.
  • wifi_key: la clave que se utilizará para el SSID.
  • mqtt_broker: la dirección del intermediario MQTT.
  • mqtt_username: el nombre de usuario que se utilizará para el intermediario MQTT (vacío si no se necesita una cuenta).
  • mqtt_password: la contraseña que se utilizará del nombre de usuario de MQTT.
  • mqtt_port: el puerto del intermediario MQTT.
  • mqtt_device_name: el nombre que se utilizará para los temas MQTT y la identificación de Crouton.
  • mqtt_device_description: la descripción del dispositivo que se muestra en Crouton.
  • viz_color: el color para identificar las tarjetas del dispositivo en Crouton (en la versión bifurcada)

Paso 4: personalización de la propiedad

Personalización de la propiedad
Personalización de la propiedad
Personalización de la propiedad
Personalización de la propiedad
Personalización de la propiedad
Personalización de la propiedad

Cada uno de los esclavos tiene una matriz de estructura nvc definida en el archivo definitions.h:

// --------------------------------------- PROPIEDADES PUBLICADAS

nvc props [2] = {{"Humedad", "", verdadero}, {"Temperatura", "", falso}}; // --------------------------------------- FIN DE LAS PROPIEDADES PUBLICADAS

Cada una de las entradas tiene un índice, siendo el primero 0 (cero).

La personalización del nombre de la propiedad se realiza a través del archivo user_props.json.

Busque la raíz del servidor web (que se muestra en la salida de la consola como

EDICIÓN

En ACE EDITOR, elija config / user_props.json (o cargue uno).

La estructura es:

La primera clave es la dirección del esclavo en el archivo definitions.h identificada por:

#define ADDRESS_SLAVE XX

  • El siguiente nivel de claves es el índice de la propiedad.
  • El valor de esa clave es el Nombre de propiedad que se utilizará en Crouton en lugar del Nombre de propiedad definido en el archivo de definiciones.

Paso 5: personalización de metadatos

Personalización de metadatos
Personalización de metadatos
Personalización de metadatos
Personalización de metadatos
Personalización de metadatos
Personalización de metadatos
Personalización de metadatos
Personalización de metadatos

Debido a la cantidad de personalizaciones posibles, cada esclavo tiene su propio archivo de modificación de metadatos. Los archivos deben tener el formato user_metas_.json.

La dirección del esclavo se encuentra en el archivo definitions.h en los bocetos de ATTINY85:

#define ADDRESS_SLAVE XX

Los metadatos se definen en el mismo archivo así:

const static char viz1 PROGMEM = "VIZ_CARD_TYPE";

const static char viz2 PROGMEM = "2: gráfico-dona"; const static char viz3 PROGMEM = "1";

La primera línea es el nombre del elemento de metadatos.

La segunda línea es el valor. Generalmente tiene un sufijo de índice de propiedad.

La tercera línea es la bandera de continuación. 1 - continuar, 0 - fin de metadatos (VCC_MV).

Busque la raíz del servidor web (que se muestra en la salida de la consola como

EDICIÓN

En ACE EDITOR, elija config / user_metas_SLAVE_ADDRESS.json (o cargue uno). La estructura es:

  • Una matriz de pares de nombre / valor.
  • Nombre es el nombre del elemento de metadatos que se va a cambiar.
  • El valor es el cambio. Se comprueba el sufijo de índice para el reemplazo.

Paso 6: Materiales y herramientas

Materiales y herramientas
Materiales y herramientas
Materiales y herramientas
Materiales y herramientas
Materiales y herramientas
Materiales y herramientas

Lista de materiales de Shell ICOS10 (IDC)

  1. Plantilla de clavijas D1M BLOCK (1)
  2. Base y carcasa D1M BLOCK (1)
  3. Wemos D1 Mini (1)
  4. Wemos D1 Mini Protoboard Shield (1)
  5. Encabezados hembra 40P (8P, 8P, 9P, 9P)
  6. Cabezal macho 90º (3P, 3P, 3P, 2P, 1P, 2P)
  7. Protoboard de doble cara de 1 "(2)
  8. 2N7000 NFET (1)
  9. Cabezal macho IDC con cubierta de 6 pines (1)
  10. Cable de conexión (~ 10)
  11. Alambre estañado de 0,5 mm (~ 4)
  12. Tornillos autorroscantes de cabeza de botón de 4G x 15 mm (2)
  13. Tornillos avellanados autorroscantes de 4G x 6 mm (~ 20)
  14. Soldadura y Hierro (1)

Paso 7: preparación de MCU

Image
Image
Preparación MCU
Preparación MCU

En esta compilación usamos el Wemos D1 Mini. Si ha construido anteriormente un BLOQUE WIFI D1M, puede usarlo para el componente de hardware modular. Si no es así, siga la siguiente sección como mínimo.

SOLDADURA DE LOS PINES DEL CABEZAL EN LA MCU (usando el PIN JIG) Si no puede imprimir un PIN JIG, simplemente siga las instrucciones e improvise: la altura (desplazamiento) del PIN JIG es de 6,5 mm.

  1. Imprima / obtenga un PIN JIG de esta página.
  2. Pase los pines del cabezal a través de la parte inferior de la placa (TX de derecha a izquierda) y dentro de la plantilla de soldadura.
  3. Presione los pasadores hacia abajo sobre una superficie plana y dura.
  4. Presione la tabla firmemente hacia abajo sobre la plantilla.
  5. Suelde los 4 pines de las esquinas.
  6. Vuelva a calentar y vuelva a colocar la placa / las clavijas si es necesario (la placa o las clavijas no están alineadas o aplomadas).
  7. Suelde el resto de los pines.

CARGA DEL FIRMWARE

El repositorio de código se puede encontrar aquí (instantánea).

Puede encontrar un ZIP de la biblioteca aquí (instantánea).

Instrucciones para "Importar una biblioteca ZIP" aquí.

Una vez instalada la biblioteca, puede abrir el ejemplo "mqtt_crouton_esp8266_customization_webserver".

Instrucciones para configurar Arduino para Wemos D1 Mini aquí.

Dependencias: ArduinoJson, TimeLib, PubSubClient, NeoTimer (consulte los archivos adjuntos si se rompen los cambios en los repositorios).

SUBIR A SPIFFS

Una vez que el código se haya cargado en el IDE de Arduino, abra device.json en la carpeta data / config:

  1. Modifique el valor de wifi_ssid con su SSID WiFi.
  2. Modifique el valor de wifi_key con su clave WiFi.
  3. Modifique el valor de mqtt_device_name con su identificación de dispositivo preferida (no es necesario unirse).
  4. Modifique el valor de mqtt_device_description con su descripción de dispositivo preferida (en Crouton).
  5. Guarde device.json.
  6. Sube los archivos de datos a SPIFFS.

Paso 8: Preparación de la carcasa de la MCU

Image
Image
Preparación de la carcasa de MCU
Preparación de la carcasa de MCU
Preparación de la carcasa de MCU
Preparación de la carcasa de MCU

La carcasa de la MCU expone los conectores para que el D1 Mini se conecte y los conectores para las placas secundarias que se comunican con el circuito Socket (sensores y actores).

CABEZALES DE LA CARCASA Esto se basa en un D1 Mini Protoboard, y rompe estos pines:

  1. Pines para conectar el D1M WIFI BLOCK / D1 Mini.
  2. Roturas directas de las 2 filas de contactos del D1M WIFI BLOCK / D1 Mini. Estos solo están disponibles para su comodidad durante la creación de prototipos. Se espera que las placas secundarias bloqueen todo acceso a estos encabezados.
  3. 4 Roturas de los pines específicos utilizados por las placas hijas.

Para agregar los contactos D1M al ENCABEZADO DE LA VIVIENDA:

  1. Vea el video SOLDADURA USANDO EL SOCKET JIG.
  2. Pase los pines del cabezal a través de la parte inferior de la placa (TX arriba a la izquierda en el lado superior).
  3. Alimente la plantilla sobre el cabezal de plástico y nivele ambas superficies.
  4. Voltee la plantilla y el ensamblaje y presione firmemente el cabezal sobre una superficie plana y dura.
  5. Presione la tabla firmemente hacia abajo sobre la plantilla.
  6. Suelde los 4 pines de las esquinas con una soldadura mínima (solo una alineación temporal de los pines).
  7. Vuelva a calentar y vuelva a colocar la placa / las clavijas si es necesario (la placa o las clavijas no están alineadas o aplomadas).
  8. Suelde el resto de los pines.
  9. Retire la plantilla.
  10. Corta las clavijas por encima de las soldaduras.

Para agregar los Breakouts de la placa secundaria:

  1. Corte 4 cabezales hembra 9P.
  2. En la parte superior, inserte los encabezados 9P como se muestra y suelde en la parte inferior.

Para agregar los brotes directos:

  1. Corte 2 cabezales hembra 8P.
  2. En la parte superior, inserte los encabezados 8P como se muestra y suelde en la parte inferior.

Para conectar los encabezados, en la parte inferior con el pin TX orientado hacia arriba:

  1. Trace y suelde desde el pin RST a través de 4 pines.
  2. Trace y suelde desde el pin A0 a través de 4 pines.
  3. Trace y suelde desde el pin D1 a través de 4 pines.
  4. Trace y suelde desde el pin D2 a través de 4 pines.
  5. Trace y suelde desde el pin D0 hacia abajo 2 filas y a lo largo de 4 pines.
  6. Trace y suelde desde el pin D7 a través de 4 pines.
  7. Trace y suelde desde el pin GND a través de 4 pines.
  8. Trace y suelde desde el pin de 5V a través de 4 pines.
  9. Trace y suelde desde el pin 3V3 hacia abajo 45 ° a través de 4 pines.

MONTAJE DEL APARATO

Los ENCABEZADOS DE LA CARCASA se fijan a la CARCASA DE MCU y esto se fija a la PLACA DE BASE.

  1. Con el lado largo de los ENCABEZADOS DE LA CARCASA apuntando al orificio, inserte los CONTACTOS D1M en las aberturas de la CARCASA DE MCU y empújelos al ras.
  2. Inserte la MCU en los CONTACTOS de la MCU durante la colocación para garantizar la alineación correcta.
  3. Coloque el MARCO DEL CABEZAL sobre la parte superior de los accesorios de montaje y fíjelo con 2 tornillos 4G x 16 mm.
  4. Coloque los accesorios ensamblados con el orificio apuntando hacia el lado corto y fíjelos con los tornillos 4G x 6 mm.

Paso 9: Construcción de la placa secundaria del interruptor del lado bajo esclavo / RESET

Construyendo la placa secundaria de RESET / Interruptor de lado bajo esclavos
Construyendo la placa secundaria de RESET / Interruptor de lado bajo esclavos
Construyendo la placa secundaria de RESET / Interruptor de lado bajo esclavos
Construyendo la placa secundaria de RESET / Interruptor de lado bajo esclavos
Construcción de la placa secundaria de RESET / Interruptor de lado bajo esclavos
Construcción de la placa secundaria de RESET / Interruptor de lado bajo esclavos

Esta es una mejora de la placa secundaria REST desarrollada en la última versión. Esto agrega un interruptor de lado bajo que conecta los esclavos a TIERRA. Si se restablece el maestro, los esclavos también lo harán y la inicialización que propaga los metadatos comenzará de nuevo.

MONTAJE

  1. En el interior, inserte los conectores macho de 90 ° 9P (1), el conector macho de 90 ° 1P (2), el 2N7000 (3) y suelde el exterior.
  2. En el interior, traza un cable amarillo de AMARILLO1 a AMARILLO2 y suelda.
  3. En el interior, traza un cable desnudo de SILVER1 a SILVER2 y suelda.
  4. En el interior, trace un cable desnudo de SILVER3 a SILVER4 y suelde.

Paso 10: Ensamblaje de los componentes principales

Ensamblaje de los componentes principales
Ensamblaje de los componentes principales
Ensamblaje de los componentes principales
Ensamblaje de los componentes principales
Ensamblaje de los componentes principales
Ensamblaje de los componentes principales
Ensamblaje de los componentes principales
Ensamblaje de los componentes principales
  1. Asegúrese de que se haya construido el SHELL y se haya probado el circuito (cable y enchufes).
  2. Cambie el cabezal macho 2P de la TABLA HIJA 3V3 I2C por un cabezal macho 2P 90º 1P.
  3. Inserte el 3V3 I2C DAUGHTER-BOARD, con el pin 3V3 en el extremo irregular de los encabezados (ver foto).
  4. Inserte el INTERRUPTOR LATERAL INFERIOR / RESTABLECIMIENTO-TABLERO HIJA, con el cable hacia el interior (ver foto).
  5. Trace un cable Dupont entre el conector macho 1P de 90º en la TABLA HIJA RESET y la TABLA HIJA 3V3 I2C.
  6. Inserte el conector IDC del CABLE SHELL en el encabezado IDC en el 3V3 I2C DAUGHTER-BOARD.
  7. Inserte con cuidado las TABLAS HIJAS / ALOJAMIENTO entre los cables en la CARCASA y alinee los orificios de la base.
  8. Fije el CONJUNTO DE LA BASE a la CARCASA con los tornillos 4G x 6 mm.
  9. Conecte todos los SENSORES DE ASIMILACIÓN que haya fabricado.

Paso 11: Pasos siguientes

Image
Image
Próximos pasos
Próximos pasos
Próximos pasos
Próximos pasos
  1. Apunte su navegador a
  2. Asegúrese de que el corredor sea test.mosquitto.org.
  3. Haga clic en Conectar.
  4. Ingrese la entrada del nombre del dispositivo como mqtt_device_name en el archivo /config/device.json.
  5. Haga clic en Agregar dispositivo.
  6. Haga clic en Conexión automática.
  7. Encienda su ICOS10 (5V MicroUSB).
  8. Verificar a través del panel de Crouton.

Recomendado: