Tabla de contenido:

Lámpara IoT Moon: 5 pasos
Lámpara IoT Moon: 5 pasos

Video: Lámpara IoT Moon: 5 pasos

Video: Lámpara IoT Moon: 5 pasos
Video: Reparar Bombillas LED de forma fácil #shorts #bombilla #led #foco #bombillo #reparar #facil 2024, Noviembre
Anonim
Lámpara IoT Moon
Lámpara IoT Moon

En este instructivo, muestro cómo convertir una simple lámpara LED alimentada por batería en un dispositivo IoT.

Este proyecto incluye:

  • soldadura;
  • programación ESP8266 con Arduino IDE;
  • haciendo una aplicación para Android con MIT App Inventor.

El objeto de interés es esta lámpara en forma de luna que compré en gearbest. Pero realmente este tutorial se puede adaptar a cualquier dispositivo de bajo voltaje de CC (los dispositivos alimentados por CA requieren circuitos adicionales).

Suministros

  1. Teléfono inteligente Android (versiones de Android 7-9 probadas).
  2. Herramientas para soldar.
  3. Prototipos de PCB (protoboard).
  4. Placa ESP-12E (u otra placa de desarrollo con microcontrolador ESP8266).
  5. Convertidor USB-serial para programación.
  6. Varios valores diferentes de componentes pasivos (resistencias y condensadores).

(Opcional. Consulte la sección "Diagrama de bloques")

  1. 3.3V@500mA LDO IC.
  2. Tablero convertidor de nivel lógico 3.3V-5V.
  3. Fuente de alimentación de 5V DC.

Paso 1: Idea

Idea
Idea

La lámpara Moon funciona con una celda Li-ION 18650 y tiene 3 modos de operación:

  • apagado;
  • manual;
  • auto.

En el modo manual, la lámpara se controla con un botón, cada presión cambia el estado de la luz LED (azul encendido, naranja encendido, ambos encendidos, apagados), la intensidad de la luz cambia mientras se mantiene presionado el botón. En el modo automático, los estados de luz LED cambian al tocar o agitar la lámpara.

Decidí agregar ESP8266 para que actúe como un servidor web que escucha las solicitudes y, en consecuencia, simula las pulsaciones de botones. No quería romper la funcionalidad original de la lámpara, solo quería agregar funciones de control adicionales a través de WiFi, así que elegí ESP para simular la pulsación de botones en lugar de controlar directamente los LED. Además, esto me permitió interactuar mínimamente con los circuitos originales.

Cuando se hizo el prototipo, impulsó ~ 80 mA constantemente desde la batería en estado apagado (~ 400 mA con brillo total). La corriente en espera es alta porque ESP8266 funciona como un servidor y siempre está conectado a WiFi y escucha las solicitudes. La batería se agotó después de un día y medio solo en estado apagado, por lo que más tarde decidí usar el puerto de carga USB de las lámparas para alimentar todos los componentes electrónicos de una fuente de alimentación externa de 5V y la batería abandonó todos juntos (pero esto es opcional).

Paso 2: diagrama de bloques

Diagrama de bloques
Diagrama de bloques

En el diagrama de bloques, puede ver qué circuitos se agregarán y cómo se modificarán los circuitos existentes. En mi caso, quité la batería por completo y cortocircuité la entrada IC de los cargadores de batería con salida (nuevamente, esto es opcional). Los bloques transparentes en el diagrama indican los componentes que se omiten (aunque el botón pulsador todavía funciona como se pretendía originalmente).

De acuerdo con la documentación, ESP8266 tolera solo 3.3V, sin embargo, hay muchos ejemplos en los que ESP8266 funciona completamente bien con 5V, por lo que el convertidor de nivel lógico y 3.3V LDO pueden omitirse, sin embargo, me quedé con las mejores prácticas y agregué esos componentes.

Usé 3 pines de E / S ESP8266 y un pin ADC. Un pin de salida digital es para simular la pulsación de botones, dos entradas digitales son para detectar qué color de los LED están encendidos (a partir de esto podemos averiguar en qué estado se encuentra la MCU y cuál es el siguiente después de pulsar el botón). El pin ADC mide el voltaje de entrada (a través de un divisor de voltaje), así es como podemos monitorear el nivel de carga restante de la batería.

Como fuente de alimentación externa utilizo un cargador de teléfono antiguo de 5 V a 1 A (no use cargadores rápidos).

Paso 3: programación

Programación
Programación
Programación
Programación

En pocas palabras, el programa funciona así (para obtener más información, consulte el código):

ESP8266 se conecta a su punto de acceso WiFi cuyas credenciales debe ingresar al comienzo del código antes de la programación, obtiene la dirección IP del servidor DHCP de su enrutador, para averiguar la IP que necesitará más adelante, puede verificar la configuración DHCP de la interfaz web del enrutador o configurar bandera de depuración en el código a 1 y verá qué IP ESP obtuvo en el monitor en serie (debe reservar esa IP en la configuración de sus enrutadores para que ESP siempre obtenga la misma IP en el arranque).

Cuando la MCU inicializada siempre ejecuta la misma rutina para siempre:

  1. Verifique si todavía está conectado al AP, si no, intente volver a conectarse hasta que tenga éxito.
  2. Espere a que el cliente realice una solicitud HTTP. Cuando ocurre la solicitud:

    1. Verifique el voltaje de entrada.
    2. Compruebe en qué estado se encuentran los LED.
    3. Haga coincidir la solicitud HTTP con los estados de LED conocidos (azul encendido, naranja encendido, ambos encendidos, apagados).
    4. Simule tantas pulsaciones de botones como sea necesario para lograr el estado solicitado.

Describiré brevemente las instrucciones de programación, si es la primera vez que programa el MCU ESP8266, busque instrucciones más detalladas.

Necesitará Arduino IDE y un convertidor de interfaz USB-serial (por ejemplo FT232RL). Para preparar IDE, siga estas instrucciones.

Siga el diagrama del circuito para conectar el módulo ESP-12E para la programación. Algunos consejos:

  • utilice una fuente de alimentación externa de 3.3V a 500mA (en la mayoría de los casos, la fuente de alimentación en serie USB no es suficiente);
  • compruebe si su convertidor USB-serial es compatible con el nivel lógico de 3.3V;
  • verifique si los controladores del convertidor USB-serial se instalaron correctamente (desde el administrador de dispositivos de Windows) también puede verificar si funciona correctamente desde IDE, solo pines cortos RX y TX, que desde IDE seleccione el puerto COM, abra el monitor serial y escriba algo, si todo funciona debería ver el texto que está enviando aparecer en la consola;
  • por alguna razón pude programar ESP solo cuando conecté por primera vez el convertidor USB-serial a la PC y luego encendí ESP desde una fuente externa de 3.3V;
  • después de programar con éxito, no olvide subir GPIO0 en el próximo arranque.

Paso 4: esquema y soldadura

Esquema y soldadura
Esquema y soldadura
Esquema y soldadura
Esquema y soldadura
Esquema y soldadura
Esquema y soldadura

Siga el esquema para soldar todos los componentes al protoboard. Como se mencionó anteriormente, algunos componentes son opcionales. Usé KA78M33 3.3V LDO IC y esta placa convertidora de nivel lógico de sparkfun, alternativamente, puede hacer el convertidor usted mismo como se muestra en el esquema (puede usar cualquier mosfet de canal N en lugar de BSS138). En caso de que siga usando la batería Li-ION, la red de alimentación de + 5V será el terminal positivo de la batería. El voltaje de referencia ESP8266 ADC es 1V, los valores de mi divisor de resistencia elegido permiten medir el voltaje de entrada hasta 5.7V.

Debe haber 5 conexiones a la PCB de la lámpara original: + 5V (o + Batería), GND, botón pulsador, señales PWM de la MCU de las lámparas para controlar los LED azules y naranjas. Si enciende la lámpara desde una fuente de 5V, como hice yo, querrá acortar el pin IC VCC de los cargadores de batería con el pin de SALIDA, de esa manera todos los componentes electrónicos se alimentarán directamente desde + 5V y no desde la SALIDA del cargador de batería.

Siga la segunda imagen para todos los puntos de soldadura que necesitará hacer en la PCB de las lámparas.

NOTAS:

  1. Si decidió hacer un cortocircuito de + 5V con la salida IC del cargador de batería, retire la batería por completo antes de hacerlo, no desea conectar + 5V directamente a una batería.
  2. Preste atención a qué pin del botón pulsador suelda la salida ESP, porque 2 pines de un botón pulsador están conectados a tierra y no desea cortocircuito cuando la salida ESP se pone ALTA, mejor verifique dos veces con un multímetro.

Paso 5: aplicación de Android

Aplicación Android
Aplicación Android
Aplicación Android
Aplicación Android
Aplicación Android
Aplicación Android

La aplicación de Android se creó con el inventor de la aplicación MIT, para descargar una aplicación y / o un proyecto de clonación para usted, vaya a este enlace (necesitará una cuenta de Google para acceder).

En el primer inicio, deberá abrir la configuración e ingresar su dirección IP ESP8266. Esta IP se guardará, por lo que no es necesario volver a ingresarla después de que se reinicie el programa.

Aplicación probada con varios dispositivos Android 9 y Android 7.

Recomendado: