Obsah:

Webové digitálne hodiny: 7 krokov
Webové digitálne hodiny: 7 krokov

Video: Webové digitálne hodiny: 7 krokov

Video: Webové digitálne hodiny: 7 krokov
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Júl
Anonim
Webové digitálne hodiny
Webové digitálne hodiny

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

Pripojte digitálny disk a segmentový disk pre multiplexné zobrazenie
Pripojte digitálny disk a segmentový disk pre multiplexné 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

Otestujte pripojenia
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

Kód na zobrazenie času a PWM na ovládanie jasu
Kód na zobrazenie času a PWM na ovládanie jasu
Kód na zobrazenie času a PWM na ovládanie jasu
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

Vytvorte internetové pripojenie
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

Pridajte ZÁKLADNÝ kód na analýzu času z webu
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

Pridajte svetelný senzor a kód na stmavenie displeja
Pridajte svetelný senzor a kód na stmavenie displeja
Pridajte svetelný senzor a kód na stmavenie displeja
Pridajte svetelný senzor a kód na stmavenie displeja
Pridajte svetelný senzor a kód na stmavenie displeja
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ť

Zapnite hodiny a začnite ich používať
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: