Përmbajtje:

Ora dixhitale e lidhur me uebin: 7 hapa
Ora dixhitale e lidhur me uebin: 7 hapa

Video: Ora dixhitale e lidhur me uebin: 7 hapa

Video: Ora dixhitale e lidhur me uebin: 7 hapa
Video: Установка приложения ArduBlock 2024, Korrik
Anonim
Ora dixhitale e lidhur me uebin
Ora dixhitale e lidhur me uebin

Gjeti një orë dixhitale prej 10 dollarësh në Amazon. Tani për ta personalizuar atë për të marrë kohë nga interneti.

Furnizimet

Vula ARM e programueshme në BASIC në dispozicion këtu

Hapi 1: Lidhni Digit Drive dhe Segment Drive për ekran të shumëfishtë

Lidhni Digit Drive dhe Segment Drive për ekran të shumëfishtë
Lidhni Digit Drive dhe Segment Drive për ekran të shumëfishtë

Fillova me një orë dixhitale të lirë nga rafti me numër të madh. Së pari hoqa çipin ekzistues të orës. Pastaj bëri disa sondazhe përreth dhe gjeti lidhjet e segmentit 7, të cilat mund të drejtohen drejtpërdrejt nga mikroprocesori. Pastaj u gjetën drejtuesit 4 shifror të cilët ishin transistorë të cilët mikroprocesori mund t'i drejtojë. Dhe pastaj lidhini ato.

Hapi 2: Testoni lidhjet

Testoni lidhjet
Testoni lidhjet

Si një eksperiment unë shkrova një program BASIC për të drejtuar të gjitha linjat, për të kontrolluar instalimet elektrike dhe për të matur rrymën, e cila në këtë rast ishte 82 mA

Tjetra ishte të shkruani kodin për të skanuar linjat.

'disku i ekranit të orës në internet

IO (7) = 0 'PMOS makinë - do të jetë PWM një ditë

për y = 45 në 48

IO (y) = makinë 0 -shifrore

për x = 8 deri në 15

Segmenti IO (x) = 0 '

prit (500)

IO (x) = 1

tjetra x

DIR (y) = 0 'çaktivizoni disqet në segment

tjetra y

Hapi 3: Kodi për të shfaqur kohën dhe PWM për të kontrolluar shkëlqimin

Kodi për të shfaqur kohën dhe PWM për të kontrolluar shkëlqimin
Kodi për të shfaqur kohën dhe PWM për të kontrolluar shkëlqimin
Kodi për të shfaqur kohën dhe PWM për të kontrolluar shkëlqimin
Kodi për të shfaqur kohën dhe PWM për të kontrolluar shkëlqimin

Tjetra shtova një transistor PMOS në furnizimin me energji për të gjithë drejtuesit shifror. Me atë të nxitur nga gjerësia e impulsit, modulimi do të kontrollojë shkëlqimin e ekranit. Këtu është kodi BAZ për të shfaqur kohën.

'disku i ekranit të orës në internet #përfshi "LPC11U3x.bas"

'globale

hr = 0 'përcaktojnë orën

min = 0 'përcaktoni minutën

#përcaktoni SEG_0 & HBB00

#përcaktoni SEG_1 & H1800

#përcaktoni SEG_2 & HD300

#përcaktoni SEG_3 & HD900

#përcaktoni SEG_4 & H7800

#përcaktoni SEG_5 & HE900

#përcaktoni SEG_6 & HEB00

#përcaktoni SEG_7 & H9800

#përcaktoni SEG_8 & HFB00

#përcaktoni SEG_9 & HF800

#përcaktoni SEG_o & H4B00

#përcaktoni 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}

#përcakto DIG_WAIT 1

#përcakto US_TIME

nën -koha e shfaqjes (gabim, orë, min)

zbehur hr10, hr1, min10, min1, i

#ifdef US_TIME

nëse hr> 12 atëherë hr -= 12

nëse hr = 0 atëherë hr = 12

#endif

hr10 = orë / 10

hr1 = orë MOD 10

min10 = min / 10

min1 = min MOD 10

për i = 0 në 1

nëse hr10 atëherë

IO (45) = 0

endif

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (hr10)

GPIO_CLR (0) = DIGarray (hr10)

prit (DIG_WAIT)

HYRJA (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)

prit (DIG_WAIT)

HYRJA (46)

IO (47) = 0

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min10)

GPIO_CLR (0) = DIGarray (min10)

prit (DIG_WAIT)

HYRJA (47)

IO (48) = 0

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min1)

GPIO_CLR (0) = DIGarray (min1)

prit (DIG_WAIT)

HYRJA (48)

tjeter i

fundet

'përdorues TIMER1 (32 bit) për të ndërprerë çdo minutë

NDTERRSHTIMI NUBN TIMER1IRQ

T1_IR = 1 'Pastro ndërprerjen

min += 1

nëse min> 59 atëherë

min = 0

orë += 1

nëse hr> 23 atëherë

hr = 0

endif

endif

ENDSUB

SUB ON_TIMER (max_cnt, dothis)

TIMER1_ISR = funksioni i vendosur + 1 'i VIC - keni nevojë për +1 për funksionimin e gishtit të madh

SYSCON_SYSAHBCLKCTRL OR = (1 << 10) 'aktivizoni TIMER1

T1_PR = 0 'pa prescale - do të rregullojë vlerën për një kohë më të saktë

VICIntEnable OR = (1 << TIMER1_IRQn) 'Aktivizo ndërprerjen

T1_MR0 = max_cnt-1 'vendos numrin e përputhjes të ms

T1_MCR = 3 'Ndërprit dhe Rivendos në

MR0 T1_IR = 1 'ndërprerje e qartë

T1_TC = 0 'numërues i qartë i kohëmatësit

T1_TCR = 1 'TIMER1 Aktivizo

ENDSUB

#përcakto MINUT_PCLK 2880000000 '60 sekonda në 48 MHz

kryesore:

orë = 9

min = 33

ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)

IO (7) = 0 'PWM një ditë - duhet të kaloni në P0_22 ??

ndërsa 1

koha e shfaqjes (0, orë, min)

lak

Hapi 4: Krijoni një lidhje interneti

Bëni një lidhje interneti
Bëni një lidhje interneti

Përdorni një ESP8266 për një lidhje WiFi. Pasi u hodh në internet për një kohë zgjidhja më e mirë ishte nodemcu version 0.9.6 dhe një esp8266_flasher më i vjetër funksionoi më së miri.

www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip

Pastaj një faqe e thjeshtë PHP për të shërbyer kohë nga interneti-

Serveri i Kohës Coridium

<? php

$ timezone = htmlspecialchars ($ _ GET ["zone"]); nëse ($ timezone == "")

$ timezone = 'America/Los_Angeles';

$ tz_object = e re DateTimeZone ($ timezone);

$ datetime = data e re e datës ();

$ datetime-> setTimezone ($ tz_object);

jehona "koha është-", $ datetime-> format ('H: i: s');

jehonë "";

jehonë "data është-", $ datetime-> format ('m/d/Y');

?>

Ajo faqe në internet është kështu që ju mund të kërkoni

coridium.us/time.php - dhe ju merrni mirë zonën kohore amerikane të Paqësorit

ose

coridium.us/time.php?zone=Europe/London

Nuk ka kontroll të gabimeve dhe ka shumë të ngjarë që kurrë nuk do të jetë

Dhe Lua ta lexojë atë -

wifi.sta.config ("your_SSID", "your_PASSWORD")> wifi.sta.connect ()…

sk = net.createConnection (net. TCP, 0)

sk: aktiv ("marr", funksioni (sck, c) print (c) fund)

sk: lidheni (80, "coridium.us")

sk: send ("GET /time.php HTTP/1.1 / r / nHost: coridium.us / r / nLidhja: mbaj gjallë / r / nPrano: */ *\ r / n / r / n")

Dhe ju e ktheni kohën si

ora është-09: 38: 49data është -2018-31-12

Hapi 5: Shtoni Kodin Bazë për të analizuar kohën nga uebi

Shtoni Kodin Bazë për të analizuar kohën nga uebi
Shtoni Kodin Bazë për të analizuar kohën nga uebi

Kjo është një nëngrup i programit të plotë BASIC, ai program i plotë mund të shihet në lidhjen në hapin përfundimtar.

nëse strstr (build_gets, "koha është-") = 0 atëherë

hr = build_gets (8) - "0"

nëse build_gets (9) = ":" atëherë

min = (build_gets (10) - "0")*10

min += build_gets (11) - "0"

tjeter

hr = hr * 10 + build_gets (9) - "0"

min = (build_gets (11) - "0")*10

min += build_gets (12) - "0"

endif

endif

Hapi 6: Shtoni një sensor dhe dritë për të zbehur ekranin

Shtoni një sensor dhe dritë për të zbehur ekranin
Shtoni një sensor dhe dritë për të zbehur ekranin
Shtoni një sensor dhe dritë për të zbehur ekranin
Shtoni një sensor dhe dritë për të zbehur ekranin
Shtoni një sensor dhe dritë për të zbehur ekranin
Shtoni një sensor dhe dritë për të zbehur ekranin

Një transistor fotografik u shtua për të ndjerë dritën e ambientit në dhomë. Pa të, ekrani është mjaft i ndritshëm për të zgjuar të vdekurit (mua) gjatë natës.

Tensioni analog i daljes së transistorit të fotografisë lexohet dhe modulimi i gjerësisë së pulsit vendos shkëlqimin e përgjithshëm të ekranit.

Hapi 7: Butoni në Orë dhe Filloni ta Përdorni

Butoni lart orës dhe filloni ta përdorni atë
Butoni lart orës dhe filloni ta përdorni atë

Versioni përfundimtar shfaq kohën, dhe rreth orës 3 të mëngjesit del në internet për të lexuar kohën aktuale. Kjo gjithashtu merret me kursimin e dritës së ditës.

Motivimi për këtë projekt ishte ndërprerjet e energjisë që përjetojmë këtu në male dhe nevoja për të rivendosur orët ose për të zëvendësuar bateritë për t'i mbajtur ato gjallë.

Ky ka qenë një pasqyrë e shpejtë e projektit.

Detajet e plota të kësaj ore të lidhur me ueb në internet.

Recommended: