Luz de techo despertador (5 / 6 paso)

Paso 5: El software

Si desea utilizar el software como-es, sin ninguna modificación y no importa cómo se hace, el procedimiento es simple: descargar y descomprimir el adjunta 'wakeuplight_esp01.zip', abierto en el IDE de Arduino. Modificar la configuración en 'configuration.h'. Necesita su Wifi SSID y contraseña, información de dirección IP, nombre de un servidor NTP (probablemente puede dejar esto sin cambios) e información de zona horaria - su desvío estándar de UTC en minutos como en las normas de horario.

Después de hacer los cambios apropiados, simplemente sube el bosquejo a la ESP-01.

Si desea hacer algunos cambios en el software, o simplemente está interesado en cómo funciona, alguna información más detallada se incluye a continuación.

Estructura general

Mi primera versión de este software fue en el llano C y creció orgánicamente de la experimentación. En algún momento, funcionaba (un poco), pero fue un total desastre. Entonces decidí refactorizar y cambiar a C++, crear una clase única para cada función independiente (consistiendo en un archivo .h de definición de la clase y un archivo .cpp que contiene la aplicación). Haz crean instancias de las clases en el módulo principal. Por supuesto, la mayoría de las clases dependen de otros. El módulo principal inyecta las dependencias a través de los constructores de las clases según.

Existen las siguientes clases:

  • Configuración: proporciona una interfaz para todos los datos de configuración, codificado (mencionadas arriba) así como los datos almacenados en la EEPROM (como la configuración de la alarma). Todos los otros módulos (excepto Dimmer) dependen de la configuración.
  • Dimmer: ajusta la intensidad de la luz utilizando PWM.
  • Wificlient: establece la conexión a un punto de acceso Wifi.
  • NTPClient: proviene un servidor de hora de tiempo universal.
  • LocalClock: convierte tiempo universal hora local, teniendo en cuenta DST reglas cualquier.
  • Alarma: utiliza Dimmer, LocalClock y configuración para realizar la función básica de encender la luz gradualmente durante un período de tiempo.
  • Servidor Web: sirve una página móvil para permitir la configuración de alarma y control manual.
  • Serialhost: permite la comunicación serial para propósitos de depuración.

Información más detallada está disponible en los archivos de origen. Los módulos Dimmer y servidor web son especiales en el sentido de que en parte usan código generado. El archivo 'wakeuplight_java_helpers.zip' contiene un proyecto Java de Eclipse que hace la generación. A zoom esta a continuación.

Regulador de luz

El punto de la wake-up light es dejar que la intensidad de luz aumenta gradualmente percibida por un ser humano. El mecanismo PWM nos da control lineal de la intensidad de la luz, pero la percepción humana es más o menos logarítmica ( ley de Weber-Fechner). Si no compensar y dejar que el deber PWM ciclo de aumento de 0 a 100% en decir 1000 pasos, el resultado sería que en la primera parte del ciclo de despertar, intensidad de la luz aumentaría demasiado rápido con saltos notables, alcanzando un alto nivel y luego aumentando muy lentamente desde lo alto al completo en el resto del ciclo. Obviamente no es lo que queremos. Necesitamos cambiar la intensidad de la luz exponencialmente más que linealmente en el tiempo, para dar la percepción de un incremento lineal en el tiempo.

También, el PWM ESP8266 no es perfecto. Tiene alguna inquietud que es sensible en ciclos de trabajo muy pequeño y provoca parpadeo sensible en la lámpara. Así que la luz puede ser completamente apagado, o en algún mínimo valor estable, pero debemos evitar estar en el medio. Este problema llega a ser menos grave si la frecuencia PWM es baja - que es por eso que he elegido a 100Hz.

El archivo 'DutyCycle.java' calcula una función de un paso necesario en la intensidad de la luz percibida (en una escala de 0 a 1800) y un valor PWM (en una escala de 0 a 20000). El programa 'ConvertDutyCycleToEsp.java' calcula esta función y la escribe en un archivo .h para incluirse en el proyecto de Arduino. El código regulador de la Arduino simplemente hace un vistazo para arriba en esta tabla generada.

Servidor Web

Quería controlar el proyecto con mi smartphone. Como tengo mucho más experiencia escribir aplicaciones web a aplicaciones móviles nativas, decidí tomar el enfoque de la aplicación web móvil.

La aplicación web es una aplicación de HTML5/jQuery de una página que envía una solicitud POST de Ajax cuando el usuario presiona un botón (y también recupera periódicamente actualizaciones de estado). La página indica el navegador para obtener jQuery desde el CDN de jsDelivr, se incluye todo el código JavaScript y CSS en el HTML, así como las imágenes utilizando Datos de URLs. Como resultado, la carga de la página implica sólo una sola solicitud GET a ESP-01, mantener todo simple y rápido.

Al incluir las etiquetas 'mobile web-app-capacidad' y 'apple mobile-web-app-compatible' y un enlace del icono de acceso directo, smartphones puede Agregar esta página a la pantalla de inicio. Después de eso, se puede iniciar en la misma forma que una aplicación (se iniciará en un navegador de pantalla completa), en gran parte oculta el hecho de que no es una aplicación nativa.

Tener que cargar un bosquejo en el ESP-01 cada vez cuando pequeños cambios en la página web de la prueba no es un buen desarrollo del ciclo. Por lo tanto, he desarrollado esto en un proyecto de web de Java, con 'LightServlet.java' que simula la respuesta de la ESP-01 a las peticiones de Ajax POST. La 'ConvertWebpageToEsp.java' se convierte el index.html de proyectos web para el 'webserver_homepage.h' incluye archivo que contiene la página web como una constante de cadena.

Artículos Relacionados

Luz de techo industrial

Luz de techo industrial

quería una luz de techo industrial para mi pequeño taller, así que pensé que podía probar y construir.MaterialesReclamado de conducto de cables eléctrico (27 libras) $27Jaula metálica ligera figura ea $20 (3)Edison bombillas (3) $10 eaInterruptor de
Reutilizar la luz de techo

Reutilizar la luz de techo

En este Instructable que le mostrará los pasos para volver a designar una vieja lámpara de techo compré desde mi almacén de ahorro local.Paso 1: desmontar Las lámparas de vidrio eran en gran forma y pensamiento que vería aún mejor espaciadas en una l
Luz de techo solar terraza

Luz de techo solar terraza

este simple instructable le mostrará cómo instalar un camino solar de jardín ligero en un azulejo del techo de vidrio, para proporcionar una luz de noche en su terraza.Nota: Puesto que el techo con que estaba trabajando está hecho de baldosas de terr
Fijar un remate de luz de techo con un aluminio puede

Fijar un remate de luz de techo con un aluminio puede

he cambiado hacia fuera algunas de las luces en mi casa para ventiladores de techo y encontró que los accesorios se me quitan un poco mejores que en otros lugares de mi casa (como el de la piscina fuera del garaje).  Había significado para ellos camb
DIY Howto instalar luz de techo con mando a distancia inalámbrico

DIY Howto instalar luz de techo con mando a distancia inalámbrico

Luz de arriba de instalar Howto DIY LED con mando a distancia inalámbrico
Globo de luz ventilador techo

Globo de luz ventilador techo

Mi hijo quería hacer el mundo en su ventilador de techo brilla en la oscuridad. Se convirtió en una noche de proyecto para nosotros.2 parte agua-claro epoxy (hemos utilizado "Easy Cast")polvo fosforescentePaso 1: Mezclar el epoxi con el polvo fo
DIY LED luz de techo (actualizado 15/09/09)

DIY LED luz de techo (actualizado 15/09/09)

mi pequeña Honda Del Sol necesitaba una luz más brillante de la bóveda. Fui de bombilla regular a sustitución de LED fabricado por último un alto brillo uno que incluso puedo leer con.Paso 1: Poco de precaución Estos LEDs conseguir caliente. Normal d
Cómo reemplazar la luz del techo de la cabina del LED | PICK UP TRUCK | 12V HYPERFLASH problema RECON cromado DODGE RAM 24V

Cómo reemplazar la luz del techo de la cabina del LED | PICK UP TRUCK | 12V HYPERFLASH problema RECON cromado DODGE RAM 24V

He instalado estas luces hace unos 3 años y ahora dos apagado las luces comenzadas a hyperflash. Cuando instalé las luces de nuevo entonces me dijeron que los LEDs duran sobre 50,000 horas. Ahora me preguntaba por qué estos dos no. Soy consciente del
Difusor de luz de Mylar para las luces empotradas en el techo

Difusor de luz de Mylar para las luces empotradas en el techo

IntroducciónLuces de techo ahuecadas (también conocido como luces de bote) se encuentran comúnmente en hogares. Sin embargo, el downlight que producen puede ser un poco áspero y evidentes. Para suavizar la luz, trate de hacer este elegante y económic
Tienda remolque techo volver a construir

Tienda remolque techo volver a construir

1978 Starcraft galaxia Swinger techo reconstrucción y reemplazo de lonaPuede / de junio de 2015Propietario - Troy CrivelloneComo con muchos viejos acoplados de tienda el techo en mi Starcraft 78 no funcionaba en absoluto. La cubierta metálica tenía m
Habitación con la linterna la luz

Habitación con la linterna la luz

nuestra sala de estar era muy oscuro porque no tiene una luz de techo. Sólo tuvimos una pequeña lámpara junto a la cama. Queríamos más luz. Sin embargo, teníamos una linterna de LED de gran alcance grandes bocina con baterías recargables, diseñadas p
La lámpara de techo de faros de coche reciclado

La lámpara de techo de faros de coche reciclado

Hola! Esto es jgfresh y hoy estoy creando una nueva luz de techo de una antigua linterna del coche. Este instructivo es para la vida verde concurso así que voto por mi!! Hace unos 4 meses me encontré con esta linterna al lado de la carretera, probabl
NUEVO PAPÁ LLEVA UN TECHO A UN NUEVO NIVEL!

NUEVO PAPÁ LLEVA UN TECHO A UN NUEVO NIVEL!

Me inspiré para construir un techo después de ver tantos post DIY artículos en línea. Sabía que sería un divertido tratar a mi hijo recién nacido, pero quería poner encima de una muesca.Que he enumerado estas instrucciones en un video de Youtube , as
Medida mínima luminaria de techo.

Medida mínima luminaria de techo.

me gusta el estilo de diseño de interior minimalista. No me gusta cuanto cuesta!  Por lo que puse sobre un largo elegante luz de techo del edificio, que comenzó como un trozo de rodapié. Quería tener 4 halógenos por mecheros y también algunos cool LE