Բովանդակություն:

Վեբ միացված թվային ժամացույց ՝ 7 քայլ
Վեբ միացված թվային ժամացույց ՝ 7 քայլ

Video: Վեբ միացված թվային ժամացույց ՝ 7 քայլ

Video: Վեբ միացված թվային ժամացույց ՝ 7 քայլ
Video: HBO 4, ախտորոշում և ինքնուրույն ճշգրտում 2024, Նոյեմբեր
Anonim
Վեբ միացված թվային ժամացույց
Վեբ միացված թվային ժամացույց

Amazon- ում գտել են 10 դոլար արժողությամբ թվային ժամացույց: Այժմ այն հարմարեցնելու համար ՝ ինտերնետից ժամանակ ստանալու համար:

Պարագաներ

BASIC- ով ծրագրավորվող ARM Stamp- ը հասանելի է այստեղ

Քայլ 1. Միացրեք Digit Drive- ը և Segment Drive- ը `բազմապատկված ցուցադրման համար

Միացրեք Digit Drive- ը և Segment Drive- ը `բազմապատկված ցուցադրման համար
Միացրեք Digit Drive- ը և Segment Drive- ը `բազմապատկված ցուցադրման համար

Ես սկսեցի դարակից էժան թվով թվային ժամացույցով: Սկզբում ես հեռացրի առկա ժամացույցի չիպը: Հետո որոշ հետազոտություններ կատարվեցին շուրջը և գտան 7 հատվածի միացումները, որոնք կարող են ուղղակիորեն միկրոպրոցեսորով շարժվել: Այնուհետև գտան 4 նիշանոց վարորդները, որոնք տրանզիստորներ էին, որոնցով կարող է շարժվել միկրոպրոցեսորը: Եվ հետո միացրեք դրանք:

Քայլ 2: Փորձարկեք կապերը

Փորձեք կապերը
Փորձեք կապերը

Որպես փորձ, ես գրեցի BASIC ծրագիր ՝ բոլոր գծերը վարելու, էլեկտրագծերը ստուգելու և հոսանքը չափելու համար, որն այս դեպքում 82 մԱ էր:

Հաջորդը տողերը սկանավորելու համար կոդը գրելն էր:

վեբ ժամացույցի ցուցադրման սկավառակ

IO (7) = 0 'PMOS սկավառակ - մի օր կլինի PWM

y = 45 -ից 48 -ի համար

IO (y) = 0 'թվանշանի սկավառակ

x = 8 -ից 15 -ի համար

IO (x) = 0 'հատվածի սկավառակ

սպասել (500)

IO (x) = 1

հաջորդ x

DIR (y) = 0 'անջատել սկավառակը հատվածի վրա

հաջորդ y

Քայլ 3. Codeամանակի ցուցադրման կոդ և PWM ՝ պայծառությունը վերահսկելու համար

Կոդ ՝ ցուցադրելու ժամանակը և PWM ՝ պայծառությունը վերահսկելու համար
Կոդ ՝ ցուցադրելու ժամանակը և PWM ՝ պայծառությունը վերահսկելու համար
Կոդ ՝ ցուցադրելու ժամանակը և PWM ՝ պայծառությունը վերահսկելու համար
Կոդ ՝ ցուցադրելու ժամանակը և PWM ՝ պայծառությունը վերահսկելու համար

Հաջորդը ես թվանշանների բոլոր վարորդներին ավելացրեցի PMOS տրանզիստոր էներգամատակարարման մեջ: Իմպուլսի լայնությամբ պայմանավորված մոդուլյացիան կկառավարի էկրանի պայծառությունը: Ահա displayամանակը ցուցադրելու ՀԻՄՆԱԿԱՆ ծածկագիրը:

'վեբ ժամացույցի ցուցադրման սկավառակ #ներառել «LPC11U3x.bas»

'գլոբալներ

hr = 0 'սահմանել ժամը

min = 0 'սահմանել րոպե

#սահմանել SEG_0 և HBB00

#սահմանեք SEG_1 և H1800

#սահմանեք SEG_2 և HD300

#սահմանեք SEG_3 և HD900

#սահմանեք SEG_4 և H7800

#սահմանեք SEG_5 և HE900

#սահմանեք SEG_6 և HEB00

#սահմանեք SEG_7 և H9800

#սահմանել SEG_8 և HFB00

#սահմանեք SEG_9 և HF800

#սահմանեք SEG_o & H4B00

#սահմանեք 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}

#սահմանի DIG_WAIT 1

#սահմանեք US_TIME- ը

ենթածրագրի_աժամանակ (սխալ, ժամ, րոպե)

մռայլ hr10, hr1, min10, min1, i

#ifdef US_TIME

եթե hr> 12, ապա hr -= 12

եթե hr = 0 ապա hr = 12

#էնդիֆ

hr10 = hr / 10

hr1 = ժամ ՊՆ 10

min10 = min / 10

min1 = min ՊՆ 10

i = 0 -ից 1 -ի համար

եթե hr10, ապա

IO (45) = 0

էնդիֆ

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

GPIO_CLR (0) = DIGarray (hr10)

սպասել (DIG_WAIT)

Մուտք (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)

սպասել (DIG_WAIT)

Մուտք (46)

IO (47) = 0

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

GPIO_CLR (0) = DIGarray (min10)

սպասել (DIG_WAIT)

Մուտք (47)

IO (48) = 0

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

GPIO_CLR (0) = DIGarray (min1)

սպասել (DIG_WAIT)

Մուտք (48)

հաջորդը ես

ծայրահեղուկ

օգտագործող TIMER1 (32 բիթ) `յուրաքանչյուր րոպե ընդհատելու համար

INTERRUPT SUB TIMER1IRQ

T1_IR = 1 'Մաքրել ընդհատումը

րոպե += 1

եթե min> 59 ապա

րոպե = 0

ժամ += 1

եթե hr> 23 ապա

ժամ = 0

էնդիֆ

էնդիֆ

ENDSUB

SUB ON_TIMER (max_cnt, dothis)

TIMER1_ISR = dothis + 1 'գործառույթ VIC - անհրաժեշտ է +1 բութ մատի գործողության համար

SYSCON_SYSAHBCLKCTRL OR = (1 << 10) 'միացնել TIMER1

T1_PR = 0 'ոչ նախնական

VICIntEnable OR = (1 << TIMER1_IRQn] 'Միացնել ընդհատումը

T1_MR0 = max_cnt-1 'սահմանեց ms- ի համընկնումը

T1_MCR = 3 'Ընդհատել և միացնել

MR0 T1_IR = 1 'հստակ ընդհատում

T1_TC = 0 'հստակ ժամաչափի հաշվիչ

T1_TCR = 1 'TIMER1 Միացնել

ENDSUB

#սահմանեք MINUT_PCLK 2880000000 '60 վայրկյան 48 ՄՀց հաճախականությամբ

հիմնական:

ժամ = 9

րոպե = 33

ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)

IO (7) = 0 'PWM ինչ -որ օր. Պետք է տեղափոխվել P0_22 ??

մինչդեռ 1

ցուցադրման_ժամ (0, ժամ, րոպե)

հանգույց

Քայլ 4: Կատարեք ինտերնետ կապ

Կատարեք ինտերնետ կապ
Կատարեք ինտերնետ կապ

WiFi կապի համար օգտագործեք ESP8266: Որոշ ժամանակ համացանցում պտտվելուց հետո լավագույն լուծումը nodemcu 0.9.6 տարբերակն էր, և հին esp8266_flasher- ը լավագույնն էր:

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

Հետո մի պարզ PHP վեբ էջ ՝ ինտերնետից ժամանակ ծառայելու համար-

Coridium Time Server

<? php

$ timezone = htmlspecialchars ($ _ GET ["գոտի"]); եթե ($ timezone == "")

$ timezone = 'Ամերիկա/Լոս_Անգելես';

$ tz_object = նոր DateTimeZone ($ ժամային գոտի);

$ datetime = նոր DateTime ();

$ datetime-> setTimezone ($ tz_object);

echo "time is-", $ datetime-> format ('H: i: s');

արձագանք "";

echo "date is-", $ datetime-> format ('m/d/Y');

?>

Այդ կայքն այն է, որ կարողանաք պահանջել

coridium.us/time.php - և դուք լավ կստանաք ԱՄՆ Խաղաղօվկիանոսյան ժամային գոտին

կամ

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

Սխալներ չեն ստուգվում և, ամենայն հավանականությամբ, երբեք չեն լինի

Եվ դա կարդալու Լուան -

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

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

sk: միացված («ստանալ», գործառույթ (sck, c) տպել (c) վերջ)

sk: միացեք (80, "coridium.us")

sk: send ("GET /time.php HTTP/1.1 / r / n Հյուր: coridium.us / r / n Միացում. պահել կենդանի / r / n Ընդունել ՝ */ *\ r / n / r / n")

Եվ դուք ժամանակ եք վերադառնում, ինչպես

ժամը ՝ 09: 38: 49, ամսաթիվը ՝ 2018-31-12

Քայլ 5. Ավելացրեք ՀԻՄՆԱԿԱՆ ԿՈԴ `համացանցից ժամանակը վերլուծելու համար

Համացանցից ժամանակը վերլուծելու համար ավելացրեք ՀԻՄՆԱԿԱՆ ԿՈԴ
Համացանցից ժամանակը վերլուծելու համար ավելացրեք ՀԻՄՆԱԿԱՆ ԿՈԴ

Սա ամբողջական BASIC ծրագրի ենթաբազմությունն է: Այդ ամբողջական ծրագիրը կարելի է դիտել վերջնական քայլի հղումով:

եթե strstr (build_gets, "time is-") = 0 ապա

hr = build_gets (8) - "0"

եթե build_gets (9) = ":" ապա

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

min += build_gets (11) - "0"

ուրիշ

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

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

min += build_gets (12) - "0"

էնդիֆ

էնդիֆ

Քայլ 6: Լույսի ցուցիչ և ծածկագիր ավելացրեք էկրանը մթագնելու համար

Էկրանը մթագնելու համար ավելացրեք լուսային տվիչ և ծածկագիր
Էկրանը մթագնելու համար ավելացրեք լուսային տվիչ և ծածկագիր
Էկրանը մթագնելու համար ավելացրեք լուսային տվիչ և ծածկագիր
Էկրանը մթագնելու համար ավելացրեք լուսային տվիչ և ծածկագիր
Էկրանը մթագնելու համար ավելացրեք լուսային տվիչ և ծածկագիր
Էկրանը մթագնելու համար ավելացրեք լուսային տվիչ և ծածկագիր

Սենյակում շրջապատող լույսը զգալու համար ավելացվել է լուսանկարչական տրանզիստոր: Առանց դրա, էկրանը բավական լուսավոր է, որպեսզի գիշերը արթնացնի մահացածներին (ինձ):

Լուսանկարչական տրանզիստորի ելքի անալոգային լարումը կարդացվում է, և զարկերակի լայնության մոդուլյացիան սահմանում է էկրանի ընդհանուր պայծառությունը:

Քայլ 7: Կոճակեք ժամացույցը և սկսեք օգտագործել այն:

Կոճակեք ժամացույցը և սկսեք օգտագործել այն
Կոճակեք ժամացույցը և սկսեք օգտագործել այն

Վերջնական տարբերակը ցույց է տալիս ժամանակը, և առավոտյան ժամը 3 -ի սահմաններում այն դուրս է գալիս համացանց ՝ ընթացիկ ժամը կարդալու համար: Սա նաև կարգավորում է օրվա լույսի խնայողությունը:

Այս նախագծի շարժառիթը էներգիայի խափանումներն էին, որոնք մենք զգում էինք այստեղ `լեռներում և ժամացույցները վերակայելու կամ մարտկոցները փոխարինելու անհրաժեշտությունը` դրանք կենդանի պահելու համար:

Սա նախագծի արագ ակնարկ էր:

Այս DIY վեբ միացված ժամացույցի ամբողջական մանրամասները:

Խորհուրդ ենք տալիս: