HowTo: Tasmota - Construye una lámpara de hogar inteligente con bombilla retro

como en eso Proyecto de altavoz retro es un pequeño pasatiempo mío darle un nuevo uso a las cosas viejas. Si también puede mejorar la tecnología antigua y hacerla más eficiente energéticamente, por ejemplo, eso es una gran cereza en el pastel.

Eso es lo que sucedió recientemente cuando me topé con una caja de bombillas viejas. Ya no quería usarlos, porque ahora estoy persiguiendo esta tendencia novedosa de realmente usar el calentador para calentar.

Pero también pensé que era una lástima simplemente tirar las lámparas viejas. Así que decidí darle a las viejas bombillas "tontas" un funcionamiento interno nuevo e inteligente. Al menos una lámpara decorativa respetable debería poder construirse con él.
He descrito en el siguiente artículo cómo funciona esto y qué debe tener en cuenta al replicarlo.


Instrucciones de seguridad

Sé que los siguientes consejos siempre resultan algo molestos y parecen innecesarios. Pero, por desgracia, muchas personas que sabían "hacerlo mejor" ya han perdido ojos, dedos u otras cosas o se han lesionado por descuido. En comparación, una pérdida de datos apenas merece mención, pero incluso éstas pueden ser realmente molestas. Por lo tanto, tómese cinco minutos para leer las instrucciones de seguridad. Porque ni siquiera el proyecto más chulo merece una lesión u otros problemas.
https://www.nerdiy.de/sicherheitshinweise/

Enlaces afiliados / enlaces publicitarios

Los enlaces a las tiendas en línea que aparecen aquí son los denominados enlaces de afiliación. Si hace clic en dicho enlace de afiliado y realiza una compra a través de este enlace, Nerdiy.de recibe una comisión de la tienda online o proveedor en cuestión. El precio no cambia para usted. Si realizas tus compras a través de estos enlaces, apoyas a Nerdiy.de para poder ofrecer más proyectos útiles en el futuro 🙂. 


Requisitos

Artículos útiles:
Antes de comenzar con este artículo, debería haber tratado los conceptos básicos de la soldadura. Puedes encontrar información al respecto en el siguiente artículo.
Electrónica - Mi amigo el soldador

Material necesario:

En la siguiente lista encontrará todas las piezas que necesita para implementar este artículo.

Herramientas necesarias:

En la siguiente lista encontrarás todas las herramientas que necesitas para implementar este artículo.


Reúne las piezas que necesitas

Para configurar su lámpara de hogar inteligente con bombilla retro, necesita las piezas que se muestran o las que se enumeran en los requisitos. En lo que respecta a la placa adaptadora ESP8266, no necesariamente tiene que ser una Wemos D1-Mini. Sin embargo, esta es una de las placas adaptadoras más pequeñas del mercado y por esa misma razón, al menos en la versión de 40 W, prácticamente no hay alternativa: las placas adaptadoras más grandes simplemente no encajan tan bien en el portalámparas.

Vista de las piezas requeridas.
La bombilla ya debería estar "sin núcleo". Cómo hacer esto está en el artículo. Lámparas incandescentes "Core" explicado.
El portalámparas luego mantiene la bombilla en posición vertical y también oculta la placa adaptadora ESP8266.
Los seis LED WS2812B proporcionan la iluminación de la lámpara. Su color y brillo se pueden ajustar posteriormente a través de una interfaz web.

Imprime en 3D las piezas que necesitas

Descargue todos los archivos STL necesarios: Tasmota - Lámpara de casa inteligente con bombilla retro Build

Toma para lámpara incandescente de 40W:

Puede rotar la vista 3D del archivo STL manteniendo presionado el botón del mouse. Puede acercar y alejar con la rueda del ratón.

Toma para lámpara incandescente de 100W:

Puede rotar la vista 3D del archivo STL manteniendo presionado el botón del mouse. Puede acercar y alejar con la rueda del ratón.

Base de tornillo de 100 W:

Puede rotar la vista 3D del archivo STL manteniendo presionado el botón del mouse. Puede acercar y alejar con la rueda del ratón.


diagrama de circuito

Aquí encontrará los diagramas de circuito que indican cómo se construye la lámpara en principio.

Diagrama de cableado normal.
La opinión de Fritzing.

adjuntar LED

El primer paso para su propia lámpara de hogar inteligente con bombilla retro es colocar las tiras de LED. Estos ya deben estar cortados en pares de dos.

Luego pegue la primera tira de LED en el lado donde está el orificio en el eje de la base de la lámpara como se muestra. La línea que conecta su placa adaptadora ESP8266 a los LED se alimentará más tarde por aquí. Es importante en este punto que prestes atención a la “dirección de marcha” de los LED. En este punto, la flecha negra en la tira de LED debe apuntar hacia arriba, es decir, lejos del orificio.
Luego se pega la siguiente tira de LED. Aquí la "dirección de marcha" se cambia de nuevo: la flecha negra apunta hacia abajo.
La última tira de LED está pegada al único espacio libre que queda. La "dirección de marcha" se cambia de nuevo. Esta vez, las flechas negras en la tira de LED apuntan hacia arriba.

Soldar los primeros LED

Dado que los LED también pueden recibir energía y datos (color, brillo, etc.), por supuesto, deben conectarse a la placa adaptadora ESP8266.

Para esto necesita un cable de 3 hilos de 20 cm de largo.
Aísla las líneas individuales aproximadamente 3-5 mm...
...y estañe los extremos de los cables que se hayan soltado. En el artículo se pueden encontrar consejos sobre cómo usar el soldador. Electrónica - Mi amigo el soldador.
Luego puede insertar el cable en el eje de la base de la lámpara...
...y soldarlo a los contactos de la primera tira de LED. Asegúrese de que la "dirección de marcha" de las tiras de LED sea correcta. Las flechas negras deben apuntar en dirección opuesta al cable de conexión en la primera tira de LED.

Conecte los LED a la placa adaptadora ESP8266

Antes de soldar los otros LED, primero se conecta la placa adaptadora ESP8266 a la línea de alimentación de los LED, porque de esta manera puede usar las líneas restantes.

Antes de comenzar a instalar la placa adaptadora ESP8266, también recomiendo que retire el LED integrado de la placa adaptadora si es necesario. Desafortunadamente, esto brilla tanto que es visible a través del plástico de la base. Cómo puedes hacer esto está en el artículo. ESP8266 - Quitar/Deshabilitar LED descrito.

El cable ya debería estar saliendo del enchufe. Divide las líneas individuales hasta el orificio de salida en la base...
...y pega la placa adaptadora ESP8266 en el zócalo. Esto funciona muy bien con cinta adhesiva de doble cara más gruesa o un poco de pegamento caliente. Es importante que el puerto USB de la placa del adaptador apunte en la dirección del bulto en la base. Esta es la única forma en que puede conectar la lámpara más tarde a un cable USB.
Una vez que haya pegado la placa adaptadora ESP8266 y la haya alineado en consecuencia, puede...
... acorte las líneas para que sobresalgan aproximadamente 3-4 cm.
Aísla de nuevo unos 3-5 mm de las líneas y...
... estañarlos con un poco de soldadura.
Prepare aquí los contactos de la placa adaptadora ESP8266 estañando los contactos de conexión "D2", "G" y "5V" de antemano.
una vez que hayas estañado todas las manchas, puedes...
...ya suelde las líneas. Asegúrese de que las líneas conecten los lugares correctos entre las tiras de LED y la placa adaptadora ESP8266. "+5V" del LED debe conectarse a "5V" de la placa adaptadora, "GND" del LED a "G" de la placa adaptadora y "DIN" del LED a "D2" de la placa adaptadora.
Aquí hay otro primer plano del cable soldado.

Suelde las tiras de LED restantes juntas

Hasta ahora, solo se han soldado dos de los seis LED o uno de los tres elementos de la tira de LED. Para soldar las tiras de LED restantes, ahora puede usar el cable sobrante que cortó en el paso anterior.

Antes de que pueda comenzar a conectar las tiras de LED, debe preparar todos los puntos de contacto nuevamente.
Para hacer esto, estañe los contactos en la parte superior de la primera tira de LED.
Y también los contactos superior e inferior del segundo y…
...tercera tira de LED.
Para conectar las tiras de LED restantes entre sí, prepare seis piezas de cable de aproximadamente 2 cm de largo. Al hacerlo, vuelva a aislar los extremos del cable aproximadamente 3-5 mm y estañe los extremos del cable.
Como ya ha preparado los contactos en las tiras de LED, ya puede soldar las tres primeras líneas de conexión.
Aquí hay un primer plano de las primeras tres líneas de conexión soldadas.
Ahora puede doblar esto y conectarlo a la segunda tira de LED. Asegúrese de conectar los contactos correctos. "GND" de la primera tira de LED también debe conectarse a "GND" de la segunda tira de LED. También "+5V" con "+5V" y "Dout" de la primera tira con "Din" de la segunda tira.
Primer plano del cable soldado en la segunda tira de LED.
Primer plano de la conexión entre la primera y la segunda tira de LED.
Ahora puede soldar las tres líneas restantes a la segunda tira de LED.
Primer plano de los cables soldados en la segunda tira de LED.
Luego puede soldarlos a la tercera (y última) tira de LED.
Una vez que hayas soldado todas las tiras de LED, debería verse así. En este punto, verifique nuevamente que haya soldado las líneas a los contactos correctos.
Descripción general de las tiras de LED soldadas.
Grabación adicional de las tiras de LED soldadas.
Ahora debe colocar las líneas soldadas lo más apretadas posible alrededor de la base de la lámpara.
...entonces no tendrá ningún problema más adelante al insertar los LED y la base de la lámpara en la bombilla con núcleo.

Programar la placa adaptadora ESP8266 y realizar la primera prueba

Después de que la última junta de soldadura se haya enfriado, es hora de una primera prueba. Reproduzca el firmware de Tasmota en la placa del adaptador y pruebe los LED. Cómo hacer esto está en el artículo. Tasmota: firmware flash descrito.

A continuación se muestra una configuración que utilicé para mi lámpara. Por supuesto, aún debe configurar los datos de acceso para su WLAN y, si es necesario, los datos de acceso para su servidor MQTT.

/* user_config.h - configuración específica del usuario para Sonoff-Tasmota Copyright (C) 2018 Theo Arends Este programa es software libre: puede redistribuirlo y/o modificarlo según los términos de la Licencia Pública General GNU publicada por el Software Libre Foundation, ya sea la versión 3 de la Licencia o (a su elección) cualquier versión posterior. Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la Licencia pública general de GNU para obtener más detalles. Debería haber recibido una copia de la Licencia Pública General de GNU junto con este programa. Si no, vea . */ #ifndef _USER_CONFIG_H_ #define _USER_CONFIG_H_ /******************************************* **************************************************** \ * Este archivo consta de DOS secciones. * * SECCIÓN 1: * La primera sección contiene PARÁMETROS que anulan la configuración del flash si se CAMBIA la definición de CFG_HOLDER. * Todos los parámetros se pueden cambiar de forma persistente en línea usando comandos a través de MQTT, WebConsole o Serial. * Los comandos MQTT/Serial/Console correspondientes se muestran entre [paréntesis] * * SECCIÓN 2: * La segunda sección contiene CARACTERÍSTICAS habilitadas y deshabilitadas que permiten diferentes tamaños de programa. * Los cambios en esta sección NO necesitan un cambio de definición de CFG_HOLDER. * * ATENCIÓN: * Se recomienda a los usuarios que utilicen el archivo user_config_override.h para la mayoría de los cambios. \**************************************************** ***************************************************/ // #define USE_CONFIG_OVERRIDE // Descomente para usar el archivo user_config_override.h. Ver LÉAME.md /************************************************ *** ************************************************** *\ * SECCIÓN 1 * - Después de la carga inicial, cualquier cambio aquí solo tendrá efecto si CFG_HOLDER también se cambia \**************************** *** ************************************************** *** ************/ // -- Control de parámetros maestros -------------------- #define CFG_HOLDER 4617 // [Reiniciar 1] Cambie este valor (máx. 32000) para cargar los parámetros de configuración de la SECCIÓN 1 en flash // -- Proyecto ----------------------------- --- ----- #define PROJECT "Gluehlampe" // PROJECT se usa como delimitador de tema predeterminado #define MODULE WEMOS // [Módulo] Seleccione el modelo predeterminado de sonoff_template.h (no debe cambiarse) #define SAVE_DATA 1 // [ SaveData] Guarda los parámetros cambiados en Flash (0 = deshabilitar, 1 - 3600 segundos) #define SAVE_STATE 1 // [SetOption0] Guarda el estado de energía cambiado en Flash (0 = deshabilitar, 1 = habilitar) // -- Wifi ----- --- ------------------ #define WIFI_IP_ADDRESS "0.0.0.0" // [IpAddress1] Establézcalo en 0.0.0.0 para usar DHCP o la dirección IP #define WIFI_GATEWAY "192.168.0.1" // [IpAddress2] Si no usa DHCP, configure la dirección IP de la puerta de enlace #define WIFI_SUBNETMASK "255.255.255.0" // [IpAddress3] Si no usa DHCP, configure la máscara de red #define WIFI_DNS "192.168.0.1" // [IpAddress4] Si no usa DHCP, configure la dirección IP DNS (puede ser igual a WIFI_GATEWAY) #define STA_SSID1 "" // [Ssid1] Wifi SSID #define STA_PASS1 "" // [Password1] Contraseña Wifi #define STA_SSID2 "" // [Ssid2] AP Wifi SSID alternativo opcional #define STA_PASS2 "" // [Password2] Contraseña Wifi AP alternativo opcional #define WIFI_CONFIG_TOOL WIFI_MANAGER // [WifiConfig] Herramienta predeterminada si falla wifi para conectarse // (WIFI_RESTART, WIFI_SMARTCONFIG, WIFI_MANAGER, WIFI_WPSCONFIG, WIFI_RETRY, WIFI_WAIT, WIFI_SERIAL) #define WIFI_CONFIG_NO_SSID WIFI_WPSCONFIG // Herramienta predeterminada si falla la conexión wifi y no se configura ningún SSID // (WIFI_SMARTCONFIG, WIFI_MANAGER, WIFI_WPSCONFIG, WIFI_SERI AL) // *** NOTA: Cuando WPS está deshabilitado por USE_WPS a continuación, WIFI_WPSCONFIG ejecutará WIFI_MANAGER *** // *** NOTA: Cuando WIFI_MANAGER está deshabilitado por USE_WEBSERVER a continuación, WIFI_MANAGER ejecutará WIFI_SMARTCONFIG *** // ** * NOTA: Cuando WIFI_SMARTCONFIG es deshabilitado por USE_SMARTCONFIG a continuación, WIFI_SMARTCONFIG ejecutará WIFI_SERIAL *** // -- Syslog --------------------------- ------------- ----------- #define SYS_LOG_HOST "" // [LogHost] (Linux) host de syslog #define SYS_LOG_PORT 514 // [LogPort] puerto UDP de syslog predeterminado #define SYS_LOG_LEVEL LOG_LEVEL_NONE // [SysLog] (LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE) #define SERIAL_LOG_LEVEL LOG_LEVEL_DEBUG // [SerialLog] (LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE) #define WEB_LOG_LEVEL LOG_LEVEL_INFO // [WebLog] (LOG_LEVEL_NONE, LOG_LEVEL_ERROR , LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE) // -- Ota - ------------------------------------- ----------------- 1T P5Tdefine OTA_URL "http://sonoff.maddox.co.uk/tasmota/sonoff.bin" // [OtaUrl] // -- MQTT ------------------- --------------------- #define MQTT_USE 1 // [SetOption3] Seleccione el uso predeterminado de MQTT (0 = Desactivado, 1 = Activado) #define MQTT_HOST "" // [MqttHost ] #DEFINE MQTT_FINGERPRIND1 "A5 02 ff 13 9f 8B 39 8e F1 83 65 0B 32 36 FC 07" // [MQttfingerprint1] #DEFINE MQTT_FINGERPRIND2 "A5 02 ff 13 9f 8B 83 4F 11 [23 37 3F 11 23 62 3F 6 MQtt" FC ] #define MQTT_PORT 1883 // [MqttPort] Puerto MQTT (10123 en CloudMQTT) #define MQTT_USER "DVES_USER" // [MqttUser] Usuario de MQTT #define MQTT_PASS "DVES_PASS" // [MqttPassword] Contraseña de MQTT #TAIN.BUTine 0 // [ButtonRetain] Botón puede enviar el indicador de retención (0 = desactivado, 1 = activado) #define MQTT_POWER_RETAIN 0 // [PowerRetain] El mensaje de estado de energía puede enviar el indicador de retención (0 = desactivado, 1 = activado) #define MQTT_SWITCH_RETAIN 0 // [ SwitchRetain] El interruptor puede enviar el indicador de retención (0 = desactivado, 1 = activado) #define MQTT_STATUS _OFF "OFF" // [StateText1] Resultado de comando o estado cuando se apaga (debe ser una cadena como "0" o "Off") #define MQTT_STATUS_ON "ON" // [StateText2] Resultado de comando o estado cuando se enciende (necesita para ser una cadena como "1" o "On") #define MQTT_CMND_TOGGLE "TOGGLE" // [StateText3] Comando para enviar al alternar (debe ser una cadena como "2" o "Toggle") #define MQTT_CMND_HOLD "HOLD" // [StateText4] Comando para enviar cuando el botón se mantiene presionado por más de KEY_HOLD_TIME * 0.1 segundos (debe ser una cadena como "HOLD") // -- Temas de MQTT ---------------- ----------------- // Ejemplo "tasmota/dormitorio/%topic%/%prefix%/" hasta 80 caracteres #define MQTT_FULLTOPIC "%prefix%/%topic%/" // [FullTopic] Subscribe and Publish nombre completo del tema - Tema heredado // %prefix% token options #define SUB_PREFIX "cmnd" // [Prefix1] Los dispositivos Sonoff se suscriben a %prefix%/%topic% siendo SUB_PREFIX/MQTT_TOPIC y SUB_PREFIX/MQTT_GRPTOPIC #define PUB_PREFIX "stat" // [Prefix2] Los dispositivos Sonoff publican en %prefix%/%topic% siendo PUB_PREFIX/MQTT_TOPIC #define PUB_PREFIX2 "tele" // [Prefix3] Los dispositivos Sonoff publican datos de telemetría en %prefix%/%topic% siendo PUB_PREFIX2/MQTT, POWER y /UPTIME POWER y TOPIC / Puede tener el mismo nombre que PUB_PREFIX // %topic% opciones de token (también ButtonTopic y SwitchTopic) #define MQTT_TOPIC PROJECT // [Tema] (único) tema de dispositivo MQTT, establecido en 'PROJECT "_X"' para tema único que incluye dispositivo Dirección MAC #define MQTT_GRPTOPIC "sonoffs" // [GroupTopic] Tema del grupo MQTT #define MQTT_BUTTON_TOPIC "0" // [ButtonTopic] Tema del botón MQTT, "0" = igual que MQTT_TOPIC, establecido en 'PROYECTO "_BTN_X"' para un tema único que incluye el dispositivo Dirección MAC #define MQTT_SWITCH_TOPIC "0" // [SwitchTopic] Tema del botón MQTT, "0" = igual que MQTT_TOPIC, establecido en 'PROYECTO "_SW_X"' para un tema único que incluye la dirección MAC del dispositivo #define MQTT_CLIENT_ID "DVES_X" // [MqttClient] También recurre al tema utilizando Chip Id = últimos 6 caracteres de la dirección MAC // -- MQTT - Telemetría ------------------------ ---- #define TELE_PERIOD 300 // [TelePeriod] Telemetría (0 = deshabilitar, 10 - 3600 segundos) // -- MQTT - Domoticz -------------------- --------- #define DOMOTICZ_UPDATE_TIMER 0 // [DomoticzUpdateTimer] Enviar estado de relé (0 = deshabilitar, 1 - 3600 segundos) // -- MQTT - Descubrimiento de Home Assistant ----------- -- #define HOME_ASSISTANT_DISCOVERY_ENABLE 0 // [SetOption19] Home Assistant Discovery (0 = Deshabilitar, 1 = Habilitar) // -- HTTP -------------- ----------------- #define WEB_SERVER 2 // [WebServer] Servidor web (0 = Desactivado, 1 = Iniciar como usuario, 2 = Iniciar como administrador) #define WEB_PASSWORD "" // [WebPassword] Modo de administración del servidor web Contraseña para WEB_USERNAME (cadena vacía = Deshabilitar) #define FRIENDLY_NAME "Gluehlampe" // [FriendlyName] Nombre descriptivo de hasta 32 caracteres utilizado por las páginas web y Alexa #define EMULACIÓN EMUL_NONE // [Emulación] Seleccione Belk en WeMo (relé único/luz) o emulación Hue Bridge (relé múltiple/luz) (EMUL_NONE, EMUL_WEMO o EMUL_HUE) // -- Hora: hasta tres servidores NTP en su región #define NTP_SERVER1 "pool.ntp.org" // [NtpServer1] Seleccione el primer servidor NTP por nombre o dirección IP (129.250.35.250) #define NTP_SERVER2 "nl.pool.ntp.org" // [NtpServer2] Seleccione el segundo servidor NTP por nombre o dirección IP (5.39.184.5) #define NTP_SERVER3 " 0.nl.pool.ntp.org" // [NtpServer3] Seleccione el tercer servidor NTP por nombre o dirección IP (93.94.224.67) // -- Hora: comience el horario de verano y el desfase de la zona horaria desde UTC en minutos #define TIME_DST_HEMISPHERE Norte / / [TimeDst] Hemisferio (0 o Norte, 1 o Sur) #define TIME_DST_WEEK Último // Semana del mes (0 o Último, 1 o Primero, 2 o Segundo, 3 o Tercero, 4 o Cuarto) #define TIME_DST_DAY Dom // Día de semana (1 o domingo, 2 o lunes, 3 o martes, 4 o miércoles, 5 o jueves, 6 o viernes, 7 o sábado) #define TIME_DST_MONTH Mar // Mes (1 o ene, 2 o feb, 3 o mar, 4 o abril, 5 o mayo, 6 o junio, 7 o julio, 8 o agosto, 9 o septiembre, 10 u octubre, 11 o noviembre, 12 o diciembre) #define TIME_DST_HOUR 2 // Hora (0 a 23) #define TIME_DST_OFFSET +120 // Desplazamiento de UTC en minutos (-780 a +780) // -- Hora: hora estándar de inicio y diferencia de zona horaria con UTC en minutos #define TIME_STD_HEMISPHERE Norte // [TimeStd] Hemisferio (0 o Norte, 1 o Sur) #define TIME_STD_WEEK Última // Semana del mes ( 0 o Último, 1 o Primero, 2 o Segundo, 3 o Tercero, 4 o Cuarto) #define TIME_STD_DAY Dom // Día de la semana (1 o Dom, 2 o Lun, 3 o Tue, 4 o Wed, 5 o Thu, 6 o viernes, 7 o sábado) #define TIME_STD_MONTH Oct // Mes (1 o enero, 2 o febrero, 3 o marzo, 4 o abril, 5 o mayo, 6 o junio, 7 o julio, 8 o agosto, 9 o septiembre, 10 u oct, 11 o nov, 12 o dic) #define TIME_STD_HOUR 3 // Hora (0 a 23) #define TIME_STD_OFFSET +60 // Desplazamiento de UTC en minutos (-780 a +780) // -- Ubicación ---- -------------------------------- #define LATITUDE 48.858360 // [Latitud] Su ubicación para usar con sunr ise and sunset #define LONGITUDE 2.294442 // [Longitud] Su ubicación para usar con el amanecer y el atardecer // -- Aplicación ------------------------- -------------- -------- #define APP_TIMEZONE 1 // [Zona horaria] +1 hora (Amsterdam) (-13 .. 14 = horas desde UTC, 99 = usar TIME_DST/TIME_STD) #define APP_LEDSTATE LED_POWER // [LedState] Función del led // (LED_OFF, LED_POWER, LED_MQTTSUB, LED_POWER_MQTTSUB, LED_MQTTPUB, LED_POWER_MQTTPUB, LED_MQTT, LED_POWER_MQTT) #define APP_PULSETIME 0 // [PulseTime] Seg para apagar 0 // [PulseTime] para el relé 1 (0 = deshabilitado) #define APP_POWERON_STATE POWER PowerOnState] Encendido Estado del relé // (POWER_ALL_OFF, POWER_ALL_ON, POWER_ALL_SAVED_TOGGLE, POWER_ALL_SAVED, POWER_ALL_ALWAYS_ON, POWER_ALL_OFF_PULSETIME_ON) #define APP_BLINKTIME 10 // [BlinkTime] Tiempo en 0,1 segundos para parpadear/alternar relé 1 #define APP_BLINKCOUNT 10] Número de parpadeos (0 = 32000) #define APP_SLEEP 0 // [Sleep] Tiempo de reposo para reducir la energía y consumo (0 = Apagado, 1 - 250 mSeg) #define KEY_DEBOUNCE_TIME 50 // [ButtonDebounce] Número de mSegundos de tiempo de rebote de pulsación de botón #define KEY_HOLD_TIME 40 // [SetOption32] Número de 0,1 segundos para mantener presionado el botón o el pulsador externo antes de enviar el mensaje HOLD #define Switch_debote_time 50 // [switchDebounce] Número de mseconds switch presione tiempo de desbloqueo #define switch_mode toggle // [switchMode] toggle, seguir, seguir_inv, pushButton, pushButton_inv, pushButtonhold, pushButtonhold_inv, pushtton_Toggle (Wall State) 1 #efine de 1Tdefine LED WS2812 para comenzar (el máximo es 512) #define TEMP_CONVERSION 0 // [SetOption8] Temperatura de retorno en (0 = Celsius o 1 = Fahrenheit) #define TEMP_RESOLUTION 1 // [TempRes] Número máximo de decimales (0 - 3) que muestran la temperatura del sensor #define HUMIDITY_RESOLUTION 1 // [HumRes] Número máximo de decimales (0 - 3) que muestra la humedad del sensor #define PRESSURE_RESOLUTION 1 // [PressRes] M Número máximo de decimales (0 - 3) que muestra la presión del sensor #define ENERGY_RESOLUTION 3 // [EnergyRes] Número máximo de decimales (0 - 5) que muestra el uso de energía en kWh /*************** **************************************************** ***************************\ * FIN DE LA SECCIÓN 1 * * SECCIÓN 2 * - Habilite una característica eliminando ambos // delante of it * - Deshabilitar una función precediéndola con // \************************************ **************************************************** *******/ // -- Localización --------------------------------- // Si no seleccionado, se utilizará el en-GB predeterminado //#define MY_LANGUAGE bg-BG // Búlgaro en Bulgaria //#define MY_LANGUAGE cs-CZ // Checo en checo #define MY_LANGUAGE de-DE // Alemán en Alemania //#define MY_LANGUAGE el-GR // Griego en Grecia //#define MY_LANGUAGE es-ES // Inglés en Gran Bretaña. Activado por defecto //#define MY_LANGUAGE es-AR // Español en Argentina //#define MY_LANGUAGE fr-FR // Francés en Francia //#define MY_LANGUAGE hu-HU // Húngaro en Hungría //#define MY_LANGUAGE it-IT // Italiano en Italia //#define MY_LANGUAGE nl-NL // Holandés en los Países Bajos //#define MY_LANGUAGE pl-PL // Polaco en Polonia //#define MY_LANGUAGE pt-BR // Portugués en Brasil //#define MY_LANGUAGE pt-PT // Portugués en Portugal //#define MY_LANGUAGE ru-RU // Ruso en Rusia //#define MY_LANGUAGE tr-TR // Turco en Turquía //#define MY_LANGUAGE uk-UK // Ucraniano en Ucrania //#define MY_LANGUAGE zh-CN // Chino (simplificado) en China //#define MY_LANGUAGE zh-TW // Chino (tradicional) en Taiwán // -- Herramientas de configuración Wifi --------------------------- -------------- //#define USE_WPS // Agrega soporte para WPS como herramienta de configuración wifi inicial (+33k código, 1k mem (5k mem con core v2.4.2+)) //#define USE_SMARTCONFIG // Agregar soporte para Wifi SmartConfig a s herramienta de configuración wifi inicial (+23k código, +0.6k mem) // -- OTA ------------------------------ ----------- #define USE_ARDUINO_OTA // Añadir soporte opcional para Arduino OTA (+13k código) /*--------- ------------- ---------------------------- ------------- ------*\ * Seleccione UNO de los tres posibles tipos de biblioteca MQTT a continuación \*----------------- ------------- ---------------------------- ------------- -----------*/ // Controlador MQTT predeterminado para conexiones TLS y no TLS. Bloquea la red si el servidor MQTT no está disponible. #define MQTT_LIBRARY_TYPE MQTT_PUBSUBCLIENT // Usar la biblioteca PubSubClient // El controlador MQTT alternativo no bloquea la red cuando el servidor MQTT no está disponible. Sin compatibilidad con TLS //#define MQTT_LIBRARY_TYPE MQTT_TASMOTAMQTT // Use la biblioteca TasmotaMqtt (+4k4 código, +4k mem) - solo no TLS // El controlador MQTT alternativo no bloquea la red cuando el servidor MQTT no está disponible. Sin compatibilidad con TLS //#define MQTT_LIBRARY_TYPE MQTT_ESPMQTTARDUINO // Usar la biblioteca esp-mqtt-arduino (parcheada) (+4k8 código, +4k mem) - solo no TLS // -- MQTT ----------- ----------------------------------------- #define MQTT_TELE_RETAIN 0 // Los telemensajes pueden Enviar indicador de retención (0 = desactivado, 1 = activado) // -- MQTT - Domoticz ------------------------------- ----------- //#define USE_DOMOTICZ // Habilitar Domoticz (+6k código, +0.3 k mem) #define DOMOTICZ_IN_TOPIC "domoticz/in" // Tema de entrada de Domoticz #define DOMOTICZ_OUT_TOPIC "domoticz/out" // Tema de salida de Domoticz // -- MQTT - Detección de Home Assistant ------------- / /#define USE_HOME_ASSISTANT // Habilitar soporte de detección de Home Assistant (+2k código) #define HOME_ASSISTANT_DISCOVERY_PREFIX "homeassistant" // Home Assistant prefijo de descubrimiento // -- MQTT - TLS ----------------- ----------------- // !!! ¡TLS usa MUCHA MEMORIA, así que tenga cuidado de habilitar otras opciones al mismo tiempo! //#define USE_MQTT_TLS // Usar TLS para conexión MQTT (+53k código, +15k mem) // -- Protocolo IP KNX ----------------------- ------ //#define USE_KNX // Habilitar soporte de protocolo IP KNX (+9.4k código, +3k7 mem) // #define USE_KNX_WEB_MENU // Habilitar KNX WEB MENU (+8.3k código, +144 mem) // - - HTTP --------------------------------------- #define USE_WEBSERVER // Habilitar servidor web y Wifi Manager (+66k código, +8k mem) #define WEB_PORT 80 // Puerto del servidor web para el modo de usuario y administrador #define WEB_USERNAME "admin" // Nombre de usuario del modo administrador del servidor web #define USE_EMULATION // Habilita la emulación Belkin WeMo y Hue Bridge para Alexa ( +16k código, +2k memoria) // -- mDNS ------------------------------------ - --- #define USE_DISCOVERY // Habilita mDNS para los siguientes servicios (+8k código, +0.3k mem) #define WEBSERVER_ADVERTISE // Proporciona acceso al servidor web por nombre .local/ #define MQTT_HOST_DISCOVERY // Encuentra el servidor host MQTT (anula MQTT_HOST si se encuentra) // -- Tiempo --------------- --------------------------------------- #define USE_TIMERS // Agregar soporte para hasta 16 temporizadores (+2k2 código) #define USE_TIMERS_WEB // Agregar compatibilidad con la página web del temporizador (código +4k5) #define USE_SUNRISE // Agrega compatibilidad con herramientas de amanecer y atardecer (+16k) #define SUNRISE_DAWN_ANGLE DAWN_NORMAL // Seleccione el ángulo de amanecer deseado de (DAWN_NORMAL, DAWN_CIVIL, DAWN_NAUTIC, DAWN_ASTRONOMIC) // -- Reglas ------- -------------------------------- #define USE_RULES // Agregar soporte para reglas (+ código 4k4) // -- Entrada analógica interna ----------------------- //#define USE_ADC_VCC // Mostrar Vcc en el estado de energía . Deshabilitar para usar como entrada analógica en dispositivos seleccionados // -- Sensores de un cable ---------------------------- // ADVERTENCIA: No seleccionar ninguno por defecto un sensor DS18B20 o habilite una de las siguientes dos opciones para múltiples sensores //#define USE_DS18x20 //Opcional para más de un sensor DS18x20 con clasificación de ID, escaneo único y reintento de lectura (+1k3 código) //#define USE_DS18x20_LEGACY //Opcional para más de un sensor DS18x20 con escaneo dinámico usando la biblioteca OneWire (+1k5 código) // -- Sensores I2C --------------------------- -------------- ------ //#define USE_I2C // I2C usando el cable de la biblioteca (+10k código, 0k2 mem, 124 iram) #ifdef USE_I2C // #define USE_SHT // Habilitar Sensor SHT1X (+código 1k4) // #define USE_HTU // Habilita el sensor HTU21/SI7013/SI7020/SI7021 (dirección I2C 0x40) (+código 1k5) //#define USE_BMP // Habilita el sensor BMP085/BMP180/BMP280/BME280 (dirección I2C 0x76 o 0x77) (+código 4k) // #define USE_BME680 // Habilite la compatibilidad con el sensor BME680 usando la biblioteca Bosch BME680 (+código 4k) // #de fine USE_BH1750 // Habilitar sensor BH1750 (dirección I2C 0x23 o 0x5C) (+ código 0k5) // #define USE_VEML6070 // Habilitar sensor VEML6070 (direcciones I2C 0x38 y 0x39) (+ código 0k5) // #define USE_ADS1115 // Habilitar ADS1115 16 bit Convertidor A/D (dirección I2C 0x48, 0x49, 0x4A o 0x4B) basado en la biblioteca Adafruit ADS1x15 (no se necesita biblioteca) (+ código 0k7) // #define USE_ADS1115_I2CDEV // Habilitar el convertidor A/D ADS1115 de 16 bits (dirección I2C 0x48, 0x49 , 0x4A o 0x4B) utilizando la biblioteca i2cdevlib-Core e i2cdevlib-ADS1115 (+2k código) // #define USE_INA219 // Habilitar INA219 (dirección I2C 0x40, 0x41 0x44 o 0x45) Sensor de bajo voltaje y corriente (+1k código) // #define USE_SHT3X // Habilitar el sensor SHT3x (dirección I2C 0x44 o 0x45) o SHTC3 (dirección I2C 0x70) (+ código 0k7) // #define USE_TSL2561 // Habilitar el sensor TSL2561 (dirección I2C 0x29, 0x39 o 0x49) usando la biblioteca Joba_Tsl2561 (+ código 2k3) ) // #define USE_MGS // Habilite el sensor de gas multicanal Xadow y Grove usando la biblioteca Multichannel_Gas_Sensor (+10k co de) // #define MGS_SENSOR_ADDR 0x04 // Dirección i2c del sensor de gas multicanal predeterminado // #define USE_SGP30 // Habilita el sensor SGP30 (dirección I2C 0x58) (+1k1 código) // #define USE_SI1145 // Habilita el sensor SI1145/46/47 (dirección I2C 0x60) (+1k código) // #define USE_LM75AD // Habilita sensor LM75AD (direcciones I2C 0x48 - 0x4F) (+0k5 código) // #define USE_APDS9960 // Habilita sensor de proximidad APDS9960 (dirección I2C 0x39). Deshabilita SHT y VEML6070 (+4k7 código) // #define USE_MCP230xx // Habilita MCP23008/MCP23017 para GP INPUT SOLAMENTE (direcciones I2C 0x20 - 0x27) proporcionando el comando Sensor29 para configuración (+4k7 código) // #define USE_MCP230xx_OUTPUT // Habilita MCP23001/MCP2301 /MCP2301/MCP2301 Soporte de SALIDA a través de comandos sensor29 (+ código 1k5) // #define USE_MCP230xx_DISPLAYOUTPUT // Habilite MCP23008/MCP23017 para mostrar el estado de los pines de SALIDA en la IU web (+ código 0k2) // # defina USE_MPR121 // Habilite el controlador MPR121 (direcciones I2C 0x5A, 0x5B, 0x5C y 0x5D) en modo de entrada para botones táctiles (+1k3 código) // #define USE_CCS811 // Habilitar sensor CCS811 (dirección I2C 0x5A) (+2k2 código) // #define USE_MPU6050 // Habilitar sensor MPU6050 (dirección I2C 0x68 AD0 bajo o 0x69 AD0 alto) (+ código 2k6) #endif // USE_I2C // -- Sensores SPI --------------------------- ---- -- //#define USE_SPI // SPI usando librería TasmotaTFT #ifdef USE_SPI #endif // USE_SPI // -- Sensores serie ---------------------- ------------------ ---- #definir EE.UU. E_MHZ19 // Agregar soporte para sensor de CO2 MH-Z19 (+2k código) #define USE_SENSEAIR // Agregar soporte para sensor de CO2 SenseAir K30, K70 y S8 (+2k3 código) #define CO2_LOW 800 // Debajo de este valor de CO2 se muestra luz verde (necesita LED PWM o WS2812 RG(B) y habilite con SetOption18 1) #define CO2_HIGH 1200 // Por encima de este valor de CO2, muestre luz roja (necesita LED PWM o WS2812 RG(B) y habilite con SetOption18 1) #define USE_PMS5003 // Agregue soporte para PMS5003 y sensor de concentración de partículas PMS7003 (+código 1k3) #define USE_NOVA_SDS // Agregar soporte para sensor de concentración de partículas SDS011 y SDS021 (+código 0k7) #define USE_PZEM004T // Agregar soporte para monitor de energía PZEM004T (+código 2k) #define USE_SERIAL_BRIDGE // Agregar soporte para software Serial Bridge (+código 0k8) //#define USE_SDM120 //Agregue soporte para medidor de energía Eastron SDM120-Modbus (+código 1k7) #define SDM120_SPEED 9600 //SDM120-Modbus RS485 velocidad serial (predeterminado: 2400 baudios) //#define USE_SDM630 / / Añadir soporte para Oriente ron SDM630-Modbus medidor de energía (+2k código) #define SDM630_SPEED 9600 // SDM630-Modbus RS485 serial speed (predeterminado: 9600 baudios) // -- Dispositivos de interfaz de bajo nivel -------------- --- //#define USE_IR_REMOTE // Envía comandos remotos IR usando la biblioteca IRremoteESP8266 y ArduinoJson (+4k código, 0k3 mem, 48 iram) // #define USE_IR_HVAC // Soporte para sistema HVAC usando IR (+2k código) // #define USE_IR_RECEIVE // Compatibilidad con receptor IR (+5k5 código, 264 iram) #define USE_WS2812 // WS2812 Led string usando la biblioteca NeoPixelBus (+5k código, +1k mem, 232 iram) - Deshabilitar por // #define USE_WS2812_CTYPE NEO_GRB // WS2812 Tipo de color ( NEO_RGB, NEO_GRB, NEO_BRG, NEO_RBG, NEO_RGBW, NEO_GRBW) // #define USE_WS2812_DMA // DMA solo admite GPIO03 (= Serial RXD) (+1k mem). Cuando USE_WS2812_DMA está habilitado, se esperan excepciones en Pow //#define USE_ARILUX_RF //Agrega compatibilidad con el controlador remoto Arilux RF (+código 0k8, 252 iram (no 2.3.0)) //#define USE_SR04 //Agrega compatibilidad con dispositivos ultrasónicos HC-SR04 ( +1k código) //#define USE_TM1638 //Agregar soporte para interruptores TM1638 copiando Switch1 .. Switch8 (+1k código) #define USE_RF_FLASH //Agregar soporte para flashear el chip EFM8BB1 en Sonoff RF Bridge. C2CK debe estar conectado a GPIO4, C2D a GPIO5 en la PCB (+3k código) /******************************** **************************************************** ************\ * Las funciones de depuración solo se admiten en la rama de desarrollo \*************************** **************************************************** ****************/ //#define USE_DEBUG_DRIVER // Use xdrv_99_debug.ino proporcionando los comandos CpuChk, CfgXor, CfgDump, CfgPeek y CfgPoke /*********** **************************************************** ********************************\ * Configuraciones de firmware opcionales * Seleccione ninguna o solo una para funciones y sensores opcionales según la configuración en sonoff_post.h * Ver RELEASENOTES.md para características seleccionadas \************************************* **************************************************** ******/ //#define USE_CLASSIC // Crea sonoff-classic con las herramientas de configuración inicial WPS, SmartConfig y WifiManager //#define USE_SENSORS // Crea sonoff-sensors con sensores útiles habilitados //1T P5Tdefine USE_KNX_NO_EMULATION // Crea sonoff-knx con KNX pero sin Emulación //#define BE_MINIMAL // Crea sonoff-minimal como firmware intermedio para OTA-MAGIC /******************* **************************************************** ***********************\ * No hay elementos configurables por el usuario debajo de \****************** ***************************************************** * *************************/ #if define(USE_MQTT_TLS) && define(USE_WEBSERVER) #error "Seleccione USE_MQTT_TLS o USE_WEBSERVER porque simplemente no hay suficiente memoria para jugar" #endif #endif // _USER_CONFIG_H_


Pegue la compensación de hilo a la base de la lámpara.

Cuando instalé esta lámpara por primera vez, tuve el problema de que la base de la bombilla, que no era del todo plana, no se sostenía correctamente sobre la base de la lámpara. Para compensar este desnivel, pegué un anillo de compensación a la base de la lámpara. Luego integré esto en la base de la lámpara. Sin embargo, en aras de la exhaustividad, se incluye aquí.

Primer plano de la base del bulbo ligeramente irregular.
Primer plano del anillo de equilibrio.
Con el anillo de compensación pegado a la base de la lámpara, la carcasa de la bombilla ahora está de pie...
... erguido y recto.
La mejor manera de hacer esto es unir el anillo de compensación con un poco de pegamento caliente.

Combine la carcasa de la bombilla con la base de la lámpara

Ahora también puede conectar la carcasa de la lámpara a la base de la lámpara.

Ahora puede colocar con cuidado la carcasa de la bombilla sobre la varilla de la base de la lámpara. Si todo encaja, puedes pegar la carcasa de la bombilla a la base de la lámpara con un poco de pegamento caliente.
Primer plano de la versión "pequeña".
Primer plano de la versión "grande".
Comparación de tamaño entre la versión "pequeña" y "grande".

Esto es lo que parece con las luces encendidas.


Otras opciones de construcción

Si la base de la lámpara de plástico impresa en 3D no le atrae, también puede usar una base hecha de una tabla de madera. Hay otro adaptador con el que puedes fijar la carcasa de la bombilla al panel de madera.

También puede encontrar el archivo STL para imprimir esta base de lámpara en el área superior "Componentes 3D".

La combinación con diferentes tipos de madera o paneles le brinda aún más opciones para modificar este proyecto según sus deseos.


Diviértete con el proyecto

Espero que todo te haya funcionado como se describe. Si no es así, o si tiene alguna pregunta o sugerencia, hágamelo saber en los comentarios. Si es necesario, lo añadiré al artículo.
Las ideas para nuevos proyectos también son siempre bienvenidas 🙂 .

P.D. Muchos de estos proyectos, sobre todo los de hardware, cuestan mucho tiempo y dinero. Por supuesto que lo hago porque me divierte, pero si te parece guay que comparta contigo la info al respecto, te agradecería una pequeña donación para el fondo del café 🙂 .

Cómprame un café en ko-fi.com       

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert