Inhaltsverzeichnis:

Noch eine weitere Uhr - Gunook
Noch eine weitere Uhr - Gunook

Video: Noch eine weitere Uhr - Gunook

Video: Noch eine weitere Uhr - Gunook
Video: Diese macOS Einstellungen solltest du SOFORT ändern (macOS Monterey)! | Nils-Hendrik Welk 2024, Juli
Anonim
Noch eine andere Uhr
Noch eine andere Uhr

Wie aus meinen vorherigen Uploads hervorgeht, habe ich einige 7-Segment-Anzeigetafeln von einigen alten Wiegegeräten erhalten.

Meine vorherigen Bemühungen verwendeten ein Arduino mit einem Echtzeituhrmodul.

Dieses Instructable verwendet einen ESP8266 D1 Mini, der mit einem NTP-Server verbunden ist!

Der Code basiert auf einem Beispiel aus der ESP8266WiFi-Bibliothek.

Auf die Verkabelung der 7-Segment-Anzeige werde ich nicht näher eingehen, da es im Netz Dutzende von Beispielen gibt. Die 2 Karten, die ich habe, verwenden den MAX7219-Decodertreiberchip, diese benötigen nur 3 Pins, um bis zu 8 x 7-Segment-Anzeigen zu steuern.

Ich wollte auch das Datum anzeigen, also wurden noch 3 Pins benötigt!

Ich brauchte weitere 7 Ausgänge, um den Tag anzuzeigen! Um den Mangel an Ausgangspins zu umgehen, habe ich ein Neo Pixel Display gewählt, 1 Pin, 7 Ausgänge!

Schritt 1: Die Hardware

Die Hardware
Die Hardware
Die Hardware
Die Hardware
Die Hardware
Die Hardware

Benötigte Teile

12 x 7-Segment-Anzeigen (in meinem Fall hatte ich das große Glück, ein paar alte Waagenplatinen zu haben, die sehr viel Verkabelung gespart haben.

1 x ESP8266 D1 Mini ODER ein ESP8266 mit 7 oder mehr digitalen Ausgängen

2 x MAX7129 (Wieder hatte ich das Glück, die Anzeigetafeln der Waage zu haben)

1 x gerades 8 NeoPixel-Display

2 x Level-Shifter

1 x 5V Netzteil

Schritt 2: Die DAY-Anzeige

Die DAY-Anzeige
Die DAY-Anzeige
Die DAY-Anzeige
Die DAY-Anzeige

Dafür habe ich einen Teil einer alten Kreditkarte für die Basis verwendet, etwas dicke Karte (in meinem Fall 300gsm Fotopapier) und etwas doppelseitiges Klebeband.

Es sind nur 2 Streifen des Bandes mit Schlitzen, die mit einem Cuttermesser geschnitten wurden. Der Abstand ist der Abstand zwischen den LEDs auf der NeoPixel-Platine.

Dünne Streifen der Karte werden verwendet, um für jeden Tag einen Kanal zu erstellen.

Die Tagesnamen werden mit einem Dymo-Etikettendrucker auf durchsichtigem Klebeband gedruckt.

Schritt 3: Anschließen und die Software

Die ESP8266-Produktpalette ist ausgezeichnet aufgrund von

a) Sie sind spottbillig

b) Sie benötigen sehr wenige externe Komponenten

Ich brauchte 5V für die Displays und 3V für das ESP, also habe ich ein paar Levelshifter mit einem 5V-Netzteil verwendet.

Der MAX7219 benötigt nur 3 Pins um bis zu 8 Displays anzusteuern, das sind Pins 1 (Din), 12 (Load/CS) & 13 (Clock).

Diese sind über einen Levelshifter verbunden.

Der Code lautet wie folgt:

// Eingänge: DIN-Pin, CLK-Pin, LOAD-Pin. Anzahl der ChipsLedControl mydisplay = LedControl(3, 2, 1, 1)

LedControl datedisp = LedControl(7, 6, 5, 1);

Die Anzahl der Chips ist auf 1 festgelegt, da ich die 2 Displays als separate Elemente behandle, anstatt den DOUT zu verwenden und sie zu kaskadieren.

Der NeoPixel ist an den Digitalausgang 4. angeschlossen

#definiere PIN 4

#define NUMPIXELS 7 (Ignoriert 1 der 8 LEDs)

Es gibt ein paar #includes, die alle auf GitHub zu finden sind.

Router SSID & PASSWORD müssen eingegeben und ein NTP-Server ausgewählt werden (ich habe kostenlose NTP-Server gegoogelt).

Schritt 4: Beim Einschalten

Beim Einschalten werden die NeoPixel-LEDs durchgewellt, dann zeigen die 7-Segment-Anzeigen abwechselnd 'c' und '8' an, bis eine Verbindung zum Router hergestellt wird.

Wenn alle Segmente eine Konstante c8 anzeigen, bedeutet dies, dass keine NTP-Serververbindung hergestellt wurde, ein Reset sollte dies beheben.

Sobald eine Verbindung hergestellt ist, werden Uhrzeit & Datum angezeigt, der Tag wird durch eine blaue LED angezeigt.

Empfohlen: