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

Wecker, der Sie morgens wirklich aus dem Bett holt

Komponenten und Verbrauchsmaterialien

Arduino Nano Every
Ich werde den Nano Every für die Endmontage verwenden. Du kannst aber auch so ziemlich jedes andere Arduino verwenden (am Anfang benutze ich ein Mega2560).
× 1
Uhrmodul
× 1
HC-SR501
Das ist der Bewegungssensor
× 1
Summer
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Da es manchmal sehr schwer ist morgens aufzustehen, habe ich mich für einen Wecker entschieden, der einen wirklich aus dem Bett holt. Die Idee ist, einen Bewegungssensor zu verwenden, damit der Wecker weiß, ob Sie nach dem Drücken der Schlummertaste wieder in Ihr Bett gegangen sind. Ist dies der Fall, wird der Alarm erneut ausgelöst. Wenn Sie sonst lange genug wach waren (zB 2 Minuten), klingelt der Wecker nicht mehr. Während dieser Zeit musst du ungefähr vor dem Sensor (innerhalb weniger Meter) sein, wo du schon mit deiner Morgenroutine beginnen könntest.

Montage

Für dieses Projekt benötigen wir ein Uhrenmodul, einen Bewegungssensor, einen Summer, einen kleinen Knopf und einen Arduino.

Jetzt muss noch alles verkabelt werden:

  • der negative Pin vom Summer --> GND
  • der positive Summerstift --> D11
  • Tastenstift --> GND
  • der andere Button-Pin --> D9
  • Bewegungssensor VCC --> 5V
  • Bewegungssensorausgang --> D7
  • GND des Bewegungssensors --> GND
  • Uhrmodul GND --> GND
  • Taktmodul VCC --> 5V
  • Uhrmodul SDA --> SDA (Pin 20 für Mega2560)
  • Uhrmodul SCL --> SCL (Pin 21 für Mega2560)

Nach der Verdrahtung wie in den Schaltplänen gezeigt:

Code

Zuerst müssen Sie die ZIP-Datei aus dem Code-Bereich herunterladen. Dies ist die Bibliothek für das Uhrenmodul. Wenn Sie Schwierigkeiten haben, die Datei zu Ihrer Bibliothek hinzuzufügen, können Sie den Anweisungen im Codeabschnitt folgen.

Jetzt können Sie den Code aus dem Softwarebereich hochladen. Direkt nachdem du den Code hochgeladen hast, musst du die Zeile auskommentieren:

clock.setDateTime(__DATE__, __TIME__); 

Diese Zeile befindet sich in der Setup-Funktion.

Jetzt sollten Sie den Code direkt erneut hochladen.

Wenn Sie es nicht auskommentieren, wird die Zeit im Uhrenmodul jedes Mal auf die letzte Upload-Zeit zurückgesetzt, wenn Sie das Board zurücksetzen.

Danach können Sie die Uhrzeit einstellen, zu der der Wecker klingeln soll. Sie können die Stunde des Tages und die Minute einstellen:

//--------------------------------------int set_hour =6;int set_minute =55;//-------------------------------------- 

Jetzt klingelt der Wecker zu dieser Zeit jeden Tag. Es wäre auch möglich, den Code zu bearbeiten, sodass Sie am Wochenende oder an einigen anderen Tagen eine andere Zeit haben können.

Wenn Sie nun den Wecker einschalten, wartet er bis zur eingestellten Zeit. Dann wird die Funktion alarm() ausgeführt. Zuerst fängt es an zu piepen, bis Sie die Schlummertaste drücken. Danach schaut der Bewegungssensor ob sich eine Person davor befindet. Du musst eine bestimmte Zeit vor dem Sensor sein und dich auch ein bisschen bewegen, damit der Bewegungssensor ausgelöst wird. Wenn Sie lange genug im Sichtfeld des Bewegungssensors bleiben, ertönt ein kurzer Piepton, der Ihnen mitteilt, dass der Wecker jetzt für den Tag deaktiviert ist und bis zum nächsten Morgen wartet.

Wenn Sie jedoch während der Zeit nach dem Drücken der Taste wieder ins Bett gehen, ertönt der Alarm und der gesamte Vorgang beginnt von vorne. Dieser Wecker sorgt also dafür, dass Sie nicht einfach den Wecker ausschalten und wieder ins Bett gehen. Hoffentlich bist du nach der Zeit, in der du vor dem Sensor gestanden hast, wach genug, um nicht mehr ins Bett zu gehen.

In dieser Zeile können Sie die Zeit (in Minuten) einstellen, die Sie vor dem Sensor haben müssen:

if(abs(dt.minute - minute)>=1){ //setze den Zeitraum, in dem du //sein musst 

Sensoreinstellung

Der Bewegungssensor muss angepasst werden, damit dieser Wecker richtig funktioniert. Zuerst müssen wir den Triggerauswahl-Jumper an der richtigen Stelle platzieren. Es muss sich im wiederholbaren Triggermodus befinden!

Jetzt müssen Sie auch noch die Zeitverzögerung und die Empfindlichkeit anpassen. Bei mir hat es am besten funktioniert, wenn ich die Empfindlichkeit auf das Maximum und die Zeitverzögerung etwas über das Minimum eingestellt habe. Die Zeitverzögerung bestimmt, wie lange nach der letzten Erkennung einer Person die Leistung hoch ist. Wenn die Verzögerung zu kurz ist, ist es sehr schwierig, das erneute Auslösen des Alarms zu verhindern, da der Sensor Sie nicht immer erkennt. Auf der anderen Seite, wenn die Verzögerung zu lang ist, wird der Wecker nicht bemerken, wenn Sie wieder ins Bett gehen.

Jetzt machen wir es kompakt

Nach einigen Tests sind wir bereit, den Wecker kompakter zu machen. Dafür verwende ich ein Arduino Nano Every, aber Sie können dafür auch so ziemlich jedes andere Arduino-Board verwenden.

Wir beginnen damit, alles gemäß dem zweiten Schaltplan zusammenzulöten (es ist im Grunde das gleiche wie zuvor, nur ohne das Steckbrett).

Nachdem wir getestet haben, ob alles noch funktioniert, können wir ein Gehäuse für den Wecker bauen. Ich habe mich für das Gehäuse aus 3mm Balsaholz entschieden, da es sehr einfach zu bearbeiten ist. Hier ein paar Bilder vom Bauprozess des Gehäuses. Die Abmessungen meines Gehäuses sind 55 mm x 35 mm x 40 mm.

Ich habe ein großes Loch für den Bewegungssensor und auch einen Schlitz für das Micro-USB-Kabel und eine Öffnung für den Lautsprecher gemacht.

Der fertige Wecker:

Code

  • Wecker-Arduino-Code
  • Uhrenbibliothek
Wecker Arduino CodeArduino
#include #include DS3231-Uhr;RTCDateTime dt;int button =9;int pirPin =7; // Eingabe für HC-S501int pirValue; // Platz zum Speichern des gelesenen PIR-Werts //--------------------------------------int set_hour =7;int set_minute =0;//---------------------------------------void setup () { Uhr.Begin(); pinMode (Schaltfläche, INPUT_PULLUP); pinMode (LED_BUILTIN, AUSGANG); //clock.setDateTime (__DATE__, __TIME__); // !!NACH DEM ERSTEN UPLOAD MÜSSEN SIE DIESE ZEILE KOMMENTIEREN. SONST GIBT ES EINE FALSCHE ZEIT!! pinMode (pirPin, INPUT);}void alarm (int minute) { bool button_pressed =false; bool wach =falsch; bool Bewegung =false; while(!button_pressed){//der Alarm ist eingeschaltet, solange die Taste nicht gedrückt wird (int i =0; i <4; i++) {tone (11, 523, 100); Verzögerung (100); Ton (11, 784, 50); for (int i =0; i <20; i ++) { if (digitalRead (button) ==LOW) { button_pressed =true; wach =wahr; dt =clock.getDateTime(); Minute =dt.Minute; } Verzögerung (65); } } } dt =clock.getDateTime(); Minute =dt.Minute; Während (wach) { Bewegung =falsch; dt =clock.getDateTime(); for(int i =0; i <30; i++) { if (digitalRead (pirPin)) {movement =true;} } digitalWrite (LED_BUILTIN, Bewegung); if(!pirValue){ delay(5000); for (int i =0; i <40; i ++) { if (digitalRead (pirPin)) {Bewegung =wahr;}} If (! Bewegung) { Alarm (Minute); // Wenn zu lange keine Bewegung erkannt wird, wird der Alarm zurückgesetzt , 50); Verzögerung (100); Ton (11, 698, 50); digitalWrite (LED_BUILTIN, 0); wach =falsch; } Verzögerung (100); }} Void Schleife () { dt =clock.getDateTime (); if(set_minute ==dt.minute &&set_hour ==dt.hour){ alarm(set_minute); } Verzögerung (10000);}
UhrenbibliothekArduino
Dies ist eine ZIP-Datei für die DS3231-Bibliothek. Sie müssen diese herunterladen und wie folgt zu Ihren Bibliotheken hinzufügen:
öffne Arduino --> gehe zu "Sketch" -> "Include Library" -> "Add .ZIP Library" --> gehe zur Zip-Datei und klicke auf OK
Keine Vorschau (nur Download).

Schaltpläne

Ich habe vergessen, eine Verbindung zu VCC und GND auf dem Steckbrett zu zeichnen. Sie müssen also nur 5V am Arduino an die positive Schiene und GND am Arduino an die negative Schiene anschließen.

Herstellungsprozess

  1. Der Trollhut, der Ihre Einstellung zu Ihrem Auto verändern wird
  2. Einfacher Wecker mit DS1302 RTC
  3. Das Industrie 4.0-Training von SICK ermöglicht Ihnen den Einstieg in IO-Link auf der SPS
  4. Faktoren, die den Erfolg und die Sicherheit des Stanzprozesses beeinflussen
  5. Schlüsselfaktoren, die die Ergebnisse des Oberflächenschleifprozesses beeinflussen
  6. Eine CNC-Drehmaschine ist möglicherweise die einzige Maschine, die Sie benötigen!
  7. Die horizontale Bearbeitungsausrüstung, die Sie möglicherweise benötigen
  8. Sie wollen den besten Kurzstangenlader?
  9. Die wichtigsten Gründe, warum Sie eine Bohrbearbeitung benötigen
  10. Direkte Wasserpumpe - Das wirkt sich auf das Zirkulationssystem aus