
Tartalomjegyzék:
- Kellékek
- 1. lépés: Csatlakoztassa a Digitális meghajtót és a szegmensmeghajtót a többszörös megjelenítéshez
- 2. lépés: Ellenőrizze a kapcsolatokat
- 3. lépés: A megjelenítési idő kódolása és a PWM a fényerő szabályozása
- 4. lépés: Hozzon létre internetkapcsolatot
- 5. lépés: BASIC kód hozzáadása az internetről származó idő elemzéséhez
- 6. lépés: Fényérzékelő és kód hozzáadása a kijelző elsötétítéséhez
- 7. lépés: Gombolja fel az órát, és kezdje el használni
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:47

Találtam egy 10 dolláros digitális órát az Amazon -on. Most testreszabhatja, hogy időt nyerjen az internetről.
Kellékek
A BASIC programozható ARM bélyegző itt érhető el
1. lépés: Csatlakoztassa a Digitális meghajtót és a szegmensmeghajtót a többszörös megjelenítéshez

Kezdtem egy olcsó polcról készült nagyszámú digitális órával. Először eltávolítottam a meglévő óralapot. Ezután némi szondázást végeztek, és megtalálták a 7 szegmenses csatlakozást, amelyeket közvetlenül a mikroprocesszor hajthat meg. Ezután megtalálta a 4 számjegyű illesztőprogramokat, amelyek tranzisztorok voltak, amelyeket a mikroprocesszor képes meghajtani. És akkor bekötötte ezeket.
2. lépés: Ellenőrizze a kapcsolatokat

Kísérletként írtam egy BASIC programot az összes vezeték meghajtására, a vezetékek ellenőrzésére és az áram mérésére, ami ebben az esetben 82 mA volt
Következő lépésként a sorok beolvasásához szükséges kódot kellett írni.
'webes órameghajtó
IO (7) = 0 'PMOS meghajtó - egyszer PWM lesz
y = 45 és 48 között
IO (y) = 0 'számjegyű meghajtó
x = 8-15
IO (x) = 0 'szegmenshajtás
várj (500)
IO (x) = 1
következő x
DIR (y) = 0 'a hajtás letiltása a szegmensen
következő y
3. lépés: A megjelenítési idő kódolása és a PWM a fényerő szabályozása


Ezután hozzáadtam egy PMOS tranzisztort a tápegységhez az összes számjegyű illesztőprogramhoz. Ezzel az impulzusszélesség -moduláció vezérli a kijelző fényerejét. Itt az alapkód az idő megjelenítéséhez.
'webóra kijelző meghajtó #include "LPC11U3x.bas"
'globális
hr = 0 'az óra meghatározása
min = 0 'perc meghatározása
#define SEG_0 & HBB00
#define SEG_1 és H1800
#define SEG_2 és HD300
#define SEG_3 és HD900
#define SEG_4 & H7800
#define SEG_5 és HE900
#define SEG_6 és 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, hr, min)
halvány hr10, hr1, min10, min1, i
#ifdef US_TIME
ha hr> 12, akkor hr -= 12
ha hr = 0, akkor hr = 12
#endif
óra 10 = óra / 10
hr1 = óra MOD 10
min10 = perc / 10
min1 = min MOD 10
mert i = 0-1
ha hr10 akkor
IO (45) = 0
endif
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (10. óra)
GPIO_CLR (0) = DIGarray (óra 10)
várj (DIG_WAIT)
BEMENET (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)
várj (DIG_WAIT)
BEMENET (46)
IO (47) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min10)
GPIO_CLR (0) = DIGarray (min10)
várj (DIG_WAIT)
BEMENET (47)
IO (48) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min1)
GPIO_CLR (0) = DIGarray (min1)
várj (DIG_WAIT)
BEMENET (48)
következő i
Endsub
'TIMER1 felhasználó (32 bites) minden perc megszakításához
MEGSZAKÍTOTT SUB TIMER1IRQ
T1_IR = 1 'Megszakítás törlése
min += 1
ha min> 59 akkor
min = 0
óra += 1
ha hr> 23 akkor
óra = 0
endif
endif
ENDSUB
SUB ON_TIMER (max_cnt, dothis)
TIMER1_ISR = a VIC + 1 'funkciója - szükség van a +1 -re a hüvelykujj működéséhez
SYSCON_SYSAHBCLKCTRL VAGY = (1 << 10) 'TIMER1 engedélyezése
T1_PR = 0 'nincs előskála - az értéket a pontosabb idő érdekében állítja be
VICIntEnable OR = (1 << TIMER1_IRQn) 'A megszakítás engedélyezése
T1_MR0 = max_cnt-1 'állítsa be az egyezési számú ms-ot
T1_MCR = 3 'Megszakítás és visszaállítás bekapcsolva
MR0 T1_IR = 1 'világos megszakítás
T1_TC = 0 'időzítő számláló törlése
T1_TCR = 1 'TIMER1 Engedélyezés
ENDSUB
#define MINUT_PCLK 2880000000 '60 másodperc 48 MHz -en
fő:
óra = 9
min = 33
ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)
IO (7) = 0 'PWM egy nap - át kell lépni a P0_22 -re ??
míg 1
display_time (0, óra, perc)
hurok
4. lépés: Hozzon létre internetkapcsolatot

Használjon ESP8266 -ot WiFi kapcsolathoz. Miután egy ideig a weben böngésztem, a legjobb megoldás a nodemcu 0.9.6 verziója volt, és egy régebbi esp8266_flasher működött a legjobban.
www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip
Ezután egy egyszerű PHP weboldal, amely időt tölthet az internetről-
Coridium időszerver
<? php
$ timezone = htmlspecialchars ($ _ GET ["zone"]); ha ($ timezone == "")
$ timezone = 'Amerika/Los_Angeles';
$ tz_object = new DateTimeZone ($ timezone);
$ datetime = new DateTime ();
$ datetime-> setTimezone ($ tz_object);
echo "az idő is-", $ datetime-> formátum ('H: i: s');
visszhang "";
echo "date is-", $ datetime-> formátum ('m/d/Y');
?>
Ez a weboldal így kérhető
coridium.us/time.php - és megkapja az amerikai csendes -óceáni időzónát
vagy
coridium.us/time.php?zone=Europe/London
Nincs hibaellenőrzés, és valószínűleg soha nem is lesz
És a Lua ezt olvassa -
wifi.sta.config ("a_SSID -azonosító", "a_JELSZÓ")> wifi.sta.connect ()…
sk = net.createConnection (net. TCP, 0)
sk: on ("fogadás", függvény (sck, c) print (c) end)
sk: connect (80, "coridium.us")
sk: send ("GET /time.php HTTP/1.1 / r / nHost: coridium.us / r / nKapcsolat: életben marad / r / nElvétel: */ *\ r / n / r / n")
És visszakapod az időt
az idő-09: 38: 49dátum: 2018. 12. 12.
5. lépés: BASIC kód hozzáadása az internetről származó idő elemzéséhez

Ez a teljes BASIC program részhalmaza, amely a teljes program megtekinthető az utolsó lépés linkjén.
ha strstr (build_gets, "time is-") = 0 akkor
hr = build_gets (8) - "0"
ha build_gets (9) = ":" akkor
min = (build_gets (10) - "0")*10
min += build_gets (11) - "0"
más
hr = hr * 10 + build_gets (9) - "0"
min = (build_gets (11) - "0")*10
min += build_gets (12) - "0"
endif
endif
6. lépés: Fényérzékelő és kód hozzáadása a kijelző elsötétítéséhez



Fénytranzisztor került a helyiség környezeti fényének érzékelésére. Enélkül a kijelző elég világos ahhoz, hogy éjszaka felébressze a halottakat (engem).
A fototranzisztor kimenetének analóg feszültsége kiolvasásra kerül, és az impulzusszélesség -moduláció beállítja a kijelző teljes fényerejét.
7. lépés: Gombolja fel az órát, és kezdje el használni

A végleges verzió megjeleníti az időt, és hajnali 3 óra körül az internetre megy, hogy leolvassa az aktuális időt. Ez a nappali fénytakarékos időt is kezeli.
Ennek a projektnek a motivációja az áramkimaradások voltak, amelyeket itt, a hegyekben tapasztalunk, és az óra visszaállításának vagy az elemek cseréjének szükségessége, hogy életben maradjanak.
Ez egy gyors áttekintés a projektről.
Ennek a DIY webes órának a részletei.
Ajánlott:
Digitális óra LED pontmátrix - ESP Matrix Android App: 14 lépés

Digitális óra LED pontmátrix - ESP Matrix Android App: Ezt a cikket büszkén szponzorálja a PCBWAY. A PCBWAY kiváló minőségű prototípus -készítő PCB -ket készít a világ minden tájáról. Próbálja ki Ön is, és szerezzen 10 PCB -t mindössze 5 dollárért a PCBWAY -n, nagyon jó minőségben, köszönöm PCBWAY. Az általam kidolgozott ESP Matrix Board
Analóg óra és digitális óra készítése LED csíkkal az Arduino használatával: 3 lépés

Hogyan készítsünk analóg órát és digitális órát LED csíkkal az Arduino használatával: Ma analóg órát készítünk & Digitális óra LED szalaggal és MAX7219 Dot modul Arduino -val. Ez korrigálja az időt a helyi időzónával. Az analóg óra hosszabb LED csíkot használhat, így a falra akasztva műalkotássá válhat
Hogyan kell lebontani a digitális féknyerget és hogyan működik a digitális féknyereg: 4 lépés

Hogyan kell lebontani a digitális féknyerget és hogyan működik a digitális féknyereg: Sokan tudják, hogyan kell a féknyerget használni a méréshez. Ez az oktatóanyag megtanítja, hogyan kell lebontani a digitális féknyerget, és elmagyarázza, hogyan működik a digitális féknyereg
Internetes internetes bolt sztereóvá tétele: 6 lépés (képekkel)

Sztereó internetkapcsolat létrehozása: Amikor bekapcsolom a rádiót vezetés közben, a helyi egyetemi rádióállomáshoz fordulok, 90,7 KALX. Az évek során és a különböző helyeken, ahol éltem, mindig hallgattam az egyetemi rádióállomásokat. Az internet erejének köszönhetően most már hallgathatom
ESP8266 Hálózati óra RTC nélkül - Nodemcu NTP óra Nem RTC - INTERNET ÓRA PROJEKT: 4 lépés

ESP8266 Hálózati óra RTC nélkül | Nodemcu NTP óra Nem RTC | INTERNET ÓRA PROJEKT: A projektben óra projektet készítenek RTC nélkül, időbe telik az internet az wifi használatával, és megjeleníti az st7735 kijelzőn