HowTo: Tasmota - Construir Lâmpada Retrô Lâmpada Inteligente para Casa

Como naquele Projeto de alto-falante retrô é um pequeno hobby meu dar um novo uso a coisas velhas. Se você também pode melhorar a tecnologia antiga e torná-la mais eficiente em termos de energia, por exemplo, isso é uma ótima cereja no topo do bolo.

Foi o que aconteceu recentemente quando me deparei com uma caixa de lâmpadas velhas. Eu não queria mais usá-los, porque agora estou perseguindo essa tendência moderna de realmente usar o aquecedor para aquecer.

Mas também achei uma pena simplesmente jogar fora as lâmpadas velhas. Então, decidi dar às velhas lâmpadas "burras" um funcionamento interno novo e inteligente. Pelo menos uma lâmpada decorativa respeitável deve poder ser construída com ela.
Descrevi no artigo a seguir como isso funciona e o que você deve considerar ao replicá-lo.


instruções de segurança

Eu sei que as notas a seguir são sempre meio chatas e parecem desnecessárias. Infelizmente, muitas pessoas que sabiam "melhor" perderam olhos, dedos ou outras coisas por descuido ou se machucaram. A perda de dados é quase insignificante em comparação, mas mesmo isso pode ser realmente irritante. Portanto, dedique cinco minutos para ler as instruções de segurança. Porque mesmo o projeto mais legal não vale ferimentos ou outros problemas.
https://www.nerdiy.de/sicherheitshinweise/

Links afiliados/Links de publicidade

Os links para lojas online listados aqui são os chamados links de afiliados. Se você clicar em um link de afiliado e fizer uma compra por meio desse link, o Nerdiy.de receberá uma comissão da loja ou fornecedor online relevante. O preço não muda para você. Se você fizer suas compras por meio desses links, estará apoiando o Nerdiy.de para poder oferecer outros projetos úteis no futuro. 🙂 


requisitos

Artigos úteis:
Antes de começar com este artigo, você deve ter lidado com os fundamentos da soldagem. Você pode encontrar informações sobre isso no seguinte artigo.
Eletrônica - Meu amigo, o ferro de solda

Material Necessário:

Na lista a seguir, você encontrará todas as partes necessárias para implementar este artigo.

Ferramenta necessária:

Na lista a seguir, você encontrará todas as ferramentas necessárias para implementar este artigo.


Reúna as peças que você precisa

Para configurar sua lâmpada doméstica inteligente, você precisa das peças mostradas ou listadas nos requisitos. No que diz respeito à placa adaptadora ESP8266, ela não precisa necessariamente ser uma Wemos D1-Mini. No entanto, esta é uma das placas adaptadoras menores do mercado e por isso mesmo, pelo menos na versão de 40W, praticamente não há alternativa - as placas adaptadoras maiores simplesmente não cabem tão bem no soquete da lâmpada.

Visualização das peças necessárias.
A lâmpada já deve estar "corada". Como fazer isso está no artigo Lâmpadas incandescentes "núcleo" explicou.
O soquete da lâmpada posteriormente mantém a lâmpada na posição vertical e também oculta a placa adaptadora ESP8266.
Os seis LEDs WS2812B fornecem a iluminação para a lâmpada. Sua cor e brilho podem ser ajustados posteriormente por meio de uma interface da web.

Imprima em 3D as peças que você precisa

Baixe todos os arquivos STL necessários: Tasmota - Construir lâmpada retrô para casa inteligente

Tomada para lâmpada incandescente de 40W:

Você pode girar a visualização 3D do arquivo STL mantendo o botão do mouse pressionado. Você pode aumentar e diminuir o zoom com a roda do mouse.

Tomada para lâmpada incandescente de 100W:

Você pode girar a visualização 3D do arquivo STL mantendo o botão do mouse pressionado. Você pode aumentar e diminuir o zoom com a roda do mouse.

Base do parafuso de 100 W:

Você pode girar a visualização 3D do arquivo STL mantendo o botão do mouse pressionado. Você pode aumentar e diminuir o zoom com a roda do mouse.


diagrama de circuito

Aqui você encontrará os diagramas de circuito que indicam como a lâmpada é construída em princípio.

Diagrama de fiação normal.
Visão de Fritzing.

anexar LEDs

O primeiro passo para sua própria lâmpada de casa inteligente retro é anexar as tiras de LED. Estes já devem ser cortados em pares de dois.

Em seguida, cole a primeira faixa de LED do lado onde está o orifício no eixo da base da lâmpada, conforme mostrado. A linha que conecta sua placa adaptadora ESP8266 aos LEDs será posteriormente alimentada por aqui. É importante neste ponto que você preste atenção na “direção de funcionamento” dos LEDs. Neste ponto, a seta preta na faixa de LED deve apontar para cima - ou seja, longe do orifício.
Em seguida, a próxima faixa de LED é colada. Aqui, a "direção de execução" é alterada novamente - a seta preta aponta para baixo.
A última faixa de LED é colada no único espaço livre restante. A "direção de execução" é alterada novamente. Desta vez, as setas pretas na faixa de LED estão apontando para cima.

Soldar os primeiros LEDs

Como os LEDs também podem ser alimentados com energia e dados (cor, brilho, etc.), é claro que eles devem ser conectados à placa adaptadora ESP8266.

Para isso, você precisa de um cabo de 3 núcleos de 20 cm de comprimento.
Isola as linhas individuais aprox. 3-5mm...
...e estanhe as pontas do cabo que ficaram soltas. Dicas de como usar o ferro de solda podem ser encontradas no artigo Eletrônica - Meu amigo, o ferro de solda.
Então você pode inserir o cabo no eixo da base da lâmpada...
...e soldá-lo aos contatos da primeira faixa de LED. Certifique-se de que a "direção de execução" das faixas de LED esteja correta. As setas pretas devem apontar para longe do cabo de conexão na primeira faixa de LED.

Conecte os LEDs à placa adaptadora ESP8266

Antes de soldar os demais LEDs, a placa adaptadora do ESP8266 é conectada primeiro na linha de alimentação dos LEDs, pois assim você poderá utilizar as demais linhas.

Antes de iniciar a instalação da placa adaptadora ESP8266, também recomendo que você remova o LED integrado da placa adaptadora se necessário. Infelizmente, isso brilha tanto que é visível através do plástico da base. Como você pode fazer isso está no artigo ESP8266 - Remover/Desativar LED descrito.

O cabo já deve estar saindo do soquete. Divide as linhas individuais até o orifício de saída na base...
...e cola a placa adaptadora ESP8266 no soquete. Isso funciona muito bem com fita dupla-face mais grossa ou cola quente. É importante que a porta USB da placa adaptadora aponte na direção da protuberância na base. Esta é a única maneira de conectar posteriormente a lâmpada a um cabo USB.
Depois de colar a placa adaptadora ESP8266 e alinhá-la adequadamente, você pode…
...encurte as linhas de modo que sobressaiam aproximadamente 3-4 cm.
Isola novamente cerca de 3-5mm das linhas e...
...estanhe-os com um pouco de solda.
Prepare aqui os contatos da placa adaptadora ESP8266 estanhando previamente os contatos de conexão “D2”, “G” e “5V”.
depois de ter estanhado todos os pontos, você pode...
...já solde as linhas. Certifique-se de que as linhas conectem os locais corretos entre as faixas de LED e a placa adaptadora ESP8266. "+5V" do LED deve ser conectado ao "5V" da placa adaptadora, "GND" do LED ao "G" da placa adaptadora e "DIN" do LED ao "D2" da placa adaptadora.
Aqui está outro close do cabo soldado.

Solde as tiras de LED restantes juntas

Até agora, apenas dois dos seis LEDs ou um dos três elementos de faixa de LED foram soldados juntos. Para soldar as tiras de LED restantes, agora você pode usar o fio restante que cortou na etapa anterior.

Antes de começar a conectar as faixas de LED, você deve preparar todos os pontos de contato novamente.
Para fazer isso, estanhe os contatos na parte superior da primeira faixa de LED.
E também os contatos superior e inferior do segundo e…
...terceira faixa de LED.
Para conectar as faixas de LED restantes entre si, prepare seis pedaços de cabo de aproximadamente 2 cm de comprimento. Ao fazê-lo, isole novamente as extremidades do cabo cerca de 3-5 mm e estanhe as extremidades do cabo.
Como você já preparou os contatos nas faixas de LED, já pode soldar nas três primeiras linhas de conexão.
Aqui está um close-up das três primeiras linhas de conexão soldadas.
Agora você pode dobrá-lo e conectá-lo à segunda faixa de LED. Certifique-se de conectar os contatos corretos. O "GND" da primeira faixa de LED também deve ser conectado ao "GND" da segunda faixa de LED. Também "+5V" com "+5V" e "Dout" da primeira faixa com "Din" da segunda faixa.
Close do fio soldado na segunda faixa de LED.
Close da conexão entre a primeira e a segunda faixa de LED.
Agora você pode soldar as três linhas restantes na segunda faixa de LED.
Detalhe dos fios soldados na segunda faixa de LED.
Você pode então soldá-los à terceira (e última) faixa de LED.
Depois de soldar todas as tiras de LED, deve ficar mais ou menos assim. Neste ponto, verifique novamente se você soldou as linhas nos contatos corretos.
Visão geral das tiras de LED soldadas.
Gravação adicional das tiras de LED soldadas.
Agora você deve colocar as linhas soldadas o mais firmemente possível ao redor da base da lâmpada.
...então você não terá problemas depois de inserir os LEDs e a base da lâmpada na lâmpada tubular.

Programe a placa adaptadora ESP8266 e faça o primeiro teste

Depois que a última junta de solda esfriar, é hora do primeiro teste. Reproduza o firmware Tasmota na placa adaptadora e teste os LEDs. Como fazer isso está no artigo Tasmota - firmware flash descrito.

Abaixo está uma configuração que usei para minha lâmpada. Obviamente, você ainda precisa configurar os dados de acesso para sua WLAN e, se necessário, os dados de acesso para seu servidor MQTT.

/* user_config.h - configuração específica do usuário para Sonoff-Tasmota Copyright (C) 2018 Theo Arends Este programa é um software livre: você pode redistribuí-lo e/ou modificá-lo sob os termos da GNU General Public License publicada pelo Software Livre Foundation, seja a versão 3 da Licença ou (a seu critério) qualquer versão posterior. Este programa é distribuído na esperança de que seja útil, mas SEM QUALQUER GARANTIA; mesmo sem a garantia implícita de COMERCIABILIDADE ou ADEQUAÇÃO PARA UM FIM ESPECÍFICO. Consulte a Licença Pública Geral GNU para obter mais detalhes. Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa. Se não, consulte . */ #ifndef _USER_CONFIG_H_ #define _USER_CONFIG_H_ /******************************* ************************************************** \ * Este arquivo consiste em DUAS seções. * * SEÇÃO 1: * A primeira seção contém os PARÂMETROS que substituem as configurações do flash se o CFG_HOLDER for ALTERADO. * Todos os parâmetros podem ser persistentemente alterados online usando comandos via MQTT, WebConsole ou Serial. * Os comandos MQTT/Serial/Console correspondentes são mostrados entre [colchetes] * * SEÇÃO 2: * A segunda seção contém os RECURSOS ativados e desativados que permitem diferentes tamanhos de programa. * Alterações nesta seção NÃO precisam de uma alteração de definir CFG_HOLDER. * * ATENÇÃO: * Os usuários são aconselhados a usar o arquivo user_config_override.h para a maioria das alterações. \**************************************************** *** ********************************************/ // #define USE_CONFIG_OVERRIDE / / Descomente para usar o arquivo user_config_override.h. Veja README.md /******************************************** *************************************************** *\ * SECTION 1 * - Após o carregamento inicial, qualquer alteração aqui só terá efeito se CFG_HOLDER também for alterado \**************************** *************************************************** *** ************/ // -- Controle de parâmetro mestre -------------------- #define CFG_HOLDER 4617 // [Reset 1] Altere este valor (max 32000) para carregar os parâmetros de configuração SECTION1 para flash // -- Projeto ------------------------ --- ----- #define PROJECT "Gluehlampe" // PROJECT é usado como delimitador de tópico padrão #define MODULE WEMOS // [Módulo] Selecione o modelo padrão de sonoff_template.h (não deve ser alterado) #define SAVE_DATA 1 // [ SaveData] Salve os parâmetros alterados para Flash (0 = desativar, 1 - 3600 segundos) #define SAVE_STATE 1 // [SetOption0] Salve o estado de energia alterado para Flash (0 = desativar, 1 = ativar) // -- Wifi ----- --- ------------------ #define WIFI_IP_ADDRESS "0.0.0.0" // [IpAddress1] Defina como 0.0.0.0 para usar DHCP ou endereço IP #define WIFI_GATEWAY "192.168.0.1" // [IpAddress2] Se não estiver usando DHCP, defina o endereço IP do gateway #define WIFI_SUBNETMASK "255.255.255.0" // [IpAddress3] Se não estiver usando DHCP, defina a máscara de rede #define WIFI_DNS "192.168.0.1" // [IpAddress4] Se não estiver usando DHCP, defina o endereço IP do DNS (pode ser igual a WIFI_GATEWAY) #define STA_SSID1 "" // [Ssid1] Wifi SSID #define STA_PASS1 "" // [Password1] Wifi password #define STA_SSID2 "" // [Ssid2] Opcional AP Wifi SSID #define STA_PASS2 "" // [Password2] Opcional AP alternativo Wifi password #define WIFI_CONFIG_TOOL WIFI_MANAGER // [WifiConfig] Ferramenta padrão se wifi falhar para conectar // (WIFI_RESTART, WIFI_SMARTCONFIG, WIFI_MANAGER, WIFI_WPSCONFIG, WIFI_RETRY, WIFI_WAIT, WIFI_SERIAL) #define WIFI_CONFIG_NO_SSID WIFI_WPSCONFIG // Ferramenta padrão se o wifi falhar na conexão e nenhum SSID estiver configurado // (WIFI_SMARTFIG, WIPS_FI_MANAGER, WICONFIGRISE AL) // *** NOTA: Quando WPS é desativado por USE_WPS abaixo, WIFI_WPSCONFIG executará WIFI_MANAGER *** // *** NOTA: Quando WIFI_MANAGER é desativado por USE_WEBSERVER abaixo, WIFI_MANAGER executará WIFI_SMARTCONFIG *** // ** * NOTA: Quando WIFI_SMARTCONFIG é desativado por USE_SMARTCONFIG abaixo, WIFI_SMARTCONFIG executará WIFI_SERIAL *** // -- Syslog --------------------------- ------------- ----------- #define SYS_LOG_HOST "" // [LogHost] (Linux) host syslog #define SYS_LOG_PORT 514 // [LogPort] porta UDP syslog padrão #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] Selecione o uso padrão do MQTT (0 = Off, 1 = On) #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 65 30B 30B ] #define MQTT_PORT 1883 // [MqttPort] porta MQTT (10123 no CloudMQTT) #define MQTT_USER "DVES_USER" // [MqttUser] usuário MQTT #define MQTT_PASS "DVES_PASS" // [MqttPassword] senha MQTT #TAIN.BUTine 0 // botão [ButtonRetain] pode enviar sinalizador de retenção (0 = desativado, 1 = ativado) #define MQTT_POWER_RETAIN 0 // [PowerRetain] Mensagem de status de energia pode enviar sinalizador de retenção (0 = desativado, 1 = ativado) #define MQTT_SWITCH_RETAIN 0 // [ SwitchRetain] Chave pode enviar sinalizador de retenção (0 = desativado, 1 = ativado) #define MQTT_STATUS _OFF "OFF" // [StateText1] Resultado do comando ou status quando desativado (precisa ser uma string como "0" ou "Off") #define MQTT_STATUS_ON "ON" // [StateText2] Resultado do comando ou status quando ativado (precisa para ser uma string como "1" ou "On") #define MQTT_CMND_TOGGLE "TOGGLE" // [StateText3] Comando para enviar ao alternar (precisa ser uma string como "2" ou "Toggle") #define MQTT_CMND_HOLD "HOLD" // [StateText4] Comando para enviar quando o botão é mantido pressionado por mais de KEY_HOLD_TIME * 0,1 segundos (precisa ser uma string como "HOLD") // -- Tópicos MQTT ---------------- ----------------- // Exemplo "tasmota/bedroom/%topic%/%prefix%/" até 80 caracteres #define MQTT_FULLTOPIC "%prefix%/%topic%/" // [FullTopic] Assinar e publicar nome completo do tópico - tópico legado // %prefix% opções de token #define SUB_PREFIX "cmnd" // [Prefix1] Dispositivos Sonoff assinam %prefix%/%topic% sendo SUB_PREFIX/MQTT_TOPIC e SUB_PREFIX/MQTT_GRPTOPIC #define PUB_PREFIX "stat" // [Prefix2] Dispositivos Sonoff publicam para %prefix%/%topic% sendo PUB_PREFIX/MQTT_TOPIC #define PUB_PREFIX2 "tele" // [Prefix3] Dispositivos Sonoff publicam dados de telemetria para %prefix%/%topic% sendo PUB_PREFIX2/MQTT_PIC e /MQTT_PIC, POWER, TIME POWER e TOPIC / Pode ter o mesmo nome que PUB_PREFIX // %topic% opções de token (também ButtonTopic e SwitchTopic) #define MQTT_TOPIC PROJECT // [Tópico] (exclusivo) Tópico do dispositivo MQTT, definido como 'PROJECT "_X"' para tópico exclusivo incluindo dispositivo Endereço MAC #define MQTT_GRPTOPIC "sonoffs" // [GroupTopic] Tópico de grupo MQTT #define MQTT_BUTTON_TOPIC "0" // [ButtonTopic] Tópico de botão MQTT, "0" = o mesmo que MQTT_TOPIC, definido como 'PROJECT "_BTN_X"' para tópico exclusivo incluindo dispositivo Endereço MAC #define MQTT_SWITCH_TOPIC "0" // [SwitchTopic] Tópico do botão MQTT, "0" = o mesmo que MQTT_TOPIC, definido como 'PROJETO "_SW_X"' para tópico exclusivo, incluindo endereço MAC do dispositivo #define MQTT_CLIENT_ID "DVES_X" // [MqttClient] Também retorne ao tópico usando Chip Id = últimos 6 caracteres do endereço MAC // -- MQTT - Telemetria ------------------------ ---- #define TELE_PERIOD 300 // [TelePeriod] Telemetria (0 = desativar, 10 - 3600 segundos) // -- MQTT - Domoticz -------------------- --------- #define DOMOTICZ_UPDATE_TIMER 0 // [DomoticzUpdateTimer] Enviar status do relé (0 = desativar, 1 - 3600 segundos) // -- MQTT - Home Assistant Discovery ----------- -- #define HOME_ASSISTANT_DISCOVERY_ENABLE 0 // [SetOption19] Home Assistant Discovery (0 = Desativar, 1 = Ativar) // -- HTTP ----------------------- ----------------- #define WEB_SERVER 2 // [WebServer] Servidor Web (0 = Desligado, 1 = Iniciar como Usuário, 2 = Iniciar como Admin) #define WEB_PASSWORD "" // [WebPassword] Modo Admin do servidor Web Senha para WEB_USERNAME (string vazia = Desativar) #define FRIENDLY_NAME "Gluehlampe" // [FriendlyName] Nome amigável de até 32 caracteres usado por páginas da Web e Alexa #define EMULATION EMUL_NONE // [Emulação] Selecione Belk em WeMo (single relay/light) ou emulação Hue Bridge (multi relay/light) (EMUL_NONE, EMUL_WEMO ou EMUL_HUE) // -- Tempo - Até três servidores NTP em sua região #define NTP_SERVER1 "pool.ntp.org" // [NtpServer1] Selecione o primeiro servidor NTP por nome ou endereço IP (129.250.35.250) #define NTP_SERVER2 "nl.pool.ntp.org" // [NtpServer2] Selecione o segundo servidor NTP por nome ou endereço IP (5.39.184.5) #define NTP_SERVER3 " 0.nl.pool.ntp.org" // [NtpServer3] Selecione o terceiro servidor NTP por nome ou endereço IP (93.94.224.67) // -- Hora - Início do horário de verão e fuso horário do UTC em minutos #define TIME_DST_HEMISPHERE Norte / / [TimeDst] Hemisfério (0 ou Norte, 1 ou Sul) #define TIME_DST_WEEK Última // Semana do mês (0 ou Última, 1 ou Primeira, 2 ou Segunda, 3 ou Terceira, 4 ou Quarta) #define TIME_DST_DAY Dom // Dia de semana (1 ou Dom, 2 ou Seg, 3 ou Ter, 4 ou Qua, 5 ou Qui, 6 ou Sex, 7 ou Sáb) #define TIME_DST_MONTH Mar // Mês (1 ou Jan, 2 ou Fev, 3 ou Mar, 4 ou abril, 5 ou maio, 6 ou junho, 7 ou julho, 8 ou agosto, 9 ou setembro, 10 ou outubro, 11 ou novembro, 12 ou dezembro) #define TIME_DST_HOUR 2 // Hora (0 a 23) #define TIME_DST_OFFSET +120 // Offset de UTC em minutos (-780 a +780) // -- Hora - Hora padrão de início e diferença de fuso horário do UTC em minutos #define TIME_STD_HEMISPHERE Norte // [TimeStd] Hemisfério (0 ou Norte, 1 ou Sul) #define TIME_STD_WEEK Última // Semana do mês ( 0 ou Último, 1 ou Primeiro, 2 ou Segundo, 3 ou Terceiro, 4 ou Quarto) #define TIME_STD_DAY Dom // Dia da semana (1 ou Dom, 2 ou Seg, 3 ou Ter, 4 ou Qua, 5 ou Qui, 6 ou sex, 7 ou sab) #define TIME_STD_MONTH Out // Mês (1 ou jan, 2 ou fev, 3 ou mar, 4 ou abr, 5 ou maio, 6 ou jun, 7 ou jul, 8 ou ago, 9 ou set, 10 ou outubro, 11 ou novembro, 12 ou dezembro) #define TIME_STD_HOUR 3 // Hora (0 a 23) #define TIME_STD_OFFSET +60 // Offset de UTC em minutos (-780 a +780) // -- Localização ---- -------------------------------- #define LATITUDE 48.858360 // [Latitude] Sua localização a ser usada com sunr ise and sunset #define LONGITUDE 2.294442 // [Longitude] Sua localização a ser usada com nascer e pôr do sol // -- Aplicação ------------------------- -------------- -------- #define APP_TIMEZONE 1 // [Fuso horário] +1 hora (Amsterdã) (-13 .. 14 = horas de UTC, 99 = usar TIME_DST/TIME_STD) #define APP_LEDSTATE LED_POWER // [LedState] Função do led // (LED_OFF, LED_POWER, LED_MQTTSUB, LED_POWER_MQTTSUB, LED_MQTTPUB, LED_POWER_MQTTPUB, LED_MQTT, LED_POWER_MQTT) #define APP_PULSETIME 0 // [Pulse in power off. para o relé 1 (0 = desabilitado) #define APP_POWERON_STATE POWER PowerOnState] Power On Relay state // (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] Tempo para piscar em 0/1 seg. relé 1 #define APP_BLINKCOUNT 10] Número de piscadas (0 = 32000) #define APP_SLEEP 0 // [Sleep] Tempo de espera para diminuir a energia y consumo (0 = Off, 1 - 250 mSeg) #define KEY_DEBOUNCE_TIME 50 // [ButtonDebounce] Número de mSegundos do tempo de debounce pressionado no botão #define KEY_HOLD_TIME 40 // [SetOption32] Número de 0,1 segundos para segurar o botão ou botão externo antes de enviar a mensagem HOLD #define Switch_debounce_time 50 // [switchDebounce] Número de msEconds switch Pressione o tempo de debounce #DEFINE SWITCH_MODE TOGLGLE // [switchMode] Toggle, siga, siga_inv, pushbutton, pushbutton_inv, pushbuttonhold, pushbutton) LEDs WS2812 para começar (o máximo é 512) #define TEMP_CONVERSION 0 // [SetOption8] Temperatura de retorno em (0 = Celsius ou 1 = Fahrenheit) #define TEMP_RESOLUTION 1 // [TempRes] Número máximo de decimais (0 - 3) mostrando a temperatura do sensor #define HUMIDITY_RESOLUTION 1 // [HumRes] Número máximo de casas decimais (0 - 3) mostrando a umidade do sensor #define PRESSURE_RESOLUTION 1 // [PressRes] M número máximo de decimais (0 - 3) mostrando a pressão do sensor #define ENERGY_RESOLUTION 3 // [EnergyRes] Número máximo de decimais (0 - 5) mostrando o uso de energia em kWh /*************** ************************************************** ****************************\ *FIM DA SEÇÃO 1* *SEÇÃO 2* - Habilite um recurso removendo ambos // na frente of it * - Desative um recurso precedendo-o com // \************************************ ************************************************** *******/ // -- Localização ---------------------------------- // Se não selecionado o padrão en-GB será usado //#define MY_LANGUAGE bg-BG // búlgaro na Bulgária //#define MY_LANGUAGE cs-CZ // tcheco em tcheco #define MY_LANGUAGE de-DE // alemão na Alemanha //#define MY_LANGUAGE el-GR // Grego na Grécia //#define MY_LANGUAGE en-GB // Inglês na Grã-Bretanha. Ativado por padrão //#define MY_LANGUAGE es-AR // Espanhol na Argentina //#define MY_LANGUAGE fr-FR // Francês na França //#define MY_LANGUAGE hu-HU // Húngaro na Hungria //#define MY_LANGUAGE it-IT // Italiano em Itália //#define MY_LANGUAGE nl-NL // Holandês na Holanda //#define MY_LANGUAGE pl-PL // Polonês na Polônia //#define MY_LANGUAGE pt-BR // Português no Brasil //#define MY_LANGUAGE pt-PT // Português em Portugal //#define MY_LANGUAGE ru-RU // Russo na Rússia //#define MY_LANGUAGE tr-TR // Turco na Turquia //#define MY_LANGUAGE uk-UK // Ucraniano em Ukrain //#define MY_LANGUAGE zh-CN // Chinês (simplificado) em China //#define MY_LANGUAGE zh-TW // Chinês (tradicional) em Taiwan // -- Wifi Config tools --------------------------- -------------- //#define USE_WPS // Adiciona suporte para WPS como ferramenta de configuração wifi inicial (+33k code, 1k mem (5k mem with core v2.4.2+)) //#define USE_SMARTCONFIG // Adiciona suporte para Wifi SmartConfig a s ferramenta de configuração wifi inicial (+23k code, +0.6k mem) // -- OTA ------------------------------ ----------- #define USE_ARDUINO_OTA // Adiciona suporte opcional para Arduino OTA (código +13k) /*--------- ------------- ------------------------------------- ------------- ------*\ * Selecione UM dos três tipos de biblioteca MQTT possíveis abaixo \*----------------- ------------- ------------------------------------- ------------- -----------*/ // Driver MQTT padrão para conexões não TLS e TLS. Bloqueia a rede se o servidor MQTT não estiver disponível. #define MQTT_LIBRARY_TYPE MQTT_PUBSUBCLIENT // Use a biblioteca PubSubClient // O driver MQTT alternativo não bloqueia a rede quando o servidor MQTT está indisponível. Sem suporte TLS //#define MQTT_LIBRARY_TYPE MQTT_TASMOTAMQTT // Use a biblioteca TasmotaMqtt (+4k4 code, +4k mem) - somente não TLS // O driver MQTT alternativo não bloqueia a rede quando o servidor MQTT está indisponível. Sem suporte a TLS //#define MQTT_LIBRARY_TYPE MQTT_ESPMQTTARDUINO // Use (corrigido) a biblioteca esp-mqtt-arduino (código +4k8, +4k mem) - apenas não TLS // -- MQTT ----------- ------------------------------------------ #define MQTT_TELE_RETAIN 0 // Telemensagens podem enviar sinalizador de retenção (0 = desativado, 1 = ativado) / / -- MQTT - Domoticz ------------------------------- ----------- //#define USE_DOMOTICZ // Habilita Domoticz (+6k code, +0.3 k mem) #define DOMOTICZ_IN_TOPIC "domoticz/in" // Domoticz Input Topic #define DOMOTICZ_OUT_TOPIC "domoticz/out" // Domoticz Output Topic // -- MQTT - Home Assistant Discovery ------------- / /#define USE_HOME_ASSISTANT // Ativar o Home Assistant Discovery Support (+2k code) #define HOME_ASSISTANT_DISCOVERY_PREFIX "homeassistant" // Home Assistant prefixo de descoberta // -- MQTT - TLS ------------------ ----------------- // !!! TLS usa MUITA MEMÓRIA então cuidado para habilitar outras opções ao mesmo tempo!!! //#define USE_MQTT_TLS // Use TLS para conexão MQTT (+53k code, +15k mem) // -- KNX IP Protocol ----------------------- ------ //#define USE_KNX // Ativa o suporte do protocolo KNX IP (+9.4k code, +3k7 mem) // #define USE_KNX_WEB_MENU // Ativa o KNX WEB MENU (+8.3k code, +144 mem) // - - HTTP --------------------------------------- #define USE_WEBSERVER // Ativa servidor web e Wifi Manager (+66k code, +8k mem) #define WEB_PORT 80 // Porta do servidor Web para modo de usuário e administrador #define WEB_USERNAME "admin" // Nome de usuário do modo Admin do servidor Web #define USE_EMULATION // Habilita a emulação Belkin WeMo e Hue Bridge para Alexa ( +16k código, +2k mem) // -- mDNS ------------------------------------ - --- #define USE_DISCOVERY // Habilita mDNS para os seguintes serviços (+8k code, +0.3k mem) #define WEBSERVER_ADVERTISE // Fornece acesso ao servidor web por nome .local/ #define MQTT_HOST_DISCOVERY // Encontra servidor host MQTT (substitui MQTT_HOST se encontrado) // -- Tempo --------------- --------------------------------------- #define USE_TIMERS // Adiciona suporte para até 16 temporizadores (código +2k2) #define USE_TIMERS_WEB // Adicionar suporte de página da Web do temporizador (código +4k5) #define USE_SUNRISE // Adicionar suporte para ferramentas de nascer e pôr do sol (+16k) #define SUNRISE_DAWN_ANGLE DAWN_NORMAL // Selecione o ângulo de amanhecer desejado de (DAWN_NORMAL, DAWN_CIVIL, DAWN_NAUTIC, DAWN_ASTRONOMIC) // -- Regras ------- -------------------------------- #define USE_RULES // Adicionado suporte para regras (código +4k4) // -- Entrada analógica interna ----------------------- //#define USE_ADC_VCC // Exibe Vcc no status de energia . Desativar para uso como entrada analógica em dispositivos selecionados // -- Sensores de um fio ---------------------------- // AVISO: Não selecione nenhum para um sensor DS18B20 padrão ou ativar uma das duas opções a seguir para vários sensores //#define USE_DS18x20 // Opcional para mais de um sensor DS18x20 com classificação de id, varredura única e repetição de leitura (+1k3 code) //#define USE_DS18x20_LEGACY // Opcional para mais de um sensor DS18x20 com varredura dinâmica usando a biblioteca OneWire (código +1k5) // -- Sensores I2C --------------------------- -------------- ------ //#define USE_I2C // I2C usando fio de biblioteca (+10k code, 0k2 mem, 124 iram) #ifdef USE_I2C // #define USE_SHT // Habilitar Sensor SHT1X (código +1k4) // #define USE_HTU // Habilita sensor HTU21/SI7013/SI7020/SI7021 (endereço I2C 0x40) (código +1k5) //#define USE_BMP // Habilita sensor BMP085/BMP180/BMP280/BME280 (endereço I2C 0x76 ou 0x77) (+4k code) // #define USE_BME680 / / Habilita suporte para sensor BME680 usando a biblioteca Bosch BME680 (+4k code) // #de fine USE_BH1750 // Habilita sensor BH1750 (endereço I2C 0x23 ou 0x5C) (código +0k5) // #define USE_VEML6070 // Habilita sensor VEML6070 (endereços I2C 0x38 e 0x39) (código +0k5) // #define USE_ADS1115 // Habilita ADS1115 16 bit Conversor A/D (endereço I2C 0x48, 0x49, 0x4A ou 0x4B) baseado na biblioteca Adafruit ADS1x15 (não é necessária nenhuma biblioteca) (código +0k7) // #define USE_ADS1115_I2CDEV // Habilita conversor A/D ADS1115 de 16 bits (endereço I2C 0x48, 0x49 , 0x4A ou 0x4B) usando a biblioteca i2cdevlib-Core e i2cdevlib-ADS1115 (código +2k) // #define USE_INA219 // Habilita INA219 (endereço I2C 0x40, 0x41 0x44 ou 0x45) Sensor de baixa tensão e corrente (código +1k) // #define USE_SHT3X // Habilita sensor SHT3x (endereço I2C 0x44 ou 0x45) ou SHTC3 (endereço I2C 0x70) (código +0k7) // #define USE_TSL2561 // Habilita sensor TSL2561 (endereço I2C 0x29, 0x39 ou 0x49) usando a biblioteca Joba_Tsl2561 (código +2k3 ) // #define USE_MGS // Ativa o sensor Xadow and Grove Muticanal Gas usando a biblioteca Multichannel_Gas_Sensor (+10k co de) // #define MGS_SENSOR_ADDR 0x04 // Endereço i2c do sensor de gás multicanal padrão // #define USE_SGP30 // Ativa o sensor SGP30 (endereço I2C 0x58) (código +1k1) // #define USE_SI1145 // Ativa o sensor SI1145/46/47 (endereço I2C 0x60) (código +1k) // #define USE_LM75AD // Ativa o sensor LM75AD (endereços I2C 0x48 - 0x4F) (código +0k5) // #define USE_APDS9960 // Ativa o sensor de proximidade APDS9960 (endereço I2C 0x39). Desativa SHT e VEML6070 (código +4k7) // #define USE_MCP230xx // Habilita MCP23008/MCP23017 APENAS para ENTRADA GP (endereços I2C 0x20 - 0x27) fornecendo comando Sensor29 para configuração (código +4k7) // #define USE_MCP230xx_OUTPUT // Habilita MCP23001/MCP2301/MCP2301 /MCP2301/MCP2301 Suporte de SAÍDA através de comandos sensor29 (código +1k5) // #define USE_MCP230xx_DISPLAYOUTPUT // Habilita MCP23008/MCP23017 para exibir o estado dos pinos OUTPUT na interface do usuário da Web (código +0k2) //#define USE_MPR121 // Habilita controlador MPR121 (endereços I2C 0x5A, 0x5B, 0x5C e 0x5D) no modo de entrada para botões de toque (código +1k3) // #define USE_CCS811 // Habilita sensor CCS811 (endereço I2C 0x5A) (código +2k2) // #define USE_MPU6050 // Habilita sensor MPU6050 (endereço I2C) 0x68 AD0 baixo ou 0x69 AD0 alto) (código +2k6) #endif // USE_I2C // -- Sensores SPI --------------------------- ---- -- //#define USE_SPI // SPI usando a biblioteca TasmotaTFT #ifdef USE_SPI #endif // USE_SPI // -- Sensores seriais ---------------------- ---- ---- #define US E_MHZ19 // Adiciona suporte para sensor de CO2 MH-Z19 (código +2k) #define USE_SENSEAIR // Adiciona suporte para sensor de CO2 SenseAir K30, K70 e S8 (código +2k3) #define CO2_LOW 800 // Abaixo deste valor de CO2 mostra luz verde (precisa PWM ou WS2812 led RG(B) e habilitar com SetOption18 1) #define CO2_HIGH 1200 // Acima deste valor de CO2 mostrar luz vermelha (precisa PWM ou WS2812 led RG(B) e habilitar com SetOption18 1) #define USE_PMS5003 // Adicionar suporte para PMS5003 e sensor de concentração de partículas PMS7003 (código +1k3) #define USE_NOVA_SDS // Adiciona suporte para sensor de concentração de partículas SDS011 e SDS021 (código +0k7) #define USE_PZEM004T // Adiciona suporte para monitor de energia PZEM004T (código +2k) #define USE_SERIAL_BRIDGE // Adiciona suporte para Software Serial Bridge (código +0k8) //#define USE_SDM120 // Adiciona suporte para medidor de energia Eastron SDM120-Modbus (código +1k7) #define SDM120_SPEED 9600 // Velocidade serial SDM120-Modbus RS485 (padrão: 2400 baud) //#define USE_SDM630 / / Adicionar suporte para Leste ron SDM630-Modbus medidor de energia (código +2k) #define SDM630_SPEED 9600 // SDM630-Modbus RS485 velocidade serial (padrão: 9600 baud) // -- Dispositivos de interface de baixo nível -------------- --- //#define USE_IR_REMOTE // Envia comandos remotos IR usando a biblioteca IRremoteESP8266 e ArduinoJson (+4k code, 0k3 mem, 48 iram) // #define USE_IR_HVAC // Suporte para sistema HVAC usando IR (+2k code) // #define USE_IR_RECEIVE // Suporte para receptor IR (+5k5 code, 264 iram) #define USE_WS2812 // WS2812 Led string using library NeoPixelBus (+5k code, +1k mem, 232 iram) - Desabilitado por // #define USE_WS2812_CTYPE NEO_GRB // WS2812 Color type ( NEO_RGB, NEO_GRB, NEO_BRG, NEO_RBG, NEO_RGBW, NEO_GRBW) // #define USE_WS2812_DMA // DMA suporta apenas GPIO03 (= Serial RXD) (+1k mem). Quando USE_WS2812_DMA está habilitado, espere Exceções em Pow //#define USE_ARILUX_RF // Adiciona suporte para controle remoto Arilux RF (código +0k8, 252 iram (não 2.3.0)) //#define USE_SR04 // Adiciona suporte para dispositivos ultrassônicos HC-SR04 ( +1k code) //#define USE_TM1638 // Adiciona suporte para switches TM1638 copiando Switch1 .. Switch8 (+1k code) #define USE_RF_FLASH // Adiciona suporte para piscar o chip EFM8BB1 no Sonoff RF Bridge. C2CK deve ser conectado ao GPIO4, C2D ao GPIO5 no PCB (código +3k) /******************************* ************************************************** **********\ * Os recursos de depuração são suportados apenas na ramificação de desenvolvimento \****************************************** ************************************************** ****************/ //#define USE_DEBUG_DRIVER // Use xdrv_99_debug.ino fornecendo comandos CpuChk, CfgXor, CfgDump, CfgPeek e CfgPoke /*********** ************************************************** ********************************\ * Configurações de firmware opcionais * Selecione nenhum ou apenas um para recursos opcionais e sensores conforme configurado em sonoff_post.h * Consulte RELEASENOTES.md para recursos selecionados \**************************************** ************************************************** ******/ //#define USE_CLASSIC // Cria sonoff-classic com ferramentas de configuração inicial WPS, SmartConfig e WifiManager //#define USE_SENSORS // Cria sonoff-sensors com sensores úteis ativados //1T P5Tdefine USE_KNX_NO_EMULATION // Cria sonoff-knx com KNX mas sem emulação //#define BE_MINIMAL // Cria sonoff-minimal como firmware intermediário para OTA-MAGIC /******* ************************************************** ************************\ * Nenhum item configurável pelo usuário abaixo \****** * ************************************************* * *************/ #if definido(USE_MQTT_TLS) && definido(USE_WEBSERVER) #error "Selecione USE_MQTT_TLS ou USE_WEBSERVER, pois simplesmente não há o suficiente memória para brincar" #endif #endif // _USER_CONFIG_H_


Cole a compensação de rosca na base da lâmpada

Quando montei esta lâmpada pela primeira vez, tive o problema de que a base da lâmpada, que não era totalmente plana, não se erguia corretamente na base da lâmpada. Para compensar esse desnível, colei um anel de compensação na base da lâmpada. Em seguida, integrei isso à base da lâmpada. No entanto, por uma questão de integridade, ele está incluído aqui.

Close da base da lâmpada ligeiramente irregular.
Detalhe do anel de balanceamento.
Com o anel compensador colado na base da lâmpada, o casquilho da lâmpada fica de pé…
...reto e reto.
A melhor maneira de fazer isso é prender o anel de compensação com um pouco de cola quente.

Combine a carcaça da lâmpada com a base da lâmpada

Agora você também pode conectar o compartimento da lâmpada à base da lâmpada.

Agora você pode colocar cuidadosamente o alojamento da lâmpada sobre a haste da base da lâmpada. Se tudo couber, você pode colar a carcaça da lâmpada na base da lâmpada com um pouco de cola quente.
Close da versão "pequena".
Close da versão "grande".
Comparação de tamanho entre a versão "pequena" e a "grande".

É assim que fica com as luzes acesas.


Outras opções de construção

Se a base da lâmpada de plástico impressa em 3D não lhe agradar, você também pode usar uma base feita de uma placa de madeira. Existe outro adaptador com o qual você pode prender a carcaça da lâmpada ao painel de madeira.

Você também pode encontrar o arquivo STL para imprimir esta base de lâmpada na área superior "Componentes 3D".

A combinação com diferentes tipos de madeira ou painéis oferece ainda mais opções para modificar este projeto de acordo com seus desejos.


Divirta-se com o projeto

Espero que tudo funcionou como descrito para você. Se não, ou se você tiver alguma dúvida ou sugestão, por favor, deixe-me saber nos comentários. Em seguida, adicionarei isso ao artigo, se necessário.
Ideias para novos projetos são sempre bem vindas. 🙂

PS Muitos desses projetos - especialmente os projetos de hardware - custam muito tempo e dinheiro. Claro que faço isso porque gosto, mas se você acha legal que eu compartilhe as informações com você, ficaria feliz com uma pequena doação para o fundo do café. 🙂

Compre-me um café em ko-fi.com       

Kommentar hinterlassen

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