Inhaltsverzeichnis:

Arduino Open Window Detector - für den Winter - Gunook
Arduino Open Window Detector - für den Winter - Gunook

Video: Arduino Open Window Detector - für den Winter - Gunook

Video: Arduino Open Window Detector - für den Winter - Gunook
Video: Arduino MASTERCLASS | Full Programming Workshop in 90 Minutes! 2024, November
Anonim
Arduino Open Window Detector - für den Winter
Arduino Open Window Detector - für den Winter

Draußen wird es kalt, aber manchmal brauche ich frische Luft in meinen Zimmern. Also öffne ich das Fenster, verlasse den Raum, schließe die Tür und will in 5 bis 10 Minuten wiederkommen. Und nach ein paar Stunden fällt mir ein, dass das Fenster offen steht… Vielleicht wissen Sie das oder haben Kinder, die Ihnen diese Erfahrung machen.

Meine Lösung ist der Open Window Detector. Die Batterie hält über ein Jahr, also legen Sie sie einfach im Herbst ein und entfernen Sie sie im Frühjahr.

Schritt 1: Teileliste

Liste der Einzelteile
Liste der Einzelteile
Liste der Einzelteile
Liste der Einzelteile
Liste der Einzelteile
Liste der Einzelteile
Liste der Einzelteile
Liste der Einzelteile
  1. Digispark-Board von eBay.
  2. Alte Kopfhörer.
  3. Winziger Knopf zum Zurücksetzen.
  4. Anschlüsse für Lautsprecher - ansonsten ist eine Neuprogrammierung der Platine nicht möglich.
  5. Kabel.
  6. Zur Stromversorgung benötigen Sie:

AAA Batteriefach mit Ein-/Ausschalter. Sie können sogar verbrauchte Batterien verwenden, da das Modul bis zu 2,4 Volt arbeitet

ODER

Alter Lipo-Akku (dafür reichen schon 30% Kapazität) und falls noch nicht vorhanden, ein Ladegerät für Lipo-Akkus von eBay.

ODER

Ein Halter für CR2032 Knopfzelle

UND

1A Diode 1N4001 oder gleichwertig - oder was auch immer Sie in dieser Größe haben - für Verpolungsschutz

Schritt 2: Programmieren der Digispark-Karte

Programmierung des Digispark-Boards
Programmierung des Digispark-Boards
Programmierung des Digispark-Boards
Programmierung des Digispark-Boards

Treiberinstallation

Sie müssen den Digispark-Treiber installieren, bevor Sie das Board programmieren können. Laden Sie es hier herunter, öffnen Sie es und führen Sie " InstallDrivers.exe " aus.

Installation der Arduino-IDE

Installieren Sie das Digispark-Board für die Arduino-IDE wie in https://digistump.com/wiki/digispark/tutorials/connecting. beschrieben

Ich empfehle, als Digispark-Board-URL in Arduino File/Preferences das neue https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json anstelle von https://digistump.com/package_digistump_index.json zu verwenden und das zu installieren Digistump AVR Boards Version 1.6.8.

Da wir Strom sparen wollen, ist der Board-Takt in unserem Setup auf 1 MHz geschaltet () können Sie im Tools-Menü Digispark (1mhz - No USB) als Board auswählen.

Kompilieren und laden Sie das Programm auf das Board

Erstellen Sie in der Arduino IDE mit File/New eine neue Skizze und benennen Sie diese z. B. "OpenWindowAlarm". Kopieren Sie den Code von OpenWindowAlarm.ino

ODER

Laden Sie das Repository herunter und extrahieren Sie es. Öffnen Sie die Skizze mit Datei -> Öffnen… und wählen Sie den Ordner „OpenWindowAlarm“.

Kompilieren und hochladen. Beachten Sie, dass das Hochladen nicht funktioniert, wenn der Lautsprecher angeschlossen ist. Wenn alles gut funktioniert, blinkt die eingebaute LED des Digispark 5 Mal (für die 5 Minuten Alarmverzögerung) und beginnt dann nach 8 Sekunden mit einem Intervall von 24 Sekunden zu blinken, um jeden Temperaturmesswert anzuzeigen.

Schritt 3: Leistungsreduzierung

Leistungsreduzierung
Leistungsreduzierung
Leistungsreduzierung
Leistungsreduzierung

Unser Digispark-Board verwendet 5 mA bei 3,0 Volt. Mit 2 AAA-Batterien (1000mAh) läuft es 8 Tage lang. Es ist jedoch möglich, den Stromverbrauch in 3 Schritten auf 26 µA zu reduzieren.

  1. Das Deaktivieren der Power-LED durch Brechen des Kupferdrahts, der die Power-LED mit der Diode mit einem Messer verbindet, oder das Entfernen / Deaktivieren des 102-Widerstands spart 1,3 mA.
  2. Das Entfernen des VIN-Spannungsreglers spart 1,2 mA.
  3. Durch Trennen des USB-Pullup-Widerstands (gekennzeichnet mit 152) von 5 Volt (VCC) werden die restlichen 2,5 mA gespart. Trennen Sie es, indem Sie den Kupferdraht an der Seite des Widerstands durchbrechen, die auf den ATTiny zeigt. Dadurch wird die USB-Schnittstelle deaktiviert und damit die Möglichkeit, das Digispark-Board über USB zu programmieren. Um es wieder zu aktivieren, aber trotzdem Strom zu sparen, verbinden Sie den Widerstand (markiert mit 152) direkt mit dem USB 5 Volt, der an der Außenseite der Diode leicht zugänglich ist.

    Die richtige Seite der Diode kann mit einem Durchgangsprüfer gefunden werden. Eine Seite dieser Diode ist mit Pin 8 des ATtiny (VCC) verbunden. Die andere Seite ist an USB 5 Volt angeschlossen.

Jetzt wird der USB-Pullup-Widerstand nur aktiviert, wenn das Digispark-Board an USB angeschlossen ist, z. B. während der Programmierung und das Board verbraucht 26 µA im Ruhezustand.

Wenn Sie die Sicherungen umprogrammieren, können Sie einen Stromverbrauch von 6 µA erzielen.

Um die Sicherungen umzuprogrammieren, benötigen Sie einen ISP (der mit einem Arduino gebaut werden kann) und einen Verbindungsadapter. Zum Umprogrammieren können Sie dieses Skript verwenden.

Schritt 4: Reset-Taste

Reset-Knopf
Reset-Knopf
Reset-Knopf
Reset-Knopf
Reset-Knopf
Reset-Knopf
Reset-Knopf
Reset-Knopf

Wenn Sie die Stromversorgung zum Zurücksetzen des Alarms nicht unterbrechen möchten, schließen Sie eine Reset-Taste zwischen PB5 und Masse an. Ich tat dies, indem ich die nicht verbundene VIN-Kupferfläche mit PB5 verband und den Reset-Knopf direkt an das VIN-Stiftloch und die große Massefläche des entfernten VIN-Spannungsreglers lötete.

Wenn Sie die 5 Sekunden Wartezeit auf die USB-Verbindung nach dem Reset loswerden möchten, können Sie den Micronucleus-Kernel auf dem ATtiny85 ändern. Führen Sie das Skript "0_Burn_upgrade-t85_recommended.cmd" aus und laden Sie dann die OpenWindowAlarm-Anwendung erneut mit der Arduino IDE.

Schritt 5: Lautsprecher

Lautsprecher
Lautsprecher
Lautsprecher
Lautsprecher
Lautsprecher
Lautsprecher

Ich habe ein altes Headset zerlegt und den Stecker mit dem Kabel verbunden.

Schritt 6: Betrieb

Betriebs
Betriebs
Betriebs
Betriebs
Betriebs
Betriebs

Um das Board zu verwenden, legen Sie es auf eine Fensterbank und schließen Sie es an eine Batterie an. Wenn die Temperatur auf der Fensterbank niedriger ist als die Temperatur, an der sich das Board ursprünglich befand, dauert es weitere 5 Minuten, um sich auf den neuen Startwert intelligent einzustellen.

Sie werden dann alarmiert, wenn Sie das Fenster länger als fünf Minuten geöffnet lassen.

Interner Betrieb

  • Ein offenes Fenster wird erkannt, nachdem TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) Sekunden eine Temperatur gelesen wurde, deren Wert TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) niedriger ist als die Temperatur TEMPERATURE_COMPARE_DISTANCE * TEMPERATURE_SAMPLE_SECONDS (192 -> vor 3 Minuten und 12 Sekunden) Sekunden
  • Die Verzögerung wird durch dreimaliges Schlafen im `SLEEP_MODE_PWR_DOWN` für einen Zeitraum von 8 Sekunden implementiert, um den Stromverbrauch zu reduzieren.
  • Die Erkennung eines geöffneten Fensters wird durch ein längeres 20ms Blinken und ein kurzes Klicken alle 24 Sekunden angezeigt. Daher hat der interne Sensor eine Zeit von 3 Minuten, sich an die Außentemperatur anzupassen, um auch kleine Temperaturänderungen zu erfassen. Je größer die Temperaturänderung ist, desto früher ändert sich der Sensorwert und erkennt ein offenes Fenster.
  • `OPEN_WINDOW_ALARM_DELAY_MINUTES` (5) Minuten nach Erkennung des offenen Fensters wird der Alarm aktiviert.

    Der Alarm wird nicht gestartet oder ein aktivierter Alarm wird gestoppt, wenn die aktuelle Temperatur höher ist als die gemessene Mindesttemperatur (+ 1), d. h. das Fenster wurde bereits geschlossen.

  • Der anfängliche Alarm dauert 10 Minuten. Danach wird es für 10 Sekunden mit einer zunehmenden Pause von 24 Sekunden auf 5 Minuten aktiviert.
  • Alle VCC_MONITORING_DELAY_MIN (60) Minuten wird die Batteriespannung gemessen. Abhängig vom erkannten Batterietyp beim Einschalten (siehe VCC_VOLTAGE_LIPO_DETECTION (3,6 Volt)) wird eine Batteriespannung unter VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_LIPO (3550) oder VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_STANDARD Millivolt durch Piepen und Blinken der LED alle 24 Sekunden angezeigt. Nur der Piepton (nicht der Blitz) ist deutlich länger als der Piepton bei einer offenen Fenstererkennung.
  • Nach dem Einschalten beträgt die inaktive Einschwingzeit 5 Minuten. Wenn die Platine während der Einschwingzeit kälter wird, werden 4:15 (oder 8:30) Minuten hinzugefügt, um Fehlalarme nach dem Einschalten zu vermeiden.

Empfohlen: