Obsah:
- Zásoby
- Krok 1: Připojte digitální jednotku a segmentovou jednotku pro multiplexní zobrazení
- Krok 2: Otestujte připojení
- Krok 3: Kód pro zobrazení času a PWM pro ovládání jasu
- Krok 4: Vytvořte připojení k internetu
- Krok 5: Přidejte ZÁKLADNÍ kód k analýze času z webu
- Krok 6: Přidejte světelný senzor a kód pro ztlumení displeje
- Krok 7: Vypněte hodiny a začněte je používat
Video: Webové digitální hodiny: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Na Amazonu byly nalezeny digitální hodiny za 10 $. Nyní jej přizpůsobte, abyste získali čas z internetu.
Zásoby
ARM Stamp programovatelný v BASICu k dispozici zde
Krok 1: Připojte digitální jednotku a segmentovou jednotku pro multiplexní zobrazení
Začal jsem levnými digitálními hodinami z regálu. Nejprve jsem odstranil stávající hodinový čip. Poté provedli nějaké průzkumy a lokalizovali 7 segmentová připojení, která mohou být řízena přímo mikroprocesorem. Poté byly nalezeny 4místné ovladače, což byly tranzistory, které může mikroprocesor řídit. A pak je zapojil.
Krok 2: Otestujte připojení
Jako experiment jsem napsal ZÁKLADNÍ program pro řízení všech vedení, kontrolu zapojení a měření proudu, který v tomto případě činil 82 mA
Další bylo napsat kód pro skenování řádků.
'zobrazovací jednotka webových hodin
IO (7) = 0 'pohon PMOS - jednou bude PWM
pro y = 45 až 48
IO (y) = 0 'číslicová jednotka
pro x = 8 až 15
IO (x) = 0 'segmentový pohon
počkej (500)
IO (x) = 1
další x
DIR (y) = 0 'deaktivuje pohon na segmentu
další y
Krok 3: Kód pro zobrazení času a PWM pro ovládání jasu
Dále jsem přidal tranzistor PMOS do napájecího zdroje ke všem digitálním ovladačům. Díky tomu bude pulsně šířková modulace ovládat jas displeje. Zde je ZÁKLADNÍ kód pro zobrazení času.
'zobrazovací jednotka webových hodin #zahrnout "LPC11U3x.bas"
'globálové
hr = 0 'definuje hodinu
min = 0 'definuje minutu
#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
#definovat US_TIME
dílčí čas zobrazení (err, hr, min)
stmívání hr10, hr1, min10, min1, i
#ifdef US_TIME
pokud hr> 12, pak hr -= 12
pokud hr = 0, pak hr = 12
#endif
hr10 = hr / 10
hr1 = hr MOD 10
min10 = min / 10
min1 = min MOD 10
pro i = 0 až 1
když hr10 tak
IO (45) = 0
endif
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (hr10)
GPIO_CLR (0) = DIGarray (hr10)
počkat (DIG_WAIT)
VSTUP (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)
počkat (DIG_WAIT)
VSTUP (46)
IO (47) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min10)
GPIO_CLR (0) = DIGarray (min10)
počkat (DIG_WAIT)
VSTUP (47)
IO (48) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min1)
GPIO_CLR (0) = DIGarray (min1)
počkat (DIG_WAIT)
VSTUP (48)
příště já
endub
'uživatel TIMER1 (32 bitů) k přerušení každé minuty
PŘERUŠIT SUB TIMER1IRQ
T1_IR = 1 'Vymazat přerušení
min += 1
pokud min> 59, pak
min = 0
hr += 1
pokud hr> 23 pak
hr = 0
endif
endif
ENDSUB
SUB ON_TIMER (max_cnt, dothis)
TIMER1_ISR = dothis + 1 'set function of VIC - need the +1 for Thumb operation
SYSCON_SYSAHBCLKCTRL NEBO ((1 << 10) 'povolit TIMER1
T1_PR = 0 'no prescale - upraví hodnotu pro přesnější čas
VICIntEnable NEBO ((1 << TIMER1_IRQn) 'Povolit přerušení
T1_MR0 = max_cnt-1 'nastavuje počet shod ms
T1_MCR = 3 'Přerušení a reset zapnutý
MR0 T1_IR = 1 'jasné přerušení
T1_TC = 0 'vymazat počítadlo časovače
T1_TCR = 1 'TIMER1 povoleno
ENDSUB
#define MINUT_PCLK 2880000000 '60 sekund při 48 MHz
hlavní:
hod = 9
min = 33
ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)
IO (7) = 0 'PWM nějaký den - je třeba přejít na P0_22 ??
zatímco 1
display_time (0, hod, min)
smyčka
Krok 4: Vytvořte připojení k internetu
Pro připojení WiFi použijte ESP8266. Poté, co chvíli pobíhal po webu, bylo nejlepším řešením nodemcu verze 0.9.6 a nejlépe fungoval starší esp8266_flasher.
www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip
Pak jednoduchá webová stránka PHP, která slouží času z internetu-
Časový server Coridium
<? php
$ timezone = htmlspecialchars ($ _ GET ["zóna"]); if ($ timezone == "")
$ timezone = 'Amerika/Los_Angeles';
$ tz_object = nové DateTimeZone ($ časové pásmo);
$ datetime = new DateTime ();
$ datetime-> setTimezone ($ tz_object);
echo "time is-", $ datetime-> format ('H: i: s');
echo "";
echo "date is-", $ datetime-> format ('m/d/Y');
?>
Tato webová stránka je, takže můžete požádat
coridium.us/time.php - a dobře získáte časové pásmo USA v Pacifiku
nebo
coridium.us/time.php?zone=Europe/London
Žádná kontrola chyb a pravděpodobně nikdy nebude
A Lua, aby si to přečetl -
wifi.sta.config ("your_SSID", "your_PASSWORD")> wifi.sta.connect ()…
sk = net.createConnection (net. TCP, 0)
sk: on ("příjem", funkce (sck, c) tisk (c) konec)
sk: connect (80, „coridium.us“)
sk: send ("GET /time.php HTTP/1.1 / r / nHost: coridium.us / r / nConnection: keep-live / r / nAccept: */ *\ r / n / r / n")
A vrátíte čas jako
čas je-09: 38: 49 datum je-2018-31-12
Krok 5: Přidejte ZÁKLADNÍ kód k analýze času z webu
Toto je podmnožina úplného ZÁKLADNÍHO programu, který lze v posledním kroku zobrazit na odkazu.
if strstr (build_gets, "time is-") = 0 then
hr = build_gets (8) - "0"
if build_gets (9) = ":" then
min = (build_gets (10) - "0")*10
min += build_gets (11) - "0"
jiný
hr = hr * 10 + build_gets (9) - "0"
min = (build_gets (11) - "0")*10
min += build_gets (12) - "0"
endif
endif
Krok 6: Přidejte světelný senzor a kód pro ztlumení displeje
Byl přidán fotografický tranzistor pro snímání okolního světla v místnosti. Bez něj je displej dostatečně jasný na to, aby v noci probudil mrtvé (mě).
Je načteno analogové napětí na výstupu fototranzistoru a modulace šířky pulsu nastavuje celkový jas displeje.
Krok 7: Vypněte hodiny a začněte je používat
Konečná verze zobrazuje čas a přibližně ve 3 hodiny ráno vychází na web a čte aktuální čas. To také zvládá úsporu času.
Motivací pro tento projekt byly výpadky proudu, které zde v horách zažíváme, a potřeba resetovat hodiny nebo vyměnit baterie, aby byly naživu.
Toto byl rychlý přehled projektu.
Úplné podrobnosti o těchto DIY web připojených hodinách.
Doporučuje:
Digitální hodiny LED Dot Matrix - aplikace ESP Matrix pro Android: 14 kroků
Digitální hodiny LED Dot Matrix - aplikace ESP Matrix pro Android: Tento článek je hrdě sponzorován společností PCBWAY. PCBWAY vyrábí vysoce kvalitní prototypy desek plošných spojů pro lidi z celého světa. Vyzkoušejte to sami a získejte 10 PCB za pouhých 5 $ na PCBWAY ve velmi skvělé kvalitě, díky PCBWAY. Deska ESP Matrix Board, kterou vyvíjím
Jak vyrobit analogové hodiny a digitální hodiny s LED páskem pomocí Arduina: 3 kroky
Jak vyrobit analogové hodiny a digitální hodiny s LED páskem pomocí Arduina: Dnes vyrobíme analogové hodiny & Digitální hodiny s LED páskem a modulem MAX7219 Dot s Arduino. Budou opravovat čas podle místního časového pásma. Analogové hodiny mohou používat delší LED pásek, takže je lze zavěsit na zeď a stát se uměleckým
Digitální hodiny, ale bez mikrokontroléru [hardcore elektronika]: 13 kroků (s obrázky)
Digitální hodiny, ale bez mikrokontroléru [Hardcore Electronics]: Stavět obvody s mikrokontrolérem je docela snadné, ale úplně zapomínáme na spoustu práce, kterou musel mikrokontrolér vykonat, aby dokončil jednoduchý úkol (i když bliká LED). Jak těžké by bylo vytvořit kompletní digitální hodiny
CLEPCIDRE: Digitální hodiny Cider Bottles: 8 kroků (s obrázky)
CLEPCIDRE: Digitální hodiny Cider Bottles: Než se ponořím do popisu objektu, musím vysvětlit kontext, ve kterém byl navržen a postaven. Moje žena je výtvarnice a pracuje v zásadě s hlínou, jako keramička, ale také s jinými materiály, jako je dřevo, břidlice nebo sklo. Ve většině jejích
Webové připojení SMART LED animační hodiny s webovým ovládacím panelem, synchronizace časového serveru: 11 kroků (s obrázky)
Webově propojené SMART LED animační hodiny S webovým ovládacím panelem, synchronizovaný časový server: Příběh těchto hodin sahá daleko do minulosti-více než 30 let. Můj otec byl průkopníkem této myšlenky, když mi bylo pouhých 10 let, dlouho před revolucí LED - tehdy, když LED diody dosahovaly 1/1 000 jasu jejich aktuálního oslepujícího lesku. Pravda