Orodha ya maudhui:

Saa ya dijiti iliyounganishwa kwenye wavuti: Hatua 7
Saa ya dijiti iliyounganishwa kwenye wavuti: Hatua 7

Video: Saa ya dijiti iliyounganishwa kwenye wavuti: Hatua 7

Video: Saa ya dijiti iliyounganishwa kwenye wavuti: Hatua 7
Video: Cheki jama alivyo paa na ndege ya kichawi utashangaa 2024, Julai
Anonim
Saa ya dijiti iliyounganishwa kwenye wavuti
Saa ya dijiti iliyounganishwa kwenye wavuti

Kupatikana saa 10 ya dijiti kwa Amazon. Sasa kuibadilisha ili upate wakati kutoka kwa wavuti.

Vifaa

Stempu ya ARM inayopangwa katika BASIC inapatikana hapa

Hatua ya 1: Unganisha Hifadhi ya Nambari na Hifadhi ya Sehemu kwa Uonyesho wa Multiplexed

Unganisha Hifadhi ya Nambari na Hifadhi ya Sehemu kwa Uonyesho wa Multiplexed
Unganisha Hifadhi ya Nambari na Hifadhi ya Sehemu kwa Uonyesho wa Multiplexed

Nilianza na bei rahisi kutoka kwa rafu saa kubwa ya dijiti. Kwanza niliondoa chip iliyopo ya saa. Halafu wengine walichunguza karibu na kupata unganisho la sehemu 7, ambazo zinaweza kuendeshwa moja kwa moja na microprocessor. Kisha tukapata madereva 4 ambayo yalikuwa transistors ambayo microprocessor inaweza kuendesha. Na kisha ukawaunganisha wale.

Hatua ya 2: Jaribu Uunganisho

Jaribu Uunganisho
Jaribu Uunganisho

Kama jaribio niliandika mpango wa BASIC kuendesha laini zote, kuangalia wiring na kupima ya sasa, ambayo katika kesi hii ilikuwa 82 mA

Ifuatayo ilikuwa kuandika nambari ili kuchanganua mistari.

gari la kuonyesha saa za wavuti

IO (7) = 0 'PMOS drive - itakuwa PWM siku moja

kwa y = 45 hadi 48

IO (y) = 0 'gari la nambari

kwa x = 8 hadi 15

IO (x) = 0 'sehemu ya kuendesha

subiri (500)

IO (x) = 1

ijayo x

DIR (y) = 0 'afya gari kwenye sehemu

ijayo y

Hatua ya 3: Nambari ya Kuonyesha Saa na PWM Kudhibiti Mwangaza

Nambari ya Kuonyesha Saa na PWM Kudhibiti Mwangaza
Nambari ya Kuonyesha Saa na PWM Kudhibiti Mwangaza
Nambari ya Kuonyesha Saa na PWM Kudhibiti Mwangaza
Nambari ya Kuonyesha Saa na PWM Kudhibiti Mwangaza

Ifuatayo niliongeza transistor ya PMOS katika usambazaji wa umeme kwa madereva yote ya nambari. Pamoja na hiyo inayoendeshwa na upimaji wa mpigo wa mpigo itadhibiti mwangaza wa onyesho. Hapa kuna nambari ya BASIC kuonyesha wakati.

'dereva wa saa ya wavuti # pamoja na "LPC11U3x.bas"

ulimwengu

hr = 0 'fafanua saa

dakika = 0 'fafanua dakika

#fafanua SEG_0 & HBB00

#fafanua SEG_1 & H1800

#fafanua SEG_2 & HD300

#fafanua SEG_3 & HD900

#fafanua SEG_4 & H7800

#fafanua SEG_5 & HE900

#fafanua SEG_6 & HEB00

#fafanua SEG_7 & H9800

#fafanua SEG_8 & HFB00

#fafanua SEG_9 & HF800

#fafanua SEG_o & H4B00

#fafanua 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}

#fafanua DIG_WAIT 1

#fafanua US_TIME

saa ndogo ya kuonyesha (saa, saa, dakika)

punguza hr10, hr1, min10, min1, i

#ifdef US_TIME

ikiwa hr> 12 basi hr - = 12

ikiwa hr = 0 basi hr = 12

# mwisho

hr10 = saa / 10

hr1 = saa ya MOD 10

min10 = dakika / 10

min1 = dakika MOD 10

kwa i = 0 hadi 1

ikiwa hr10 basi

IO (45) = 0

endif

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

GPIO_CLR (0) = DIGarray (hr10)

subiri (DIG_WAIT)

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

subiri (DIG_WAIT)

Pembejeo (46)

IO (47) = 0

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

GPIO_CLR (0) = Mchoro (min10)

subiri (DIG_WAIT)

Pembejeo (47)

IO (48) = 0

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

GPIO_CLR (0) = DIGray (min1)

subiri (DIG_WAIT)

Pembejeo (48)

ijayo i

mwisho

mtumiaji TIMER1 (32 bit) kukatisha kila dakika

KUINGILIZA SUB TIMER1IRQ

T1_IR = 1 'Futa usumbufu

min + = 1

ikiwa min> 59 basi

dakika = 0

hr + = 1

ikiwa hr> 23 basi

hr = 0

endif

endif

ENDSUB

SUB ON_TIMER (max_cnt, didis)

TIMER1_ISR = kazi ya kuweka + 1 'ya VIC - inahitaji 1 kwa operesheni ya Thumb

SYSCON_SYSAHBCLKCTRL AU = (1 << 10) 'wezesha TIMER1

T1_PR = 0 'hakuna muhtasari - itarekebisha thamani kwa wakati sahihi zaidi

VICIntEnable OR = (1 << TIMER1_IRQn) 'Wezesha usumbufu

T1_MR0 = max_cnt-1 'sanidi nambari ya mechi ya ms

T1_MCR = 3 'Kukatisha na kuwasha upya

MR0 T1_IR = 1 'kukatisha wazi

T1_TC = 0 'kaunta wazi ya saa

T1_TCR = 1 'TIMER1 Wezesha

ENDSUB

#fafanua MINUT_PCLK 2880000000 'sekunde 60 kwa 48 MHz

kuu:

hr = 9

dakika = 33

ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)

IO (7) = 0 'PWM siku fulani - unahitaji kuhamia P0_22?

wakati 1

saa ya kuonyesha (saa, saa, dakika)

kitanzi

Hatua ya 4: Fanya Uunganisho wa Mtandao

Fanya Uunganisho wa Mtandao
Fanya Uunganisho wa Mtandao

Tumia ESP8266 kwa muunganisho wa WiFi. Baada ya kutazama wavuti kwa muda suluhisho bora ilikuwa toleo la nodemcu 0.9.6 na esp8266_flasher wa zamani alifanya kazi bora.

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

Kisha ukurasa rahisi wa wavuti wa PHP kutumikia wakati kutoka kwa wavuti--

Seva ya Wakati wa Coridium

<php

saa ya saa = htmlspecialchars ($ _ GET ["zone"]); ikiwa ($ timezone == "")

saa ya saa = 'Amerika / Los_Angeles';

$ tz_object = DateTimeZone mpya (eneo la saa $);

$ datetime = DateTime mpya ();

$ datetime-> setTimezone ($ tz_object);

echo "wakati ni-", muundo wa $ datetime-> ('H: i: s');

mwangwi "";

echo "tarehe ni-", $ datetime-> fomati ('m / d / Y');

?>

Ukurasa wa wavuti uko hivyo unaweza kuomba

coridium.us/time.php - na unapata vizuri ukanda wa saa wa Pasifiki wa Amerika

au

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

Hakuna ukaguzi wa makosa na uwezekano mkubwa hautawahi kuwa

Na Lua kusoma hiyo -

wifi.sta.config ("yako_SSID", "yako_PASSWORD")> wifi.sta.connect ()…

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

sk: on ("pokea", kazi (sck, c) chapisha (c) mwisho)

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

sk: tuma ("GET / time.php HTTP / 1.1 / r / nMhudumu: coridium.us / r / nUunganisho: endelea kuishi / r / nBali: * / * / r / n / r / n")

Na unarudi wakati kama

wakati ni-09: 38: 49 tarehe ni-2018-31-12

Hatua ya 5: Ongeza Nambari ya Msingi ili Kutofautisha Wakati Kutoka kwa Wavuti

Ongeza Nambari ya Msingi ili Kutofautisha Wakati Kutoka kwa Wavuti
Ongeza Nambari ya Msingi ili Kutofautisha Wakati Kutoka kwa Wavuti

Hii ni sehemu ndogo ya mpango kamili wa BASIC, programu hiyo kamili inaweza kutazamwa kwenye kiunga katika hatua ya mwisho.

ikiwa strstr (build_gets, "time is-") = 0 basi

hr = vifaa vya ujenzi (8) - "0"

ikiwa build_gets (9) = ":" basi

min = (gombo la ujenzi (10) - "0") * 10

min + = ujenzi_wa (11) - "0"

mwingine

hr = hr * 10 + vifaa vya ujenzi (9) - "0"

min = (vifaa vya ujenzi (11) - "0") * 10

min + = ghala za ujenzi (12) - "0"

endif

endif

Hatua ya 6: Ongeza Sensorer ya Nuru na Nambari ili Kupunguza Uonyesho

Ongeza Sura ya Nuru na Nambari ili Kupunguza Uonyesho
Ongeza Sura ya Nuru na Nambari ili Kupunguza Uonyesho
Ongeza Sura ya Nuru na Nambari ili Kupunguza Uonyesho
Ongeza Sura ya Nuru na Nambari ili Kupunguza Uonyesho
Ongeza Sura ya Nuru na Nambari ili Kupunguza Uonyesho
Ongeza Sura ya Nuru na Nambari ili Kupunguza Uonyesho

Picha transistor iliongezwa ili kuhisi taa iliyoko ndani ya chumba. Bila hiyo maonyesho ni mkali wa kutosha kuamsha wafu (mimi) usiku.

Voltage ya analog ya pato la transistor ya picha inasomwa na upimaji wa upana wa kunde huweka mwangaza wa jumla wa onyesho.

Hatua ya 7: Kitufe cha Saa na Anza Kutumia

Kitufe Juu ya Saa na Anza Kutumia
Kitufe Juu ya Saa na Anza Kutumia

Toleo la mwisho linaonyesha wakati, na karibu saa 3 asubuhi hutoka kwa wavuti kusoma wakati wa sasa. Hii pia hushughulikia wakati wa kuokoa nuru ya siku.

Msukumo wa mradi huu ulikuwa ni shida ya umeme tunayopata hapa milimani na hitaji la kuweka upya saa au kubadilisha betri ili kuzihifadhi.

Hii imekuwa muhtasari wa haraka wa mradi huo.

Maelezo kamili ya saa hii iliyounganishwa ya wavuti ya DIY.

Ilipendekeza: