Obsah:
- Zásoby
- Krok 1: Pripojte digitálny disk a segmentový disk pre multiplexované zobrazenie
- Krok 2: Otestujte pripojenia
- Krok 3: Kód na zobrazenie času a PWM na ovládanie jasu
- Krok 4: Vytvorte internetové pripojenie
- Krok 5: Pridajte ZÁKLADNÝ kód na analýzu času z webu
- Krok 6: Pridajte svetelný senzor a kód na stmavenie displeja
- Krok 7: Zapnite hodiny a začnite ich používať
Video: Webové digitálne hodiny: 7 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Na Amazone sa našli digitálne hodiny za 10 dolárov. Teraz si to prispôsobte a získajte čas z internetu.
Zásoby
Známka ARM programovateľná v ZÁKLADE je k dispozícii tu
Krok 1: Pripojte digitálny disk a segmentový disk pre multiplexované zobrazenie
Začal som lacnými veľkoplošnými digitálnymi hodinami. Najprv som odstránil existujúci hodinový čip. Potom sa sondovalo a lokalizovalo 7 segmentových spojení, ktoré je možné ovládať priamo mikroprocesorom. Potom sa našli 4 -miestne ovládače, ktoré boli tranzistormi, ktoré môže mikroprocesor poháňať. A potom ich zapojil.
Krok 2: Otestujte pripojenia
Ako experiment som napísal ZÁKLADNÝ program na riadenie všetkých vedení, kontrolu zapojenia a meranie prúdu, ktorý v tomto prípade bol 82 mA
Ďalej bolo napísanie kódu na skenovanie riadkov.
„jednotka zobrazovania webových hodín
IO (7) = 0 'pohon PMOS - jedného dňa bude PWM
pre y = 45 až 48
IO (y) = 0 -miestna jednotka
pre x = 8 až 15
IO (x) = 0 'segmentový pohon
počkať (500)
IO (x) = 1
ďalšie x
DIR (y) = 0 'deaktivuje pohon na segmente
ďalšie y
Krok 3: Kód na zobrazenie času a PWM na ovládanie jasu
Ďalej som do napájania všetkých číslicových ovládačov pridal tranzistor PMOS. Vďaka tomu bude pulzná šírková modulácia ovládať jas displeja. Tu je ZÁKLADNÝ kód na zobrazenie času.
'zobrazovacia jednotka webových hodín #zahrnúť "LPC11U3x.bas"
„globáli
hr = 0 'definuje hodinu
min = 0 'definuje minútu
#define SEG_0 & HBB00
#define SEG_1 a H1800
#define SEG_2 a HD300
#define SEG_3 a HD900
#define SEG_4 & H7800
#define SEG_5 & HE900
#define SEG_6 & HEB00
#definujte SEG_7 a H9800
#define SEG_8 & HFB00
#define SEG_9 a 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
podobrazový čas (chyba, hodina, min.)
dim hr10, hr1, min10, min1, i
#ifdef US_TIME
ak hr> 12, potom hr -= 12
ak hr = 0, potom hr = 12
#koniec Ak
hr10 = hr / 10
hr1 = hr MOD 10
min10 = min / 10
min1 = min MOD 10
pre i = 0 až 1
ak hr10 tak
IO (45) = 0
koniec Ak
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (hr10)
GPIO_CLR (0) = DIGarray (hr10)
počkať (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čkať (DIG_WAIT)
VSTUP (46)
IO (47) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min10)
GPIO_CLR (0) = DIGarray (min10)
počkať (DIG_WAIT)
VSTUP (47)
IO (48) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min1)
GPIO_CLR (0) = DIGarray (min1)
počkať (DIG_WAIT)
VSTUP (48)
ďalej i
endub
„Užívateľ TIMER1 (32 bitov) prerušiť každú minútu
PRERUŠIŤ SUB TIMER1IRQ
T1_IR = 1 'Vymazať prerušenie
min += 1
ak min.> 59, potom
min = 0
hod += 1
ak hr> 23 potom
hod = 0
koniec Ak
koniec Ak
ENDSUB
SUB ON_TIMER (max_cnt, dothis)
TIMER1_ISR = dothis + 1 'nastavená funkcia VIC - potrebuje +1 pre operáciu Thumb
SYSCON_SYSAHBCLKCTRL ALEBO ((1 << 10) "povoliť TIMER1
T1_PR = 0 'bez prescale - upraví hodnotu na presnejší čas
VICIntEnable ALEBO ((1 << TIMER1_IRQn) 'Povoliť prerušenie
T1_MR0 = max_cnt-1 'nastavuje sa zhodný počet ms
T1_MCR = 3 'Prerušenie a reset zapnuté
MR0 T1_IR = 1 'jasné prerušenie
T1_TC = 0 'vymazanie počítadla časovača
T1_TCR = 1 'TIMER1 povolený
ENDSUB
#define MINUT_PCLK 2880000000 '60 sekúnd pri 48 MHz
Hlavná:
hod = 9
min = 33
ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)
IO (7) = 0 'PWM nejaký deň - treba prejsť na P0_22 ??
zatiaľ čo 1
display_time (0, hod, min)
slučka
Krok 4: Vytvorte internetové pripojenie
Na pripojenie WiFi použite ESP8266. Potom, čo chvíľu pobehoval web, bolo najlepším riešením nodemcu verzia 0.9.6 a najlepšie fungoval starší esp8266_flasher.
www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip
Potom jednoduchá webová stránka PHP, ktorá slúži na strávenie času z internetu-
Coridium Time Server
<? php
$ timezone = htmlspecialchars ($ _ GET ["zóna"]); ak ($ timezone == "")
$ timezone = 'Amerika/Los_Angeles';
$ tz_object = nové DateTimeZone ($ časové pásmo);
$ datetime = new DateTime ();
$ datetime-> setTimezone ($ tz_object);
echo „čas je-“, $ datetime-> formát ('H: i: s');
echo "";
echo „date is-“, $ datetime-> format ('m/d/Y');
?>
Táto webová stránka je taká, že môžete požiadať
coridium.us/time.php - a dobre získate časové pásmo USA v Pacifiku
alebo
coridium.us/time.php?zone=Europe/London
Žiadna kontrola chýb a pravdepodobne nikdy nebude
A Lua, aby si to prečítal -
wifi.sta.config ("your_SSID", "your_PASSWORD")> wifi.sta.connect ()…
sk = net.createConnection (net. TCP, 0)
sk: on ("príjem", funkcia (sck, c) tlač (c) koniec)
sk: connect (80, „coridium.us“)
sk: send ("ZÍSKAŤ /time.php HTTP/1.1 / r / nHost: coridium.us / r / nPripojenie: udržať nažive / r / nPrijať: */ *\ r / n / r / n")
A vrátite čas ako
čas je-09: 38: 49 dátum je-2018-31-12
Krok 5: Pridajte ZÁKLADNÝ kód na analýzu času z webu
Toto je podmnožina úplného ZÁKLADNÉHO programu, ktorý si môžete pozrieť v odkaze v poslednom kroku.
ak strstr (build_gets, "čas je-") = 0 potom
hr = build_gets (8) - "0"
ak build_gets (9) = ":" potom
min = (build_gets (10) - "0")*10
min += build_gets (11) - "0"
inak
hr = hr * 10 + build_gets (9) - „0“
min = (build_gets (11) - "0")*10
min += build_gets (12) - "0"
koniec Ak
koniec Ak
Krok 6: Pridajte svetelný senzor a kód na stmavenie displeja
Bol pridaný fotografický tranzistor na snímanie okolitého svetla v miestnosti. Bez neho je displej dostatočne jasný na to, aby v noci prebudil mŕtvych (mňa).
Načíta sa analógové napätie výstupu fototranzistora a modulácia šírky impulzu nastaví celkový jas displeja.
Krok 7: Zapnite hodiny a začnite ich používať
Konečná verzia zobrazuje čas a približne o 3:00 hod. Ide na web prečítať aktuálny čas. To tiež zvláda úsporu času.
Motiváciou pre tento projekt boli výpadky napájania, s ktorými sa stretávame tu v horách, a potreba vynulovať hodiny alebo vymeniť batérie, aby boli stále nažive.
Toto bol rýchly prehľad projektu.
Úplné informácie o týchto DIY hodinách pripojených k webu.
Odporúča:
Ako vyrobiť analógové hodiny a digitálne hodiny s LED pásikom pomocou Arduina: 3 kroky
Ako vyrobiť analógové hodiny a digitálne hodiny s LED pásikom pomocou Arduina: Dnes vyrobíme analógové hodiny & Digitálne hodiny s LED pásikom a modulom MAX7219 Dot s Arduino. Opraví čas s miestnym časovým pásmom. Analógové hodiny môžu používať dlhší LED pás, takže ich možno zavesiť na stenu a stať sa umeleckým
Digitálne hodiny, ale bez mikrokontroléra [hardcore elektronika]: 13 krokov (s obrázkami)
Digitálne hodiny, ale bez mikrokontroléra [hardcore elektronika]: Vytváranie obvodov pomocou mikrokontroléra je veľmi jednoduché, ale úplne zabúdame na množstvo práce, ktorú musel mikrokontrolér vykonať, aby vykonal jednoduchú úlohu (aj keď bliká LED dióda). Ako ťažké by bolo vytvoriť kompletné digitálne hodiny
Ako strhnúť digitálne posuvné meradlo a ako funguje digitálne posuvné meradlo: 4 kroky
Ako strhnúť digitálne meradlo a ako funguje digitálne meradlo: Mnoho ľudí vie, ako používať na meranie posuvné meradlá. Tento tutoriál vás naučí búrať digitálny strmeň a vysvetlí, ako digitálny posuvný meradlo funguje
Digitálne porovnanie digitálnych výstupov a digitálne: 7 krokov (s obrázkami)
Digitálne analógové audio a digitálne fotoaparáty: Nájdete tu všetky základné inštrukcie, ktoré nájdete v našej databáze. všetky formy a možnosti multimediálnych a multimediálnych multimediálnych nahrávok
Webové SMART LED animačné hodiny s webovým ovládacím panelom, synchronizácia časového servera: 11 krokov (s obrázkami)
Webové SMART LED animačné hodiny s webovým ovládacím panelom a synchronizáciou časového servera: Príbeh týchto hodín siaha ďaleko do minulosti-viac ako 30 rokov. Môj otec bol priekopníkom tejto myšlienky, keď som mal iba 10 rokov, dlho pred revolúciou LED - vtedy, keď LED diódy dosahovali 1/1 000 jasu svojej súčasnej oslepujúcej brilancie. Skutočný