Taula de continguts:
- Subministraments
- Pas 1: connecteu la unitat de dígits i la unitat de segmentació per a la visualització multiplexada
- Pas 2: proveu les connexions
- Pas 3: Codi per mostrar el temps i PWM per controlar la brillantor
- Pas 4: feu una connexió a Internet
- Pas 5: afegiu un codi bàsic per analitzar el temps des del web
- Pas 6: afegiu un sensor de llum i un codi per atenuar la pantalla
- Pas 7: feu clic al rellotge i comenceu a utilitzar-lo
Vídeo: Rellotge digital connectat al web: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Hem trobat un rellotge digital de 10 dòlars a Amazon. Ara personalitzeu-lo per obtenir el temps d’Internet.
Subministraments
ARM Stamp programable en BASIC disponible aquí
Pas 1: connecteu la unitat de dígits i la unitat de segmentació per a la visualització multiplexada
Vaig començar amb un rellotge digital gran número barat. Primer vaig eliminar el xip de rellotge existent. A continuació, vam fer algunes proves i vam localitzar les connexions de 7 segments, que poden ser accionades directament pel microprocessador. A continuació, es van trobar els controladors de 4 dígits que eren transistors que el microprocessador pot accionar. I després els va connectar.
Pas 2: proveu les connexions
Com a experiment, vaig escriure un programa BASIC per conduir totes les línies, per comprovar el cablejat i mesurar el corrent, que en aquest cas era de 82 mA
El següent era escriure el codi per escanejar les línies.
'unitat de visualització de rellotge web
IO (7) = 0 'Unitat PMOS: algun dia serà PWM
per a = 45 a 48
IO (y) = unitat de 0 'dígits
per a x = 8 a 15
IO (x) = 0 'unitat de segment
espera (500)
IO (x) = 1
següent x
DIR (y) = 0 'desactiva la unitat al segment
la següent
Pas 3: Codi per mostrar el temps i PWM per controlar la brillantor
A continuació he afegit un transistor PMOS a la font d'alimentació a tots els controladors de dígits. Amb això, la modulació de l'amplada de pols controlarà la brillantor de la pantalla. Aquí teniu el codi BASIC per mostrar l’hora.
'Unitat de visualització de rellotge web #include "LPC11U3x.bas"
'globals
hr = 0 'defineix l'hora
min = 0 'defineix el minut
#define SEG_0 & HBB00
#define SEG_1 & H1800
#define SEG_2 i HD300
#define SEG_3 i 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
temps de visualització sub (err, hr, min)
dim hr10, hr1, min10, min1, i
#ifdef US_TIME
si hr> 12 llavors hr - = 12
si hr = 0, llavors hr = 12
#endif
hr10 = hr / 10
hr1 = hr MOD 10
min10 = min / 10
min1 = min MOD 10
per a i = 0 a 1
si hr10 llavors
IO (45) = 0
endif
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (hr10)
GPIO_CLR (0) = DIGarray (hr10)
espera (DIG_WAIT)
ENTRADA (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)
espera (DIG_WAIT)
ENTRADA (46)
IO (47) = 0
GPIO_DIR (0) = (GPIO_DIR (0) i & HFFFF00FF) + DIGarray (min10)
GPIO_CLR (0) = DIGarray (min10)
espera (DIG_WAIT)
ENTRADA (47)
IO (48) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min1)
GPIO_CLR (0) = DIGarray (min1)
espera (DIG_WAIT)
ENTRADA (48)
següent jo
endsub
'usuari TIMER1 (32 bits) per interrompre cada minut
INTERRUPT SUB TIMER1IRQ
T1_IR = 1 'Esborra la interrupció
min + = 1
si min> 59 llavors
mínim = 0
h + = 1
si h> 23 llavors
hr = 0
endif
endif
ENDSUB
SUB ON_TIMER (max_cnt, dothis)
TIMER1_ISR = aquesta +1 'defineix la funció de VIC: necessiteu el +1 per a l'operació del polze
SYSCON_SYSAHBCLKCTRL OR = (1 << 10) 'habilita TIMER1
T1_PR = 0 'sense prescala: ajustarà el valor per obtenir un temps més precís
VICIntEnable OR = (1 << TIMER1_IRQn) 'Activa la interrupció
T1_MR0 = max_cnt-1 'ha configurat el nombre de coincidències de ms
T1_MCR = 3 'Interrompre i reiniciar activat
MR0 T1_IR = 1 'interrupció neta
T1_TC = 0 'esborra el comptador del temporitzador
T1_TCR = 1 'TIMER1 activat
ENDSUB
#define MINUT_PCLK 2880000000 '60 segons a 48 MHz
principal:
h = 9
mínim = 33
ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)
IO (7) = 0 'PWM algun dia: heu de passar a P0_22 ??
mentre que 1
display_time (0, h, min)
bucle
Pas 4: feu una connexió a Internet
Utilitzeu un ESP8266 per a una connexió WiFi. Després de passar una estona pel web, la millor solució va ser la versió 0.9.6 de nodemcu i un antic esp8266_flasher funcionava millor.
www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip
A continuació, una simple pàgina web PHP per servir temps des d'Internet.
Coridium Time Server
<? php
$ zona horària = htmlspecialchars ($ _ GET ["zona"]); if ($ zona horària == "")
$ timezone = 'America / Los_Angeles';
$ tz_object = new DateTimeZone ($ fus horari);
$ datetime = new DateTime ();
$ datetime-> setTimezone ($ tz_object);
eco "time is-", format $ datetime-> ('H: i: s');
ressò "";
eco "data is-", format $ datetime-> ('m / d / Y');
?>
Aquesta pàgina web és perquè pugueu sol·licitar-la
coridium.us/time.php: i obtindreu la zona horària del Pacífic nord-americà
o bé
coridium.us/time.php?zone=Europe/London
No es comprova cap error i és probable que mai no ho sigui
I la Lua per llegir això -
wifi.sta.config ("el vostre_SSID", "el vostre_PASSWORD")> wifi.sta.connect () …
sk = net.createConnection (net. TCP, 0)
sk: on ("rebre", funció (sck, c) imprimir (c) final)
sk: connect (80, "coridium.us")
sk: send ("GET /time.php HTTP / 1.1 / r / nHost: coridium.us / r / nConnexió: keep-alive / r / nAcceptar: * / * / r / n / r / n")
I obtens temps enrere
l’hora és-09: 38: 49, data: 2018-12-31
Pas 5: afegiu un codi bàsic per analitzar el temps des del web
Aquest és un subconjunt del programa BASIC complet, que el programa complet es pot veure a l'enllaç del pas final.
si strstr (build_gets, "time is-") = 0, llavors
hr = build_gets (8) - "0"
if build_gets (9) = ":" llavors
min = (build_gets (10) - "0") * 10
min + = build_gets (11) - "0"
en cas contrari
hr = hr * 10 + build_gets (9) - "0"
min = (build_gets (11) - "0") * 10
min + = build_gets (12) - "0"
endif
endif
Pas 6: afegiu un sensor de llum i un codi per atenuar la pantalla
Es va afegir un transistor fotogràfic per detectar la llum ambiental de l'habitació. Sense ella, la pantalla és prou brillant per despertar els morts (jo) a la nit.
Es llegeix el voltatge analògic de la sortida del transistor fotogràfic i la modulació de l'amplada del pols estableix la brillantor general de la pantalla.
Pas 7: feu clic al rellotge i comenceu a utilitzar-lo
La versió final mostra l’hora i cap a les 3 de la matinada surt al web per llegir l’hora actual. Això també gestiona l'estalvi de llum del dia.
La motivació d’aquest projecte va ser la fallada d’alimentació que experimentem aquí a la muntanya i la necessitat de restablir els rellotges o substituir les bateries per mantenir-les vives.
Aquesta ha estat una ràpida visió general del projecte.
Detalls complets d’aquest rellotge connectat a la web de bricolatge.
Recomanat:
Rellotge de nit connectat per a nens: 12 passos
Rellotge de nit connectat per a nens: seguint aquestes instruccions, podreu crear un rellotge que estigui activat amb moviment i mostrarà la data, l'hora i l'esdeveniment rellevant del dia. Es mostrarà un mode nocturn quan sigui hora de dormir i quan els nens es despertin podran recordar ràpidament què
Rellotge d'animació LED SMART connectat a la xarxa amb tauler de control basat en web, servidor de temps sincronitzat: 11 passos (amb imatges)
Rellotge d’animació LED SMART connectat a la xarxa amb tauler de control basat en web, sincronitzat amb el servidor de temps: la història d’aquest rellotge es remunta molt enrere: fa més de 30 anys. El meu pare va ser pioner en aquesta idea quan tenia només deu anys, molt abans de la revolució del LED, quan els LED eren de 1/1000 la brillantor de la seva brillantor encegadora actual. Un veritable
Feu un robot connectat al web (per uns 500 dòlars) (amb Arduino i Netbook): 6 passos (amb imatges)
Feu un robot connectat al web (per uns 500 dòlars) (amb Arduino i Netbook): aquest manual us mostrarà com podeu construir el vostre propi robot connectat al web (mitjançant un microcontrolador Arduino i Asus eee pc). Robot connectat? Per jugar, és clar. Condueix el teu robot des de tota la sala o a través del recompte
Termòstat barat connectat a la web: 12 passos (amb imatges)
Termòstat barat connectat a la xarxa: un dels primers productes d'Internet de les coses que va arribar a moltes llars és el termòstat intel·ligent. Poden aprendre quan us agrada escalfar la vostra casa i quina temperatura de l’habitació sol ser necessària. El més interessant és que també poden
Com fer funcionar un rellotge connectat / trencat: 12 passos
Com fer funcionar un rellotge connectat / trencat: hola. He agafat un rellotge escolar i m’he convertit en un de bateria per menys de 10 dòlars