Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Meu filho de 5 anos não parava de nos acordar durante a noite e continuávamos a lhe dar sermões sobre como deixar mamãe e papai dormirem, até que percebi que ele na verdade não conseguia determinar por si mesmo se era hora de dormir ou de brincar.
Além disso, ele nos pediria para acender a luz. Ele sempre faz barulho para apagar a luz, mas fico um pouco preocupado em deixar uma luz acesa a noite toda, com os efeitos na melatonina e na qualidade do sono.
Eu realmente não estava satisfeito com nenhuma luz noturna que o dinheiro pudesse comprar: algumas podiam ser acesas com um toque, mas não desligadas sozinhas; alguns eram todos fofos e macios, mas nenhum poderia dar tempo a uma criança de 5 anos.
Então, eu montei um hack rápido de luz noturna que:
-
dá códigos de cores para a hora da noite:
- amarelo (noite): hora da história
- vermelho: hora de dormir
- amarelo (manhã): você pode se levantar e brincar sem acordar a mãe ou o pai
- branco brilhante: hora de se levantar
- fora durante o dia.
- Quando você pressiona à noite, ele emite um brilho amarelado reconfortante. Em seguida, ele desaparece e volta a ficar vermelho depois de meia hora. (Pressione pela manhã para desligá-lo)
- brilha suavemente com uma frequência próxima à velocidade de respiração do meu filho em repouso (cerca de 2,5 ~ 3s por respiração). Esse é um truque conhecido para ajudar a dormir.
- elimina a luz azul conhecida por perturbar a melatonina durante a noite. Produz uma luz branca-azulada com emissão de melatonina pela manhã.
- Tire o tempo da Internet, via NTP.
Suprimentos
- Uma placa break-out ESP32, sem cabeçalhos. Comprei este barato (25 RMB).
-
Uma caixa impressa em 3D.
Eu mandei imprimir profissionalmente por esta loja, feito de resina branca 未来 8000, processo SLA, por cerca de 30 RMB. A tampa superior ficou bem (tem 1 mm de espessura); e a transparência é boa
- um botão de pressão. O meu é um botão de 12 * 12 mm, 7,5 mm de altura, através do orifício. Dobrei os pinos para que ficasse plano.
- duas luzes de neopixel (cortadas de uma tira comprada aqui por 70 RMB)
-
se você quiser uma bateria:
- um módulo carregador de bateria. Eu uso um TP4056, como este, por menos de 1 RMB.
- uma bateria Li-Po. Eu comprei essas baterias de 1000 mA, que eram um pouco menores do que minha placa em 45 * 26 * 8,5 mm, por 14 RMB.
- um diodo Schottky para evitar que o USB 5V carregue e destrua sua bateria. Eu tinha alguns por aí.
- obviamente, faça o case grande o suficiente para acomodar a bateria, o carregador e os cabos. Doh!
- alguma fita dupla-face, fita isolante, arame, arame para soldar.
- ferramentas e habilidades de soldagem.
Isenção de responsabilidade: não tenho nenhuma afiliação com os fornecedores listados e liste-os apenas para a conveniência do leitor.
Etapa 1: preparar o quadro
Remova os cabeçalhos, se necessário.
Cole o botão de pressão e os LEDs na parte de trás do ESP32 com cola quente ou fita dupla-face.
Soldei os neopixels no GND e 3V3, e no pino 12 para dados, depois os encadei com fio.
Eu soldei o botão entre o pino 25 (definido como saída, valor = 0, então ele atua como um dreno) e o pino 26 (definido como entrada com pull-up). Isso era mais fácil de soldar do que buscar uma linha de aterramento.
Eu coloquei um pouco de fita isolante preta sobre o LED de alimentação da placa, para evitar que aparecesse no gabinete. Deixei o LED de sinal descoberto, enquanto o utilizo para indicar se a inicialização (e acerto do relógio por meio de NTP) foi bem-sucedida e, em seguida, desligue-o.
Etapa 2: solicitar o gabinete
Primeiro, meça as dimensões da placa ESP32. Eu preparei gabinetes para placas de 29x52 ou 26x49mm.
Em seguida, meça a altura do botão em relação à superfície da placa (quando pressionado). Meus designs assumem 7 mm.
Se a sua placa corresponder, você pode baixar diretamente o arquivo. STEP correspondente do repositório githup. Caso contrário, você precisará modificar o design no Fusion360. Estou usando a licença gratuita "pessoal não comercial". Obrigado Autodesk!
Não vou ensiná-lo a usar o Fusion360 aqui, mas aqui estão algumas etapas a serem seguidas quando você souber o que fazer:
- O design é paramétrico. Mudar uma dimensão no lugar certo deve fazer com que todo o resto se encaixe naturalmente.
-
Para modificar as dimensões da placa:
- edite o esboço "PCB",
- clique duas vezes nas dimensões externas para modificá-las.
- Valide e clique em "terminar esboço".
-
Para modificar a altura do botão:
- defina sua visualização para exibir apenas o PCB
- navegue para encontrar o topo do botão (materializado como um cilindro)
- use a ferramenta "press pull",
- selecione essa superfície e insira a nova altura correta (negativo).
- a altura do pino dentro da tampa superior deve ser ajustada automaticamente
-
Para solicitar peças impressas em 3D:
- Certifique-se de que apenas as cascas superior e inferior estejam visíveis; esconder o corpo do PCB
- Vá para Arquivo-> Exportar e escolha o formato STEP.
- O Fusion 360 exportará um arquivo. STEP 3D que contém os dois corpos e deve ser lido por sua gráfica 3D.
Etapa 3: Programa
Instale Micropython em sua placa, seguindo estas instruções.
Baixe os três arquivos.py deste repositório Github e copie-os para a placa usando MU ou Thonny:
-
main.py: arquivo de inicialização. Ele chamará os outros dois arquivos sucessivamente, a menos que o botão seja pressionado. Isso é útil se você estiver usando o MU, que, de outra forma, atingirá o tempo limite e não reconhecerá a placa.
você precisa editar este arquivo se você usou pinos diferentes do exemplo para conectar o botão ou LEDs
-
do_connect.py: um script para se conectar à sua rede Wi-Fi e buscar a hora.
você precisa editá-lo e preencher o SSID e a senha do seu Wi-Fi
-
handheld_night_light.py: o script que pulsa a luz noturna de acordo com a hora do dia.
- você precisa editá-lo se você usou pinos diferentes do exemplo para conectar o botão ou LEDs
- você também precisa editá-lo para configurar as cores e os horários de sono de acordo com sua preferência
- finalmente, você precisa definir seu fuso horário neste arquivo
Assim que os 3 arquivos forem carregados em sua placa, reinicie-a e você deverá observar o LED de sinal piscando duas vezes: uma vez ao conectar-se ao Wi-Fi e uma segunda vez ao buscar o tempo no NTP. Ambos podem levar vários segundos.
Pressionar o botão liga ou desliga a luz, dependendo da hora do dia.
Etapa 4: alimentando com bateria
Agora é a hora de soldar tudo junto. Alimentei minha placa com uma bateria e também adicionei um pequeno módulo carregador de bateria. Dessa forma, conectar o ESP32 a uma fonte de alimentação carregará a bateria e desconectá-lo alimentará a placa da bateria. Não há interruptor ON / OFF, para simplificar.
A alimentação da placa com a bateria ocorre por meio de um pequeno diodo. Sem este diodo, sua bateria será alimentada diretamente a partir dos 5V da fonte USB e provavelmente superaquecerá e será destruída. Tive o cuidado de escolher um diodo Schottky, que diminui a queda de tensão, aumentando assim a vida útil da bateria.
Uma luz noturna tem tudo a ver com controle de luz. Mais não é melhor, especialmente se for azul (já que a luz azul tende a inibir a secreção de melatonina e atrapalhar o sono). Cobri os LEDs de sinalização indesejados no ESP32 e no módulo do carregador de bateria com fita isolante preta.
Etapa 5: Montagem final
O gabinete é bastante simples de montar. Existem 2 pequenos ganchos para segurar a tampa superior dentro da tampa inferior e uma abertura para a porta USB.
Antes de fechar, certifique-se de verificar se há algum possível entalamento no fio. Fora da gráfica, a tampa superior ficará plana ao longo da superfície superior da placa ESP32. Eu fiz um amassado na tampa superior para deixar espaço para os fios.
Etapa 6: dicas para pais
E pronto!
Aqui estão algumas dicas para conversar com seu filho:
- Envolvi meu filho no início do processo, mostrando a ele o design do gabinete no meu computador e perguntando se ele queria ou não. Isso tem gerado interesse e adoção.
- Ensaiei os códigos de cores algumas vezes com ele antes de acender a luz noturna. Ele tem sido muito colaborativo.
- Aconselharia testar e cobrar antes de dar a ele o produto final. Por um lado, é difícil voltar atrás. Além disso, ele decidiu "deixá-lo conectado durante a noite, para que não desligasse repentinamente" e não se mexesse …
- Por fim, meu filho tem sido muito receptivo aos códigos de luz. Ele observa a luz atentamente durante o tempo da história, esperando que ela fique vermelha. Uma noite, começamos o ritual da hora de dormir um pouco tarde, e o semáforo ficou vermelho minutos depois da história. Ao invés de negociar como ele normalmente faz, ele ficou profundamente angustiado e chorou imediatamente, como se não houvesse jeito de dormir … (Eu dei a ele 5 minutos de graça, e apertei o botão para passar a luz de volta ao amarelo durante esse tempo, caso contrário, ele nem ouviria).
Etapa 7: Próximas etapas
A luz noturna funciona e está dando satisfação.
Existem algumas coisas que você pode querer levar adiante se fizer seu próprio:
- as luzes do Neopixel emitem um breve flash de vez em quando, provavelmente devido a falhas de tempo. Alguns outros tipos de LEDs podem ser menos exigentes. Isso acontece apesar de alimentá-los com 3,3V (mesma tensão nos pinos de alimentação e sinal).
- Seria interessante registrar o tempo de pressionamento dos botões, para ver se a criança realmente usou a luz durante a noite.
- A vida útil da bateria seria muito estendida usando uma bomba de tensão DC-DC para alimentar a placa.
- Testei a duração da bateria e dura uma noite inteira, mas não até a noite seguinte.
- Eu estava inicialmente pensando em criar uma fonte de luz separada fora da cama, com mais LEDs Neopixel, que seria controlada remotamente por bluetooth. Ainda não se provou necessário.