Inhaltsverzeichnis:
- Schritt 1: Was ist TTGO T-Watch?
- Schritt 2: Einfaches Watch-PoC
- Schritt 3: Zifferblatt entwerfen
- Schritt 4: Uhrzeit einstellen
- Schritt 5: Stromverbrauch
- Schritt 6: Programmierbarer Power-Management-Chip
- Schritt 7: Programm
- Schritt 8: Viel Spaß beim Programmieren
- Schritt 9: Arduino-T-Watch-GFX
Video: TTGO T-Uhr - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Diese Anleitungen zeigen, wie man mit TTGO T-Watch spielt.
Schritt 1: Was ist TTGO T-Watch?
TTGO T-Watch ist ein ESP32-basiertes Entwicklungskit in Uhrenform. 16 MB Flash und 8 MB PSRAM sind beides Top-Spezifikationen. Es hat auch ein 240 x 240 IPS-LCD, einen Touchscreen, einen Micro-SD-Kartenanschluss, einen I2C-Anschluss, RTC, einen 3-Achsen-Beschleunigungsmesser und eine benutzerdefinierte Taste integriert. Die Backplane kann auch auf andere Module wie LORA, GPS und SIM umgeschaltet werden.
Aber das Wichtigste, was es zu einer brauchbaren Uhr werden kann, ist das Stromversorgungssystem. Es integriert den programmierbaren Mehrkanal-Power-Management-Chip AXP202. Dies ist das erste Mal, dass ich ein Entwicklungskit sehe, das über einen I2C-steuerbaren Leistungschip verfügt!
Gemäß der AXP202X_Library-Schnittstelle können Sie jeden Stromkanal ein- und ausschalten, den Akkustand und den Ladestatus ablesen und sogar den Strom direkt ausschalten, genau wie beim Drücken des Netzschalters.
Ref.:
github.com/Xinyuan-LilyGO/TTGO-T-Watch
Schritt 2: Einfaches Watch-PoC
Der Power-Chip scheint gut zu sein, aber wie lange hält er für den eingebauten 180-mAh-Akku?
Da es als Watch-Outlook konzipiert ist, beginnen wir mit einem einfachen Watch-Beispiel als PoC, um zu untersuchen, wie der Power-Chip funktioniert.
Schritt 3: Zifferblatt entwerfen
ESP32 ist ein sehr leistungsstarker Chip, eine 240-MHz-Dual-Core-CPU und eine SPI-Geschwindigkeit von 80 MHz können ein sehr glattes Display-Layout entwerfen. Also entwarf ich ein anständiges Zifferblatt mit kontinuierlichem Sekundenzeiger.
Die Designschwierigkeiten sind jedoch unerwartet hoch, es ist nicht einfach, den letzten Sekundenzeiger ohne zu blinken zu entfernen. Ich habe 4 zusätzliche Methoden ausprobiert, um es zu machen. Die obigen Bilder zeigen ein fehlgeschlagenes Neuzeichnen, bei dem in der letzten Sekunde Pixel nicht auf dem Bildschirm entfernt wurden. Die Design-Zifferblattarbeit kann viele Worte sagen, aber ein bisschen außerhalb dieses Projekts. Vielleicht kann ich in meinen nächsten Anleitungen mehr über die Designreise sagen, sie sollte "Arduino Watch Core" heißen.
Schritt 4: Uhrzeit einstellen
T-Watch hat einen eingebauten RTC-Chip, das bedeutet, dass die Zeit zwischen dem Zurücksetzen während der Entwicklung eingehalten werden kann. Bevor es die Zeit halten kann, sollten wir zuerst die Zeit einstellen.
Es gibt verschiedene Möglichkeiten, die Zeit einzustellen:
- ESP32 hat WiFi-Fähigkeit, sodass Sie die Zeit mit NTP synchronisieren können
- Ähnlich wie bei anderen elektronischen Geräten wie Digitalkameras können Sie eine Benutzeroberfläche schreiben, um die Zeit einzustellen
- Sie können die GPS-Backplane verwenden, dann können Sie die Zeit vom Satellit abrufen
Um es einfach zu machen, ist es immer noch eine faule Art, die Zeit einzustellen, Sie finden diese Möglichkeit bei einigen TFT-Uhrenbeispielen. Wenn Sie das Programm in Arduino kompilieren, hat der Präprozessor 2 Variablen "_DATE_" und "_TIME_" definiert, um die Kompilierzeit aufzuzeichnen. Wir können diese Informationen verwenden, um ein sehr einfaches Programm zum Einstellen der RTC-Zeit zu erstellen.
Notiz:
Dieses einfache Programm stellt immer die Zeit beim Booten ein. Aber die Kompilierungszeit ist nur beim ersten Booten gültig, daher sollten Sie mit einem anderen Programm überschreiben, sobald es die Zeit erfolgreich eingestellt hat.
Ref.:
gcc.gnu.org/onlinedocs/cpp/Standard-Predef…
Schritt 5: Stromverbrauch
Wenn die Uhr läuft und einen fortlaufenden Sekundenzeiger anzeigt, verbraucht sie etwas mehr als 60 mA. Aus Energiespargründen sollte es nach einer bestimmten Zeit in den Ruhemodus wechseln.
Wenn ich die LCD-Hintergrundbeleuchtung ausschalte und ESP32 in den Tiefschlaf rufe, sinkt sie auf etwa 7,1 mA. Der 180-mAh-Akku hält nur etwa 1 Tag.
Ich weiß, dass der LCD-Chip etwa 6 mA verbraucht. Laut ST7789-Datenblatt gibt es einen Befehl, um in den Schlafmodus zu wechseln. Die aktuelle TFT_eSPI-Bibliothek verfügt jedoch noch nicht über eine Schlafmodus-API.
Und es werden auch noch irgendwo ca. 1 mA verbraucht.
Schritt 6: Programmierbarer Power-Management-Chip
Im Entwicklungskit sind laut Datenblatt viele Chips enthalten, die meisten unterstützen den Energiesparmodus. Allerdings haben nicht alle Bibliotheken die Energiesparmodus-API verfügbar gemacht. Und es ist eine lange Codierung zum Energiesparen, indem jedes Modul überprüft und aufgerufen wird, in den Schlafmodus zu wechseln.
Wie wäre es mit einem direkten Herunterfahren des Stroms genauso wie mit einem direkten Drücken des Netzschalters? AXP202X_Library kann es schaffen, indem es einfach die Funktion shutdown() aufruft. Im Shutdown-Modus verbraucht er nur etwas unter 0,3 mA. Es kann 25 Tage für den 180-mAh-Akku halten!
Notiz:
Ich habe den Akku gerade am 28. Juni aufgeladen, Sie können meinem Twitter folgen, um den neuesten Akkustatus zu erfahren.
Aktualisieren:
Am 18. Juli ist der Akku leer, der Akku kann 20 Tage halten. Während der Zeit prüfe ich die Uhrzeit ein paar Mal am Tag, ich gehe davon aus, dass die Uhr bei normalem Gebrauch 1-2 Wochen halten kann.
Ref.:
github.com/lewisxhe/AXP202X_Library/pull/2
Schritt 7: Programm
- Folgen Sie den Anweisungen auf der Seite https://github.com/Xinyuan-LilyGO/TTGO-T-Watch, um die Software und Bibliothek zu installieren.
- Quellcode auf GitHub herunterladen:
- Öffnen, kompilieren und laden Sie Set_RTC.ino hoch, um das RTC-Datum und die Uhrzeit zu aktualisieren
- Arduino-T-Watch-simple.ino öffnen, kompilieren und hochladen
- Fertig!
Das einfache Watch-Programm wird Folgendes tun:
- Lesen Sie das Datum und die Uhrzeit der RTC
- Uhrzeichen zeichnen (Sie können runde oder quadratische Uhrzeichen auswählen)
- Kontinuierlichen Zentralsekundenzeiger anzeigen
- Abschalten des Stroms nach 60 Sekunden (oder Sie können den Netzschalter zum sofortigen Herunterfahren gedrückt halten)
- Drücken Sie den Netzschalter, um es wieder einzuschalten
Schritt 8: Viel Spaß beim Programmieren
TTGO T-watch kann viel mehr als eine einfache Uhr, z. B.
- ESP32 kann drahtlose WLAN- und BT-Kommunikation herstellen
- Verwenden Sie ein Touchscreen-Panel, um eine ausgefallenere Benutzeroberfläche zu entwickeln
- integrierter dreiachsiger Beschleunigungsmesser (BMA423), integrierter Schrittzähleralgorithmus und anderer Multifunktions-GSensor
- austauschbare Backplane kann LORA, GPS, SIM-Funktion hinzufügen
- I2C-Port kann viel mehr Funktionen erweitern
Schritt 9: Arduino-T-Watch-GFX
Arduino-T-Watch-einfach erfordert das Drücken und Halten des winzigen Einschaltknopfes zum Aufwachen und die LCD-Ersteinführung einige Sekunden verzögert. Die Benutzererfahrung ist also nicht so gut.
Ich habe ein weiteres Programm namens Arduino-T-Watch-GFX hinzugefügt, um dies zu verbessern. Diese Programmänderung zur Verwendung der Arduino_GFX-Displaybibliothek kann dem Display dann mitteilen, dass es in den Ruhemodus wechselt, um Energie zu sparen. Wenn der ESP32 also in den leichten Schlaf wechselt, verbraucht er jetzt nur noch unter 3 mA. Und es kann jetzt auch das Aufwachen durch Berühren des Bildschirms auslösen. Das Aufwachen und Ausschlafen des ESP32 ist viel schneller als der gesamte Neustartprozess. Sie können das obige Video sehen, es reagiert fast sofort. Theoretisch sollte der Akku über 2 Tage halten:P