Kazalo:
- Zaloge
- 1. korak: Povežite številski pogon in segmentni pogon za večstranski prikaz
- 2. korak: Preizkusite povezave
- Korak 3: Koda za prikaz časa in PWM za nadzor svetlosti
- 4. korak: vzpostavite internetno povezavo
- 5. korak: Dodajte OSNOVNO kodo za razčlenitev časa iz spleta
- 6. korak: Dodajte svetlobni senzor in kodo za zatemnitev zaslona
- 7. korak: Ura pritisnite in začnite uporabljati
Video: Spletno povezana digitalna ura: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Na Amazonu sem našel digitalno uro za 10 USD. Zdaj ga prilagodite, da boste imeli čas iz interneta.
Zaloge
ARM Stamp, ki ga je mogoče programirati v BASIC -u, je na voljo tukaj
1. korak: Povežite številski pogon in segmentni pogon za večstranski prikaz
Začel sem z poceni digitalno uro z veliko številko. Najprej sem odstranil obstoječi čip ure. Nato so naredili nekaj sondanja in našli 7 segmentne povezave, ki jih lahko poganja neposredno mikroprocesor. Nato so našli 4 -mestne gonilnike, ki so bili tranzistorji, ki jih mikroprocesor lahko poganja. In potem jih priklopil.
2. korak: Preizkusite povezave
Kot poskus sem napisal BASIC program za vožnjo po vseh vodih, za preverjanje ožičenja in merjenje toka, ki je bil v tem primeru 82 mA
Nato je bilo treba napisati kodo za skeniranje vrstic.
'pogon za prikaz spletne ure
IO (7) = 0 'PMOS pogon - nekoč bo PWM
za y = 45 do 48
IO (y) = 0 'mestni pogon
za x = 8 do 15
IO (x) = 0 'segmentni pogon
počakaj (500)
IO (x) = 1
naslednji x
DIR (y) = 0 'onemogoči pogon na segmentu
naslednji y
Korak 3: Koda za prikaz časa in PWM za nadzor svetlosti
Nato sem vsem napajalnikom za števce dodal tranzistor PMOS. S tem, ki ga poganja širina impulza, bo modulacija nadzorovala svetlost zaslona. Tukaj je BASIC koda za prikaz časa.
'pogon za prikaz spletne ure #include "LPC11U3x.bas"
'global
hr = 0 'določi uro
min = 0 'določi minuto
#define SEG_0 & HBB00
#define SEG_1 & H1800
#define SEG_2 & HD300
#define SEG_3 & HD900
#define SEG_4 & H7800
#define SEG_5 & HE900
#define SEG_6 & HEB00
#define SEG_7 & 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 (napaka, h, min)
dim hr10, hr1, min10, min1, i
#ifdef US_TIME
če je hr> 12, potem je hr -= 12
če je hr = 0, potem je hr = 12
#endif
hr10 = hr / 10
hr1 = hr MOD 10
min10 = min / 10
min1 = min MOD 10
za i = 0 do 1
če hr10 potem
IO (45) = 0
endif
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarija (hr10)
GPIO_CLR (0) = DIGarray (hr10)
počakaj (DIG_WAIT)
VHOD (45)
IO (46) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarija (hr1) + IF (i, & H400, 0)
GPIO_CLR (0) = DIGarray (hr1) + IF (i, & H400, 0)
počakaj (DIG_WAIT)
VHOD (46)
IO (47) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min10)
GPIO_CLR (0) = DIGarray (min10)
počakaj (DIG_WAIT)
VHOD (47)
IO (48) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarija (min1)
GPIO_CLR (0) = DIGarray (min1)
počakaj (DIG_WAIT)
VHOD (48)
naslednji i
konca
'TIMER1 (32 -bitni), da prekine vsako minuto
PREKINI SUB TIMER1IRQ
T1_IR = 1 'Počisti prekinitev
min +1
če je min> 59, potem
min = 0
hr += 1
če je hr> 23, potem
hr = 0
endif
endif
ENDSUB
SUB ON_TIMER (max_cnt, to)
TIMER1_ISR = Ali je to nastavljena funkcija VIC + 1 ' - potrebujete +1 za operacijo Thumb
SYSCON_SYSAHBCLKCTRL OR = (1 << 10) 'omogoči TIMER1
T1_PR = 0 'brez predrazmerja - bo vrednost prilagodila za natančnejši čas
VICIntEnable OR = (1 << TIMER1_IRQn) 'Omogoči prekinitev
T1_MR0 = max_cnt-1 'nastavljeno število ujemanja ms
T1_MCR = 3 'Prekinitev in ponastavitev vklopljena
MR0 T1_IR = 1 'čisti prekinitev
T1_TC = 0 'počisti števec časovnika
T1_TCR = 1 'TIMER1 Omogoči
ENDSUB
#define MINUT_PCLK 2880000000 '60 sekund pri 48 MHz
glavni:
hr = 9
min = 33
ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)
IO (7) = 0 'PWM nekega dne - premakniti se na P0_22 ??
medtem ko 1
display_time (0, h, min)
zanka
4. korak: vzpostavite internetno povezavo
Za povezavo WiFi uporabite ESP8266. Potem ko sem nekaj časa brskala po spletu, je bila najboljša rešitev nodemcu različice 0.9.6, starejši esp8266_flasher pa je deloval najbolje.
www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip
Nato preprosto spletno mesto PHP, ki služi času iz interneta-
Coridium Time Server
<? php
$ časovni pas = htmlspecialchars ($ _ GET ["cona"]); če ($ časovni pas == "")
$ timezone = 'America/Los_Angeles';
$ tz_object = nov DateTimeZone ($ časovni pas);
$ datetime = nov DateTime ();
$ datetime-> setTimezone ($ tz_object);
echo "time is-", $ datetime-> format ('H: i: s');
odmev "";
echo "date is-", $ datetime-> format ('m/d/Y');
?>
Ta spletna stran je takšna, da lahko zahtevate
coridium.us/time.php - in dobro boste dobili pacifiški časovni pas ZDA
ali
coridium.us/time.php?zone=Europe/London
Brez preverjanja napak in najverjetneje nikoli ne bo
In Lua naj to prebere -
wifi.sta.config ("your_SSID", "your_PASSWORD")> wifi.sta.connect ()…
sk = net.createConnection (net. TCP, 0)
sk: on ("sprejemi", funkcija (sck, c) print (c) konec))
sk: connect (80, "coridium.us")
sk: send ("GET /time.php HTTP/1.1 / r / nHost: coridium.us / r / n Povezava: keep-living / r / nSprejmi: */ *\ r / n / r / n")
In vrnete čas nazaj kot
ura je-09: 38: 49 datum je -2018-31-12
5. korak: Dodajte OSNOVNO kodo za razčlenitev časa iz spleta
To je podmnožica celotnega programa BASIC, ki si ga lahko ogledate na povezavi v zadnjem koraku.
če je strstr (build_gets, "čas je-") = 0, potem
hr = build_gets (8) - "0"
če build_gets (9) = ":" potem
min = (build_gets (10) - "0")*10
min += build_gets (11) - "0"
drugače
hr = hr * 10 + build_gets (9) - "0"
min = (build_gets (11) - "0")*10
min += build_gets (12) - "0"
endif
endif
6. korak: Dodajte svetlobni senzor in kodo za zatemnitev zaslona
Dodan je bil foto tranzistor za zaznavanje zunanje svetlobe v sobi. Brez njega je zaslon dovolj svetel, da ponoči zbudi mrtve (mene).
Analogna napetost izhoda fototranzistorja se prebere in modulacija širine impulza nastavi celotno svetlost zaslona.
7. korak: Ura pritisnite in začnite uporabljati
Končna različica prikazuje čas, okoli 3. ure pa gre v splet, da prebere trenutni čas. To omogoča tudi časovni prihranek dnevne svetlobe.
Motivacija za ta projekt je bila izpad električne energije, ki ga doživimo tukaj v gorah, in potreba po ponastavitvi ur ali zamenjavi baterij, da ostanejo pri življenju.
To je bil hiter pregled projekta.
Vse podrobnosti o tej DIY spletni povezavi ure.
Priporočena:
Digitalna ura, vendar brez mikrokrmilnika [Hardcore Electronics]: 13 korakov (s slikami)
Digitalna ura, vendar brez mikrokrmilnika [Hardcore Electronics]: Z mikrokontrolerjem je precej enostavno sestaviti vezja, vendar popolnoma pozabimo na tone dela, ki ga je moral mikrokrmilnik opraviti, da dokonča preprosto nalogo (tudi za utripanje LED). Kako težko bi bilo torej narediti digitalno uro popolno
CLEPCIDRE: digitalna ura iz steklenic jabolčnika: 8 korakov (s slikami)
CLEPCIDRE: digitalna ura iz steklenic iz jabolčnika: Preden se potopim v opis predmeta, moram pojasniti kontekst, v katerem je bil zasnovan in zgrajen. Moja žena je umetnica in v glavnem dela z glino, kot keramičarka, pa tudi z drugimi materiali, kot so les, skrilavec ali steklo. V večini njenih
Digitalna ura: 6 korakov
Digitalna ura: Ta projekt je narejen z namenom, katerega hobi je izdelovati različne stvari z Diy projekti. To je ena od digitalnih ur Diy Project. Digitalna ura ima različne funkcije, na primer prikazuje čas, datum, alarm, temperaturo, različne prehode v LED
Nočna ura za otroke, povezana s posteljo: 12 korakov
Povezana nočna ura za otroke: Po teh navodilih boste lahko zgradili uro, ki se aktivira z gibanjem in bo prikazala datum, čas in ustrezen dogodek dneva. Ko bo čas za spanje, bo prikazal nočni način in ko se otroci zbudijo, se lahko hitro spomnijo, kaj
Spletno povezana SMART LED animacijska ura s spletno nadzorno ploščo, sinhroniziran časovni strežnik: 11 korakov (s slikami)
Spletno povezana SMART LED animacijska ura S spletno nadzorno ploščo, sinhroniziranim časovnim strežnikom: Zgodba te ure sega daleč nazaj-več kot 30 let. Moj oče je to idejo uvedel, ko sem bil star komaj 10 let, veliko pred revolucijo LED - takrat, ko so LED svetile 1/1000 svetlosti njihovega trenutnega bleščečega sijaja. Resnično