Turinys:
- Prekės
- 1 veiksmas: sujunkite skaitmeninį diską ir segmentinį diską, kad būtų rodomas daugialypis ekranas
- 2 veiksmas: patikrinkite jungtis
- 3 veiksmas: rodymo laiko kodas ir PWM, kad valdytumėte ryškumą
- 4 veiksmas: sukurkite interneto ryšį
- 5 veiksmas: pridėkite PAGRINDINĮ kodą, kad analizuotumėte laiką iš interneto
- 6 veiksmas: pridėkite šviesos jutiklį ir kodą, kad pritemdytumėte ekraną
- 7 veiksmas: paspauskite laikrodį ir pradėkite jį naudoti
Video: Prie interneto prijungtas skaitmeninis laikrodis: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
„Amazon“rado 10 USD vertės skaitmeninį laikrodį. Dabar pritaikykite jį, kad gautumėte laiko iš interneto.
Prekės
ARM antspaudas, programuojamas BASIC, yra čia
1 veiksmas: sujunkite skaitmeninį diską ir segmentinį diską, kad būtų rodomas daugialypis ekranas
Pradėjau nuo pigaus skaitmeninio laikrodžio. Pirmiausia pašalinau esamą laikrodžio mikroschemą. Tada šiek tiek zondavo ir nustatė 7 segmentų jungtis, kurias gali tiesiogiai valdyti mikroprocesorius. Tada surado 4 skaitmenų tvarkykles, kurios buvo tranzistoriai, kuriuos gali valdyti mikroprocesorius. Ir tada sujungė juos.
2 veiksmas: patikrinkite jungtis
Kaip eksperimentą parašiau BASIC programą, kad galėčiau važiuoti visomis linijomis, patikrinti laidus ir išmatuoti srovę, kuri šiuo atveju buvo 82 mA
Kitas buvo parašyti kodą, kad būtų galima nuskaityti eilutes.
“žiniatinklio laikrodžio rodymo įrenginys
IO (7) = 0 'PMOS diskas - kada nors bus PWM
y = nuo 45 iki 48
IO (y) = 0 'skaitmenų pavara
x = nuo 8 iki 15
IO (x) = 0 'segmento pavara
palaukti (500)
IO (x) = 1
kitas x
DIR (y) = 0 'išjungti diską segmente
kitas y
3 veiksmas: rodymo laiko kodas ir PWM, kad valdytumėte ryškumą
Tada prie visų skaitmenų tvarkyklių maitinimo šaltinyje pridėjau PMOS tranzistorių. Su impulso pločio moduliacija valdys ekrano ryškumą. Čia yra BASIC kodas, rodantis laiką.
„žiniatinklio laikrodžio rodymo įrenginys #įtraukite„ LPC11U3x.bas “
'globaliai
hr = 0 'apibrėžti valandą
min = 0 'apibrėžti minutę
#define SEG_0 ir HBB00
#define SEG_1 ir H1800
#define SEG_2 ir HD300
#define SEG_3 ir HD900
#define SEG_4 & H7800
#define SEG_5 ir HE900
#define SEG_6 ir HEB00
#define SEG_7 ir H9800
#define SEG_8 & HFB00
#define SEG_9 & 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
sub display_time (klaida, val., min.)
silpnas hr10, hr1, min10, min1, t
#ifdef US_TIME
jei hr> 12, tada hr -= 12
jei hr = 0, tada hr = 12
#endif
hr10 = valanda / 10
hr1 = valanda MOD 10
min10 = min / 10
min1 = min MOD 10
jei i = nuo 0 iki 1
jei 10 val
IO (45) = 0
endif
GPIO_DIR (0) = (GPIO_DIR (0) ir & HFFFF00FF) + DIGarray (10 val.)
GPIO_CLR (0) = DIGarray (10 val.)
palaukti (DIG_WAIT)
ĮVADAS (45)
IO (46) = 0
GPIO_DIR (0) = (GPIO_DIR (0) ir & HFFFF00FF) + DIGarray (hr1) + IF (i, & H400, 0)
GPIO_CLR (0) = DIGarray (hr1) + IF (i, & H400, 0)
palaukti (DIG_WAIT)
ĮVADAS (46)
IO (47) = 0
GPIO_DIR (0) = (GPIO_DIR (0) ir & HFFFF00FF) + DIGarray (min10)
GPIO_CLR (0) = DIGarray (min10)
palaukti (DIG_WAIT)
ĮVADAS (47)
IO (48) = 0
GPIO_DIR (0) = (GPIO_DIR (0) ir & HFFFF00FF) + DIGarray (min1)
GPIO_CLR (0) = DIGarray (min1)
palaukti (DIG_WAIT)
ĮVADAS (48)
kitas i
endubas
„vartotojas TIMER1 (32 bitų), kad pertrauktų kiekvieną minutę
PERJUNGTAS SUB TIMER1IRQ
T1_IR = 1 'Išvalyti pertrauką
min += 1
jei min> 59, tada
min = 0
val += 1
jei val> 23, tada
val = 0
endif
endif
ENDSUB
SUB ON_TIMER (max_cnt, dothis)
TIMER1_ISR = dothis + 1 'nustatoma VIC funkcija - reikia +1, kad veiktų nykštys
SYSCON_SYSAHBCLKCTRL ARBA = (1 << 10) 'įjungti TIMER1
T1_PR = 0 'be išankstinės skalės - koreguos vertę tikslesniam laikui
VICIntEnable OR = (1 << TIMER1_IRQn) 'Įgalinti pertrauką
T1_MR0 = max_cnt-1 'nustatykite ms atitikties skaičių
T1_MCR = 3 'Nutraukti ir iš naujo nustatyti
MR0 T1_IR = 1 'aiškus pertraukimas
T1_TC = 0 'aiškus laikmačio skaitiklis
T1_TCR = 1 'TIMER1 Įgalinti
ENDSUB
#define MINUT_PCLK 2880000000 '60 sekundžių 48 MHz dažniu
pagrindinis:
val. = 9
min = 33
ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)
IO (7) = 0 'PWM vieną dieną - reikia pereiti prie P0_22 ??
tuo tarpu 1
display_time (0, val., min.)
kilpa
4 veiksmas: sukurkite interneto ryšį
„WiFi“ryšiui naudokite ESP8266. Kurį laiką naršęs internete, geriausias sprendimas buvo „nodemcu“versija 0.9.6, o senesnė esp8266_flasher veikė geriausiai.
www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip
Tada paprastas PHP tinklalapis, skirtas laiko tiekimui iš interneto-
„Coridium“laiko serveris
<? php
$ timezone = htmlspecialchars ($ _ GET ["zona"]); jei ($ timezone == "")
$ timezone = 'Amerika/Los_Angeles';
$ tz_object = nauja DateTimeZone ($ timezone);
$ datetime = naujas DateTime ();
$ datetime-> setTimezone ($ tz_object);
echo "laikas yra-", $ datetime-> formatas ('H: i: s');
aidas "";
echo "data is-", $ datetime-> formatas ('m/d/Y');
?>
Šis tinklalapis yra tam, kad galėtumėte paprašyti
coridium.us/time.php - ir jūs gausite JAV Ramiojo vandenyno laiko juostą
arba
coridium.us/time.php?zone=Europe/London
Jokio klaidų tikrinimo ir greičiausiai niekada nebus
O Lua tai perskaityti -
wifi.sta.config („jūsų_SSID“, „jūsų_PASALABAS“)> wifi.sta.connect ()…
sk = net.createConnection (net. TCP, 0)
sk: on ("gauti", funkcija (sck, c) print (c) end)
sk: prisijungti (80, "coridium.us")
sk: send ("GET /time.php HTTP/1.1 / r / nProstatas: coridium.us / r / nJungtis: išlaikyti gyvą / r / nPriimti: */ *\ r / n / r / n")
Ir atgauni laiką kaip
laikas yra-09:38:49 data yra 2018-12-12
5 veiksmas: pridėkite PAGRINDINĮ kodą, kad analizuotumėte laiką iš interneto
Tai yra visos BASIC programos pogrupis, kurį galima peržiūrėti paskutiniame žingsnyje esančioje nuorodoje.
jei strstr (build_gets, "laikas yra-") = 0 tada
hr = build_gets (8) - "0"
jei build_gets (9) = ":" tada
min = (build_gets (10) - "0")*10
min += build_gets (11) - "0"
Kitas
hr = hr * 10 + build_gets (9) - "0"
min = (statyti_vidinius (11) - „0“)*10
min += build_gets (12) - "0"
endif
endif
6 veiksmas: pridėkite šviesos jutiklį ir kodą, kad pritemdytumėte ekraną
Pridėtas foto tranzistorius, kad būtų galima pajusti aplinkos šviesą kambaryje. Be jo ekranas yra pakankamai ryškus, kad naktį pažadintų mirusįjį (mane).
Nuskaitoma analoginė foto tranzistoriaus išvesties įtampa, o impulsų pločio moduliacija nustato bendrą ekrano ryškumą.
7 veiksmas: paspauskite laikrodį ir pradėkite jį naudoti
Galutinėje versijoje rodomas laikas, o maždaug 3 val. Jis išeina į žiniatinklį ir perskaito dabartinį laiką. Tai taip pat sumažina dienos šviesos taupymo laiką.
Šio projekto motyvacija buvo elektros tiekimo sutrikimai, kuriuos patiriame čia, kalnuose, ir poreikis iš naujo nustatyti laikrodžius arba pakeisti baterijas, kad jie išliktų gyvi.
Tai buvo trumpa projekto apžvalga.
Išsami informacija apie šį „pasidaryk pats“žiniatinklio prijungtą laikrodį.
Rekomenduojamas:
Daiktų interneto pagrindai: savo daiktų interneto prijungimas prie debesies naudojant „Mongoose“OS: 5 žingsniai
Daiktų interneto pagrindai: savo daiktų interneto prijungimas prie debesies naudojant „Mongoose“OS: Jei esate žmogus, kuris užsiima tinkle ir elektronika, dažniausiai susidursite su daiktų internetu, paprastai sutrumpintu kaip daiktų internetas, ir kad reiškia įrenginių, galinčių prisijungti prie interneto, rinkinį! Būdamas toks žmogus
„Zwift“prie interneto prijungtas ventiliatorius: 7 žingsniai (su nuotraukomis)
„Internet“prijungtas „Zwift“ventiliatorius: sukūriau prie interneto prijungtą ventiliatorių, skirtą naudoti su „Zwift“- virtualia dviračių lenktynių žaidimo / treniruočių sistema. Kai važiuojate greičiau „Zwift“, ventiliatorius sukasi greičiau, kad imituotų važiavimo sąlygas lauke.;) Man buvo smagu tai sukurti, tikiuosi, kad jums patiks
„Internet“orų stebėjimo el. Popieriaus ekranas - Prie interneto prijungtas ESP8266: 7 veiksmai
„Internet“orų stebėjimo el. Popieriaus ekranas | Prie interneto prijungtas ESP8266: „E-Paper“ekrane bus rodoma orų informacija, sinchronizuota su „OpenWeatherMap“API (per „WiFi“). Projekto esmė yra ESP8266/32. Ei, kas vyksta, vaikinai? Akarsh čia iš CETech. Šiandien mes ketiname sukurti projektą, kuris yra orų monitorius, kuris
Prijungtas laikrodis prie lovos vaikams: 12 žingsnių
Prijungtas laikrodis prie lovos vaikams: vadovaudamiesi šiomis instrukcijomis, galėsite sukurti laikrodį, kuris būtų suaktyvintas judesiu ir rodytų datą, laiką ir atitinkamą dienos įvykį. Jis parodys naktinį režimą, kai ateis laikas miegoti, o pabudę vaikai greitai prisimins, ką
Prie interneto prijungtas SMART LED animacijos laikrodis su žiniatinklio valdymo skydeliu, sinchronizuotas laiko serveris: 11 žingsnių (su paveikslėliais)
Prie interneto prijungtas SMART LED animacijos laikrodis su žiniatinklio valdymo skydeliu, sinchronizuotas laiko serveris: šio laikrodžio istorija siekia ilgą-daugiau nei 30 metų. Mano tėvas pradėjo šią idėją, kai man buvo vos 10 metų, gerokai prieš LED revoliuciją - dar tada, kai šviesos diodai yra 1/1000 jų akinančio blizgesio. Tikra