Inhaltsverzeichnis:

Wettervorhersageuhr mit altem Alarm und Arduino - Gunook
Wettervorhersageuhr mit altem Alarm und Arduino - Gunook

Video: Wettervorhersageuhr mit altem Alarm und Arduino - Gunook

Video: Wettervorhersageuhr mit altem Alarm und Arduino - Gunook
Video: Fernzünder selber bauen! DIY für Böller, Raketen und Batterien 2024, Dezember
Anonim
Wettervorhersage Uhr mit altem Alarm und Arduino
Wettervorhersage Uhr mit altem Alarm und Arduino
Wettervorhersage Uhr mit altem Alarm und Arduino
Wettervorhersage Uhr mit altem Alarm und Arduino

Ich hatte einen kaputten Wecker herumliegen und kam auf die Idee, ihn in eine Uhr und eine Wettervorhersagestation umzuwandeln.

Für dieses Projekt benötigen Sie:

  • Alter runder Wecker
  • Arduino Nano
  • BME280 Sensormodul (Temperatur, Feuchtigkeit, Druck)
  • LCD-Anzeigemodul von Nokia 5110
  • DS1307 RTC-Uhr
  • TP4056 Lithium-Batterieladegerät
  • Alter Lithium-Ionen-Akku aus Handy geborgen
  • Kleines 3,7 V bis 5 V Booster-Modul
  • Lichtabhängiger Widerstand (LDR - Belichtungsmesser)
  • Summer (gebrauchter, geretteter vom alten PC)
  • 3 Druckknöpfe
  • Ein paar Widerstände (2x10k, 270 Ohm) und ein Transistor (2N2222A oder ähnlich)
  • Etwas breiter Schrumpfschlauch
  • Leiterplattenschrott zur Verwendung als Frontplattendekoration
  • Micro-USB-Verlängerungskabel (sowohl weibliche als auch männliche Seite sind Micro-USB)
  • 2x8cm Prototypenplatine und einige Drähte

Schritt 1: Alles zerlegen

Alles zerlegen
Alles zerlegen

Zuerst habe ich die alte Uhr zerlegt. Glocken, Motor, kaputtes Uhrwerk…

Schritt 2: Tasten für digitale Einstellungen

Tasten für digitale Einstellungen
Tasten für digitale Einstellungen
Tasten für digitale Einstellungen
Tasten für digitale Einstellungen
Tasten für digitale Einstellungen
Tasten für digitale Einstellungen
Tasten für digitale Einstellungen
Tasten für digitale Einstellungen

Da die neue Uhr vollständig digital mit einem Mini-Computer im Inneren sein wird, habe ich 3 einfache, gut aussehende Tasten an der Seite hinzugefügt.

Mit einem Stück Aluminium schneide ich Overlay aus, um ein Etikett zu erstellen. Die Buchstaben für die Etiketten wurden mit den Buchstabenstanzen und einem schwarzen Marker erstellt.

Schritt 3: Kondensator für den Motor

Kondensator für den Motor
Kondensator für den Motor

Ich werde die alten Glocken behalten, um den Alarm mit dem Motor anzutreiben. Das alte kaputte Uhrwerk hatte einen Keramikkondensator mit dem Etikett 104. Ich habe ihn von der Platine entfernt und direkt an den Motor gelötet - dies hilft, Stromspitzen beim Einschalten des Motors während des Alarms zu vermeiden. Wichtig zu beachten ist auch, dass der Motor über einen Transistor gesteuert wird, aber dazu später mehr.

Schritt 4: Neues Gesicht für die Uhr

Neues Gesicht für die Uhr
Neues Gesicht für die Uhr
Neues Gesicht für die Uhr
Neues Gesicht für die Uhr

Da ich beschloss, ein neues Gesicht für die Uhr zu machen, nahm ich eine Platine aus meinem Müllhaufen und benutzte eine Baumeister-Heißluftpistole, um alle Komponenten schnell zu entfernen. Das Loch in der Mitte ist für den digitalen Bildschirm der neuen Uhr gemacht.

Schritt 5: Digitalanzeige vom alten Handy

Digitalanzeige von altem Handy
Digitalanzeige von altem Handy
Digitalanzeige von altem Handy
Digitalanzeige von altem Handy

Für dieses Projekt habe ich mich entschieden, einen LCD-Bildschirm des alten Nokia 5110-Handys zu verwenden. Diese Bildschirme sind als Modul weit verbreitet, sie verbrauchen sehr wenig Strom und es gibt gute Bibliotheken für den Arduino. Wenn Sie ein neues Modul mit 5110-Bildschirm kaufen, retten Sie den Planeten, denn alle neuen Module werden aus geretteten 5110-, 3110- und 3210-Telefonen erstellt!

Schritt 6: Anschließen der Schaltkreise

Anschließen der Schaltkreise
Anschließen der Schaltkreise
Anschließen der Schaltkreise
Anschließen der Schaltkreise
Anschließen der Schaltkreise
Anschließen der Schaltkreise

Sie haben vielleicht schon erraten, dass ich vorhatte, ein Arduino-Board zu verwenden, um diese Uhr zu steuern. Das Projekt ist auch für Anfänger-Arduino-Fans leicht wiederholbar, da ich keine eigenen Leiterplatten erstellt habe. Es ist ein Arduino Nano Board mit angeschlossenen Modulen - BME280 Temperatur-, Druck- und Feuchtigkeitssensor, DS1307 RTC-Uhr, TP4056 Lithium-Batterieladegerät, kleines 3,7 V bis 5 V Booster-Modul, lichtabhängiger Widerstand (LDR - Lichtmesser) und ein Summer (vom alten PC übernommen).

Schauen Sie sich auch die Skizzen an - sie zeigen alle Verbindungen. Ich denke, alles ist sehr einfach zu lesen und zu verstehen, aber wenn Sie Fragen haben, fragen Sie einfach in den Kommentaren unten.

Ein paar Anmerkungen zur Einrichtung:

  • Der Motor wird direkt von der Batterie über den Transistor angeschlossen. Arduino steuert den Transistor über Widerstand und PWM-Pin D5.
  • Die Pins D7-12 werden für den LCD-Anschluss verwendet. Masse und VCC sind mit der Schiene auf der Anschlussplatine verbunden.
  • LDR wurde auf dem Zifferblatt installiert und Widerstand + 3 abgehende Drähte wurden direkt auf der Rückseite des Zifferblatts gelötet.
  • Für die Tastenverbindung habe ich die interne PULLUP-Funktion in Arduino verwendet. Die Menütaste ist an den Interrupt angeschlossen und ich habe erst später gemerkt, dass man auch den internen PULLUP für den Interrupt verwenden kann. Der Interrupt für die Menütaste ist erforderlich, damit der Code nicht ständig den Zustand der Tasten scannt.
  • Die Uhr überwacht und zeigt auch den Zustand der Batterie an, sodass die Batterie direkt an Pin A0 angeschlossen ist. Die Batteriespannung ist nie höher als 4,2 V, daher ist es sicher, die Batterie direkt an den analogen Arduino-Pin anzuschließen.
  • Summer ist direkt mit PWM-Pin D6 verbunden. Obwohl dies keine gute Praxis ist, bin ich damit durchgekommen, weil Arduino Nano mit höheren Spezifikationen umgehen kann als angegeben und auch weil der Summer nicht kontinuierlich funktioniert. Das gleiche Setup würde leicht die Pins auf ESP-Boards verbrennen, daher empfehle ich in diesen Fällen die Verwendung der Transistorsteuerung.
  • Die Uhr hatte bereits einen Schalter, also entschied ich mich, ihn zu verwenden. Auf der Rückseite sieht es natürlich aus.

Schritt 7: Anschlussplatine für einfache Verbindungen

Anschlussplatine für einfache Verbindungen
Anschlussplatine für einfache Verbindungen
Anschlussplatine für einfache Verbindungen
Anschlussplatine für einfache Verbindungen

Alle Module benötigen positive und Masseverbindungen, daher habe ich mich entschieden, eine 2x8cm Prototypenplatine zu verwenden und 5V- und Masseschienen daran zu löten. Ich habe dort auch eine kleine I2C-Schiene gemacht, da ich mehrere Module mit I2C-Schnittstelle hatte.

Auf der anderen Seite habe ich Standard-Pins angelötet, damit ich die Module bei Bedarf verbinden und trennen kann.

Einige der zusätzlichen Komponenten wurden dort auch gelötet, wie Transistor und Widerstand für die Motorsteuerung und ein Widerstand für die Menütaste, die Interrupt verwendet. Ich habe die Schaltpläne im vorherigen Abschnitt gezeigt.

btw Kannst du auf dem ersten Bild den LDR-Sensor sehen, der bereits auf dem Zifferblatt installiert ist?

Schritt 8: Einrichten der Stromversorgung

Einrichten der Stromversorgung
Einrichten der Stromversorgung

Ich habe einen alten Lithium-Ionen-Akku von meinem Handy verwendet, um diese Uhr mit Strom zu versorgen. Normalerweise haben die ausgetauschten Handy-Akkus noch eine gute Kapazität (mindestens die Hälfte des Neuzustands). Ihr Vorteil besteht darin, dass sie über eine eingebaute Entladungsschutzschaltung verfügen und außerdem sehr dünn sind, sodass sie in kleinen Raumszenarien verwendet werden können.

Um die Batterie anzuschließen, löten Sie einfach die Drähte an die + und - Pins der Batterie. Keine Sorge, Sie werden die Zelle nicht beschädigen, da sich ein Controller und ein Leerraum zwischen den Stiften und den Chemikalien der Zelle befinden.

Auf diesem Bild sehen Sie den Akku und auch den Laderegler TP4056 sowie den 5V Booster miteinander und mit dem Akku verbunden. Ich habe einige Schrumpfschläuche verwendet, um alles isoliert und kompakt zu machen.

Schritt 9: Micro-USB zum Laden und Aktualisieren der Firmware

Micro-USB zum Laden und Aktualisieren der Firmware
Micro-USB zum Laden und Aktualisieren der Firmware

Nachdem ich alles gelötet hatte, klebte ich den Summer und den Temperatur- / Druck- / Feuchtigkeitssensor auf die Rückwand. Sie passten alle gut in die vorhandenen Steckplätze der alten Zifferblattsteuerungen.

Es war nun an der Zeit, den Micro-USB-Anschluss auf der Rückseite zu installieren. Warum Micro-USB, wenn Nano Mini-USB verwendet? Ganz einfach, weil im Haushalt die meisten USB-Kabel von Mobiltelefonen stammen und es praktisch wäre, wenn die Uhr das auch verkraften könnte.

Da ich es sowohl zum Laden als auch zum Aktualisieren der Uhr- und Wetterstationsfunktionen verwenden wollte, habe ich das USB-Kabel abgezogen, die Stromkabel durch das TP4056-Ladegerät und die Daten + / Datenkabel direkt an die USB-Buchse des Arduino Nano geführt. Sie können dies auf dem Schema sehen, das ich in den vorherigen Abschnitten gezeigt habe.

Schritt 10: Endmontage

Endmontage
Endmontage
Endmontage
Endmontage
Endmontage
Endmontage

Es war nun an der Zeit, alles wieder in die Originaluhr zu packen. Ich habe Schrumpfschlauch verwendet, um Komponenten und Module zu isolieren. Sogar der Arduino war in Schrumpfschlauch gewickelt.

Bewegen Sie den Mauszeiger über das erste Foto, um zu sehen, wo die einzelnen Komponenten platziert wurden.

Schritt 11: Der Code

Wie Sie sehen, ist die Uhr innen vollgepackt. Dies ermöglichte es, etwas ausgefeilteres als die alte Uhr zu erstellen, die ich hatte - vorausgesetzt, es gibt natürlich einige Programmierkenntnisse. Ich habe den ersten Code geschrieben, aber meinen Freund gebeten, einzugreifen und mir zu helfen.

Bisher sind neben der Uhr selbst dies die Funktionen, die dieses Projekt bereits unterstützt:

  • Uhrzeit- und Datumsanzeige (sowie Uhrzeit und Alarmaktivierung auf demselben Bildschirm)
  • Der Bildschirm leuchtet bei Dunkelheit oder wenn eine Bewegung erkannt wird (basierend auf Lichtänderungen)
  • Wettervorhersage (sonnig, bewölkt, regnerisch)
  • Anzeige von Temperatur, Druck und Luftfeuchtigkeit (bei Luftfeuchtigkeit wird angezeigt, ob es zu trocken ist)
  • Menü für Einstellungen: Alarm, Uhrzeit ändern, Datumsanzeige aktivieren/deaktivieren, Tonbenachrichtigungen bei Wetteränderungen aktivieren/deaktivieren und zwischen imperialen und metrischen Einheiten wechseln
  • Alarmeinstellungen - ein/aus, Uhrzeit einstellen, Melodie und/oder Glocken für Benachrichtigungen einstellen

Aktueller Code:

Der Code wird in Zukunft mit neuen Funktionen aktualisiert, also schaut unbedingt nach Firmware-Updates:-)

Wenn Sie neu in der Arduino-Welt sind, würde ich die folgenden Schritte empfehlen:

  • USB-Treiber für Ihr Board installieren (z. B. CH340)
  • Arduino-IDE installieren
  • In diesem Projekt verwendete Bibliotheken installieren
  • Laden Sie den neuesten Projektcode von GitHub herunter und laden Sie ihn mit einem Micro-USB-Kabel auf die Uhr hoch (Sie können eines vom Mobiltelefon verwenden)

Der Prognosealgorithmus ist der folgende:

Arduino Nano erhält alle 12 Minuten neue Daten vom BME280-Sensor. Der Messzyklus beträgt 3 Stunden. Nach 3 Stunden verschiebt sich der Bereich der Drucküberwachung (Max- und Min-Wert während 3 Stunden) relativ zu den Durchschnittswerten während des aktuellen Bereichs und des aktuellen Druckwertes. Jede Stunde wird die Druckänderungsrichtung mit aktuellem Druckwert gespeichert. Für die Prognoseberechnung werden kPa-Einheiten verwendet.

Aufgrund von Speicherbeschränkungen von Nano musste der Vorhersagealgorithmus vereinfacht werden. Aber trotz Vereinfachungen ist es in der Lage, den Niederschlag in den nächsten 12-24 Stunden vorherzusagen, obwohl die Vorhersage jetzt pessimistischer ist - der Standardwert ist "Bewölktes Wetter".

"Sonniges Wetter" - Der aktuelle Druckwert ist um 7 Punkte höher als der Normwert, der Druck sinkt nicht und die Differenz zwischen den Min- und Max-Werten während der letzten 3 Stunden beträgt nicht mehr als 2 Punkte.

Möglicher Niederschlag "Regenwetter" - der aktuelle Druck ist 15 Punkte niedriger als die Norm und die Differenz zwischen den Min- und Max-Werten beträgt mehr als 2 Punkte ODER der Druck fällt und die Differenz zwischen dem aktuellen Wert und der Norm beträgt 3 - 30 Punkte.

Um die Vorhersagequalität zu verbessern, wird empfohlen, Ihre "Höhe" in der Hauptcodedatei zu ändern. Deine Höhe bekommst du zum Beispiel hier:

Schritt 12: Schritt-für-Schritt-Video

Image
Image

Wenn es schwierig war, dem zu folgen, was ich oben gemacht habe, ist hier auch eine Videoversion mit allen gezeigten Schritten.

Schritt 13: Schlussworte

Insgesamt ist der Schwierigkeitsgrad dieses Projekts aus meiner Sicht nicht hoch und jeder könnte es schaffen. Wenn Sie keine alte Uhr haben, können Sie eine billig auf einem lokalen Flohmarkt finden.

Alle Komponenten sind günstig und bei Sparkfun/Aliexpress/eBay/Amazon erhältlich.

Ich hoffe, dieses Tutorial war für Sie interessant und wäre Ihnen dankbar, wenn Sie mein erstes Instructable in the Clock-Wettbewerb unterstützen könnten.

Uhrenwettbewerb
Uhrenwettbewerb
Uhrenwettbewerb
Uhrenwettbewerb

Zweiter im Uhrenwettbewerb

Empfohlen: