Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Weck mich auf!

Komponenten und Verbrauchsmaterialien

Arduino Nano R3
× 1
Maxim Integrated DS3231MPMB1 Peripheriemodul
× 1

Über dieses Projekt

Der Winter kommt, die Nächte werden länger als die Tage, und es ist ein Albtraum für mich, um 6 Uhr morgens in einem dunklen und kalten Raum aufzuwachen. Was wäre, wenn es eine Möglichkeit gäbe, einen künstlichen „Sonnenaufgang“ zu erzeugen, damit sich der Raum viel wärmer und angenehmer anfühlt?

Dies ist eine einfache Aufgabe, ich werde eine intelligente Glühbirne erstellen, die in meine aktuelle Deckenlampe passt. Es simuliert einen Sonnenaufgang, indem es den Raum langsam beleuchtet. Wenn es funktioniert, werde ich es mit meinem Telefon verbinden, um es zu einem richtigen Wecker zu machen.

Glühbirne

Um eine smarte Glühbirne zu bauen, braucht man zunächst eine "dumme" Glühbirne, die mit ihrer Fassung in die Lampe eingeschraubt wird und die Stromversorgung übernimmt. Ich habe es mit einem Hammer zertrümmert. Bei dieser Freudenprozedur wurde das Glas von der Aluminiumfassung entfernt und nach dem Löten der Drähte an die Fassung und den Stift unten war der Sockel der intelligenten Glühbirne fertig.

Als nächstes benötigen Sie eine Unterstützung für die gesamte Elektronik. Ich habe ein Perfboard verwendet und es so zugeschnitten, dass es zu einem Arduino Nano-Mikrocontroller, einem 5-V-Netzteil und allen elektronischen Komponenten passt.

Hochspannungskreis

Sicherheitswarnung: Sie arbeiten mit Spannungen über 50V. Kontakt mit Hochspannung kann zu schweren Verletzungen oder zum Tod führen.

Da ich eine normale Glühbirne verwende, die mit Wechselstrom betrieben wird, kann ich den Mikrocontroller nicht direkt verwenden, um die Leistung der Glühbirne zu steuern. Ich brauche einen TRIAC. Dieses kleine Gerät fungiert als Relais, das ziemlich schnell ein- und ausgeschaltet werden kann. Der Mikrocontroller schaltet den Triac ein und aus, um die AC-Sinuswelle zu ändern und so das Licht zu dimmen oder aufzuhellen.

Wechselspannung wird jedoch anders gesteuert als Gleichspannung. Die AC-Sinuswelle muss auf präzise Weise geschnitten werden und der Triac muss in genauen Momenten ein- und ausgeschaltet werden, um dies zu erreichen (siehe Bild unten). Mit anderen Worten, der Mikrocontroller muss wissen, wann die Sinuswelle der Netzspannung den Nullpunkt überschreitet, um jede der Halbwellen auf die gleiche Größe zu schneiden. Andernfalls würde das Licht flackern.

Um den Nulldurchgang der Netzspannung zu erkennen, gibt es einen 4N35 (U1) Optokoppler mit einem Transistor, der einschaltet, wenn die Sinuswelle Null durchquert. Der Mikrocontroller sieht dies als High-Signal an seinem Eingangspin. Optokoppler hat noch eine weitere Funktion, es ist die Unterspannung vom Netzspannungskreis zu trennen.

Zweiter Optokoppler - MOC3063 (U2) - mit einem Triac-Ausgang wird verwendet, um den Mikrocontroller vom Hochspannungs-Triac (Q2) zu isolieren. Stellen Sie sicher, dass Sie keinen Optokoppler mit Nulldurchgangsfunktion verwenden, da er sich nur einschaltet, wenn die Sinuswelle die Null durchquert.

Niederspannungsschaltung

Als Mikrocontroller verwende ich Arduino Nano. Sein Hauptzweck besteht darin, den Triac zu steuern und das Licht zur eingestellten Zeit einzuschalten. Um eine Echtzeituhr bereitzustellen, gibt es das genaue Echtzeituhrmodul DS3231, das auch bei Stromausfall die Zeit speichert.

Um 5V für Chips bereitzustellen, verwende ich ein billiges 5V 700mA Step-Down-Netzteil, das an die Netzspannung der Lampenfassung angeschlossen ist. Schöne und praktische Lösung!

Code

Das Programm ist ziemlich einfach. Wenn die Lampe über den Schalter eingeschaltet wird, erhellt sie den Raum und dimmt sie langsam in die Nacht, um zu überprüfen, ob die Elektronik noch funktioniert. In der Nacht überprüft es die im DS3231-Modul gespeicherte Echtzeituhr und schließlich um 6 Uhr morgens wird der Raum langsam auf volles "Tageslicht" erleuchtet, bis die Lampe durch den Schalter ausgeschaltet wird.

Schauen Sie sich den unten angehängten Code an, ich denke, er ist selbsterklärend. Wenn nicht, bin ich ein schlechter Entwickler!

Was kommt als nächstes?

Jetzt werde ich ein paar Tage oder Wochen experimentieren und wenn es mich morgens wecken kann, werde ich dieses Projekt zu etwas Klügerem und weniger Rohem entwickeln!

Gute Nacht!

Code

  • lightalarm.ino
lightalarm.inoArduino
Eine intelligente Glühbirne, die aufleuchtet, wenn es Zeit ist, aus dem Bett aufzustehen.
/*Eine intelligente Glühbirne, die aufleuchtet, wenn es Zeit ist, aus dem Bett aufzustehen.So funktioniert es:1) beim Einschalten , das Licht wird zur Funktionsprüfung eingeschaltet2) es wird langsam gedimmt, bis es vollständig ausgeschaltet ist3) um 6 Uhr morgens Licht wird langsam eingeschaltet, bis es abends ausgeschaltet wird4) Licht geht nicht an, wenn der Raum nicht dunkel ist mehr (Fotozelle)Bedienung:- Schalten Sie das Licht beim Zubettgehen ein und es wird das Zimmer erhellen, wenn Sie morgens aufwachen, schalten Sie das Licht aus, wenn Sie das Zimmer verlassen, um es auszuschalten.- Die Zeit bleibt erhalten an das DS3231-Modul@author Jiri Praus (https://twitter.com/jipraus)AC Lichtsteuerung inspiriert von http://arduinotehniq.blogspot.com/2014/10/ac-light-dimmer-with-arduino.html* /#include  // verfügbar von 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 // Dies ist der Delay-pro-Brightness-Schritt in Mikrosekunden für 50 Hz (ändern Sie den Wert in 65 für 60 Hz)#define CHANGE_DIM_LEVEL_EVERY 1 // Ändern Sie den Dimmwert alle N Sekunden, langsames Aufhellen/Dimmen#define MAX_DIM_LEVEL 128 // off# definiere MIN_DIM_LEVEL 0 // on#define DARK_THRESHOLD 300 // Widerstand der Lichtschranke wenn es draußen dunkel ist // Triac-Steuervariablenvolatile Byte TriacCounter =0; // Triac-Steuerung Timervolatile Boolean zeroCrossed =false; // AC-Phasen-Nulldurchgangsflag // dim controlbyte dimLevel =MIN_DIM_LEVEL; // beim Einschalten ist das Licht an und wird langsam als checkboolean lightOn =false gedimmt; // WeckerRTC_DS3231 rtc;void setup () { Serial.begin (115200); digitalWrite (TRIAC_PIN, LOW); pinMode (TRIAC_PIN, AUSGANG); pinMode (ZERO_CROSS_PIN, INPUT); pinMode (LIGHT_SENSOR_PIN, INPUT); // Echtzeituhr initiieren if (!rtc.begin()) {Serial.println("Konnte RTC nicht finden"); während(1); } if (rtc.lostPower ()) { Serial.println ( "RTC hat Strom verloren, lasst uns die Zeit einstellen!"); rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // folgende Zeile setzt die RTC auf das Datum und die Uhrzeit, zu der dieser Sketch kompiliert wurde} // Initialisiere Interrupts und Timer für die Triac-Steuerung noInterrupts(); attachInterrupt(digitalPinToInterrupt(ZERO_CROSS_PIN), zeroCrossDetected, RISING); // An Pin 2 eine Unterbrechung anhängen (Unterbrechung 0) für Unterbrechungen der Nulldurchgangserkennung (); Timer1.initialize(FREQUENCY_STEP); Timer1.attachInterrupt (triacTimerInterrupt, FREQUENCY_STEP);}void loop () { delay (CHANGE_DIM_LEVEL_EVERY * 1000); checkAlarmClock(); adjustDimLevel(); debugPrint();}void zeroCrossDetected() { zeroCrossed =true; // setze den booleschen Wert auf true, um unserer Dimmfunktion mitzuteilen, dass ein Nulldurchgang aufgetreten ist triacCounter =0; // mit dem Zählen beginnen, wenn der Triac geöffnet werden soll digitalWrite (TRIAC_PIN, LOW); // Licht ausschalten}void triacTimerInterrupt () { if (dimLevel>=MAX_DIM_LEVEL) { // dauerhaft aus digitalWrite (TRIAC_PIN, LOW); aufrechtzuerhalten. Sonst if (dimLevel <=MIN_DIM_LEVEL) {// dauerhaft auf digitalWrite (TRIAC_PIN, HIGH); } else if (zeroCrossed) { if (triacCounter>=dimLevel) { digitalWrite (TRIAC_PIN, HIGH); // Triac öffnen zeroCrossed =false; // Nulldurchgangserkennung bis zur nächsten Hälfte zurücksetzen } else { TriacCounter ++; // Zeitschrittzähler erhöhen}}}void adjustDimLevel() { if (lightOn &&dimLevel> MIN_DIM_LEVEL) { dimLevel--; } else if (!lightOn &&dimLevel  

Schaltpläne


Herstellungsprozess

  1. Batterien der Serie
  2. Spannungsteiler
  3. Thermoelektrizität
  4. Potentiometrisches Voltmeter
  5. Kartoffelbatterie
  6. Phasenverschiebung
  7. Spannungsregler
  8. Spannungsfolger
  9. Mehrstufiger Verstärker
  10. Spezielle Dioden