INHOUDSOPGAWE:
- Voorrade
- Stap 1: Koppel Digit Drive en Segment Drive vir veelvoudige skerm
- Stap 2: Toets die verbindings
- Stap 3: Kode vir vertoningstyd en PWM om die helderheid te beheer
- Stap 4: Maak 'n internetverbinding
- Stap 5: Voeg BASIC -kode by om die tyd vanaf die internet te ontleed
- Stap 6: Voeg 'n ligsensor en kode by om die skerm te verdof
- Stap 7: Maak die horlosie oop en begin dit gebruik
Video: Web gekoppelde digitale klok: 7 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Het 'n digitale horlosie van $ 10 by Amazon gevind. Nou om dit aan te pas om tyd van die internet te kry.
Voorrade
ARM Stamp programmeerbaar in BASIC hier beskikbaar
Stap 1: Koppel Digit Drive en Segment Drive vir veelvoudige skerm
Ek het begin met 'n goedkoop digitale horlosie van die rak af. Eers het ek die bestaande klokskyfie verwyder. Daarna 'n bietjie gesoek en die sewe segmentverbindings gevind, wat direk deur die mikroverwerker aangedryf kan word. Toe vind ons die vier -syfer -drywers, transistors wat die mikroverwerker kan dryf. En toe bedraad dié.
Stap 2: Toets die verbindings
As 'n eksperiment het ek 'n BASIC -program geskryf om al die lyne te bestuur, om die bedrading na te gaan en die stroom te meet, wat in hierdie geval 82 mA was
Die volgende was om die kode te skryf om die lyne te skandeer.
'webklok vertoonaandrywing
IO (7) = 0 'PMOS -aandrywer - sal eendag PWM wees
vir y = 45 tot 48
IO (y) = 0 'syfer aandrywing
vir x = 8 tot 15
IO (x) = 0 'segment -aandrywing
wag (500)
IO (x) = 1
volgende x
DIR (y) = 0 'skakel aandrywing op segment uit
volgende y
Stap 3: Kode vir vertoningstyd en PWM om die helderheid te beheer
Vervolgens het ek 'n PMOS -transistor in die kragtoevoer by al die syferbestuurders gevoeg. Deur die modulasie van die pulswydte aangedryf, sal die helderheid van die skerm beheer word. Hier is die BASIC -kode om die tyd te wys.
'Webklok -vertoningsaandrywing #sluit' LPC11U3x.bas 'in
'wêreldwyd
hr = 0 'definieer uur
min = 0 'definieer minuut
#definieer SEG_0 & HBB00
#definieer SEG_1 en H1800
#definieer SEG_2 en HD300
#definieer SEG_3 en HD900
#definieer SEG_4 & H7800
#definieer SEG_5 & HE900
#definieer SEG_6 & HEB00
#definieer SEG_7 & H9800
#definieer SEG_8 & HFB00
#definieer SEG_9 & HF800
#definieer SEG_o & H4B00
#definieer 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}
#definieer DIG_WAIT 1
#definieer US_TIME
sub display_time (err, hr, min)
dim hr10, hr1, min10, min1, ek
#ifdef US_TIME
as hr> 12 dan hr -= 12
as hr = 0 dan hr = 12
#endif
hr10 = hr / 10
hr1 = hr MOD 10
min10 = min / 10
min1 = min MOD 10
vir i = 0 tot 1
as hr10 dan
IO (45) = 0
endif
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (hr10)
GPIO_CLR (0) = DIGarray (hr10)
wag (DIG_WAIT)
INVOER (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)
wag (DIG_WAIT)
INVOER (46)
IO (47) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min10)
GPIO_CLR (0) = DIGarray (min10)
wag (DIG_WAIT)
INVOER (47)
IO (48) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min1)
GPIO_CLR (0) = DIGarray (min1)
wag (DIG_WAIT)
INVOER (48)
volgende i
eindsub
'gebruiker TIMER1 (32 bis) om elke minuut te onderbreek
ONDERBREEK SUB TIMER1IRQ
T1_IR = 1 'Vee onderbreking uit
min += 1
as min> 59 dan
min = 0
uur += 1
as hr> 23 dan
uur = 0
endif
endif
ENDSUB
SUB ON_TIMER (max_cnt, dit is dit)
TIMER1_ISR = hierdie + 1 'stel funksie van VIC - benodig die +1 vir duim operasie
SYSCON_SYSAHBCLKCTRL OF = (1 << 10) 'aktiveer TIMER1
T1_PR = 0 'geen voorskaal nie - sal die waarde vir meer akkurate tyd aanpas
VICIntEnable OF = (1 << TIMER1_IRQn) 'Aktiveer onderbreking
T1_MR0 = max_cnt-1 'stel wedstrydgetal ms op
T1_MCR = 3 'Onderbreek en herstel aan
MR0 T1_IR = 1 'duidelike onderbreking
T1_TC = 0 'tydteller
T1_TCR = 1 'TIMER1 Aktiveer
ENDSUB
#definieer MINUT_PCLK 2880000000 '60 sekondes by 48 MHz
hoof:
uur = 9
min = 33
ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)
IO (7) = 0 'PWM eendag - moet u na P0_22 skuif ??
terwyl 1
vertoningstyd (0, uur, min)
lus
Stap 4: Maak 'n internetverbinding
Gebruik 'n ESP8266 vir 'n WiFi -verbinding. Na 'n rukkie op die internet gesoek het, was die beste oplossing nodemcu weergawe 0.9.6 en 'n ouer esp8266_flasher het die beste gewerk.
www.electrodragon.com/w/Bestand:Nodemcu_20150704_firmware.zip
Dan 'n eenvoudige PHP-webblad om tyd van die internet af te bedien-
Coridium Time Server
<? php
$ tydsone = htmlspecialchars ($ _ GET ["zone"]); as ($ tydsone == "")
$ timezone = 'America/Los_Angeles';
$ tz_object = nuwe DateTimeZone ($ tydsone);
$ datetime = nuwe DateTime ();
$ datetime-> setTimezone ($ tz_object);
eggo "tyd is-", $ datetime-> formaat ('H: i: s');
eggo "";
eggo "datum is-", $ datetime-> formaat ('m/d/Y');
?>
Die webblad is sodat u dit kan aanvra
coridium.us/time.php - en u kry die tydsone van die Amerikaanse Stille Oseaan
of
coridium.us/time.php?zone=Europe/London
Daar is geen foutkontrole nie en sal waarskynlik nooit wees nie
En die Lua om dit te lees -
wifi.sta.config ("your_SSID", "your_PASSWORD")> wifi.sta.connect () …
sk = net.createConnection (net. TCP, 0)
sk: on ("ontvang", funksie (sck, c) druk (c) einde)
sk: connect (80, "coridium.us")
sk: send ("GET /time.php HTTP/1.1 / r / nHost: coridium.us / r / n Connection: keep-alive / r / nAccept: */ *\ r / n / r / n")
En jy kry tyd terug as
tyd is-09: 38: 49datum is-2018-31-12
Stap 5: Voeg BASIC -kode by om die tyd vanaf die internet te ontleed
Dit is 'n deelversameling van die volledige BASIC -program, en die volledige program kan op die skakel in die laaste stap gesien word.
as strstr (build_gets, "time is-") = 0 dan
hr = build_gets (8) - "0"
as build_gets (9) = ":" dan
min = (build_gets (10) - "0")*10
min += build_gets (11) - "0"
anders
hr = hr * 10 + build_gets (9) - "0"
min = (build_gets (11) - "0")*10
min += build_gets (12) - "0"
endif
endif
Stap 6: Voeg 'n ligsensor en kode by om die skerm te verdof
'N Fototransistor is bygevoeg om die omringende lig in die kamer te voel. Daarsonder is die skerm helder genoeg om die dooies (ek) in die nag wakker te maak.
Die analoog spanning van die uitset van die fototransistor word gelees en die modulasie van die pulswydte bepaal die algehele helderheid van die skerm.
Stap 7: Maak die horlosie oop en begin dit gebruik
Die finale weergawe wys die tyd, en omstreeks 03:00 gaan dit op die internet om die huidige tyd te lees. Dit hanteer ook dagligbesparingstyd.
Die motivering vir hierdie projek was die kragonderbrekings wat ons hier in die berge ondervind, en die noodsaaklikheid om horlosies terug te stel of batterye te vervang om dit aan die lewe te hou.
Dit was 'n vinnige oorsig van die projek.
Volledige besonderhede van hierdie selfoon -gekoppelde horlosie.
Aanbeveel:
Digitale klok LED -puntmatriks - ESP Matrix Android -app: 14 stappe
Digital Clock LED Dot Matrix - ESP Matrix Android App: Hierdie artikel word met trots geborg deur PCBWAY. PCBWAY maak prototipe PCB's van hoë gehalte vir mense oor die hele wêreld. Probeer dit self en kry 10 PCB's vir slegs $ 5 by PCBWAY met 'n uitstekende kwaliteit, dankie PCBWAY. Die ESP Matrix Board wat ek ontwikkel het
GranDow - Eenvoudige multitalige digitale klok: 4 stappe
GranDow - Eenvoudige multitalige digitale horlosie: my ouma vergeet steeds van die dag van die week vir haar pille. Ongelukkig is alle digitale horlosies wat ek op die dag van die week kan sien, in Engels. Hierdie eenvoudige projek met slegs 3 komponente is goedkoop, maklik om te bou, en ek hoop dat hy
Digitale klok, maar sonder 'n mikrobeheerder [Hardcore Electronics]: 13 stappe (met foto's)
Digitale klok, maar sonder 'n mikrobeheerder [Hardcore Electronics]: Dit is redelik maklik om stroombane met 'n mikrobeheerder te bou, maar ons vergeet die talle werk wat 'n mikrobeheerder moes ondergaan om 'n eenvoudige taak te voltooi (selfs om 'n LED te knip). Hoe moeilik sou dit dan wees om 'n digitale horlosie volledig te maak
Arduino digitale klok met DS1302: 4 stappe
Arduino digitale klok met behulp van DS1302: inleiding Hallo ouens, ek hoop dat dit goed gaan met julle almal. Dit gaan 'n kort en eenvoudige projek wees oor hoe om 'n digitale klok met Arduino te maak. In hierdie projek gaan ons 'n digitale klok maak met behulp van Arduino en 'n skofregister. Hierdie
Bou 'n regte klok vir u rekenaar en 'n brandblusser-klok: 3 stappe (met foto's)
Bou 'n regte klok vir u rekenaar en 'n brandblusser-horlosie: 'n Messingklokkie, 'n klein relais, nog 'n paar dinge en 'n regte klok kan die ure op u lessenaar slaan, alhoewel hierdie projek op Windows en Mac werk OS X, ek het ook besluit om Ubuntu Linux te installeer op 'n rekenaar wat ek in die asblik gevind het en daaraan werk: ek het nog nooit