Tabla de contenido:

IDC2018IOT GarbageCan-Online: 7 pasos
IDC2018IOT GarbageCan-Online: 7 pasos

Video: IDC2018IOT GarbageCan-Online: 7 pasos

Video: IDC2018IOT GarbageCan-Online: 7 pasos
Video: IoT Full Course - Learn IoT In 4 Hours | Internet Of Things | IoT Tutorial For Beginners | Edureka 2024, Noviembre
Anonim
Image
Image
Partes requeridas
Partes requeridas

Introducción

Todo el mundo sabe lo que pasa cuando dejamos la basura en el basurero durante demasiado tiempo sin sacarla. Bueno, lo más obvio es que no hay lugar para más basura, pero también empieza a apestar, y se vuelve muy desagradable.

Con este proyecto, nuestro objetivo es ayudarlo a monitorear sus botes de basura en la casa / área de trabajo \, etc., para que siempre pueda saber cuándo están llenos y pueda tomar medidas inmediatas sacando la basura.

El sistema le avisará mediante una notificación telefónica o una alerta en el panel de control que debe vaciar el bote de basura. El sistema tiene en cuenta el nivel de llenado del bote de basura, pero también la temperatura y la humedad medidas en su interior. Todos conocemos la urgencia de vaciar los cubos de basura en días calurosos y húmedos …

Principales características

  1. Panel de monitoreo:

    • Sección principal:

      • Nivel de llenado de cada bote de basura.
      • Temperatura y humedad de cada bote de basura.
    • Sección de estadísticas:

      • Bote de basura más lleno.
      • El bote de basura más caliente.
  2. Sistema de alertas y notificaciones:

    • Se admiten los siguientes eventos:

      • El bote de basura está lleno.
      • Ocurrió un error de sensor.
    • Las alertas de llenado toman en cuenta el nivel de llenado del bote de basura, pero también los niveles de temperatura y humedad del bote de basura.
    • Las alertas se pueden enviar a través de notificaciones telefónicas y alertas del tablero.
    • Cada canal de alerta se puede encender y apagar a través del tablero.
  3. Escalabilidad:

    • Usando el botón de calibración, es posible ajustar el sistema a diferentes botes de basura con diferentes capacidades.
    • Es posible agregar más botes de basura con relativa facilidad. Se puede montar el mismo sistema en un nuevo bote de basura, configurar el ID del bote de basura y calibrarlo (presionar un botón). Tener más de 3 botes de basura requerirá extender el Tablero (tarea fácil de realizar).

¿Quienes somos?

Este proyecto fue creado (¡con amor y dedicación!) Por Rom Cyncynatus y Daniel Alima - Alumnos del IDC Herzliya como proyecto final para nuestro curso de IoT. Esperamos que nuestro trabajo le resulte útil y que disfrute utilizándolo.

Paso 1: piezas necesarias

Para construir el sistema, deberá adquirir los siguientes componentes y partes:

  1. Bote de basura (preferiblemente con tapa): Este se usará para… bueno… ya sabes lo que vamos a hacer con este, ¿eh?;)
  2. Protoboard: Para conectar todos los diferentes componentes sin usar ninguna soldadura.
  3. NodeMCU (ESP-8266): Encargado de leer los sensores y enviar la información a la nube.
  4. Sensor de distancia IR - Sharp 0A41SK: este sensor medirá la cantidad de basura (nivel de plenitud) dentro de la lata.
  5. Sensor de temperatura y humedad - DHT11: este sensor medirá la temperatura y la humedad dentro del bote de basura.
  6. Interruptor momentáneo: se utilizará para calibrar el sensor de distancia de acuerdo con el tamaño del bote de basura.
  7. Papel de aluminio: se utilizará para formar un detector del estado de la tapa, ya sea que esté abierta o cerrada.
  8. Cables de puente: Consiga muchos, y en diferentes longitudes y colores. Conectará todo junto.
  9. Cinta adhesiva: tendremos que colocar las cosas en su lugar.
  10. Cable Micro-USB: Para conectar el NodeMCU a su computadora para programar, y luego para una fuente de alimentación.
  11. Fuente de alimentación USB (cargador de teléfono inteligente): proporcionará energía al NodeMCU cuando se instale en el bote de basura.

Paso 2: cableado y montaje

Cableado y montaje
Cableado y montaje
Cableado y montaje
Cableado y montaje
Cableado y montaje
Cableado y montaje

Alambrado

Coloque el NodeMCU en la placa de pruebas para que sea conveniente conectarlo más tarde a su bote de basura y conecte el cable USB a él. Luego, consulte la imagen del diagrama de cableado de arriba para conectar los diferentes componentes al NodeMCU. Asegúrese de usar cables largos para los sensores y los cables de estado para que sea conveniente instalar el sistema y usar el bote de basura con él.

  • Sensor de distancia IR - Sharp 0A41SK:

    • Vin (rojo) Vin
    • GND (negro) GND
    • Vout (amarillo) A0
  • Sensor de temperatura y humedad - DHT11:

    • Vin (rojo) 3V3
    • GND (negro) GND
    • DATOS (amarillo) D4
  • Interruptor momentáneo:

    • Pin1 D3
    • Pin2 GND
  • Cables de estado de la tapa (abierta / cerrada):

    • Alambre1 D2
    • Wire2 GND

Montaje

Montar el sistema en el bote de basura es bastante simple. Coloque la placa de pruebas en el bote de basura, preferiblemente cerca de la tapa. Utilice cinta adhesiva o brida para sujetarlo en su lugar. Luego:

  1. Coloque el sensor de distancia IR en el medio de la tapa (¡desde el lado interior!). ¡Asegúrese de asegurarlo correctamente o encontrará lecturas falsas!
  2. Coloque el sensor de temperatura y humedad en algún lugar dentro del bote de basura. Asegúrelo con cinta.
  3. Cubre el lado de la tapa y la punta del bote de basura con papel de aluminio. Asegúrese de que haya un buen contacto cuando la tapa esté cerrada. Esto le indicará al sistema que el bote de basura está abierto o cerrado. Luego pegue cada uno de los cables de estado de la tapa en uno de los papeles de aluminio y asegúrelos con cinta adhesiva.

Paso 3: Configurar MQTT, Node-RED e IFTTT

Configurar MQTT, Node-RED e IFTTT
Configurar MQTT, Node-RED e IFTTT
Configurar MQTT, Node-RED e IFTTT
Configurar MQTT, Node-RED e IFTTT
Configurar MQTT, Node-RED e IFTTT
Configurar MQTT, Node-RED e IFTTT

La mayor parte de la lógica del proyecto se implementa en la nube. NodeMCU envía los datos al servidor MQTT, y Node-RED los consume y aplica su lógica (más sobre la arquitectura más adelante). Por último, para transmitir notificaciones push (alertas) a nuestro teléfono inteligente, usamos IFTTT.

Usaremos los servicios en la nube CloudMQTT y FRED como nuestros servidores MQTT y Node-RED respectivamente, y usaremos IFTTT para notificaciones push.

  1. Regístrese en CloudMQTT con el plan gratuito. Anote sus credenciales para el servidor MQTT (nombre de usuario y contraseña).
  2. Regístrese en IFTTT. Cree un nuevo subprograma de "Notificación de la aplicación Webhooks IFTTT". Utilice "Notificación de teléfono móvil" como el nombre del evento de WebHookds. Consulte la imagen de arriba para obtener los detalles esenciales. Anote la clave de API de su fabricante.
  3. Descargue la aplicación IFTTT en su teléfono e inicie sesión con sus credenciales. Esto le permitirá recibir notificaciones automáticas.
  4. Regístrese en FRED con el plan gratuito.
  5. Una vez que tenga la instancia de FRED en funcionamiento, importe los flujos adjuntos en ella (botón de 3 barras Importar desde el portapapeles). Simplemente pegue el contenido de cada archivo (widgest.json, alerts.json, statistics.json) e impórtelo.
  6. Edite uno de los nodos MQTT (uno es suficiente) para actualizar sus credenciales de CloudMQTT.
  7. Edite el nodo IFTTT para actualizar su clave API de fabricante IFTTT.

Paso 4: Programe la calibración de la capacidad del contenedor de basura y NodeMCU

Una vez que tengamos todo conectado, necesitamos programar el NodeMCU con el software apropiado (boceto) para que realmente utilice todas las cosas que están conectadas a él y se comunique con Internet.

  1. Descargue e instale el IDE de Arduino desde aquí.
  2. Instale y configure el tipo de placa NodeMCU como se explica al principio del siguiente instructivo.
  3. Instale las siguientes bibliotecas (Sketch Incluir biblioteca Administrar bibliotecas …):

    1. Biblioteca Adafruit MQTT (por Adafruit)
    2. Biblioteca de sensores DHT (por Adafruit)
    3. SharpIR (por Giuseppe Masino)
    4. EEPROMAnything - explicación aquí.
  4. Abra el archivo GarbageCanOnline.ino y actualice lo siguiente:

    1. Sus credenciales de WiFi (WLAN_SSID, WLAN_PASS)
    2. Sus credenciales de CloudMQTT (MQTT_USERNAME, MQTT_PASSWORD)
    3. Si este es un segundo bote de basura o más, cambie el ID del bote de basura (GARBAGECAN_ID)
  5. Sube el boceto actualizado a tu NodeMCU.
  6. Abra la ventana del monitor en serie (Ctrl + M) y asegúrese de que se las arregla para publicar los datos de los sensores en CloudMQTT.
  7. Ahora, cuando la tapa esté cerrada y el bote de basura esté vacío, mantenga presionado el botón de calibración para calibrar la capacidad del bote de basura.
  8. El bote de basura está listo. Puede desconectarlo de su computadora y conectarlo en su ubicación designada usando la fuente de alimentación USB.

Paso 5: uso del sistema

Usando el sistema
Usando el sistema
Usando el sistema
Usando el sistema
Usando el sistema
Usando el sistema

Si ha llegado hasta aquí, todo debería estar en funcionamiento. Hagamos una descripción general rápida de los diferentes aspectos de uso del sistema.

Asumimos que solo tiene un cubo de basura conectado, ¡pero es fácil agregar más más adelante!

Primero, observe el tablero principal. Debería estar en la pantalla de inicio, viendo los niveles de llenado, temperatura y humedad del bote de basura. Puede controlar las notificaciones del teléfono y las alertas del panel con los interruptores de la izquierda.

Cuando cambie la cantidad de basura dentro del bote de basura, verá que el indicador cambia en consecuencia. Este también es el caso de los gráficos de temperatura y humedad.

Cuando el nivel de plenitud alcanza el 85% -90% (el umbral exacto depende de la temperatura y la humedad), o se produce un error en el sensor, recibirá una notificación a través de sus métodos preferidos. Se le notificará una vez cada hora por bote de basura.

En la vista Estadísticas, podrá ver el cubo de basura más lleno y el más caliente. Título poco halagador, si podemos decir …

Paso 6: Comprensión del flujo

Entendiendo el Flujo
Entendiendo el Flujo
Entendiendo el Flujo
Entendiendo el Flujo
Entendiendo el Flujo
Entendiendo el Flujo
Entendiendo el Flujo
Entendiendo el Flujo

Como probablemente ya habrá notado, el sistema tiene muchas "partes móviles". Intentaremos aclarar cómo las cosas están conectadas entre sí.

Primero, tenemos nuestro bote de basura con el NodeMCU y sus sensores. Podemos tener muchos de estos, solo "copias" unos de otros.

El NodeMCU mide los diferentes sensores colocados en el bote de basura y publica los datos en el servidor MQTT (protocolo MQTT). Puede pensar en el servidor MQTT como un gran intercambio de información, al que muchos botes de basura pueden reportar su información.

Otra entidad que se conecta al servidor MQTT es Node-RED. Node-RED escucha los diferentes mensajes provenientes de los botes de basura que transportan los datos sensoriales y aplica su lógica en ellos. Funciona utilizando "flujos" de información. Cada vez que se recibe un mensaje, en función de su tipo (tema MQTT), ingresa cadenas específicas de operaciones que terminan activando las diferentes funcionalidades del sistema (actualización del tablero, envío de alertas, etc.) Sería muy correcto decir que Node-RED es el "cerebro" del sistema. Es consciente de todo lo que sucede en todas partes y puede tomar medidas en consecuencia.

Dentro de Node-RED hemos construido 3 flujos principales de información:

  1. Widgets: la información sensorial que se alimenta a Node-RED se muestra en el tablero a través de indicadores y gráficos.
  2. Alertas: la información sensorial se procesa para concluir si se debe activar una alerta (en el tablero o en la aplicación del teléfono inteligente). Se tiene en cuenta el nivel de llenado, con la temperatura y la humedad para decidir informar al usuario que el bote de basura está lleno. Además, los errores sensoriales son reportados por el mismo flujo.
  3. Estadísticas: la información sensorial se agrega para mostrar los botes de basura más llenos y calientes.

Para que Node-RED envíe notificaciones push, se conecta a un servicio llamado IFTTT (por protocolo HTTP). Activa un determinado evento IFTTT con el texto de notificación correspondiente, y IFTTT envía la notificación a nuestro teléfono inteligente (protocolos HTTP y XMPP).

Consulte las imágenes de arriba para comprender mejor (a) la estructura general del sistema y (b) los 3 flujos de información diferentes dentro de Node-RED

Paso 7: Desafíos, limitaciones y planes para el futuro …

Desafíos

Los principales desafíos en este proyecto fueron principalmente el manejo de los servicios MQTT y Node-RED. Primero usamos AdafruitIO, pero su implementación personalizada de MQTT no fue del todo buena para nosotros. No era conveniente trabajar con sus "feeds" dentro de Node-RED. Por lo tanto, finalmente optamos por CloudMQTT, que se basa en el servidor Mosquitto MQTT y es mucho más estándar. Luego pasamos a manejar Node-RED, que fue bastante desafiante, principalmente porque Node-RED es una bestia. Por ejemplo, es mucho más completo y profesional que IFTTT desde nuestro punto de vista. Tuvimos que ajustar y aprender a usar su enfoque de diseño basado en flujo para construir las características requeridas del sistema. Además, una de sus mayores ventajas es el soporte de código javascript, pero nos tomó un tiempo acostumbrarnos ya que no somos programadores de javascript. A pesar de todo eso, disfrutamos mucho trabajando con esta herramienta en particular, y nos pareció muy interesante y útil.

Limitaciones

En cuanto a las limitaciones, la primera sería el hecho de que usamos solo servicios gratuitos y no permitirán ir a gran escala. El plan gratuito de CloudMQTT no permitirá tener más de 5 conexiones paralelas, lo que significa que solo podemos tener 4 botes de basura y el Node-RED. El plan gratuito FRED Node-RED solo permite 24 horas de uso directo, después de lo cual debe iniciar sesión manualmente y restablecer el temporizador. Sin embargo, estos problemas se pueden resolver fácilmente ejecutando estos servicios localmente o pagando un poco más para eliminar las limitaciones. La segunda limitación es el hecho de que cuando uno agrega el cuarto bote de basura y en adelante, tiene que editar manualmente el flujo de widgets en Node-RED para agregar sus widgets apropiados.

Planes para el futuro

Teníamos algunas ideas para mejorar aún más nuestro sistema y ampliarlo:

  1. Pase a los servicios en la nube que no son gratuitos. (un solo día de trabajo).
  2. Agregar un compresor de basura al bote de basura, reduciendo así la frecuencia de vaciado. (4 meses de trabajo)
  3. Trabajar con botes de basura urbanos e industriales para mejorar la eficiencia de los camiones de la ciudad que manejan la basura en la ciudad. Esto significaría mejorar en gran medida el tablero y el sistema de notificación para que los conductores de camiones puedan planificar su ruta mucho mejor al manipular la basura. (6 meses de trabajo).
  4. Agregar capacidades de reciclaje al bote de basura, como la capacidad de verter soluciones biológicas especiales en la basura y ayudar a reciclarla mientras todavía está dentro del bote de basura. Esto se puede usar a nivel nacional, por ejemplo, para producir abono para jardines, pero claramente también se puede usar en latas industriales. (6 meses de trabajo).

Recomendado: