De la linterna al sensor de movimiento con ESP8266 y MQTT: 5 pasos (con imágenes)
De la linterna al sensor de movimiento con ESP8266 y MQTT: 5 pasos (con imágenes)
Anonim
Image
Image
Los LED necesitan corriente para ser limitados
Los LED necesitan corriente para ser limitados

En esta publicación, presentaría los elementos a continuación:

  • Los LED necesitan un circuito de corriente limitante
  • como hacer una linterna
  • hacer una luz alimentada por la batería portátil y atenuar los LED por ESP8266 a través de MQTT

El video es un resumen y una breve explicación de cómo funciona esto.

Planeé tener un sensor PIR incluido, pero el tutorial es bastante largo, por lo que el sensor PIR se presentará en la segunda parte de este tema

Así que comencemos.

Paso 1: los LED necesitan que la corriente sea limitada

Para los principiantes, esto es extraño considerando la frecuencia con la que se enciende una bombilla incandescente o fluorescente. No se preocupe, esas bombillas LED en el estante ya vienen con un adaptador de corriente de CA a CC y una corriente de limitación. Pero sería bueno hacer algo desde cero.

Una clave para encender un LED es un circuito limitador de corriente. Esta funciona como una válvula para la corriente de modo que una vez que la tensión aplicada al LED que lo convierte en conductor, la corriente que fluye a través de los LED no puede ser mayor que la regulada por el circuito. Las fallas de los LED generalmente se deben a un sobrecalentamiento. La falta de un circuito limitador de corriente en su lugar es una forma segura de quemar los LED en unos segundos. Por cierto, la fijación de los chips LED, los que vienen en el marco de aluminio, a un disipador de calor reduce el chip LED y generalmente se recomienda.

Me rascaba mucho la cabeza cuando aprendí esto alrededor de 2015, y todavía me rascaba la cabeza (por diferentes razones). Aprendí de este tutorial y su clara explicación me salvó algunos problemas.

El circuito está adjunto. Las líneas en negrita significan la ruta de carga principal y las más delgadas indican el mecanismo de control para controlar la corriente de la ruta principal que es de aproximadamente 150 mA. Wikipedia tiene un artículo breve y algunas referencias adjuntas. La limitación de corriente se puede construir con un transistor reemplazando MOSFET con transistores de carga de corriente media como BD135, BD139.

Paso 2: haz una linterna

Hacer una linterna
Hacer una linterna
Hacer una linterna
Hacer una linterna
Hacer una linterna
Hacer una linterna
Hacer una linterna
Hacer una linterna

Piezas necesarias:

  1. un MOSFET de canal N (IRF540N $ 1.62 / 10 piezas, 30N06, $.1.75 / 10 piezas)
  2. un transistor NPN (como S8085)
  3. 3,9 ohmios - resistencia de 2 W, la corriente limitada alrededor de 0,6 / 3,9 = 153 mA
  4. Resistencia de 100kR (1 / 4W)
  5. Un interruptor de bloqueo
  6. Hay 0.5W 8mm LED, $ 3.18 / 100pcs aquí
  7. Una batería de litio 18660. Rescaté algunos de ellos de un banco de energía. Batería de computadora portátil (4, 6, 8 celdas) hecha de 18650 celdas pero cuidado con eso.
  8. 1 tablero de aumento de hasta 12V, como este, $ 0.56
  9. 1 cargador de litio como este, $ 0.30

La principal diferencia con el circuito anterior es el uso de una batería de litio (18660) con placa de refuerzo en lugar de un adaptador de corriente de 5V de maqueta.

La última foto muestra la linterna final y se estaba cargando desde cualquier fuente micro USB (> 1A).

Paso 3: ¿Internet de las cosas con esta linterna?

Internet de las cosas con esta linterna?
Internet de las cosas con esta linterna?
Internet de las cosas con esta linterna?
Internet de las cosas con esta linterna?
Internet de las cosas con esta linterna?
Internet de las cosas con esta linterna?

Divido esta parte en tres pasos:

  • Prepare un suscriptor (este)
  • Configurar el servidor MQTT (siguiente paso)
  • y preparar un editor (el siguiente)

Partes:

Primero, sí, usé esa palabra de moda, también conocida como IOT, pero esta podría hacer una buena combinación de usar el circuito en el Paso 2 con un ESP8266 y luego controlar la intensidad de la luz mediante el método MQTT.

Las partes del circuito son idénticas, excepto:

  1. Reemplace 12V boost up por MT3608 boost up board, $ 1.92 / 5pcs, este puede aumentar el voltaje de una batería 18650 (aproximadamente 3.7V) a 28 V, suficiente para alimentar 8 LED (en lugar de 3).
  2. La posición de desenchufar en el interruptor está conectada al GPIO 1 o 2 en el ESP8266 para la señal PWM.
  3. ESP8266 01, $ 1.68 cada uno. Como éste
  4. AMS1117 3.3 V, un regulador de voltaje para ESP8266, algunos condensadores
  5. Un módulo USB para flashear ESP8266, $ 0.78 / pcs como este

Por cierto. esos enlaces son para su conveniencia.

Soldar y cargar:

  • Soldar piezas juntas y usar los esquemas anteriores. Algunos circuitos de voltaje 3.3 prefabricados pueden ahorrarle algo de tiempo ($ 1.38 / 5 piezas como esta). Estaba confundido al recordar el pin cuando volteé la placa PCB y terminé satisfaciendo un regulador de voltaje AMS1117.
  • Próximo. Haga una pequeña modificación como en la tercera foto para mantener presionado el GPIO 0 a GND, toque rápidamente el Pin RST con el pin GND para poner el ESP8266 en Flashmode.
  • Descargue el código aquí desde mi GitHub y cargue el código en ESP 8266 usando Arduino IDE.

Destaqué la línea para mostrar el tema al que se suscribió el suscriptor. Cualquier mensaje publicado en este tema se transmitirá a otros clientes (suscriptores) de este tema. El EPS8266 en este circuito escuchará el mensaje JSON publicado en el tema y se activará si se realizó un cambio en el canal Tres

* Érase una vez, pensé que podría poner una resistencia desplegable (100k) para conectar a tierra la puerta del MOSFET cuando no se presentó el ESP8266. Esto funciona en ausencia de un ESP8266, pero con ESP8266, la resistencia también baja el GPIO0 o 2 a GND, convirtiéndolos en modo Flash o no arrancando (cuando GPIO2 es BAJO)). Verá un verde sólido si esto sucede.

Paso 4: configurar el servidor MQTT

Configurar el servidor MQTT
Configurar el servidor MQTT
Configurar el servidor MQTT
Configurar el servidor MQTT
Configurar el servidor MQTT
Configurar el servidor MQTT
Configurar el servidor MQTT
Configurar el servidor MQTT

MQTT (Message Queue Server Telemetry Transport) es un protocolo de mensajería basado en el método de publicación-suscripción. El dispositivo que aloja la entrada y salida de mensajes MQTT se denomina intermediario. Como un corredor real, aloja el intercambio entre editores (vendedores) y suscriptores (compradores). No hay dinero que cambie de manos. Hay muchos tutoriales para esto.

Aquí está la recapitulación. Raspberry Pi es el dispositivo más popular para esto. Primero, instale MQTT mediante:

sudo apt-get install mosquitto mosquitto-clients

pruebe si el servidor MQTT está funcionando abriendo dos terminales en Raspberry, uno escriba la primera línea y el otro para la siguiente:

mosquitto_sub -h localhost -t "yourtopic"

mosquitto_pub -t "yourtopic" -h localost -m "di algo"

Debería ver el mensaje "decir algo" en la primera terminal. ¡Walah! Funciona.

El "#" podría usarse para escuchar cualquier tema, reemplace "yourtopic" por "#"

Ahora que no desea que alguien pueda publicar o suscribirse a su servidor MQTT, debe configurar una contraseña, haciéndolo de la siguiente manera:

cd ~

mosquitto_passwrd -c pwfile mqtt_user

mqtt_user pueden ser otros nombres de usuario que le gusten, ingrese la contraseña dos veces y actualice el archivo.conf de la siguiente manera:

sudo nano /etc/mosquitto/mosquitto.conf

agrega estas dos líneas:

allow_anonymous falso

archivo_contraseña / home / pi / pwfile

luego reinicie el mosquitto por:

sudo systemctl reiniciar mosquitto

haga una prueba incluyendo el nombre con una contraseña como:

mosquitto_sub -h localhost -t "yourtopic" -u "mqtt_user" -P "123456"

mosquitto_pub -h localhost -t "yourtopic" -u "mqtt_user" -P "123456" -m "¿esto está protegido?"

Además, si MQTT rechaza la conexión, intente esto para poner el servicio MQTT en un segundo plano del sistema Linux de la siguiente manera:

mosquitto -d

Encontré que estas referencias son buenas para echar un vistazo. Hoy aprendí algo de estos dos.

  1. Adafruit:
  2. Stees-internet-guide.com

Paso 5: preparar un editor

Preparar un editor
Preparar un editor
Preparar un editor
Preparar un editor
Preparar un editor
Preparar un editor
Preparar un editor
Preparar un editor

Para este, hago un tablero simple para enviar el mensaje al servidor MQTT. En el modo de soporte, la pantalla LCD muestra el reloj.

Partes:

  1. Pantalla de visualización SSD1306, $ 2.41 cada una
  2. EPS8266 WEMOS D1 Mini, $ 2.53 cada uno
  3. Un potenciómetro
  4. Un interruptor deslizante de 4 pines.
  5. dos LED de 3 mm,
  6. algunas resistencias

Soldadura:

Aquí están los esquemas de esta terminal:

Sube el código:

Es agradable trabajar con la marca WEMOS ESP8266. Solo necesita un micro USB, presione el botón de carga en Arduino IDE para flashear el chip. El código está aquí (GitHub):

Para publicar un mensaje, presione el interruptor para encender el LED verde (y el rojo apagado), luego deslice hacia arriba el pin y ajuste, y finalmente presione el botón nuevamente para enviar el mensaje al servidor MQTT. El tablero podría publicar un mensaje JSON en 4 canales.

Eche un vistazo al resaltado del código (captura de pantalla). Ese es el tema al que el tablero envía el mensaje, y nuestros LED están muy ansiosos por ver cualquier novedad del mensaje JSON

Eso es todo. Espero que el tutorial sea de ayuda.

Recomendado: