#RealTimeClock
Explore tagged Tumblr posts
Text
The MAX31328 is a modernized DS3231 🔬🕰️🔋
The ADI DS3231 - previously known as Maxim, previously previously known as Dallas Semi - is a high precision Real Time Clock - its one of the best out there thanks to it's internal temperature compensated crystal. but its kinda old, and ADI has done a refresh on the chip while keeping it software/firmware compatible. The MAX31328 https://www.digikey.com/short/5jff8p90 is a different, smaller package, probably uses a modern-er process too. We covered this family on EYE ON NPI about a year ago https://blog.adafruit.com/2022/05/26/eye-on-npi-analog-devices-maxim-max31329-real-time-clock-rtc-eyeonnpi-adi_news-digikey-adafruit/ and parts we booked back then finally appeared so we can design a prototype board! here it is in our STEMMA QT format - on the back is a coin cell holder to keep time for up to 7 years.
#adafruit#electronics#AnalogDevices#opensource#maxim#MAX31328#ADI#DS3231#RealTimeClock#ModernTech#PrototypeBoard#STEMMAQT#Innovation#Precision#HardwareUpgrade#KeepInTime
8 notes
·
View notes
Text
Girls don't care about the sacrifices you make for their prosperity
Battery needs an upgrade, and the ATMEL/arduino microchip could be translated into a standalone-circuit, shrinking the side-panel. I've also had some success with the "HC-05" Bluetooth module pairing with my Android phone, so perhaps I could pass packets of data from the device, to the heads-up display🤔
0 notes
Text
RTC Operations on i.MX6ULL Embedded Platform
The Programming&Configuring Guide in #RTC (Real-Time Clock) Functionality⏲️:
Handle date calculations, including time and timezone; Modify time and hwclock setting; Synchronize the system time with the RTC on i.MX6ULL SBCs at system startup.
The RTC is a critical component in embedded systems for maintaining accurate timekeeping and power management, but it can face challenges like time loss. So you can get the full guide and give it a try effectively! 👇

#ForlinxEmbedded#iMX6ULL#NXP#NXPPartner#RealTimeClock#RTCModules#EmbeddedSystems#IoT#UltraLowPower#InternetOfThings
0 notes
Text
Raspberry Pi Pico BASIC #6 – RealTimeClock programmieren

In diesem Beitrag möchte ich dir gerne zeigen, wie du eine RealTimeClock (kurz RTC) am Raspberry Pi Pico mit Picomite in BASIC programmierst.

Den Raspberry Pi Pico mit Picomite habe ich dir bereits in diversen Beiträgen vorgestellt. - BASIC Programmierung am Raspberry Pi Pico W, - Raspberry Pi Pico BASIC #1 – Überblick - Raspberry Pi Pico BASIC #2 – Quellcode organisieren - Raspberry Pi Pico BASIC #3 – Autostart - Raspberry Pi Pico BASIC #4 – SD-Karte anschließen In meinem letzten Beitrag habe ich dir auch gezeigt, wie man Sensordaten von einem Temperatursensor auf eine SD-Karte schreiben kann. In diesem Beitrag möchte ich gerne an diesen Beitrag anknüpfen und die Sensordaten mit einem Zeitstempel speichern. Im Handel erhältst du die RTCs bereits ab 3 € welche meist für den Arduino angepriesen werden.

Auf der RTC ist eine Batterie verbaut, welche die interne Uhr weiterlaufen lässt und so auch ein Zeitstempel ausgelesen werden kann, wenn der Mikrocontroller mal eine Zeit X ohne Strom war.
Benötigte Ressourcen für dieses Projekt
Wenn du die Schaltung nachbauen möchtest, dann benötigst du: - einen Raspberry Pi Pico / Pico W, - ein Micro-USB-Datenkabel, - eine RTC DS3231 mit I2C Schnittstelle, - vier Breadboardkabel, weiblich-weiblich, 10 cm, - optional ein GPIO Dual Expanderboard

Aufbau der Schaltung
Mit den vier Breadboardkabeln schließen wir die RealTimeClock an den Raspberry Pi Pico wie folgt an.

Raspberry Pi Pico mit RealTimeClock (RTC) An den Raspberry Pi Pico kannst du an mehreren Pins ein I2C Device anschließen. Nachfolgend findest du das Pinout.
Pinout des Raspberry PI Pico
Einrichten der RTC in Picomite auf dem Raspberry Pi Pico
Bevor wir den Zeitstempel (Datum & Uhrzeit) von der RTC lesen können, müssen wir diese einrichten. Zunächst müssen wir die I2C Pins aktivieren. OPTION SYSTEM I2C 1, 0 oder OPTION SYSTEM I2C GP0, GP1 Nachdem die ENTER Taste betätigt wurde, startet der Pi Pico neu und danach setzen wir den initialen Zeitstempel mit dem nachfolgenden Befehl. RTC SETTIME Jahr, Monat, Tag, Stunde, Minute, Sekunde zbsp. RTC SETTIME 2023, 4, 29, 18, 0, 0 Mit dem Befehl nachfolgenden Befehl kannst du die RTC beim Starten und jede Stunde
Auslesen von Datum & Uhrzeit von der RealTimeClock
Nachdem wir nun den Zeitstempel gesetzt haben, können wir die beiden Werte Datum & Uhrzeit von dieser lesen. RTC GETTIME Print DATE$ Print TIME$
Ausgabe von Datum & Uhrzeit auf dem Pi Pico mit einer RTC Damit wir aus den Feldern DATE$ und TIME$ die Werte lesen können, müssen die mit dem Befehl "RTC GETTIME" befüllt werden. Wir können dieses jedoch etwas automatisieren, indem wir die nachfolgende Option für die RTC setzen. OPTION RTC AUTO ENABLE
Beispiel - Sensordaten mit Zeitstempel auf SD-Karte schreiben
Im letzten Beitrag hatte ich dir gezeigt, wie du die Sensordaten von einem einfachen digitalen Temperatursensor DS18B20 auf eine SD-Karte schreiben kannst. Jetzt möchte ich statt des Index einen Zeitstempel zu jedem Wert speichern. Aufbau der Schaltung - RTC, DS28B20 & SD-Kartenleser Die RTC lässt sich wie nachfolgend gezeigt in die ggf. bereits bestehende Schaltung integrieren.
Schaltung - Pi Pico mit DS18B20, RTC & SD-Kartenleser Für den Temperatursensor DS18B20 habe ich ein kleines Board auf welchem bereits die Schaltung mit dem 4,7 kOhm Widerstand verbaut ist.

Aufbau der Schaltung - Raspberry Pi Pico mit Realtimeclock, Temperatursensor DS18B20 und SD-Kartenleser
Programmieren im Fullscreen-Editor in Picomite
Erweitern wir jetzt das Programm um den Zeitstempel. TEMPR START GP15 Dim value As Float Open "b:/sensordaten.csv" For output As #1 RTC GETTIME For i = 0 to 100 Step 1 value = TEMPR(GP15) Print #1, DATE$ " " TIME$ ";" value Print i DATE$ " " TIME$ "-" value Next i Close #1 Die CSV Datei auf der SD-Karte enthält nun den Zeitstempel sowie die Sensordaten getrennt durch ein Semikolon.
Read the full article
0 notes
Text
Features
A new region to discover, Hupest!
A Custom soundtrack (tracks from various, media remixed with a B2&W2 Soundfont, not my own compositions)
A BW/HGSS inspired art design
Updated battle mechanics to Generation 7 (Moves, Pokémon, PSS split etc.)
(Almost)Full National Dex until Gen 7 (758 species plus 48 Eclipse Pokémon)
A new battle mechanic, Eclipsing!
Side Quests (With an actual Quest Log)
Day/Night System and possible D&N events (On VBA turn RealTimeClock on, the emulator needs to support RTC)
Many aesthetic updates (Like the transparent textboxes etc.)
Soaring
Not a feature, but game design issues from Saiph have been avoided here, so trade pokemon can be evolved, stones work etc. (Lessons have been learned this time…)
4 notes
·
View notes
Text
32768crystal #rtc #rtccrystal #realtimeclock #esp32 #esp8266 #clock #K32768 #crystal #metering #amr #meteringamr #iot #smartmeter #emeter #electricmeter #watthourmeter #watthour #cq #cqcrystal #meters #internetofthings #iotproject #iotmodule #radialcrystal
0 notes
Text
A few other things I have been playing with.



This add on card provides a real-time clock, charging contol and battery backup for a Raspberrypi. I like how after installation I can have the Pi turn off using the shutdown command on the screen. Don’t over tighten the screws
1 note
·
View note
Photo

#Failed #RTC #RealTimeClock #Sandisk #BuildingStack https://www.instagram.com/p/CjR4n9BO8eb/?igshid=NGJjMDIxMWI=
0 notes
Text
A CLOCK DESIGN THAT CAN LET YOU TELL TIME BY A SIMPLE ROTATION






This Lexus Design Award triumphing clock is going to expose that every now and then the solution to a trouble may be simply oh-so-simple. Ditching the idea that you want to have multiple clocks to tell the time in distinct time zones, Masafumi Ishikawa’s World Clock is simply ridiculously easy. The clock comes with a dodecagonal (12-sided) shape, and just an hour hand. Each face of the dodecagon has the name of a famous town, similar to a time region, on it. Just face the city’s call up and the hour hand tells you what time it is there (you’d likely should use your not unusual experience to tell if it’s am or pm). The most effective trap is that the World Clock doesn’t work with daylight hours-saving time, given that no longer all countries follow the exercise of turning their clocks backward and forward. As the hour hand rotates on an axis, the sector clock’s form turned into designed to be rotated and located on a floor. Change what face it rests on, and the hour hand factors some other place. Ishikawa makes use of this as an alternative easy truth to show a normal clock into a global clock! Give it a strive, you may turn your desk clocks into world clocks too! Click Here to Buy Now world clock app, world clock with seconds, world clock converter, world clock 3d, world time zone list, real time clock, gmt world clock, slowest time zone Read the full article
#gmtworldclock#realtimeclock#slowesttimezone#worldclock3d#worldclockapp#worldclockconverter#worldclockwithseconds#worldtimezonelist
0 notes
Text
Raspberry Pi PicoW - wieviel "W" ist nötig?
Nach dem Raspberry Pi Pic folgte der Pico W, also die Version auf der ein WLAN Modul verbaut wurde. Doch wieviel "W" ist nötig, genau das ist die Frage?
Es ist natürlich großartig, dass der Raspberry Pi Pico, der Microcontroller der Raspberry Pi Foundation UK nun auch ein WLAN Modul verbaut bekam. Dies ermöglicht es uns den kleinen Microcontroller auch als Mini-Webserver zu nutzen. Meldet er sich in einem WLAN an, so erhält er vom Router eine IP Adresse. Unter dieser kann dann bspw. eine Website aufgerufen werden, wenn der Pico W als Webserevr programmiert wurde.
Eine andere Sache ist, dass durch das WLAN Modul ein Pico W sich nun auch Informationen aus dem Internet beschaffen kann. Beispielsweise um als Uhr zu dienen und wenn es darum geht die richtige Uhrzeit anzeigen zu können. Der Microcontroller selbst kann diese RTC Funktion nur bedingt. Benötigt also den Zugriff auf einen Uhrzeitserver für die RealtimeClock(RTC) Funktion. Diese kann er dann natürlich speichern und sich immer wider die aktuelle Uhrzeit aus dem Netz beschaffen um Up-to-Date zu sein. Also eher up-to-Time.
In den kommenden Wochen soll es dann auch möglich werden Bluetooth (BT) zu nutzen, denn der Microcontroller beherrscht das wohl schon, aber es mangelt derzeit noch an entsprechemdem Code für dessen Betriebssystem, gerade im Thema Micropython besteht da ein Defizit. Bei allem dürfen wir aber nicht vergessen, dass uns da aktuell noch ein wichtiger Punkt fehlt bei dem uns weder WLAN noch BT so recht hiflt. Die drahtlose Programmierung.


Doch soviel "W" reicht uns nicht! Hier gibt es im Zusammenhang mit Micropython beispeilsweise ein ganz grundlegendes Problem. Wir erreichen es nicht Datein zu ändern solange der Pico/Pico W ein Script ausführt und zudem bleibt die Programmierung über bspw. die Thonny IDE einer bestehenden Kabelverbindung vorbehalten. Warum wäre das so interessant? Nun es geht darum, dass wir dann keine USB-Kabel Verbindung mehr benötigen würden um diesen Microcontroller zu programmieren. Den Controller am Strom zu haben und mit einer bestehenden WLAN bzw. BT Verbindung dann Dateien zu ändern, speichern oder zu löschen wäre DIE herausragende Sache, welche uns aktuell fehlt.
GPIO Schnitstellen lassen sich zwar steuern, doch zwischen steuern und programmieren ist der Unterschied um den es hier geht. Nehmen wir das Beispiel des pimoroni Galactic Unicorn, austauschbar gegen alles was es sonst so auf dem Markt gib, wo der Hersteller einen Pico W auf dem Board bzw. in diesem Fall Display-Board verbaut hat. Und wenn wir an das Thema Smart-Home Steuerung denken wird es ebenso deutlich. Positionieren wir diese Gerät oder eine Smarthome-Steuerung an einem schwer zugänglichen Ort, so wäre es sicher von Zeit zu Zeit erforderlich nochmal in die Programmierung einzugreifen.

Beispielsweise um Anpassungen am html-Code vorzunehmen, die IP Adresse oder insgesamt den Vorgang während der Anmeldeprozedur zu verfolgen, etc.! Wir können dies bedingt über Formularanwendungen bei PHEW oder auch indem wir Variablen wegschreiben die sich ein anderes py-Script einlesen kann tun. Doch eine neue py-Datein hinzufügen oder ändern wird selbst über solche Umwege kaum machbar werden. Andere Sache wäre die Libaries zu ergänzen upzudaten oder dergleichen.
Auch der pimoroni Badger2040 würde davon profitieren, wenn man ihn drahtlos programmieren könnte. Nutzt man diesen Beispielsweise als Türschild, so müsste ein IT Mitarbeiter zu dem Badger2040 hinlaufen und ihn an ein Notebook anschließen um Änderungen vorzunehmen. Wäre der Badger2040 aber über das WLAN mit einer GUI unter seiner IP zu erreichen und programmierbar, wäre dies ein großer Vorteil. Der IT Mitarbeiter müsste nur wissen welche IP der Badger2040 hat und wo er sich befindet. Eine Website unter der IP als Mini Webserver könnte zudem Standortinformationen und die aktuelle Programmierung anzeigen.

Das was wir hier aktuell durchführen können ist dahingehend leider noch sehr beschränkt. Auch SSH ist keine Option, da das OS des Pico das nicht beherrscht. Es wird also stark davon abhängen wie weiter in dieser Sache entwickelt wird und ob wir hier künftig durch entsprechende Updates des Pico/PicoW OS besonders im Hinblick auf Micropython noch solche Möglichkeiten bekommen werden.
Auf Github ist eine meiner Repositories (https://github.com/techcree/Badger2040.git) zu finden, wo ich mich mit diesem Thema beim Badger2040 auseinander gesetzt habe. Der Ansatz ist dort noch eine html-GUI hinzuzufügen, da TKinter unter Micropython Probleme bereitet. Da der Badger2040 aber kein WLAN kann ;-) ist das hier nicht das richtige Besipiel. Nehmen wir also mal einen Pico W mit einem daran angeschlossenen Display an so wird ein Schuh daraus. Ich denke aber wir stehen hier ggf. kurz vor einer Lösung. Es bleibt also spannend...
0 notes
Text
Arduino und DS3231: Relais jeden Tag automatisch zu variablen Uhrzeiten schalten

Im Beitrag Arduino und DS3231: Relais jeden Tag automatisch zur gleichen Uhrzeit schalten habe ich dir gezeigt, wie du ein Relais zu einem fest definierten Zeitpunkt aktivierst. Aufbauend auf diesem Wissen erkläre ich dir heute, wie du das System erweiterst, um an mehreren Zeitpunkten pro Tag automatische Schaltvorgänge durchzuführen. https://youtu.be/rZtfyYJyA_0 Hinweis: Die Idee zu dieser Erweiterung entstand aus einem Wunsch eines Lesers meines Blogs, der sich eine Mehrfachschaltung des Relais gewünscht hat. Wenn auch du Anregungen, Fragen oder Wünsche hast, melde dich gerne per E-Mail oder schreibe mir in den Kommentaren.
Rückblick - Aufbau der Schaltung und benötigte Ressourcen
Für den Aufbau der Schaltung benötigt man: - einen Arduino Nano V3* - ein USB-Datenkabel* - eine RTC DS3231* - ein 2fach Relais-Modul* - ein 20x2 LC-Display mit I2C Schnittstelle* - diverse Breadboardkabel* - ein 400 Pin Breadboard*

Schaltung - Maker Nano mit DS3231 - RelaisModul und LC-Display Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
zeitgesteuerte Schaltung mit dem Arduino UNO R3, RTC und LCD-Display Für die Schaltung verwende ich den Maker Nano welchen ich dir im Beitrag Vorstellung des Maker Nano von Cytron vorgestellt habe. Dieser hat die Abmaße des Arduino Nano bietet aber ein paar nette zusätzliche Features.
Erweitern des bestehenden Codes
Wie bereits erwähnt, habe ich das kleine Projekt bereits vorgestellt. Nun gehe ich auf die notwendige kleine Änderung ein, die es ermöglicht, pro Tag mehrere Schaltvorgänge umzusetzen. Schritt 1 - Strukturen zum ablegen der Zeiten anpassen Da das Projekt nun darauf abzielt, das Relais täglich zu festen Uhrzeiten zu steuern, ist es nicht mehr notwendig, auch das Datum zu berücksichtigen. Ursprünglich war die Struktur so aufgebaut, dass sie an einem bestimmten Datum und zu einer bestimmten Uhrzeit aktivierte – das Datum war also ein entscheidendes Kriterium. Jetzt, wo die Schaltvorgänge jeden Tag erfolgen, genügt es, nur die Uhrzeit zu prüfen. Das Datumsfeld kann daher entfernt werden, was den Code übersichtlicher und zielgerichteter macht. // Struktur für einen RTC-Zeitstempel. // Speichert Datum und Zeit als Strings, wie sie z.B. von einer Real-Time Clock (RTC) geliefert werden. struct RTC_Zeitstempel { String datum; // Datum als String, z.B. "2025-02-23" String zeit; // Zeit als String, z.B. "12:34:56" }; // Struktur für einen allgemeinen Zeitstempel. // Enthält zwei Zeitangaben: eine für das Einschalten (ON) und eine für das Ausschalten (OFF) des Relais. struct Zeitstempel { String zeitON; // Zeitpunkt, zu dem das Relais eingeschaltet werden soll String zeitOFF; // Zeitpunkt, zu dem das Relais ausgeschaltet werden soll }; // Struktur zur Darstellung eines Relais. // Speichert Informationen über das Relais und die zugehörigen Schaltzeitpunkte. struct Relais { int digitalPin; // Digitaler Pin, an den das Relais angeschlossen ist String desc; // Beschreibung oder Name des Relais int numZeitstempel; // Anzahl der aktuell gesetzten Zeitstempel im Array Zeitstempel zeitstempel; // Array, das bis zu 10 Zeitstempel (Schaltvorgänge) aufnehmen kann }; Schritt 2 - Anpassen der Funktion zum auslesen der aktuellen Uhrzeit von der RTC DS3231 Die Struktur zum speichern des aktuellen Zeitstempels habe ich umbenannt, daher musste im Code dieses an den entsprechenden Stellen angepasst werden. void loop() { ... //bleibt leer RTC_Zeitstempel zeitstempel = readRtc(); … } //auslesen der Daten von der RealtimeClock RTC_Zeitstempel readRtc() { ... } void checkCurrentTimestamp(Relais relais, RTC_Zeitstempel zeitstempel) { ... } Schritt 3 - prüfen aller gespeicherten Zeiten Die Funktion checkCurrentTimestamp dient dazu den aktuellen Zeitstempel gegen die gespeicherten Zeiten für die beiden Relais zu prüfen. // Funktion zum Überprüfen, ob der aktuelle RTC-Zeitstempel einem // der definierten Schaltzeitpunkte des Relais entspricht. void checkCurrentTimestamp(Relais relais, RTC_Zeitstempel zeitstempel) { // Schleife über alle gesetzten Zeitstempel für dieses Relais for (int index = 0; index // Aktuellen Zeitstempel (mit On- und Off-Zeit) aus dem Array lesen Zeitstempel relaisZeitstempel = relais.zeitstempel; // Überprüfen, ob die aktuelle Zeit mit der Einschaltzeit übereinstimmt if (zeitstempel.zeit == relaisZeitstempel.zeitON) { // Ausgabe an den seriellen Monitor, dass das Relais aktiviert wird Serial.println("aktivieren"); // Relais aktivieren digitalWrite(relais.digitalPin, LOW); // Überprüfen, ob die aktuelle Zeit mit der Ausschaltzeit übereinstimmt } else if (zeitstempel.zeit == relaisZeitstempel.zeitOFF) { // Ausgabe an den seriellen Monitor, dass das Relais deaktiviert wird Serial.println("deaktivieren"); // Relais deaktivieren digitalWrite(relais.digitalPin, HIGH); } } } fertiges Projekt Hier kannst du das fertige Programm als ZIP-Datei herunterladen. Quellcode /* * Autor: Stefan Draeger * Webseite: https://draeger-it.blog * Blogbeitrag: https://draeger-it.blog/arduino-und-ds3231-relais-jeden-tag-automatisch-zu-variablen-uhrzeiten-schalten/ * * Benötigte Bauteile: * - Arduino Nano V3 * - USB-Datenkabel * - RTC DS3231 * - 2fach Relais-Modul * - 20x2 LC-Display mit I2C Schnittstelle * - diverse Breadboardkabel * - 400 Pin Breadboard */ // Bibliothek zum Ansteuern des LCD-Displays via I2C #include // Bibliothek für die Kommunikation mit der RTC DS3231 #include // Bibliothek zur Kommunikation mit dem Bluetooth Modul über SoftwareSerial #include // I2C Adresse des RTC DS3231 #define RTC_I2C_ADDRESS 0x68 // Struktur zur Speicherung eines RTC-Zeitstempels // Enthält Datum und Uhrzeit als Strings struct RTC_Zeitstempel { String datum; // Datum, z.B. "23.02.2025" String zeit; // Uhrzeit, z.B. "12:34:56" }; // Struktur zur Speicherung eines Schalt-Zeitstempels für ein Relais // Definiert, wann das Relais eingeschaltet (zeitON) und wann es ausgeschaltet (zeitOFF) werden soll struct Zeitstempel { String zeitON; // Zeitpunkt zum Aktivieren des Relais String zeitOFF; // Zeitpunkt zum Deaktivieren des Relais }; // Struktur zur Beschreibung eines Relais und seiner Schaltzeitpunkte struct Relais { int digitalPin; // Der digitale Pin, an dem das Relais angeschlossen ist String desc; // Beschreibung oder Name des Relais int numZeitstempel; // Anzahl der definierten Zeitstempel im Array Zeitstempel zeitstempel; // Array zur Speicherung von bis zu 10 Schalt-Zeitstempeln }; // Initialisierung des LCD-Displays via I2C // Adresse: 0x27, 20 Zeichen pro Zeile, 2 Zeilen LiquidCrystal_I2C lcd(0x27, 20, 2); // Puffer zum Speichern von seriellen Eingaben char linebuf = {}; bool readData = false; // Definition des ersten Relais (Relais #1) // Enthält 3 Schalt-Zeitstempel Relais relais1 = { 9, // Digitaler Pin 9 "Relais #1", // Beschreibung 3, // Anzahl der Zeitstempel { { "12:48:00", "12:48:10" }, { "12:48:25", "12:48:30" }, { "12:48:40", "12:49:00" } } }; // Definition des zweiten Relais (Relais #2) // Enthält 1 Schalt-Zeitstempel Relais relais2 = { 8, // Digitaler Pin 8 "Relais #2", // Beschreibung 1, // Anzahl der Zeitstempel { { "12:48:00", "12:49:00" } } }; void setup() { // Start der seriellen Kommunikation Serial.begin(9600); // Initialisierung des LCD-Displays lcd.init(); // Aktivierung der Hintergrundbeleuchtung des Displays lcd.backlight(); // Setzt die digitalen Pins der Relais als Ausgang pinMode(relais1.digitalPin, OUTPUT); pinMode(relais2.digitalPin, OUTPUT); // Setzt beide Relais initial auf HIGH (in diesem Fall deaktiviert) digitalWrite(relais1.digitalPin, HIGH); digitalWrite(relais2.digitalPin, HIGH); } void loop() { // Lese Daten von der seriellen Schnittstelle readDataFromSerial(); // Wenn Daten empfangen wurden, verarbeite den Zeitstempel if (readData) { String timestamp = linebuf; // Das Datum wird als 10 Zeichen (inkl. Punkte) erwartet String datum = timestamp.substring(0, 10); String tag = datum.substring(0, 2); String monat = datum.substring(3, 5); String jahr = datum.substring(6, 10); // Die Uhrzeit beginnt ab dem 11. Zeichen des Zeitstempels String uhrzeit = timestamp.substring(11); String stunde = uhrzeit.substring(0, 2); String minute = uhrzeit.substring(3, 5); String sekunde = uhrzeit.substring(6); // Setzt den RTC-Zeitstempel entsprechend der empfangenen Werte rtcWriteTimestamp(stunde.toInt(), minute.toInt(), sekunde.toInt(), tag.toInt(), monat.toInt(), jahr.toInt()); } // Lese den aktuellen Zeitstempel von der RTC RTC_Zeitstempel zeitstempel = readRtc(); // Anzeige des Datums auf der ersten Zeile des LCD-Displays lcd.setCursor(0, 0); lcd.print(zeitstempel.datum); // Anzeige der Uhrzeit auf der zweiten Zeile des LCD-Displays lcd.setCursor(0, 1); lcd.print(zeitstempel.zeit); // Überprüfung der aktuellen Uhrzeit mit den definierten Schalt-Zeitstempeln der Relais checkCurrentTimestamp(relais1, zeitstempel); checkCurrentTimestamp(relais2, zeitstempel); // Kurze Pause zur Entlastung delay(500); } // Funktion zur Überprüfung, ob der aktuelle RTC-Zeitstempel // mit einem der Schalt-Zeitstempel eines Relais übereinstimmt void checkCurrentTimestamp(Relais relais, RTC_Zeitstempel zeitstempel) { // Schleife durch alle definierten Zeitstempel für das gegebene Relais for (int index = 0; index // Lese den aktuellen Schalt-Zeitstempel aus dem Array Zeitstempel relaisZeitstempel = relais.zeitstempel; // Falls die aktuelle Uhrzeit dem Einschaltzeitpunkt entspricht: if (zeitstempel.zeit == relaisZeitstempel.zeitON) { Serial.println("aktivieren"); // Relais aktivieren (in diesem Fall wird LOW gesetzt, um zu schalten) digitalWrite(relais.digitalPin, LOW); } // Falls die aktuelle Uhrzeit dem Ausschaltzeitpunkt entspricht: else if (zeitstempel.zeit == relaisZeitstempel.zeitOFF) { Serial.println("deaktivieren"); // Relais deaktivieren (HIGH schaltet das Relais aus) digitalWrite(relais.digitalPin, HIGH); } } } // Funktion zum Einlesen von Daten von der seriellen Schnittstelle void readDataFromSerial() { // Zähler für die empfangenen Zeichen byte counter = 0; readData = false; // Prüfen, ob Daten verfügbar sind if (Serial.available() > 0) { delay(250); // Kurze Verzögerung, um sicherzustellen, dass alle Daten empfangen wurden readData = true; // Solange Daten von der seriellen Schnittstelle verfügbar sind: while (Serial.available()) { // Lese ein Zeichen aus der seriellen Schnittstelle char c = Serial.read(); // Füge das Zeichen in den Puffer ein, solange es nicht das Zeilenumbruch-Zeichen ist if (c != 'n') { linebuf = c; // Stelle sicher, dass der Puffer nicht überläuft if (counter counter++; } } } // Ausgabe des eingelesenen Puffers zur Kontrolle Serial.println(linebuf); } } // Funktion zum Schreiben eines Zeitstempels in den RTC DS3231 // Übergabe: Stunde, Minute, Sekunde, Tag, Monat, Jahr void rtcWriteTimestamp(int stunde, int minute, int sekunde, int tag, int monat, int jahr) { Wire.beginTransmission(RTC_I2C_ADDRESS); Wire.write(0); // Setzt den internen Zeiger des RTC auf 0 (Beginn des Registers) // Schreibe die Zeitdaten in BCD-Format in die RTC Wire.write(decToBcd(sekunde)); Wire.write(decToBcd(minute)); Wire.write(decToBcd(stunde)); Wire.write(decToBcd(0)); // Wochentag wird hier nicht berücksichtigt Wire.write(decToBcd(tag)); Wire.write(decToBcd(monat)); // Das Jahr wird als Offset zu 2000 gespeichert Wire.write(decToBcd(jahr - 2000)); Wire.endTransmission(); } // Funktion zum Auslesen der aktuellen Zeit vom RTC DS3231 RTC_Zeitstempel readRtc() { // Aufbau der Verbindung zum RTC Wire.beginTransmission(RTC_I2C_ADDRESS); Wire.write(0); // Setzt den internen Zeiger auf 0 Wire.endTransmission(); // Fordert 7 Bytes an: Sekunden, Minuten, Stunde, Wochentag, Tag, Monat, Jahr Wire.requestFrom(RTC_I2C_ADDRESS, 7); int sekunde = bcdToDec(Wire.read() & 0x7f); // Sekunde (Bit 7 wird maskiert) int minute = bcdToDec(Wire.read()); int stunde = bcdToDec(Wire.read() & 0x3f); // Stunde (nur 24-Stunden Format) int wochentag = bcdToDec(Wire.read()); // Wochentag (wird nicht weiter genutzt) int tag = bcdToDec(Wire.read()); int monat = bcdToDec(Wire.read()); int jahr = bcdToDec(Wire.read()) + 2000; // Jahr als Offset zu 2000 // Formatierung des Datums als "TT.MM.JJJJ" char datum; sprintf(datum, "d.d.", tag, monat, jahr); // Formatierung der Uhrzeit als "HH:MM:SS" char zeit; sprintf(zeit, "d:d:d", stunde, minute, sekunde); // Rückgabe des Zeitstempels als Struktur return { datum, zeit }; } // Hilfsfunktion zum Konvertieren von Dezimal in BCD (Binary Coded Decimal) byte decToBcd(byte val) { return ((val / 10 * 16) + (val % 10)); } // Hilfsfunktion zum Konvertieren von BCD in Dezimal byte bcdToDec(byte val) { return ((val / 16 * 10) + (val % 16)); } Programm: Relais jeden Tag automatisch zu variablen Uhrzeiten am Arduino schaltenHerunterladen
Ausblick - Relais zu variablen Uhrzeiten schalten
Nachdem in diesem Projektkommentar auf Wunsch eines Lesers bereits die Funktionalität um mehrere Schaltzeitpunkte erweitert wurde, steht nun der nächste Schritt an: der Umstieg auf den ESP32. Mit dem integrierten WiFi bietet der ESP32 enorme Vorteile, denn zukünftig sollen die Schaltzeiten flexibel und benutzerfreundlich über eine eigene Webseite konfigurierbar sein. Außerdem wird die aktuelle Uhrzeit nicht mehr ausschließlich von einer RTC ermittelt, sondern direkt von einem NTP-Zeitserver aus dem Internet bezogen – für eine präzise und wartungsfreie Zeitsynchronisation. Diese Neuerungen machen das Relaissteuerungs-Projekt noch flexibler und vielseitiger. Ich freue mich darauf, in den kommenden Beiträgen mehr über die Umsetzung und die erweiterten Möglichkeiten zu berichten. Bleib also gespannt! Read the full article
0 notes
Text
Features
A new region to discover, Hupest!
A Custom soundtrack (tracks from various, media remixed with a B2&W2 Soundfont, not my own compositions)
A BW/HGSS inspired art design
Updated battle mechanics to Generation 7 (Moves, Pokémon, PSS split etc.)
(Almost)Full National Dex until Gen 7 (758 species plus 48 Eclipse Pokémon)
A new battle mechanic, Eclipsing!
Side Quests (With an actual Quest Log)
Day/Night System and possible D&N events (On VBA turn RealTimeClock on, the emulator needs to support RTC)
Many aesthetic updates (Like the transparent textboxes etc.)
Soaring
Not a feature, but game design issues from Saiph have been avoided here, so trade pokemon can be evolved, stones work etc. (Lessons have been learned this time…)
0 notes
Text
The Midnight Ride of Paul Revere: A Revolution Begins
The Semiquincentennial of the American Revolution, Part One.

The American Revolution, a pivotal event in history, was a time of great change and upheaval in the United States. It marked the birth of a new nation and set the stage for the principles of democracy and freedom we hold dear today. Friday, 18 April 2025, a momentous day that marked the 250th anniversary of Paul Revere's midnight ride to warn Lexington and Concord: "The British are coming!"
I dedicate this post to all of us who share a deep love for American history, genealogists I met through Ancestry.com, the Daughters of the American Revolution, and my fellow writers in the Mindful Writing Group.

Paul Revere’s Ride
By HENRY WADSWORTH LONGFELLOW (1807—1882)
Listen, my children, and you shall hear Of the midnight ride of Paul Revere, On the eighteenth of April, in Seventy-Five: Hardly a man is now alive Who remembers that famous day and year.
He said to his friend, “If the British march By land or sea from the town to-night, Hang a lantern aloft in the belfry-arch Of the North-Church-tower, as a signal-light,— One if by land, and two if by sea; And I on the opposite shore will be, Ready to ride and spread the alarm Through every Middlesex village and farm, For the country-folk to be up and to arm.”
Then he said “Good night!” and with muffled oar Silently rowed to the Charlestown shore, Just as the moon rose over the bay, Where swinging wide at her moorings lay The Somerset, British man-of-war: A phantom ship, with each mast and spar Across the moon, like a prison-bar, And a huge black hulk, that was magnified By its own reflection in the tide.
Meanwhile, his friend, through alley and street Wanders and watches with eager ears, Till in the silence around him he hears The muster of men at the barrack door, The sound of arms, and the tramp of feet, And the measured tread of the grenadiers Marching down to their boats on the shore.
Then he climbed to the tower of the church, Up the wooden stairs, with stealthy tread, To the belfry-chamber overhead, And startled the pigeons from their perch On the sombre rafters, that round him made Masses and moving shapes of shade,— By the trembling ladder, steep and tall, To the highest window in the wall, Where he paused to listen and look down A moment on the roofs of the town, And the moonlight flowing over all.
Beneath, in the churchyard, lay the dead, In their night-encampment on the hill, Wrapped in silence so deep and still That he could hear, like a sentinel’s tread, The watchful night-wind, as it went Creeping along from tent to tent, And seeming to whisper, “All is well!” A moment only he feels the spell Of the place and the hour, and the secret dread Of the lonely belfry and the dead; For suddenly all his thoughts are bent On a shadowy something far away, Where the river widens to meet the bay,— A line of black, that bends and floats On the rising tide, like a bridge of boats.
Meanwhile, impatient to mount and ride, Booted and spurred, with a heavy stride, On the opposite shore walked Paul Revere. Now he patted his horse’s side, Now gazed on the landscape far and near, Then impetuous stamped the earth, And turned and tightened his saddle-girth; But mostly he watched with eager search The belfry-tower of the old North Church, As it rose above the graves on the hill, Lonely and spectral and sombre and still. And lo! as he looks, on the belfry’s height, A glimmer, and then a gleam of light! He springs to the saddle, the bridle he turns, But lingers and gazes, till full on his sight A second lamp in the belfry burns!
A hurry of hoofs in a village-street, A shape in the moonlight, a bulk in the dark, And beneath from the pebbles, in passing, a spark Struck out by a steed that flies fearless and fleet: That was all! And yet, through the gloom and the light, The fate of a nation was riding that night; And the spark struck out by that steed, in his flight, Kindled the land into flame with its heat.
He has left the village and mounted the steep, And beneath him, tranquil and broad and deep, Is the Mystic, meeting the ocean tides; And under the alders, that skirt its edge, Now soft on the sand, now loud on the ledge, Is heard the tramp of his steed as he rides.
It was twelve by the village clock When he crossed the bridge into Medford town. He heard the crowing of the cock, And the barking of the farmer’s dog, And felt the damp of the river-fog, That rises when the sun goes down.
It was one by the village clock, When he galloped into Lexington. He saw the gilded weathercock Swim in the moonlight as he passed, And the meeting-house windows, blank and bare, Gaze at him with a spectral glare, As if they already stood aghast At the bloody work they would look upon.
It was two by the village clock, When he came to the bridge in Concord town. He heard the bleating of the flock, And the twitter of birds among the trees, And felt the breath of the morning breeze Blowing over the meadows brown. And one was safe and asleep in his bed Who at the bridge would be first to fall, Who that day would be lying dead, Pierced by a British musket-ball.
You know the rest. In the books you have read, How the British Regulars fired and fled,— How the farmers gave them ball for ball, From behind each fence and farmyard-wall, Chasing the red-coats down the lane, Then crossing the fields to emerge again Under the trees at the turn of the road, And only pausing to fire and load.
So through the night rode Paul Revere; And so through the night went his cry of alarm To every Middlesex village and farm,— A cry of defiance, and not of fear, A voice in the darkness, a knock at the door, And a word that shall echo forevermore! For, borne on the night-wind of the Past, Through all our history, to the last, In the hour of darkness and peril and need, The people will waken and listen to hear The hurrying hoof-beats of that steed, And the midnight message of Paul Revere.
The History of Paul Revere's Ride
In the quiet hours of the night on 18 April, 1775, the air was thick with tension, and the moon cast a ghostly light over the streets of Boston. Paul Revere, a silversmith by trade and a devoted member of the Patriot cause, received a clandestine message from Joseph Warren, one of the leading figures of the Sons of Liberty. Warren had learned that the British Army was preparing to march, and the colonists needed to be alerted. The fate of the fledgling nation rested on their readiness to respond.

As the clock struck a late hour, Revere mounted his horse, his heart racing with fear and resolve. Just days before, whispers of British intentions had filled the taverns and salons of Boston, provoking fears of a crackdown on the Massachusetts Provincial Congress, which had gathered in Concord to strategize their growing resistance. Little did they know how close the enemy was.
Earlier that day, Revere had arranged a plan with Robert Newman, the sexton of the Old North Church, to signal the townspeople. They had devised a simple yet effective code: one lantern if the British came by land, two lanterns if they came by sea. Two lanterns flickered to life in the church tower as the clock struck midnight. This signal traveled through the darkness, setting the stage for the urgent race against time.
Revere crossed the Charles River by rowboat, quietly slipping past the HMS Somerset, the British warship that lay at anchor, obscured by the shadows. The water was cold, but a fire was in his belly, urging him onward. Once he reached Charlestown, he wasted no time, hopping onto his horse, and with a swift kick of the heels, he rode hard towards Lexington. His mission now was to inform the colonists and ignite a spark of rebellion in their hearts.
As he rode through the stillness of the countryside, Revere’s voice cut through the darkness like a clarion call. “The British are coming!” he shouted as he raced from house to house, pounding on doors and waking families—some half-asleep, others terrified. His words were met with disbelief and determination; the Patriots began to rouse from their homes, grasping their muskets and gathering their courage.
In the shadows, his route wound through present-day Somerville, Medford, and Arlington, each town transformed into a center of mobilization. Along the way, he enlisted the help of fellow patriots, men, and boys who shared his fervor for freedom. He encountered familiar faces, and soon, he was not alone; fellow riders joined him, each committed to spreading the urgent news across the land.
As dawn approached, he had company in the form of William Dawes, who had set out on his mission. Together, they galloped toward Lexington, their mounts pounding against the dirt roads, sending dust clouds into the air. But danger lurked around every corner—British patrols were searching for them, tasked with detaining any Patriot who might foil their plans.
In one particularly harrowing moment near Somerville, Revere and Dawes were nearly caught by a British patrol. They ducked and weaved through back alleys, their breath coming in quick gasps as they skillfully evaded capture. During this chaos, Revere remembered the somber sight of a displayed corpse, a local slave who had met a tragic fate, a stark reminder of the turbulent world they were entangled in. It fueled his resolve; this was a personal mission and part of a larger struggle against oppression.
After a narrow escape, they were joined by Samuel Prescott, who would ride with them towards Concord. The three men forged ahead, each bearing the weight of the revolution on their shoulders. They knew the importance of informing their leaders—men like John Hancock and Samuel Adams—who were in danger of capture by the advancing British troops.
The sun began to rise, painting the sky in hues of orange and pink, illuminating the path ahead. The ride to Concord became a symphony of urgency, echoing through the fields and into the colonists' hearts. As they passed through towns, the trio shouted their warnings loud and clear, stirring the spirit of resistance among their fellow countrymen. Soon, Revere’s call to arms became a rallying cry, inspiring many more riders to take up the charge until there were probably as many as 40 riders spreading the news throughout Middlesex County.
When the British troops landed, chaos had turned to action among the colonists. Groups of men gathered in Lexington and Concord, readying themselves for the impending confrontation. When the British Army finally made their way towards Lexington, they were met not with fear but with defiance—a testament to the collective will of the American spirit ignited by Revere’s harrowing ride.
Later, as the coffeehouses and taverns filled with tales of gallantry, the night of 18 April would be immortalized in various forms, including Henry Wadsworth Longfellow’s famous poem, “Paul Revere’s Ride.” Although some details were romanticized in the retelling, the essence of bravery and the fight for freedom remained intact—a spirit that took root in the budding nation.
As we approach the Semiquincentennial of the American Revolution, we remember that fateful night that began a fight for liberty that would resonate through generations. Paul Revere’s midnight ride was more than just a warning; it was a flashpoint for a revolution that sought to carve out a new identity for a nation forged through the fires of courage and sacrifice. It reminds us of the sacrifices made and the enduring love for freedom that binds us all.
About Henry Wadsworth Longfellow

Upon his return, he published his first significant poetry collections, Voices of the Night in 1839 and Ballads and Other Poems in 1841. By the age of 47, Longfellow decided to step away from the classroom, choosing to devote his life to writing. This decision brought him to reside in a historic home in Cambridge, Massachusetts—the very headquarters of George Washington during the Revolutionary War. Here, amidst the echoes of the past, he poured his heart into verses that would resonate for generations.
However, life was not without its sorrows for Longfellow. He faced devastating loss when his first wife, Mary Potter, tragically died in 1835 after a heartbreaking miscarriage. His second wife, Frances Appleton, whom he adored dearly, suffered a tragic fate in 1861 when her dress caught fire, leading to her untimely death. In the wake of such heartache, Longfellow grappled with the words that once flowed so freely from his pen. For a time, he turned his focus to translating works from foreign languages, seeking solace in the voices of other poets.
Longfellow’s writing style was as eclectic as his experiences. He deftly navigated the realms of lyric poetry, experimenting with various forms and structures, including hexameter and free verse. His works sang melodiously, echoing the principles he often articulated: “What a writer asks of his reader is not much to like as to listen.” In these lines, one could hear his deep understanding of poetry as music—a symphony of words meant to flow and resonate.

Though intensely private, Longfellow occasionally let fragments of his life seep into his poetry. Notably, his sorrow after losing his daughter Fanny in 1848 manifested in the poignant poem “Resignation.” It stands as a universal expression of mourning, avoiding the confines of personal pronouns to speak to the collective grief of humanity. Similarly, his tribute to Frances, the haunting sonnet “The Cross of Snow,” remained unpublished during his lifetime, a quiet testament to his enduring love and loss.
Longfellow’s poetry began to embody moral teachings as time passed, moving from overt didacticism to a more nuanced exploration of life’s deeper meanings. In his work, he often employed allegory, portraying death as a mere bedtime for a cranky child in his poem “Nature.” His metaphors drew inspiration from a vast tapestry of legends, myths, and literature, from the haunting tales of Norse mythology expressed in “The Skeleton in Armor “ to the rich folklore of Finnish legends that colored The Song of Hiawatha.

While contemporary American issues often felt distant to him, he longed for a national literature that echoed the vastness and diversity of the land. In his novel Kavanagh, a character expresses this yearning with passion, declaring, “We want a national epic that shall correspond to the size of the country…” This strong advocacy for a uniquely American literary identity illustrated his belief in fostering a vibrant artistic culture.
One of Longfellow’s lasting legacies was his role as a translator. His complete translation of Dante Alighieri’s Divine Comedy set a standard and became a cornerstone for those eager to engage with high culture. Moreover, in 1845, he compiled The Poets and Poetry of Europe. This significant anthology brought the beauty of foreign poetry to American readers, many of whom were otherwise inaccessible to such treasures.
By the time he reached the 1870s, Longfellow took on the ambitious project of overseeing a 31-volume anthology titled Poems of Places, gathering verses from around the world. However, his friend Ralph Waldo Emerson expressed disappointment, finding the endeavor less worthy of Longfellow’s talents, suggesting that he was wasting precious time when he could be crafting original works.

Despite the challenges and the weight of loss he bore, Longfellow remained a beacon of literary brilliance. His words echo through the annals of time, inviting readers to pause, listen, and reflect on the beauty and complexity of life. His legacy endures, a testament to the power of poetry and the deep connections it fosters across generations. Ultimately, Henry Wadsworth Longfellow’s story is one of resilience, artistry, and an unwavering dedication to the written word.
Coming Up...
As we gather to reflect on this 250th anniversary, we honor the courage and resilience of those who fought for their beliefs and freedoms. This isn't just a tale of battles and strategies; it’s a story of the human spirit yearning for liberty, a story that resonates even today.
I invite you to join me on this exploration of the American Revolution—a time when ordinary individuals became extraordinary leaders, taking a stand for future generations. Together, let’s delve into the events that shaped our nation and celebrate the enduring ideals of freedom and justice that continue to inspire us.
Let’s remember the legacy of those brave souls who dared to dream of a better future. Tomorrow, we embark on this enlightening journey together!
See you tomorrow!
NOTE: My thanks to WordPress AI for generating the illustrations for this post. My thanks also to Poetry.com and Wikipedia.com. Thank you to my writing compadres, the Mindful Writers. Thanks to all of my history teachers for igniting in me a love for US History, especially the American Revolution. And to the Daughters of the American Revolution.
Source: The Midnight Ride of Paul Revere: A Revolution Begins
65 notes
·
View notes
Text
Erfahrungsbericht: Wie gut sind die neuen E-Paper Displays von Soldered?
Von der Firma Soldered habe ich zwei E-Paper Displays für dieses Review erhalten. Ein E-Paper Display hat die Vorteile, dass es wenig Strom verbraucht und dabei auch noch von allen Winkeln gut lesbar ist. https://youtu.be/EcERNJUgK_U Disclaimer: Dieser Beitrag enthält eine unabhängige Bewertung der E-Paper Displays von Soldered, die mir kostenfrei zur Verfügung gestellt wurden. Die hier geäußerten Meinungen und Erfahrungen sind meine eigenen und wurden nicht durch Soldered beeinflusst.
Was sind die Vorteile von E-Paper Displays?
E-Paper Displays, auch bekannt als elektronische Papierdisplays, bieten eine Reihe von Vorteilen gegenüber herkömmlichen LCD- oder LED-Displays. Hier sind einige der wichtigsten Vorteile: - Geringer Energieverbrauch: - E-Paper Displays benötigen nur Strom, wenn sich der angezeigte Inhalt ändert. Ein statisches Bild verbraucht keine Energie, was die Batterielebensdauer erheblich verlängert. - Hohe Lesbarkeit bei Sonnenlicht: - E-Paper Displays reflektieren das Licht wie echtes Papier, was bedeutet, dass sie auch bei direkter Sonneneinstrahlung gut lesbar sind. - Augenfreundlichkeit: - Da sie kein Hintergrundlicht verwenden, sind E-Paper Displays weniger anstrengend für die Augen und bieten ein angenehmeres Leseerlebnis, ähnlich wie bei gedrucktem Papier. - Dünn und leicht: - E-Paper Displays sind in der Regel dünn und leicht, was sie ideal für tragbare Geräte wie E-Reader und Smartwatches macht. - Breiter Betrachtungswinkel: - Der Inhalt auf E-Paper Displays bleibt aus nahezu jedem Betrachtungswinkel klar und lesbar, im Gegensatz zu vielen herkömmlichen Displays, die bei seitlichem Blickwinkel verblassen oder verzerrt wirken können. - Flexibilität: - Einige E-Paper Displays können auf flexible Substrate gedruckt werden, wodurch sie für innovative Anwendungen wie gebogene oder faltbare Geräte geeignet sind. - Geringere Lichtverschmutzung: - Da sie ohne Hintergrundbeleuchtung arbeiten, tragen E-Paper Displays weniger zur Lichtverschmutzung bei und sind in dunklen Umgebungen diskreter. Diese Vorteile machen E-Paper Displays besonders attraktiv für Anwendungen, bei denen Energieeffizienz, Lesbarkeit und Augenfreundlichkeit im Vordergrund stehen.
6 Farbiges E-Paper Display von Soldered
Von der Firma Soldered bekommst du ein E-Paper Display mit 6 Farben in der Größe von 6 Zoll (was ca. 15 cm Bildschirmdiagonale entspricht). Es können die Farben schwarz, grün, blau, rot, gelb, orange angezeigt werden. Wenn ein Pixel nicht aktiviert ist, dann wird dieser in Weiß dargestellt, somit kommt man sogar auf 7 Farben.
Technische Daten Nachfolgend die technischen Daten des 6 Zoll (ca. 15 cm), 6 Farben E-Paper Display: SchlüsselmerkmaleDetailsDisplaygröße5,85 Zoll (rund 6 Zoll)Auflösung600 x 448 PixelFarbunterstützung7 FarbenBildaktualisierungTeilweise Updates, schnelle InhaltsveränderungMikrocontrollerESP32 mit eingebettetem WiFi und Bluetooth 4.0 (BLE)StromverbrauchSehr gering, 18 µA im Deep-Sleep-ModusStromversorgungLithium-Akku oder USB, integriertes LadegerätSpeicherkartenleserMicroSD KartenleserSchnittstellenZusätzliche GPIO Linien, easyC/Qwiic Kompatibilität, Unterstützung für I²C und SPISoftwareFertige Arduino Bibliothek (100 % kompatibel mit Adafruit GFX) und MicroPythonGehäuseoptionenOptional 3D-gedrucktes GehäuseAkkuoptionenOptional 1200mAh AkkuAbmessungen131,5 x 105,5 x 10 mmAbmessungen mit Gehäuse140 x 119,3 x 13,6 mm Aufbau des E-Paper-Displays Auf der Rückseite des Displays findest du einige Anschlüsse für Sensoren/Aktoren sowie unter anderem das Batteriefach für die Backupbatterie der RTC (RealTimeClock). Einstellungen und dort fügen wir die nachfolgende URL zu den zusätzlichen Boardverwalter URLs ein. https://raw.githubusercontent.com/SolderedElectronics/Dasduino-Board-Definitions-for-Arduino-IDE/master/package_Dasduino_Boards_index.json
Installieren der Bibliotheken für das Display Der Boardtreiber dient lediglich zum Ansteuern des Mikrocontrollers, damit wir das E-Paper Display ansteuern können, benötigen wir eine zusätzliche Bibliothek, welche wir als ZIP-Datei vom GitHub Repository SolderedElectronics / Inkplate-Arduino-library herunterladen können.
Unterschiede bei der Programmierung von E-Paper Displays von Soldered Beide Display (6 Zoll & 10 Zoll) kannst du sehr einfach über die Arduino IDE programmieren. Der Bibliothek liegen zu jedem Display Beispiele von Einfach bis Komplex bei. Jedoch hat das 10-Zoll-Display ein Feature, welches dem 6 Zoll derzeit fehlt, es ist ein Partial Update. Dieses bewirkt, dass nicht das komplette Display neu geschrieben wird, sondern nur die Daten, welche sich neu im Puffer befinden, somit ist die Anzeige neuer Daten schnell erledigt. Anzeigen von Text & Formen in diversen Farben auf dem Soldered Inkplate 6Color E-Paper Display Zunächst programmieren wir ein kleines Dashboard, welches alle 15 Minuten aktualisiert wird. Auf diesem Dashboard soll nachfolgende Daten angezeigt werden: - die Uhrzeit von der RealTimeClock, - der Status der Webseite http://draeger-it.blog

Das Gute an dem E-Paper Display ist, dass dieses ohne Hintergrundbeleuchtung daher kommt und somit auch nicht so sehr auftr��gt, wenn es an der Wand montiert ist. Programm - Dashboard für Status einer WebseiteHerunterladen #include "HTTPClient.h" #include "Inkplate.h" #include "WiFi.h" //Zugangsdaten zum lokalen WiFi Netzwerk const char ssid = ""; const char *password = ""; //Die Webseite welche geprüft werden soll String hostname = "http://draeger-it.blog"; HTTPClient sender; WiFiClient wifiClient; Inkplate display; const int PAUSE = 900000; void setup() { //starten der seriellen Verbindung mit 115200 baud Serial.begin(115200); //Aufbau der WiFi Verbindung WiFi.mode(WIFI_MODE_STA); WiFi.begin(ssid, password); //solange die WiFi Verbindung noch nicht hergestellt wurde, //soll ein Punkt ausgegeben werden while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } display.begin(); display.clearDisplay(); display.display(); //Einmaliges setzen der Uhrzeit / des Datums an der RTC. //Dieser Wert wird durch eine Pufferbatterie gehalten! //display.rtcReset(); //display.rtcSetTime(16, 6, 00); //display.rtcSetDate(2, 15, 7, 2024); } //Funktion zum schreiben eines Textes an einer bestimmten Position mit einem Style void setText(String text, int coord_x, int coord_y, int color, int textSize) { display.setTextColor(color); display.setCursor(coord_x, coord_y); display.setTextSize(textSize); display.print(text); } //Prüft ob der Hostname verfügbar ist, also der HTTP-Code gleich 200 ist. bool hostAvailable() { if (sender.begin(wifiClient, hostname)) { int httpCode = sender.GET(); if (httpCode > 0) { Serial.println("httpCode: " + String(httpCode)); return httpCode == 200; } else { Serial.printf("HTTP-Error: ", sender.errorToString(httpCode).c_str()); } } return false; } //liest einen Zeitstempel von der RealTimeClock String readRTC() { display.rtcGetRtcData(); int minutes = display.rtcGetMinute(); int hour = display.rtcGetHour(); int day = display.rtcGetDay(); int weekday = display.rtcGetWeekday(); int month = display.rtcGetMonth(); int year = display.rtcGetYear(); char buffer; sprintf(buffer, "%d/d/d d:d", year, month, day, hour, minutes); Serial.println(buffer); return buffer; } void loop() { //leeren des Displays display.clearDisplay(); display.display(); display.fillScreen(INKPLATE_WHITE); //laden des Logos display.drawImage("https://draeger-it.blog/wp-content/uploads/2024/07/logoSD.bmp", 0, 0, true, false); //schreiben der Überschrift setText("Dashboard", 165, 20, INKPLATE_ORANGE, 3); //schreiben des aktuellen Zeitstempels setText(readRTC(), 165, 50, INKPLATE_GREEN, 2); //zeichnen der Ampel display.drawRoundRect(50, 130, 60, 140, 6, INKPLATE_BLACK); display.drawCircle(80, 170, 20, INKPLATE_BLACK); display.drawCircle(80, 220, 20, INKPLATE_BLACK); //Wenn die Webseite verfügbar ist, dann... if (hostAvailable()) { display.fillCircle(80, 220, 10, INKPLATE_GREEN); setText("Webseite erreichbar!", 120, 215, INKPLATE_GREEN, 2); } else { //Wenn die Webseite NICHT verfügbar ist, dann... display.fillCircle(80, 170, 10, INKPLATE_RED); setText("Webseite nicht erreichbar!", 120, 165, INKPLATE_RED, 2); } //einen Text in den Footerbereich schreiben display.setTextColor(INKPLATE_BLACK); display.setCursor(115, 420); display.setTextSize(1); display.print("Stefan Draeger | https://draeger-it.blog | [email protected]"); display.display(); //einlegen einer Pause von 15 Minuten delay(PAUSE); } Read the full article
0 notes
Text
Raspberry Pi Pico BASIC #7 – I2C-Display programmieren
Willst du lernen, wie du ein I2C-Display mit dem Raspberry Pi Pico und PicoMite / BASIC zum Laufen bringst? In diesem Artikel zeige ich dir einfache Schritte, um beeindruckende Ergebnisse zu erzielen. Egal, ob du ein Anfänger oder bereits erfahrener Raspberry Pi-Nutzer bist, meine detaillierte Anleitung hilft dir dabei, das Display anzuschließen und zu programmieren. Tauchen wir gleich ein und entdecke mit mir die faszinierende Welt der I2C-Displays mit Raspberry Pi Pico und PicoMite!

In vergangenen Beiträgen hatte ich dir bereits gezeigt, wie du eine RealTimeClock an den Pi Pico anschließt und programmierst, hier möchte ich an den Beitrag nun anknüpfen und die Werte für Datum & Uhrzeit auf dem Display anzeigen.
I2C Schnittstellen am Raspberry Pi Pico
Der Raspberry Pi Pico & Pico W haben mehrere I2C Schnittstellen, damit kannst du mehrere Displays betreiben (vorausgesetzt die Adressen sind verschieden).

Pinout des Raspberry PI Pico Das Bild enthält das Pinout des Raspberry Pi Pico dieser Mikrocontroller ist das Vorgängermodell des Pico W. Jedoch ist die Pinbelegung gleich, daher ist das Bild noch aktuell (Stand 29.05.2023).
Einrichten der I2C Schnittstelle in PicoMite
Bevor wir die I2C Schnittstelle an den gewünschten Pins verwenden können, müssen wir diese konfigurieren. In meinem Fall verwende ich ein I2C-Display mit dem Treiberchip SSD1306, dieser wird auch vom System unterstützt und kann mit dem nachfolgenden Befehl eingerichtet werden. OPTION LCDPANEL SSD1306I2C, , Für den Platzhalter "" setzt du den Wert für Hochform- oder Querformat. - Hochformat = L, - Querformat = P Mit dem optionalen Parameter offset kannst du dein I2C-Display ausrichten. Wenn du ein 0,96" OLED Display verwendest, dann ist dieser Parameter 0 (default, kann also entfallen). Solltest du jedoch ein 1,3" OLED Display verwenden, so musst du als Parameter 2 wählen. In meinem Fall nutze ich ein 1,3" OLED Display im Querformat und muss dann nachfolgenden Befehl eingeben: OPTION LCDPANEL SSD1306I2C, L, 2
Ausgeben von "Hello World!" auf dem I2C-Display
Starten wir zunächst recht einfach und geben die Textzeile "Hello World!" auf dem Display aus.

Der Basic Befehl für die Ausgabe von Text lautet "Text" und hat die Parameter: - Position , - Ausrichtung, - Schriftgröße, - Schriftfarbe, - Hintergrundfarbe Wenn wir nun den Befehl Text mit dem nachfolgenden Parameter eingeben, dann wird ein Text "Hello World!" an der Position X=10, Y=0 im Querformat angezeigt (siehe Grafik oben). Text 10, 0, "Hello World!", "L", 1, 1, RGB(WHITE), RGB(BLACK) Mein OLED Display kann nur Schwarz & Weiß anzeigen, daher setzte ich in meinem Fall mit RGB lediglich White & Black. Solltest du ein Farbiges OLED Display verwenden, so kannst du hier auch andere Werte setzen.
Anzeigen von Datum & Uhrzeit auf dem I2C-Display mit BASIC am Raspberry Pi Pico
Wie du eine RTC an den Raspberry Pi Pico anschließt und mit PicoMite ausliest, habe ich dir bereits im Beitrag Raspberry Pi Pico BASIC #6 – RealTimeClock programmieren erläutert. In diesem Abschnitt möchte ich dir jetzt gerne zeigen, wie du diese Werte auf einem OLED Display anzeigen lassen kannst. Im nachfolgenden YouTube-Video erläutere ich dir Schritt-für-Schritt, wie du die Schaltung aufbaust und das kleine Programm in Basic mit PicoMite programmierst. https://youtu.be/Nb_moX3GCbM
Ausblick
In der offiziellen Dokumentation zu PicoMite unter https://geoffg.net/Downloads/picomite/PicoMite_User_Manual.pdf findest du viele Weitere GUI Elemente (Dialoge, Buttons, Diagramme, etc.) welche du auf deinem Display mit wenigen Zeilen programmieren kannst. Im nächsten Beitrag möchte ich daher ein kleines Dashboard erzeugen, um dort Sensorwerte zu visualisieren, sei also gespannt ... Read the full article
0 notes
Text
ChatGPT - Sensordaten visualisieren

In diesem Beitrag möchte ich dir zeigen, wie du eine Python GUI von ChatGPT erzeugen lassen kannst, um Sensordaten zu visualisieren.

ChatGPT - Sensordaten visualisieren Im Beitrag Raspberry Pi Pico BASIC #6 – RealTimeClock programmieren habe ich dir eine kleine Schaltung am Raspberry Pi Pico gezeigt, wie du Sensordaten auf eine SD-Karte schreiben kannst. Die Daten werden dabei im CSV Format (getrennt durch ein Semikolon) gespeichert. In der ersten Spalte ist ein Zeitstempel und die zweite Spalte enthält den Sensorwert. 29-04-2023 18:10:26; 19.25 29-04-2023 18:10:27; 19.25 29-04-2023 18:10:28; 19.25 In einem neuen Chat Fenster von ChatGPT gebe ich nun die nachfolgende Anfrage an das System. Zusätzlich gebe ich noch die Sensordaten hinzu. Ich habe eine CSV Datei im Format: 29-04-2023 18:10:26; 19.25 29-04-2023 18:10:27; 19.25 29-04-2023 18:10:28; 19.25 29-04-2023 18:10:29; 19.25 Hier erkennt ChatGPT gleich korrekt, was ich plane und gibt mir ein kleines Pythonprogramm zum visualisieren dieser Daten. Was mir besonders gut gefällt ist, dass der Zeitstempel im korrekten Format erkannt wurde und dieser geparst wird. import csv from datetime import datetime import matplotlib.pyplot as plt timestamps = values = with open('beispiel.csv') as csvfile: reader = csv.reader(csvfile, delimiter=';') for row in reader: timestamp = datetime.strptime(row, '%d-%m-%Y %H:%M:%S') value = float(row) timestamps.append(timestamp) values.append(value) plt.plot(timestamps, values) plt.xlabel('Zeit') plt.ylabel('Werte') plt.show() Dieser Python Code erzeugt ein Liniendiagramm mit den Achsen Werte & Zeit.
generiertes Liniendiagramm von ChatGPT zum visualisieren von Sensordaten
Installieren der benötigten Bibliotheken
Damit das Programm ausgeführt werden kann, muss die Bibliothek matplotlib und das Modul pyplot installiert werden. Dazu führen wir den nachfolgenden Befehl auf der Konsole aus: pip install matplotlib Wenn du die Entwicklungsumgebung PyCharm verwendest, dann kannst du auch per Kontextmenü die fehlende Bibliothek installieren.
Die GUI bzw. das Fenster selber wird von der Bibliothek matplotlib bereitgestellt.
Kompletter Chatverlauf mit ChatGPT zum visualisieren von Sensordaten
Hier jetzt der gesamte Chatverlauf mit ChatGPT zu diesem Beitrag. ChatGPT_CSV_Daten_visualisierenHerunterladen Read the full article
0 notes
Photo

RTC DS3231 am Arduino UNO kompatiblen Microcontroller von Keyestudio. Morgen veröffentliche ich ein ausführliches Tutorial zur RealtimeClock DS3231. #rtcds3231 #rtc #realtimeclock #diy #tech #techy #technology #electronic #components #arduino #arduinoproject #arduinouno #keyestudio #DraegerIT (hier: Stefan Draeger Software) https://www.instagram.com/p/BzV_h-dImHa/?igshid=wtnz0x6lnbq
#rtcds3231#rtc#realtimeclock#diy#tech#techy#technology#electronic#components#arduino#arduinoproject#arduinouno#keyestudio#draegerit
0 notes
Text
The Midnight Ride of Paul Revere: A Revolution Begins
The Semiquincentennial of the American Revolution, Part One.

The American Revolution, a pivotal event in history, was a time of great change and upheaval in the United States. It marked the birth of a new nation and set the stage for the principles of democracy and freedom we hold dear today. Friday, 18 April 2025, a momentous day that marked the 250th anniversary of Paul Revere's midnight ride to warn Lexington and Concord: "The British are coming!"
I dedicate this post to all of us who share a deep love for American history, genealogists I met through Ancestry.com, the Daughters of the American Revolution, and my fellow writers in the Mindful Writing Group.

Paul Revere’s Ride
By HENRY WADSWORTH LONGFELLOW (1807—1882)
Listen, my children, and you shall hear Of the midnight ride of Paul Revere, On the eighteenth of April, in Seventy-Five: Hardly a man is now alive Who remembers that famous day and year.
He said to his friend, “If the British march By land or sea from the town to-night, Hang a lantern aloft in the belfry-arch Of the North-Church-tower, as a signal-light,— One if by land, and two if by sea; And I on the opposite shore will be, Ready to ride and spread the alarm Through every Middlesex village and farm, For the country-folk to be up and to arm.”
Then he said “Good night!” and with muffled oar Silently rowed to the Charlestown shore, Just as the moon rose over the bay, Where swinging wide at her moorings lay The Somerset, British man-of-war: A phantom ship, with each mast and spar Across the moon, like a prison-bar, And a huge black hulk, that was magnified By its own reflection in the tide.
Meanwhile, his friend, through alley and street Wanders and watches with eager ears, Till in the silence around him he hears The muster of men at the barrack door, The sound of arms, and the tramp of feet, And the measured tread of the grenadiers Marching down to their boats on the shore.
Then he climbed to the tower of the church, Up the wooden stairs, with stealthy tread, To the belfry-chamber overhead, And startled the pigeons from their perch On the sombre rafters, that round him made Masses and moving shapes of shade,— By the trembling ladder, steep and tall, To the highest window in the wall, Where he paused to listen and look down A moment on the roofs of the town, And the moonlight flowing over all.
Beneath, in the churchyard, lay the dead, In their night-encampment on the hill, Wrapped in silence so deep and still That he could hear, like a sentinel’s tread, The watchful night-wind, as it went Creeping along from tent to tent, And seeming to whisper, “All is well!” A moment only he feels the spell Of the place and the hour, and the secret dread Of the lonely belfry and the dead; For suddenly all his thoughts are bent On a shadowy something far away, Where the river widens to meet the bay,— A line of black, that bends and floats On the rising tide, like a bridge of boats.
Meanwhile, impatient to mount and ride, Booted and spurred, with a heavy stride, On the opposite shore walked Paul Revere. Now he patted his horse’s side, Now gazed on the landscape far and near, Then impetuous stamped the earth, And turned and tightened his saddle-girth; But mostly he watched with eager search The belfry-tower of the old North Church, As it rose above the graves on the hill, Lonely and spectral and sombre and still. And lo! as he looks, on the belfry’s height, A glimmer, and then a gleam of light! He springs to the saddle, the bridle he turns, But lingers and gazes, till full on his sight A second lamp in the belfry burns!
A hurry of hoofs in a village-street, A shape in the moonlight, a bulk in the dark, And beneath from the pebbles, in passing, a spark Struck out by a steed that flies fearless and fleet: That was all! And yet, through the gloom and the light, The fate of a nation was riding that night; And the spark struck out by that steed, in his flight, Kindled the land into flame with its heat.
He has left the village and mounted the steep, And beneath him, tranquil and broad and deep, Is the Mystic, meeting the ocean tides; And under the alders, that skirt its edge, Now soft on the sand, now loud on the ledge, Is heard the tramp of his steed as he rides.
It was twelve by the village clock When he crossed the bridge into Medford town. He heard the crowing of the cock, And the barking of the farmer’s dog, And felt the damp of the river-fog, That rises when the sun goes down.
It was one by the village clock, When he galloped into Lexington. He saw the gilded weathercock Swim in the moonlight as he passed, And the meeting-house windows, blank and bare, Gaze at him with a spectral glare, As if they already stood aghast At the bloody work they would look upon.
It was two by the village clock, When he came to the bridge in Concord town. He heard the bleating of the flock, And the twitter of birds among the trees, And felt the breath of the morning breeze Blowing over the meadows brown. And one was safe and asleep in his bed Who at the bridge would be first to fall, Who that day would be lying dead, Pierced by a British musket-ball.
You know the rest. In the books you have read, How the British Regulars fired and fled,— How the farmers gave them ball for ball, From behind each fence and farmyard-wall, Chasing the red-coats down the lane, Then crossing the fields to emerge again Under the trees at the turn of the road, And only pausing to fire and load.
So through the night rode Paul Revere; And so through the night went his cry of alarm To every Middlesex village and farm,— A cry of defiance, and not of fear, A voice in the darkness, a knock at the door, And a word that shall echo forevermore! For, borne on the night-wind of the Past, Through all our history, to the last, In the hour of darkness and peril and need, The people will waken and listen to hear The hurrying hoof-beats of that steed, And the midnight message of Paul Revere.
The History of Paul Revere's Ride
In the quiet hours of the night on 18 April, 1775, the air was thick with tension, and the moon cast a ghostly light over the streets of Boston. Paul Revere, a silversmith by trade and a devoted member of the Patriot cause, received a clandestine message from Joseph Warren, one of the leading figures of the Sons of Liberty. Warren had learned that the British Army was preparing to march, and the colonists needed to be alerted. The fate of the fledgling nation rested on their readiness to respond.

As the clock struck a late hour, Revere mounted his horse, his heart racing with fear and resolve. Just days before, whispers of British intentions had filled the taverns and salons of Boston, provoking fears of a crackdown on the Massachusetts Provincial Congress, which had gathered in Concord to strategize their growing resistance. Little did they know how close the enemy was.
Earlier that day, Revere had arranged a plan with Robert Newman, the sexton of the Old North Church, to signal the townspeople. They had devised a simple yet effective code: one lantern if the British came by land, two lanterns if they came by sea. Two lanterns flickered to life in the church tower as the clock struck midnight. This signal traveled through the darkness, setting the stage for the urgent race against time.
Revere crossed the Charles River by rowboat, quietly slipping past the HMS Somerset, the British warship that lay at anchor, obscured by the shadows. The water was cold, but a fire was in his belly, urging him onward. Once he reached Charlestown, he wasted no time, hopping onto his horse, and with a swift kick of the heels, he rode hard towards Lexington. His mission now was to inform the colonists and ignite a spark of rebellion in their hearts.
As he rode through the stillness of the countryside, Revere’s voice cut through the darkness like a clarion call. “The British are coming!” he shouted as he raced from house to house, pounding on doors and waking families—some half-asleep, others terrified. His words were met with disbelief and determination; the Patriots began to rouse from their homes, grasping their muskets and gathering their courage.
In the shadows, his route wound through present-day Somerville, Medford, and Arlington, each town transformed into a center of mobilization. Along the way, he enlisted the help of fellow patriots, men, and boys who shared his fervor for freedom. He encountered familiar faces, and soon, he was not alone; fellow riders joined him, each committed to spreading the urgent news across the land.
As dawn approached, he had company in the form of William Dawes, who had set out on his mission. Together, they galloped toward Lexington, their mounts pounding against the dirt roads, sending dust clouds into the air. But danger lurked around every corner—British patrols were searching for them, tasked with detaining any Patriot who might foil their plans.
In one particularly harrowing moment near Somerville, Revere and Dawes were nearly caught by a British patrol. They ducked and weaved through back alleys, their breath coming in quick gasps as they skillfully evaded capture. During this chaos, Revere remembered the somber sight of a displayed corpse, a local slave who had met a tragic fate, a stark reminder of the turbulent world they were entangled in. It fueled his resolve; this was a personal mission and part of a larger struggle against oppression.
After a narrow escape, they were joined by Samuel Prescott, who would ride with them towards Concord. The three men forged ahead, each bearing the weight of the revolution on their shoulders. They knew the importance of informing their leaders—men like John Hancock and Samuel Adams—who were in danger of capture by the advancing British troops.
The sun began to rise, painting the sky in hues of orange and pink, illuminating the path ahead. The ride to Concord became a symphony of urgency, echoing through the fields and into the colonists' hearts. As they passed through towns, the trio shouted their warnings loud and clear, stirring the spirit of resistance among their fellow countrymen. Soon, Revere’s call to arms became a rallying cry, inspiring many more riders to take up the charge until there were probably as many as 40 riders spreading the news throughout Middlesex County.
When the British troops landed, chaos had turned to action among the colonists. Groups of men gathered in Lexington and Concord, readying themselves for the impending confrontation. When the British Army finally made their way towards Lexington, they were met not with fear but with defiance—a testament to the collective will of the American spirit ignited by Revere’s harrowing ride.
Later, as the coffeehouses and taverns filled with tales of gallantry, the night of 18 April would be immortalized in various forms, including Henry Wadsworth Longfellow’s famous poem, “Paul Revere’s Ride.” Although some details were romanticized in the retelling, the essence of bravery and the fight for freedom remained intact—a spirit that took root in the budding nation.
As we approach the Semiquincentennial of the American Revolution, we remember that fateful night that began a fight for liberty that would resonate through generations. Paul Revere’s midnight ride was more than just a warning; it was a flashpoint for a revolution that sought to carve out a new identity for a nation forged through the fires of courage and sacrifice. It reminds us of the sacrifices made and the enduring love for freedom that binds us all.
About Henry Wadsworth Longfellow

Upon his return, he published his first significant poetry collections, Voices of the Night in 1839 and Ballads and Other Poems in 1841. By the age of 47, Longfellow decided to step away from the classroom, choosing to devote his life to writing. This decision brought him to reside in a historic home in Cambridge, Massachusetts—the very headquarters of George Washington during the Revolutionary War. Here, amidst the echoes of the past, he poured his heart into verses that would resonate for generations.
However, life was not without its sorrows for Longfellow. He faced devastating loss when his first wife, Mary Potter, tragically died in 1835 after a heartbreaking miscarriage. His second wife, Frances Appleton, whom he adored dearly, suffered a tragic fate in 1861 when her dress caught fire, leading to her untimely death. In the wake of such heartache, Longfellow grappled with the words that once flowed so freely from his pen. For a time, he turned his focus to translating works from foreign languages, seeking solace in the voices of other poets.
Longfellow’s writing style was as eclectic as his experiences. He deftly navigated the realms of lyric poetry, experimenting with various forms and structures, including hexameter and free verse. His works sang melodiously, echoing the principles he often articulated: “What a writer asks of his reader is not much to like as to listen.” In these lines, one could hear his deep understanding of poetry as music—a symphony of words meant to flow and resonate.

Though intensely private, Longfellow occasionally let fragments of his life seep into his poetry. Notably, his sorrow after losing his daughter Fanny in 1848 manifested in the poignant poem “Resignation.” It stands as a universal expression of mourning, avoiding the confines of personal pronouns to speak to the collective grief of humanity. Similarly, his tribute to Frances, the haunting sonnet “The Cross of Snow,” remained unpublished during his lifetime, a quiet testament to his enduring love and loss.
Longfellow’s poetry began to embody moral teachings as time passed, moving from overt didacticism to a more nuanced exploration of life’s deeper meanings. In his work, he often employed allegory, portraying death as a mere bedtime for a cranky child in his poem “Nature.” His metaphors drew inspiration from a vast tapestry of legends, myths, and literature, from the haunting tales of Norse mythology expressed in “The Skeleton in Armor “ to the rich folklore of Finnish legends that colored The Song of Hiawatha.

While contemporary American issues often felt distant to him, he longed for a national literature that echoed the vastness and diversity of the land. In his novel Kavanagh, a character expresses this yearning with passion, declaring, “We want a national epic that shall correspond to the size of the country…” This strong advocacy for a uniquely American literary identity illustrated his belief in fostering a vibrant artistic culture.
One of Longfellow’s lasting legacies was his role as a translator. His complete translation of Dante Alighieri’s Divine Comedy set a standard and became a cornerstone for those eager to engage with high culture. Moreover, in 1845, he compiled The Poets and Poetry of Europe. This significant anthology brought the beauty of foreign poetry to American readers, many of whom were otherwise inaccessible to such treasures.
By the time he reached the 1870s, Longfellow took on the ambitious project of overseeing a 31-volume anthology titled Poems of Places, gathering verses from around the world. However, his friend Ralph Waldo Emerson expressed disappointment, finding the endeavor less worthy of Longfellow’s talents, suggesting that he was wasting precious time when he could be crafting original works.

Despite the challenges and the weight of loss he bore, Longfellow remained a beacon of literary brilliance. His words echo through the annals of time, inviting readers to pause, listen, and reflect on the beauty and complexity of life. His legacy endures, a testament to the power of poetry and the deep connections it fosters across generations. Ultimately, Henry Wadsworth Longfellow’s story is one of resilience, artistry, and an unwavering dedication to the written word.
Coming Up...
As we gather to reflect on this 250th anniversary, we honor the courage and resilience of those who fought for their beliefs and freedoms. This isn't just a tale of battles and strategies; it’s a story of the human spirit yearning for liberty, a story that resonates even today.
I invite you to join me on this exploration of the American Revolution—a time when ordinary individuals became extraordinary leaders, taking a stand for future generations. Together, let’s delve into the events that shaped our nation and celebrate the enduring ideals of freedom and justice that continue to inspire us.
Let’s remember the legacy of those brave souls who dared to dream of a better future. Tomorrow, we embark on this enlightening journey together!
See you tomorrow!
NOTE: My thanks to WordPress AI for generating the illustrations for this post. My thanks also to Poetry.com and Wikipedia.com. Thank you to my writing compadres, the Mindful Writers. Thanks to all of my history teachers for igniting in me a love for US History, especially the American Revolution. And to the Daughters of the American Revolution.
Source: The Midnight Ride of Paul Revere: A Revolution Begins
65 notes
·
View notes