Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Verbinden Sie Digit Drive und Segment Drive für Multiplexed Display
- Schritt 2: Testen Sie die Verbindungen
- Schritt 3: Code zur Anzeige der Zeit und PWM zur Steuerung der Helligkeit
- Schritt 4: Stellen Sie eine Internetverbindung her
- Schritt 5: BASIC-Code hinzufügen, um die Zeit aus dem Web zu analysieren
- Schritt 6: Fügen Sie einen Lichtsensor und einen Code hinzu, um das Display zu dimmen
- Schritt 7: Drücken Sie die Uhr auf und beginnen Sie mit der Verwendung
Video: Mit dem Internet verbundene Digitaluhr - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Habe bei Amazon eine Digitaluhr im Wert von 10 US-Dollar gefunden. Jetzt können Sie es anpassen, um die Zeit aus dem Internet zu erhalten.
Lieferungen
ARM Stamp programmierbar in BASIC hier erhältlich
Schritt 1: Verbinden Sie Digit Drive und Segment Drive für Multiplexed Display
Ich begann mit einer billigen Digitaluhr mit großen Zahlen von der Stange. Zuerst habe ich den vorhandenen Uhrenchip entfernt. Dann habe etwas herumgeprobt und die 7-Segment-Anschlüsse lokalisiert, die direkt vom Mikroprozessor angesteuert werden können. Dann fanden die 4-stelligen Treiber, die Transistoren waren, die der Mikroprozessor ansteuern kann. Und die dann verkabelt.
Schritt 2: Testen Sie die Verbindungen
Als Experiment habe ich ein BASIC-Programm geschrieben, um alle Leitungen zu steuern, die Verdrahtung zu überprüfen und den Strom zu messen, der in diesem Fall 82 mA betrug
Als nächstes musste der Code geschrieben werden, um die Zeilen zu scannen.
'Webuhr-Display-Laufwerk
IO(7)=0 'PMOS-Laufwerk - wird eines Tages PWM sein
für y=45 bis 48
IO(y)=0 ' Ziffernlaufwerk
für x=8 bis 15
IO(x)=0 ' Laufwerk segmentieren
warte(500)
E/A(x)=1
nächstes x
DIR(y)=0 ' Laufwerk auf Segment deaktivieren
als nächstes
Schritt 3: Code zur Anzeige der Zeit und PWM zur Steuerung der Helligkeit
Als nächstes fügte ich allen Zifferntreibern einen PMOS-Transistor in der Stromversorgung hinzu. Mit diesem durch Pulsweitenmodulation gesteuert wird die Helligkeit des Displays gesteuert. Hier ist der BASIC-Code zum Anzeigen der Uhrzeit.
' Webuhr-Display-Laufwerk #include "LPC11U3x.bas"
"Globale"
hr = 0 ' Stunde definieren
min = 0 ' Minute definieren
#define SEG_0 &HBB00
#define SEG_1 &H1800
#define SEG_2 &HD300
#define SEG_3 &HD900
#define SEG_4 &H7800
#define SEG_5 &HE900
#define SEG_6 &HEB00
#define SEG_7 &H9800
#define SEG_8 &HFB00
#define SEG_9 &HF800
#define SEG_o &H4B00
#define SEG_f &HE200
const DIGarray = { SEG_0, SEG_1, SEG_2, SEG_3, SEG_4, SEG_5, SEG_6, SEG_7, SEG_8, SEG_9, SEG_o, SEG_f }
#define DIG_WAIT 1
#define US_TIME
sub display_time(err, h, min)
dim Std10, Std1, Min10, Min1, i
#ifdef US_TIME
wenn Std > 12 dann Std -= 12
wenn Std = 0 dann Std = 12
#endif
h10 = h / 10
h1 = h MOD 10
min10 = min / 10
min1 = min MOD 10
für i=0 bis 1
wenn hr10 dann
IO(45) = 0
endif
GPIO_DIR(0) = (GPIO_DIR(0) & HFFFF00FF) + DIGarray(hr10)
GPIO_CLR(0) = DIGarray(hr10)
warte(DIG_WAIT)
EINGANG(45)
IO(46) = 0
GPIO_DIR(0) = (GPIO_DIR(0) &HFFFF00FF) + DIGArray(hr1) + IF(i, &H400, 0)
GPIO_CLR(0) = DIGarray(hr1) + IF(i, &H400, 0)
warte(DIG_WAIT)
EINGANG(46)
IO(47) = 0
GPIO_DIR(0) = (GPIO_DIR(0) &HFFFF00FF) + DIGarray(min10)
GPIO_CLR(0) = DIGArray(min10)
warte(DIG_WAIT)
EINGANG(47)
IO(48) = 0
GPIO_DIR(0) = (GPIO_DIR(0) &HFFFF00FF) + DIGarray(min1)
GPIO_CLR(0) = DIGArray(min1)
warte(DIG_WAIT)
EINGANG(48)
als nächstes ich
End Sub
' Benutzer TIMER1 (32 Bit) um jede Minute zu unterbrechen
INTERRUPT SUB TIMER1IRQ
T1_IR = 1 ' Unterbrechung löschen
min += 1
wenn min > 59 dann
min = 0
Std. += 1
wenn Std > 23 dann
Stunde = 0
endif
endif
END SUB
SUB ON_TIMER (max_cnt, dothis)
TIMER1_ISR = dothis + 1 'Funktion von VIC einstellen -- benötige die +1 für den Daumenbetrieb
SYSCON_SYSAHBCLKCTRL OR= (1<<10) ' TIMER1 aktivieren
T1_PR = 0 'keine Vorskalierung - passt den Wert für eine genauere Zeit an
VICIntEnable OR= (1<<TIMER1_IRQn) 'Interrupt aktivieren
T1_MR0 = max_cnt-1 ' Übereinstimmungszahl von ms einrichten
T1_MCR = 3 ' Interrupt und Reset ein
MR0 T1_IR = 1 ' Unterbrechung löschen
T1_TC = 0 ' Timerzähler löschen
T1_TCR = 1 ' TIMER1 aktivieren
END SUB
#define MINUT_PCLK 2880000000 ' 60 Sekunden bei 48 MHz
hauptsächlich:
Std. = 9
min = 33
ON_TIMER(MINUT_PCLK, ADRESSOF TIMER1IRQ)
IO(7) = 0 'PWM eines Tages - müssen Sie zu P0_22 wechseln??
während 1
display_time(0, h, min)
Schleife
Schritt 4: Stellen Sie eine Internetverbindung her
Verwenden Sie einen ESP8266 für eine WLAN-Verbindung. Nachdem ich eine Weile im Web herumstöberte, war die beste Lösung die Nodemcu-Version 0.9.6 und ein älterer esp8266_flasher funktionierte am besten.
www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip
Dann eine einfache PHP-Webseite, um Zeit aus dem Internet zu bedienen -
Coridium-Zeitserver
<?php
$timezone = htmlspecialchars($_GET["zone"]); if ($Zeitzone == "")
$timezone = 'Amerika/Los_Angeles';
$tz_object = new DateTimeZone($timezone);
$datetime = neue DateTime();
$datetime->setTimezone($tz_object);
echo "time is-", $datetime->format('H:i:s');
Echo "";
echo "Datum ist-", $datetime->format('m/d/Y');
?>
Diese Webseite ist so, dass Sie sie anfordern können
coridium.us/time.php -- und Sie erhalten die Zeitzone des US-Pazifiks
oder
coridium.us/time.php?zone=Europe/London
Keine Fehlerüberprüfung und wahrscheinlich auch nie
Und die Lua, um das zu lesen –
wifi.sta.config("Ihre_SSID", "Ihr_PASSWORT")> wifi.sta.connect() …
sk=net.createConnection(net. TCP, 0)
sk:on("receive", function(sck, c) print(c) end)
sk:connect(80, "coridium.us")
sk:send("GET /time.php HTTP/1.1\r\nHost: coridium.us\r\nVerbindung: keep-alive\r\nAkzeptieren: */*\r\n\r\n")
Und du bekommst die Zeit zurück als
Zeit ist-09:38:49Datum ist 31.12.2018
Schritt 5: BASIC-Code hinzufügen, um die Zeit aus dem Web zu analysieren
Dies ist eine Teilmenge des vollständigen BASIC-Programms, das im letzten Schritt unter dem Link angezeigt werden kann.
if strstr(build_gets, "time is-") = 0 then
hr = build_gets(8) - "0"
if build_gets(9) = ":" dann
min = (build_gets(10) - "0")*10
min += build_gets(11) - "0"
anders
Std = Std * 10 + build_gets(9) - "0"
min = (build_gets(11) - "0")*10
min += build_gets(12) - "0"
endif
endif
Schritt 6: Fügen Sie einen Lichtsensor und einen Code hinzu, um das Display zu dimmen
Ein Fototransistor wurde hinzugefügt, um das Umgebungslicht im Raum zu erfassen. Ohne sie ist das Display hell genug, um nachts die Toten (mich) zu wecken.
Die analoge Spannung am Ausgang des Fototransistors wird gelesen und die Pulsweitenmodulation stellt die Gesamthelligkeit des Displays ein.
Schritt 7: Drücken Sie die Uhr auf und beginnen Sie mit der Verwendung
Die endgültige Version zeigt die Uhrzeit an und geht gegen 3 Uhr morgens ins Internet, um die aktuelle Uhrzeit abzulesen. Dadurch wird auch die Sommerzeit berücksichtigt.
Die Motivation für dieses Projekt waren die Stromausfälle, die wir hier in den Bergen erleben und die Notwendigkeit, Uhren umzustellen oder Batterien zu ersetzen, um sie am Leben zu erhalten.
Dies war ein schneller Überblick über das Projekt.
Alle Details zu dieser DIY-Web-verbundenen Uhr.
Empfohlen:
DIY So zeigen Sie die Zeit auf dem M5StickC ESP32 mit Visuino an - Einfach zu tun: 9 Schritte
DIY So zeigen Sie die Zeit auf dem M5StickC ESP32 mit Visuino an - Einfach zu machen: In diesem Tutorial lernen wir, wie Sie den ESP32 M5Stack StickC mit Arduino IDE und Visuino programmieren, um die Zeit auf dem LCD anzuzeigen
Smart B.A.L (verbundene Mailbox): 4 Schritte
Smart B.A.L (Connected Mailbox): Sie haben es satt, jedes Mal Ihre Mailbox zu überprüfen, während sich nichts darin befindet. Sie möchten wissen, ob Sie während einer Reise Ihre Post oder ein Paket erhalten. Es benachrichtigt Sie, wenn der Postbote eine Post oder eine Par
Uhrzeit und Datum aus dem Internet abrufen - Tutorial: 9 Schritte
Abrufen von Uhrzeit und Datum aus dem Internet - Tutorial: In diesem Tutorial erfahren Sie, wie Sie mit M5Stack StickC und Visuino das Datum und die Uhrzeit vom NIST TIME-Server abrufen. Sehen Sie sich ein Demonstrationsvideo an
Eine Digitaluhr herstellen – wikiHow
Wie man eine Digitaluhr macht: Dies ist das erste Mal, dass ich ein Instructable schreibe, also schreibe ich hoffentlich gut genug, damit Sie es verstehen. Heute erzähle ich Ihnen, wie Sie eine Digitaluhr von einer Website, die ich gefunden habe, herstellen können. Die Website heißt sainsmart.com. Es war ganz einfach
Verbundene LED-Lampen - IoT-Projekte: 7 Schritte (mit Bildern)
Verbundene LED-Lampen | IoT-Projekte: Dies ist nicht nur eine weitere gravierte LED-Lampe, die Sie heutzutage auf dem Markt sehen. Dies ist eine erweiterte Version dieser Lampen. Im Zeitalter der vernetzten Geräte habe ich meine eigenen vernetzten Lampen hergestellt. Dieses Projekt ist von einem Produkt namens Filimin inspiriert: