Inhaltsverzeichnis:

Drahtloser Mondphasen-Tracker - Gunook
Drahtloser Mondphasen-Tracker - Gunook

Video: Drahtloser Mondphasen-Tracker - Gunook

Video: Drahtloser Mondphasen-Tracker - Gunook
Video: Bedienungsanleitung für Joolink-Geräte mit drahtloser Verbindung 2024, November
Anonim
Drahtloser Mondphasen-Tracker
Drahtloser Mondphasen-Tracker
Drahtloser Mondphasen-Tracker
Drahtloser Mondphasen-Tracker
Drahtloser Mondphasen-Tracker
Drahtloser Mondphasen-Tracker
Drahtloser Mondphasen-Tracker
Drahtloser Mondphasen-Tracker

Der Lunar Phase Tracker ist ein kleines, semi-portables Gerät, mit dem Sie wichtige Informationen über den Mond sammeln können. Das Gerät meldet Parameter wie die sichtbare Beleuchtung, die Phase, Mondauf- und -untergangszeiten und mehr zurück.

Dieses Gerät ist unverzichtbar für jeden, der sich für Wissenschaft oder Astronomie interessiert und bietet eine großartige Desktop-Bürodekoration und ist sicherlich ein Gesprächsstarter.

Das Projekt ist ziemlich einfach und erfordert ein mit dem Internet verbundenes Gerät wie einen ESP32. Sie können den Code jedoch jederzeit so anpassen, dass er mit einem WiFi-Schild, Ethernet-Schild oder jedem anderen mit dem Internet verbundenen Gerät funktioniert. Der Lunar Phase Tracker wurde entwickelt, um mit Lithium-Polymer-Batterien und einem sehr energieeffizienten E-Ink-Display zu arbeiten, das nicht nur einen wunderbaren Bildschirm bietet, sondern auch das letzte Bild hält, selbst wenn der Strom ausfällt!

Schritt 1: Registrierung für Astronomie-Informationen

Registrierung für Astronomie-Informationen
Registrierung für Astronomie-Informationen
Registrierung für Astronomie-Informationen
Registrierung für Astronomie-Informationen

Dieser Schritt ist unbedingt erforderlich (wenn auch langweilig), da wir eine Online-API verwenden, um unsere Informationen zu sammeln. Mondphasen, Beleuchtung usw. zu berechnen ist zwar möglich, aber mühsam. Die von uns verwendete API liefert aktuelle Informationen von Live-Wetterstationen und Überwachungssystemen, sodass die Daten, die wir erhalten, reale Ergebnisse und nicht die berechneten Werte sind.

Gehen Sie zu Weather Underground, klicken Sie auf "Anmelden" und geben Sie alle Ihre Informationen ein. Das Konto ist völlig kostenlos, ebenso wie Ihre API-Aufrufe, solange Sie nicht zu viele Ergebnisse pro Minute anfordern oder 500 Anfragen pro Tag überschreiten. Stellen Sie sicher, dass Sie diese Seite mit einem Lesezeichen versehen, Sie können später jederzeit zurückkehren und die API für Wetterstatistiken und andere großartige Informationen verwenden. Sobald Sie Ihr Konto erstellt haben, gehen Sie auf die API-Site, klicken Sie auf "Schlüssel kaufen" und wählen Sie den kostenlosen Plan aus. Sie müssen nur ein paar Details eingeben und Sie erhalten eine Entwicklerschlüssel-ID. Diese ID ist für Sie eindeutig und sollte geheim gehalten werden. Ich habe meinen Schlüssel im Arduino-Beispielcode bereitgestellt, den wir uns etwas später ansehen werden. Sie können meine Key-ID gerne zu Testzwecken verwenden, aber ich empfehle dringend, sich für Ihre eigene anzumelden.

Sobald Sie Ihre eindeutige ID haben, können Sie zu den Astronomy API-Informationen gehen, die ehrlich gesagt sehr nackt sind. Sie finden ein einfaches Beispiel, das so aussieht:

api.wunderground.com/api/8c6dc2e5c6f36de9/a…

Diese URL ist äußerst wichtig, da sie uns alle Informationen zur Verfügung stellt, die wir für unser Projekt benötigen. Fahren Sie fort, klicken Sie auf den Link, Sie sehen Ergebnisse für Sydney wie Mondphase, Beleuchtung und andere gute Informationen. Schauen Sie sich die URL an, wir sehen Sydney, Australien und einen langen Code, der mit "8c6dcwe…" beginnt. Dieser Code ist Ihre Schlüssel-ID, die wir zuvor abgeholt haben. Ändern Sie diesen Code mit Ihrer eindeutigen ID und sehen Sie, wie das funktioniert. Sie sollten genau das gleiche Ergebnis erhalten. Versuchen Sie, mit Standorten herumzuspielen. Für mich selbst in Südafrika verwende ich Johannesburg und ZA.

Schritt 2: Komponenten

Komponenten
Komponenten
Komponenten
Komponenten
Komponenten
Komponenten

Nun also zu den interessanten Sachen. Wir werden ein paar Komponenten brauchen, nicht viele und keine davon ist extrem teuer und ich habe Amazon-Links für die von mir verwendeten Komponenten bereitgestellt. Denken Sie daran, wenn Sie mit der Programmierung vertraut sind, können Sie jedes verfügbare Display oder Internetgerät verwenden. Für meinen Build habe ich folgendes verwendet:

Waveshare E-Ink SPI 4,2" SPI-Display

  • ESP32-Entwicklungsboard (generisch)
  • Adafruit Power Boost 500
  • 5000mAh Lipo-Akku
  • Stripboard (Protoboard)

Sie benötigen natürlich die grundlegenden Werkzeuge wie:

  • Lötkolben
  • Lot
  • Multimeter
  • Bremssättel
  • Bohrer zum Trennen von Spuren auf dem Protoboard
  • Kabel
  • Drahtschere
  • Kleber (Heißkleber funktioniert)
  • Laptop mit installierter Arduino IDE

Das einzige fortschrittliche Werkzeug, das Sie möglicherweise benötigen, ist ein 3D-Drucker, um das Gehäuse herzustellen. Wenn Sie keine haben, ist das in Ordnung, machen Sie Ihr Gehäuse aus Holz und Handsägen oder allem, was Sie zur Verfügung haben. Und ja, mein 3D-Drucker ist alt und verstaubt lol.

Schritt 3: Die Computersoftware

Bevor wir mit der Schaltung und Programmierung beginnen können, benötigen wir zunächst die aktuellste Version der Arduino IDE, die hier zu finden ist.

Da wir den ESP32 mit Arduino-Kern verwenden, müssen wir diesen Kern auf der Arduino-IDE installieren. Folgen Sie dieser einfachen Anleitung von Github, die Ihnen zeigt, welche Software und Konfiguration Sie benötigen, damit Sie Ihr ESP32-Entwicklungsboard innerhalb der Arduino IDE verwenden können.

Wir werden auch zwei zusätzliche Bibliotheken benötigen, um unser System zum Laufen zu bringen. Die erste ist eine Arduino JSON-Bibliothek, die es uns ermöglicht, JSON-Anfragen zu lesen und zu parsen, was genau das ist, was wir von Weather Underground erhalten. Sie können diese beiden Bibliotheken von meiner persönlichen Dropbox oder unten herunterladen. Sobald Sie die Dateien haben, extrahieren Sie sie und legen Sie sie in Ihren Arduino-Bibliotheksordner. Es befindet sich im Allgemeinen unter C:\Benutzer\IHR_NAME\Dokumente\Arduino\libraries. Stellen Sie sicher, dass Sie Ihre IDE neu starten, sonst nimmt Arduino die neuen Ergänzungen nicht auf. Der Hauptcode von Arduino SRC befindet sich auch in diesem Ordner. Die Bibliothek enthält auch eine modifizierte Version des von Waveshare-Displays bereitgestellten Beispiels. Die Dateien wurden so geändert, dass sie auf dem ESP32-Modul mit ihren GPIOs laufen und ich habe eine neue "Schriftart" implementiert, die alle Bilder für die verschiedenen Mondphasen enthält.

Schritt 4: Die Schaltung

Die Rennbahn
Die Rennbahn
Die Rennbahn
Die Rennbahn
Die Rennbahn
Die Rennbahn

Okay, die Schaltung dafür ist extrem einfach und erfordert nur wenige Komponenten und Drähte.

Die allgemeine Idee ist, dass wir eine Lipo-Ladeschaltung haben, einen Aufwärtswandler, der uns 5 V liefert, und dann das ESP32 Dev Kit, das die Spannung auf 3,3 V senkt. Diese 3,3 V werden auch für das Waveshare E-Ink-Display verwendet. Ja, dies ist etwas ineffizient, da mit einem Linearregler verstärkt und dann abgesenkt wird, aber der ESP32 arbeitet über einen sehr schrecklichen Spannungsbereich. Irgendwo um 2,5 - 3,6 V. Dies ist nicht geeignet für Batterieprojekte, insbesondere solche, die Lithium-Polymer-Zellen verwenden.

Die Grundverkabelung ist wie folgt:

  • Aufwärtswandler 5V Ausgang Vin & GND am ESP32 Dev Kit
  • ESP32 3.3V 3.3V & GND E-Ink-Display
  • ESP32 PIN 18 CLK E-Ink-Display
  • ESP32 PIN 23 DIN/MOSI E-Ink-Display
  • ESP32 PIN 5 CS/SS E-Ink-Display
  • ESP32 PIN 32 DC E-Ink-Anzeige
  • ESP32 PIN 33 RST E-Ink-Display
  • ESP32 PIN34 BUSY E-Ink-Anzeige

Sie können sehen, dass die Verkabelung sehr einfach ist und meine DIY-Platinen nur etwa 15 Minuten benötigt haben, um sie zu konstruieren. Stellen Sie sicher, dass Sie mit einem Multimeter auf Kurzschlüsse prüfen, bevor Sie Strom bereitstellen.

Ich habe auch die LEDs von meinem ESP32- und Lipo-Boost-Board entfernt, um im Schlafmodus etwa 40 mA Strom zu sparen. Dadurch halten die Batterien etwas länger. Wenn Sie möchten, können Sie einen Netzschalter, eine Stromsparschaltung, eine automatische Trennung usw. implementieren. Sie können dieses Projekt erweitern und beliebig komplex gestalten.

Schritt 5: Der Code

Der Code
Der Code
Der Code
Der Code
Der Code
Der Code
Der Code
Der Code

Den Code finden Sie in Schritt 3 im mitgelieferten Ordner oder Sie können die.ino-Datei von unten herunterladen. Sie müssen die zugehörigen Bibliotheken wie in Schritt 3 erwähnt installieren, damit alles zusammenarbeitet. Zu diesem Schritt gibt es nicht viel zu sagen, da der Code in einem funktionsfähigen Zustand geliefert wird. Stellen Sie sicher, dass Sie Ihre SSID und Ihr Netzwerkkennwort eingeben, bevor Sie das Programm testen. Sie können den ESP32 WiFi Scan jederzeit ausführen, um alle drahtlosen Netzwerke in der Nähe zu erkennen. In meinem Programm werden die Netzwerkinformationen jedoch nur in Code und Code festgelegt. Vielleicht können Sie es ändern, um zu fragen, mit welchem Netzwerk Sie eine Verbindung herstellen möchten:)

Der Code ist ziemlich einfach und ich werde einige Zeit damit verbringen, ihn in den nächsten Wochen zu kommentieren und zu verfeinern. Wir verbinden uns grundsätzlich mit einem Netzwerk, in meinem Fall mit meinem Heimnetzwerk. Wir versuchen dann, eine Verbindung zu Weather Underground herzustellen und den JSON-Text von der Webseite zu empfangen. Die ArduinoJSON-Bibliothek wird dann zum Extrahieren verwendet. oder parsen Sie den JSON-Code in char-Arrays oder Strings, die es uns ermöglichen, die Werte zu manipulieren, bevor sie dem Benutzer angezeigt werden. Das letzte Bit Code dient ausschließlich der Programmierung der GUI und wurde durch Versuch und Irrtum erstellt. Ich habe mir die Anzeige angesehen, eine Asset-Position erhöht oder verringert und den Code erneut ausgeführt, bis ich mit der Schriftgröße, dem Layout und den Bildern zufrieden war.

Ich habe eine Deep-Sleep-Routine für den ESP32 implementiert, um Strom zu sparen. Der Standardwert ist 60 Sekunden. Ich schlage jedoch vor, dass Sie den Wert auf etwa eine oder zwei Stunden ändern, da Aktualisierungen mindestens einige Stunden lang nicht stattfinden. Das Beispiel akzeptiert Sekunden, also stellen Sie sicher, dass Sie die Konvertierungen richtig durchführen.

Ich habe auch das Programm The Dot Factory verwendet, um Hex-Arrays für eine neue Schriftart zu generieren. Diese Schriftart wird verwendet, um die "Bilder" für die Mondphasen zu generieren. Wenn Sie die Schriftartendatei bearbeiten möchten, verwenden Sie bitte das oben genannte Programm zur Generierung. Es ist ein bisschen verwirrend, da die E-Ink-Bibliothek nicht gut dokumentiert ist und der größte Teil meines Erfolgs auf Versuch und Irrtum zurückzuführen ist. Wenn ich mehr Zeit mit diesem Code verbringe, werde ich das Instructable aktualisieren, um weitere Informationen zu meinen Ergebnissen bereitzustellen.

Die für die Mondphasen verwendete Schriftart muss einem Standard-ASCII-Layout entsprechen. Wenn Sie font24 im EPD-Master-Ordner öffnen, sehen Sie das Layout, bei dem die 1. Grafik durch einen Leerraum gekennzeichnet ist, die zweite mit einem "!" (Ausrufezeichen) und so weiter. Sie werden sehen, dass ich die zugehörige Schriftart mit der Nummer 3 oder einem Hashtag-Symbol im letzten Code (Funktion getLunarChar) ziehe. Dies liegt daran, dass Arduino den ASCII-Standard von 32 bis 127 erwartet. Da wir Schriftarten verwenden, die nichts mit tatsächlichen Schriftarten zu tun haben und eher eine Mondphasen-Grafikmatrix, müssen wir sicherstellen, dass das ASCII-Zeichen auf unser gewähltes Mondphasenbild verweist. Dies bedeutet, dass die Verwendung einer ! Zeichen, unsere Mondphasenschriftart zeigt uns die zweite Mondphasengrafik in dieser Liste. Wenn Sie sich die Mondphasenschrift ansehen, sehen Sie eine ganze Reihe von Mondphasen, alle mit unterschiedlichen Beleuchtungsstärken. In Zukunft werde ich mehr Code hinzufügen, um alle von uns implementierten Grafiken zu verwenden. Im Moment verwenden wir nur wenige, aber die Grafiken sind bereits in der Mondphasenschriftart implementiert und müssen nur noch im Code implementiert werden, um sie zu nutzen.

Schritt 6: Endmontage

Endmontage
Endmontage
Endmontage
Endmontage
Endmontage
Endmontage

Der letzte Teil des Aufbaus und der befriedigendste ist der Montageprozess. Ich habe ein Gehäuse entworfen und in 3D gedruckt, das zu meinem Board passt. Das Projekt ist sehr DIY, es gibt keine professionellen PCBs oder ein einziges Standardlayout. In den meisten Fällen ist die Box, die ich verwendet habe, groß genug, um jedes Lipo-Ladegerät oder jeden Aufwärtswandler aufzunehmen, den Sie verwenden möchten. Solange sie die gleichen grundlegenden Funktionen bieten, die in diesem Instructable erwähnt werden, sollte es Ihnen gut gehen.

Ich benutzte 4 Schrauben, um die obere und untere Hälfte des Gehäuses zusammenzuhalten und Heißkleber für die Montage meiner DIY-Schaltung. Ich habe einige sehr kleine Tropfen Kleber verwendet, um den Akku zu halten, aber wenn ich mehr Zeit hätte, hätte ich eine benutzerdefinierte Halterung für die gesamte Elektronik gemacht.

Ich habe mich auch entschieden, ein Loch für einen einrastenden Druckknopf auf der Rückseite zu machen. Dadurch wird die Batterie vom Aufwärtswandler getrennt, was nützlich ist, wenn Sie das Gerät nicht rund um die Uhr betreiben möchten. Leider verbraucht der Aufwärtswandler auch dann noch Strom, wenn sich Ihr ESP32 im Tiefschlafmodus befindet.

Insgesamt bin ich mit dem Ergebnis sehr zufrieden. Ich habe bei der Verwendung des ESP32 viel gelernt und kann mir vorstellen, es in Zukunft für eine Vielzahl von Projekten einzusetzen.

Wenn Sie Fragen haben, zögern Sie nicht zu fragen, ich werde mehr als bereit sein, Ihnen zu helfen und wenn Sie Fehler in diesem Instructable finden, lassen Sie es mich bitte wissen.

BEARBEITEN: Ich habe tatsächlich ein kleines Gehäuse anstelle der 3D-gedruckten Version CNC-gefräst, was Sie in den vorgestellten Bildern sehen.

EDIT: In den vorgestellten Bildern sehen wir einen Vollmond mit 99% Beleuchtung. Daher ändert der weiße Kreis, wenn der Mond seine typischen Phasen durchläuft, das Bild des Mondes entsprechend. Während der Mond seine Phasen durchläuft, werden weitere Bilder hochgeladen, damit Sie eine Darstellung der Grafiken erhalten.

Weltraumherausforderung
Weltraumherausforderung
Weltraumherausforderung
Weltraumherausforderung

Zweiter Platz bei der Weltraum-Herausforderung