Revista 100% Verde

Detector de sonido con sensor de humedad y temperatura con IoT

Por Soloelectronicos @soloelectronico

quí es lo que necesitamos:

  1. ESP8266 ESP-01 WiFi módulo
  2. FTDI Breakout Board + Mini cable USB
  3. ESP8266 ESP-01 Breakout Board (opcional)
  4. Módulo relé de 1 canal
  5. DHT11 Sensor de humedad y temperatura
  6. Sensor de sonido
  7. Breadboards (utilizaré breadboards pequeños 2)
  8. 5V a 3.3V paso descendente módulo de Buck (opcional)
  9. Un montón de cables de puente

En primer lugar, debemos estudiar las conexiones de estos componentes. Aquí están los módulos principales que vamos a utilizar para este ejercicio. Por favor, tengo tiempo para estudiarlas, especialmente las asignaciones de pines. Es posible que tenga una variante diferente de los componentes, así que por favor tome nota de las etiquetas de pin:

Detector de sonido  con sensor de humedad y temperatura con IoT
ESP8266 ESP-01 Wifie módulo
Detector de sonido  con sensor de humedad y temperatura con IoT

Tenemos que tener cuidado ya que esta placa funciona en un 3, 3V lógica. VCC (aunque he intentado alimentar con 5V y no pasó nada) debe conectarse a 3.3V. Mismo va a CH_PD. RX debe conectarse a TX de la Junta de arranque FTDI, a través de un divisor de tensión. Puede establecer el puente en su módulo FTDI de 3.3V si lo tiene. El módulo FTDI que estoy usando te da la opción de elegir entre 5V y 3.3V. En caso de que la fuente de alimentación sólo proporciona 5V, consulte el divisor de tensión a continuación. Usted puede elegir las resistencias correctas para proporcionar energía suficiente a su módulo de ESP8266.

Detector de sonido  con sensor de humedad y temperatura con IoT

Módulo relé de 1 canal
DHT11 Sensor de humedad y temperatura
Sensor de sonido
FTDI USB a TTL convertidor de serie

En la siguiente imagen, he puesto el módulo FTDI para 3.3V por cambiar la configuración de su puente:

Detector de sonido  con sensor de humedad y temperatura con IoT

Cuando están conectados los pines 1 y 2, el módulo FTDI proporciona una potencia de 5 voltios (mismo va con el pin de TX también). Cuando se conectan los pines 2 y 3, proporcionará energía 3.3-vols (lo mismo con el pin de TX también).

5V a 3.3V paso descendente de alimentación módulo de Buck (opcional)

Antes de proceder con la codificación, necesitamos tener la siguiente configuración en el IDE de Arduino. Para las bibliotecas, descargarlos desde el enlace proporcionado para cada biblioteca (véase abajo) en Github.

  1. ESP8266 Tableros - para obtener instrucciones paso a paso, por favor véase la sección siguiente.
  2. SimpleDHT bibliotecas - bibliotecas de SimpleDHT pueden ser descargado aquí.
  3. SimpleTimer bibliotecas - bibliotecas Simple pueden ser descargado aquí.
ESP8266 Tablas creado en el IDE de Arduino

Creación de las juntas de ESP8266 es muy fácil. Por favor siga los siguientes pasos:

  1. Abra el IDE de Arduino.
  2. Ir a archivo > Preferencias.
    Detector de sonido  con sensor de humedad y temperatura con IoT
  3. De las URLs de Gerente tableros adicionales texto de campo, colocar esta URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json. Haga clic en aceptar luego.
    Detector de sonido  con sensor de humedad y temperatura con IoT
  4. Ahora, vaya a Herramientas > Junta > Gestor de tablas.
    Detector de sonido  con sensor de humedad y temperatura con IoT
  5. En Administrador de tablas, buscar esp8266 e instalar el esp8266 por ESP8266 comunidad versión x.x.x. Cierre la ventana del administrador de tablas.
    Detector de sonido  con sensor de humedad y temperatura con IoT
  6. Ir a Herramientas > Junta Desplácese por la lista hasta encontrar Módulo genérico de ESP8266.
    Detector de sonido  con sensor de humedad y temperatura con IoT
Agregar las bibliotecas requeridas
  1. Ir al link proporcionado arriba para las bibliotecas necesarias 2 dos (SimpleDHT y SimpleTimer.
  2. Para cada vínculo, haga clic en clonar o descargar. Aparece una pequeña ventana, haga clic en Descargar Zip. Se refieren a las imágenes que se muestra a continuación:
    Detector de sonido  con sensor de humedad y temperatura con IoT
    Detector de sonido  con sensor de humedad y temperatura con IoT
  3. Guarde el archivo ZIP para cada biblioteca.
  4. En el IDE de Arduino, vaya a Sketch > Biblioteca incluyen > Agregar. Cierre biblioteca.
  5. Busque y agregue a cada biblioteca (uno a la vez).
    Detector de sonido  con sensor de humedad y temperatura con IoT
Agregar las bibliotecas de Cayena

Bibliotecas de Cayena se puede instalar el IDE de Arduino mediante el administrador de biblioteca. Para ello, siga los siguientes pasos:

  1. En el IDE de Arduino, vaya a Sketch > Biblioteca incluyen. Haga clic en administrar bibliotecas.
    Detector de sonido  con sensor de humedad y temperatura con IoT
  2. En la ventana que aparecerá, escriba Cayena en el campo de búsqueda. Instale el Cayenne por myDevices versión x.x.x y CayenneMQTTpor myDevices versión x.x.x. Cierre la ventana después. Estas bibliotecas están también disponibles en Github (bibliotecas deCayena y CayenneMQTT ).
    Detector de sonido  con sensor de humedad y temperatura con IoT
Modo de programación

Inicialmente, tenemos que configurar nuestro ESP8266 ESP-01 al modo de programación. No necesitamos conectar nuestros componentes, sin embargo, como conectar les pueden causar la carga de los bocetos al fracaso. La siguiente tabla detalla qué pines están conectados uno al otro entre el módulo de ESP8266 ESP-01 WiFi y el FTDI USB a TTL de serie convertidor:

Detector de sonido  con sensor de humedad y temperatura con IoT

Es necesario establecer el puente del módulo FTDI para 3.3V. Esta manera, nosotros no necesitando cualquier divisor del voltaje o el paso hacia abajo módulo de buck. El convertidor USB a Serial podría tener asignaciones de pines diferentes. La descripción anterior se demuestra en el siguiente esquema:

Detector de sonido  con sensor de humedad y temperatura con IoT

¡Eso es todo! Ahora estamos listos para configurar nuestra consola y subir los bocetos:

Detector de sonido  con sensor de humedad y temperatura con IoT

Crear el tablero de mandos de Cayena
  1. Inicie sesión en su cuenta de Cayenne (registro gratis si usted no tiene uno pero al Cayenne registro página):
    Detector de sonido  con sensor de humedad y temperatura con IoT
  2. Una vez identificado, el siguiente paso sería elegir el dispositivo que vamos a usar . Si este es el primer dispositivo en tu panel de control, elija todos los dispositivos:
    Detector de sonido  con sensor de humedad y temperatura con IoT
    , seleccione ESP8266 genérico en microcontroladores:
    Detector de sonido  con sensor de humedad y temperatura con IoT
    si ya tienes añadidos previamente en los dispositivos existentes, necesitará agregar un dispositivo haciendo clic en el menú de añadir dispositivos/Widget:
    Detector de sonido  con sensor de humedad y temperatura con IoT

    Continuación, elija ESP8266 ya que esta es nuestra tabla de desarrollo:
    Detector de sonido  con sensor de humedad y temperatura con IoT
  3. En la página siguiente, se muestra con el nombre de usuario de MQTT, MQTT contraseña e ID de cliente. Necesitamos estos datos en el bosquejo más adelante. También aparecerá en la parte inferior de la página que está esperando el dispositivo a conectar.
    Detector de sonido  con sensor de humedad y temperatura con IoT
  4. Ahora, procedemos con el bosquejo. Abra el IDE de Arduino. Ir a archivo > ejemplos > Cayenne-MQTT-ESP8266 > ESP8266. Este esbozo será nuestro boceto base.
    Detector de sonido  con sensor de humedad y temperatura con IoT
  5. Volver al Portal de Cayena. Tomar nota de lo siguiente, porque vamos a utilizarlo en nuestro bosquejo:
    • MQTT USERNAME
    • MQTT CONTRASEÑA
    • ID DE CLIENTE
  6. Ahora, vuelve al IDE de Arduino. Pegue los valores en la sección resaltada en la captura de pantalla siguiente:
    Detector de sonido  con sensor de humedad y temperatura con IoT
  7. También, proveer el nombre de Wi-Fi (SSID) y la contraseña en esta sección del código:
    Detector de sonido  con sensor de humedad y temperatura con IoT
  8. Por cierto, tenemos que incluir las librerías necesarias: SimpleDHT y SimpleTimer. La SimpleDHT nos permite usar la temperatura de la DHT. El SimpleTimer nos permitirá ejecutar métodos fuera el método loop():
    Detector de sonido  con sensor de humedad y temperatura con IoT
  9. Ahora tenemos que declarar las clavijas para ser usado por los sensores.
    • DHT11 Pin = Pin 2 (GPIO2 ESP8266 ESP-01)
    • Pin de sonido = Pin 3 (GPIO3 ESP8266 ESP-01)
    • Pin de relé = Pin 1 (GPIO1 ESP8266 ESP-01)
      Detector de sonido  con sensor de humedad y temperatura con IoT
  10. Puesto que vamos a enviar datos a la plataforma del Cayenne IoT usando MQTT API, tenemos que pasar el valor de sensores a los pines virtuales. Los pines virtuales se utilizará por los widgets en nuestro escritorio. No vamos a utilizar V1, porque establecimos esto como una salida (para controlar el relé - usado en los widgets de dashboard de Cayena):
    • V2 - humedad (datos de DHT11)
    • V3 - temperatura (datos de DHT11)
    • V4 - sonido (datos del Sensor de sonido)
  11. Subir el boceto a la Junta de ESP8266 ESP-01. Asegúrese de que el elegido es Genérico módulo ESP8266:
    Detector de sonido  con sensor de humedad y temperatura con IoT
Código completo
// This example shows how to connect to Cayenne using an ESP8266 and send/receive sample data.
// Make sure you install the ESP8266 Board Package via the Arduino IDE Board Manager and select the correct ESP8266 board before compiling.

//#define CAYENNE_DEBUG
#define CAYENNE_PRINT Serial
#include <CayenneMQTTESP8266.h>

#include <SimpleTimer.h> // Download from https://github.com/jfturcot/SimpleTimer
#include <SimpleDHT.h> // Download from https://github.com/adafruit/DHT-sensor-library

// WiFi network info.
char ssid[] = "<your ssid/wifi name>"; char wifiPassword[] = ""<your ssid/wifi password>""; // Cayenne authentication info. This should be obtained from the Cayenne Dashboard. char username[] = "<your MQTT Username>"; char password[] = "<your MQTT Password>"; char clientID[] = "<your client id>"; // DHT11 Pin int pinDHT11 = 2; SimpleDHT11 dht11; // Sound Pin int soundPin = 3; // Relay Pin int relayPin = 1; // Timer SimpleTimer timer; void setup() { Serial.begin(9600); Cayenne.begin(username, password, clientID, ssid, wifiPassword); pinMode(relayPin, OUTPUT); // Relay digitalWrite(relayPin, HIGH); pinMode(soundPin, INPUT); // Sound timer.setInterval(200L, transmitData); // Method to execute every 200ms } void loop() { Cayenne.loop(); timer.run(); } CAYENNE_IN(relayPin) { if (getValue.asInt() == 1) { // NOTE: Channel = Virtual Pin digitalWrite(relayPin, LOW); } else { digitalWrite(relayPin, HIGH); } } void transmitData() { byte temperature = 0; byte humidity = 0; int err = SimpleDHTErrSuccess; if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) { Cayenne.virtualWrite(V4, 0); Cayenne.virtualWrite(V2, 0); } else { Cayenne.virtualWrite(V4, (int)temperature); Cayenne.virtualWrite(V2, (int)humidity); } if (digitalRead(soundPin) == HIGH) { Cayenne.virtualWrite(V3, HIGH); } else { Cayenne.virtualWrite(V3, LOW); } }

Conexión de los sensores y módulos

En esta etapa, debería poder subir tu dibujo con éxito. Ahora, saque la placa de potencia. También, eliminar la conexión GND de GPIO0. No necesitamos GPIO0 conectado a la tierra, a menos que vamos a actualizar el bosquejo. Refiérase a las tablas para cada sensor y el módulo siguiente:

Detector de sonido  con sensor de humedad y temperatura con IoT

Fuentes de alimentación de todos estos componentes están conectadas a la tensión de salida del paso por módulo, lo que significa que están alimentados a través de 3, 3V. La fuente de alimentación principal es la tabla de desglose FTDI. El esquema a continuación muestra las conexiones completas, después de cargar exitosamente el bosquejo:

Detector de sonido  con sensor de humedad y temperatura con IoT
Nota: Los pines RX y TX del módulo FTDI no están conectados a los pines TX y RX del módulo wifi, y es tan GPIO0 (de tierra).

La imagen de abajo es el conjunto real de los esquemas que se muestra arriba:

Detector de sonido  con sensor de humedad y temperatura con IoT
Detector de sonido  con sensor de humedad y temperatura con IoT

¡Eso es todo! Hemos terminado con estas configuraciones: juntas, las bibliotecas y componentes. Ahora estamos listos para configurar nuestro proyecto con pimienta usando MQTT. Por cierto, MQTT está parado para el transporte de telemetría de MQ. Simplemente hablando, es un protocolo de mensajes entre las máquinas y la Internet de las cosas! Más sobre este tema en Docs de Cayena.

La energía la junta una vez más. El módulo de Wifi ESP8266 ESP-01 debe ser capaz de conectarse a su Wifi. Ahora, vuelve al portal de Cayena. Usted debe ser capaz de ver el tablero de instrumentos widgets inicial rellena previamente que puede Agregar a la consola. Ahora puede personalizar el tablero de instrumentos.

Inicialmente, esto es como el tablero de instrumentos cuando el módulo de ESP8266 ESP-01 WiFi comienza a enviar datos a la consola de Cayenne (bajo el dispositivo configurado allí):

Detector de sonido  con sensor de humedad y temperatura con IoT

Añadir los widgets iniciales que se muestra arriba, haga clic en el icono "+" en la esquina superior derecha de cada widget inicial:

Detector de sonido  con sensor de humedad y temperatura con IoT

Una vez añadido, ahora personalizaremos cada widget. Esto es cómo se ve como cuando se agregan estos widgets iniciales:

Detector de sonido  con sensor de humedad y temperatura con IoT

Para personalizar cada widget, haga clic en el icono de la derecha, luego seleccione Ajustes. Consulte captura de pantalla siguiente:

Detector de sonido  con sensor de humedad y temperatura con IoT

Una ventana emergente aparece y nos permitirá cambiar el nombre del Widget, canal, Widget icono y número de lugares decimales. Dejaremos el canal como es. No cambie el valor de la canal, puesto que el valor es el Virtual Pin (V0, V1, V2...) utilizados en el código de este widget. Virtual Pin 4 (V4) es la temperatura Virtual Pin 2 (V2) es la humedad y Virtual Pin 3 (V3) es el valor del sensor de sonido (0/1).

A continuación se muestran la configuración de cada widget inicial:

Detector de sonido  con sensor de humedad y temperatura con IoT
Detector de sonido  con sensor de humedad y temperatura con IoT
Detector de sonido  con sensor de humedad y temperatura con IoT

Aquí es cómo verá después:

Detector de sonido  con sensor de humedad y temperatura con IoT

Ahora, todavía tenemos que añadir un widget más. Este widget es para que el relé para activar/desactivar. En la parte izquierda del tablero de instrumentos (superior izquierda), haga clic en Agregar nuevoy, a continuación, haz clic en el Dispositivo/Widget:

Detector de sonido  con sensor de humedad y temperatura con IoT

  • Nombre = interruptor de relé
  • Dispositivo = ESP8266 genéricos (o el dispositivo llamado si ya tienes)
  • Datos = actuador Digital
  • Unidad = Digital (0/1)
  • Canal = 1 (esto es GPIO1 del módulo WiFi ESP8266 ESP-01 - código de revisión)
  • Elija el icono = botón (puede elegir qué icono que desee)

Desplácese hacia abajo más abajo y buscar Widgets personalizados. Seleccione el botón:

Detector de sonido  con sensor de humedad y temperatura con IoT

Tenemos que cambiar la configuración del widget de botón:

Abajo se encuentra la captura de pantalla de los ajustes del botón. Haga clic en agregar Widget luego:

Detector de sonido  con sensor de humedad y temperatura con IoT

El tablero final ahora este aspecto:

Detector de sonido  con sensor de humedad y temperatura con IoT

Y hemos terminado! Ahora, pruebe a activar/desactivar el relé del interruptor. El relé conectado a la ESP8266 ESP-01 WiFi módulo se activar o desactivar, oirá sonidos de clic. Trate de hacer algo de ruido. El widget de sonido registrará 1 (si se detecta ruido, 0 si no). Trate de observando los widgets de temperatura y humedad - estos valores el cambio según lo que se "intuye" de donde es el módulo DHT11.

Sólo hemos utilizado la API de Cayena MQTT para conectar nuestro dispositivo con componentes conectados a él.


Volver a la Portada de Logo Paperblog