Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

¡Despiértame!

Componentes y suministros

Arduino Nano R3
× 1
Módulo periférico Maxim Integrated DS3231MPMB1
× 1

Acerca de este proyecto

Se acerca el invierno, las noches se vuelven más largas que los días y es una pesadilla para mí despertarme a las 6 a.m. en una habitación oscura y fría. ¿Y si hubiera una manera de crear un "amanecer" artificial para hacer que la habitación se sienta mucho más cálida y agradable?

Esta es una tarea fácil, voy a crear una bombilla inteligente que se adapte a mi lámpara de techo actual. Simulará un amanecer iluminando lentamente la habitación. Si funciona, lo conectaré con mi teléfono para convertirlo en un reloj de alarma adecuado.

Bombilla

Para crear una bombilla inteligente, primero necesita una bombilla "tonta" debido a su casquillo que está atornillado a la lámpara y proporciona alimentación. Lo rompí con un martillo. Este delicioso procedimiento retiró el vidrio del casquillo de aluminio y después de soldar los cables al casquillo y al pin en la parte inferior, la base de la bombilla inteligente estaba lista.

A continuación, necesita un soporte para toda la electrónica. Usé una placa de perforación y la corté para que se ajustara a un microcontrolador Arduino Nano, una fuente de alimentación de 5 V y todos los componentes electrónicos.

Circuito de alto voltaje

Advertencia de seguridad: Está trabajando con voltajes superiores a 50 V. El contacto con alto voltaje puede provocar lesiones graves o la muerte.

Dado que estoy usando una bombilla normal que se alimenta con voltaje de la red de CA, no puedo usar directamente el microcontrolador para controlar la energía que va a la bombilla. Necesito un TRIAC. Este pequeño dispositivo actúa como un relé que puede encenderse y apagarse con bastante rapidez. El microcontrolador encenderá y apagará el triac para alterar la onda sinusoidal de CA, atenuando o iluminando así la luz.

Sin embargo, el voltaje de CA se controla de manera diferente que el voltaje de CC. La onda sinusoidal de CA debe cortarse de manera precisa y, por lo tanto, el triac debe encenderse y apagarse en momentos precisos para lograrlo (ver imagen a continuación). En otras palabras, el microcontrolador necesita saber cuándo la onda sinusoidal del voltaje de la red cruza cero para cortar cada una de las medias ondas al mismo tamaño. De lo contrario, la luz parpadeará.

Para detectar el cruce por cero de la tensión de red, hay un optoacoplador 4N35 (U1) con un transistor que se enciende cuando la onda sinusoidal cruza el cero. El microcontrolador verá eso como una señal alta en su pin de entrada. El optoacoplador tiene otra función, es aislar el voltaje bajo del circuito de voltaje de la red.

El segundo optoacoplador, MOC3063 (U2), con un triac en la salida, se usa para aislar el microcontrolador del triac de alto voltaje (Q2). Asegúrese de no utilizar un optoacoplador con función de cruce por cero porque solo se enciende cuando la onda sinusoidal cruza el cero.

Circuito de baja tensión

Como microcontrolador, estoy usando Arduino Nano. Su objetivo principal es controlar el triac y comenzar a encender la luz cuando llegue el momento establecido. Para proporcionar un reloj en tiempo real, existe un módulo de reloj en tiempo real preciso DS3231 que también preserva el tiempo cuando se pierde la energía.

Para proporcionar 5V para chips, estoy usando una fuente de alimentación reductora barata de 5V 700mA conectada al voltaje de la red desde el enchufe de la bombilla. ¡Solución agradable y práctica!

Código

El programa es bastante simple. Cuando la lámpara se enciende con el interruptor, iluminará la habitación y la atenuará lentamente en la noche como una verificación de que los dispositivos electrónicos aún funcionan. Durante la noche, comprueba el reloj en tiempo real almacenado en el módulo DS3231 y, finalmente, a las 6 a. M., La habitación se ilumina lentamente a plena "luz del día" hasta que el interruptor apaga la lámpara.

Echa un vistazo al código adjunto a continuación. Creo que se explica por sí mismo. ¡Si no es así, soy un mal desarrollador!

¿Qué sigue?

Ahora experimentaré durante unos días o semanas y, si me despierta por la mañana, convertiré este proyecto en algo más inteligente y menos tosco.

¡Buenas noches!

Código

  • lightalarm.ino
lightalarm.ino Arduino
Una bombilla de luz inteligente que se enciende cuando es hora de levantarse de la cama.
 / * Una bombilla de luz inteligente que se enciende cuando es hora de salir de la cama. Cómo funciona:1) cuando se enciende la energía , la luz se enciende para comprobar que funciona2) se atenuará lentamente hasta que se apague por completo3) a las 6 am de la mañana la luz se encenderá lentamente hasta que se apague por la noche4) la luz no se encenderá cuando la habitación no esté oscura más (fotocélula) Modo de uso:- enciende la luz al acostarte e iluminará la habitación cuando te despiertes por la mañana, apaga la luz al salir de la habitación para apagarla.- el tiempo se conservará debido al módulo DS3231 @ autor Jiri Praus (https://twitter.com/jipraus)AC Control de luz inspirado en http://arduinotehniq.blogspot.com/2014/10/ac-light-dimmer-with-arduino.html* / # include  // disponible en http://www.arduino.cc/playground/Code/#include "RTClib.h" #define TRIAC_PIN 2 # define ZERO_CROSS_PIN 3 # define LIGHT_SENSOR_PIN A6 # define FREQUENCY_STEP 75 // Este es el paso de retardo por brillo en microsegundos para 50Hz (cambie el valor en 65 para 60Hz) #define CHANGE_DIM_LEVEL_EVERY 1 // cambie el nivel de atenuación cada N segundos, lentitud de brillo / atenuación # define MAX_DIM_LEVEL 128 // apagado # define MIN_DIM_LEVEL 0 // on # define DARK_THRESHOLD 300 // resistencia de la fotocélula cuando se considera oscuro afuera // variables de control triac byte volátil triacCounter =0; // temporizador de control triac volátil booleano zeroCrossed =false; // Indicador de fase AC de cruce por cero // dim controlbyte dimLevel =MIN_DIM_LEVEL; // al encender, la luz está encendida y se atenuará lentamente como un booleano de verificación lightOn =false; // despertadorRTC_DS3231 rtc; void setup () {Serial.begin (115200); digitalWrite (TRIAC_PIN, BAJO); pinMode (TRIAC_PIN, SALIDA); pinMode (ZERO_CROSS_PIN, ENTRADA); pinMode (LIGHT_SENSOR_PIN, INPUT); // init reloj en tiempo real if (! rtc.begin ()) {Serial.println ("No se pudo encontrar RTC"); mientras (1); } if (rtc.lostPower ()) {Serial.println ("RTC perdió energía, ¡establezcamos la hora!"); rtc.adjust (Fecha y hora (F (__ FECHA__), F (__ HORA__))); // la siguiente línea establece el RTC en la fecha y hora en que se compiló este boceto} // inicializa las interrupciones y los temporizadores para el control de triac noInterrupts (); attachInterrupt (digitalPinToInterrupt (ZERO_CROSS_PIN), zeroCrossDetected, RISING); // Adjunte una interrupción al pin 2 (interrupción 0) para interrupciones de detección de cruce por cero (); Timer1.initialize (FREQUENCY_STEP); Timer1.attachInterrupt (triacTimerInterrupt, FREQUENCY_STEP);} void loop () {delay (CHANGE_DIM_LEVEL_EVERY * 1000); checkAlarmClock (); AdjustDimLevel (); debugPrint ();} void zeroCrossDetected () {zeroCrossed =true; // establece el booleano en verdadero para decirle a nuestra función de atenuación que ha ocurrido un cruce por cero triacCounter =0; // comienza a contar cuando se debe abrir el triac digitalWrite (TRIAC_PIN, LOW); // apaga la luz} void triacTimerInterrupt () {if (dimLevel> =MAX_DIM_LEVEL) {// permanentemente apagado digitalWrite (TRIAC_PIN, LOW); } else if (dimLevel <=MIN_DIM_LEVEL) {// permanentemente en digitalWrite (TRIAC_PIN, HIGH); } else if (zeroCrossed) {if (triacCounter> =dimLevel) {digitalWrite (TRIAC_PIN, HIGH); // abrir triac zeroCrossed =false; // restablece la detección de cruce por cero hasta la siguiente mitad de vawe} else {triacCounter ++; // incremento del contador de pasos de tiempo}}} void adjustDimLevel () {if (lightOn &&dimLevel> MIN_DIM_LEVEL) {dimLevel--; } más si (! lightOn &&dimLevel  

Esquemas


Proceso de manufactura

  1. Baterías de la serie
  2. Divisor de voltaje
  3. Termoelectricidad
  4. Voltímetro potenciométrico
  5. Batería de patatas
  6. Cambio de fase
  7. Regulador de voltaje
  8. Seguidor de voltaje
  9. Amplificador multietapa
  10. Amplificador diferencial
  11. Diodos de propósito especial