Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Koble til Digit Drive og Segment Drive for Multiplexed Display
- Trinn 2: Test tilkoblingene
- Trinn 3: Kode for visningstid og PWM for å kontrollere lysstyrken
- Trinn 4: Opprett en Internett -tilkobling
- Trinn 5: Legg til BASIC -kode for å analysere tiden fra nettet
- Trinn 6: Legg til en lyssensor og kode for å dempe skjermen
- Trinn 7: Knapp opp klokken og begynn å bruke den
Video: Internett -tilkoblet digital klokke: 7 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Fant en digital klokke på $ 10 på Amazon. Nå for å tilpasse det for å få tid fra internett.
Rekvisita
ARM Stamp programmerbar i BASIC tilgjengelig her
Trinn 1: Koble til Digit Drive og Segment Drive for Multiplexed Display
Jeg startet med en billig digital klokke på hyllen. Først fjernet jeg den eksisterende klokkebrikken. Så gjorde noen undersøkelser rundt og fant de 7 segmentforbindelsene, som kan drives direkte av mikroprosessoren. Fant deretter de firesifrede driverne som var transistorer som mikroprosessoren kan kjøre. Og deretter koblet de opp.
Trinn 2: Test tilkoblingene
Som et eksperiment skrev jeg et BASIC -program for å drive alle linjene, for å kontrollere ledningene og måle strømmen, som i dette tilfellet var 82 mA
Neste var å skrive koden for å skanne linjene.
'klokke for visning av klokken
IO (7) = 0 'PMOS -stasjon - blir PWM en dag
for y = 45 til 48
IO (y) = 0 'sifferstasjon
for x = 8 til 15
IO (x) = 0 'segmentstasjon
vent (500)
IO (x) = 1
neste x
DIR (y) = 0 'deaktiver stasjon på segment
neste y
Trinn 3: Kode for visningstid og PWM for å kontrollere lysstyrken
Deretter la jeg til en PMOS -transistor i strømforsyningen til alle sifferdriverne. Med den drevet av pulsbreddemodulasjon vil kontrollere lysstyrken på skjermen. Her er BASIC -koden for å vise tiden.
'klokke for visning av klokken #inkluderer "LPC11U3x.bas"
'globaler
hr = 0 'definere time
min = 0 'definere minutt
#define SEG_0 & HBB00
#define SEG_1 og H1800
#define SEG_2 og HD300
#define SEG_3 og 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}
#definere DIG_WAIT 1
#definer US_TIME
sub display_time (err, hr, min)
dim hr10, hr1, min10, min1, i
#ifdef US_TIME
hvis hr> 12 så hr -= 12
hvis hr = 0 så hr = 12
#slutt om
hr10 = hr / 10
hr1 = hr MOD 10
min10 = min / 10
min1 = min MOD 10
for i = 0 til 1
hvis hr10 da
IO (45) = 0
slutt om
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (hr10)
GPIO_CLR (0) = DIGarray (hr10)
vent (DIG_WAIT)
INNGANG (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)
vent (DIG_WAIT)
INNGANG (46)
IO (47) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min10)
GPIO_CLR (0) = DIGarray (min10)
vent (DIG_WAIT)
INNGANG (47)
IO (48) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min1)
GPIO_CLR (0) = DIGarray (min1)
vent (DIG_WAIT)
INNGANG (48)
neste i
endesub
'bruker TIMER1 (32 bit) for å avbryte hvert minutt
AVBRYT SUB TIMER1IRQ
T1_IR = 1 'Fjern avbrudd
min += 1
hvis min> 59 da
min = 0
time += 1
hvis hr> 23 da
t = 0
slutt om
slutt om
ENDSUB
SUB ON_TIMER (maks_cnt, dette gjøres)
TIMER1_ISR = dette er + 1 'innstilt funksjon av VIC - trenger +1 for tommelfingeroperasjon
SYSCON_SYSAHBCLKCTRL OR = (1 << 10) 'aktiver TIMER1
T1_PR = 0 'ingen forhåndsskala - justerer verdien for mer nøyaktig tid
VICIntEnable OR = (1 << TIMER1_IRQn) 'Aktiver avbrudd
T1_MR0 = max_cnt-1 'konfigurert match antall ms
T1_MCR = 3 'Avbrudd og tilbakestilling på
MR0 T1_IR = 1 'klart avbrudd
T1_TC = 0 'slett tidteller
T1_TCR = 1 'TIMER1 Aktiver
ENDSUB
#define MINUT_PCLK 2880000000 '60 sekunder ved 48 MHz
hoved:
t = 9
min = 33
ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)
IO (7) = 0 'PWM en dag - må du flytte til P0_22 ??
mens 1
display_time (0, t, min)
Løkke
Trinn 4: Opprett en Internett -tilkobling
Bruk en ESP8266 for en WiFi -tilkobling. Etter å ha stukket rundt på nettet en stund var den beste løsningen nodemcu versjon 0.9.6 og en eldre esp8266_flasher fungerte best.
www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip
Deretter en enkel PHP-webside for å vise tid fra internett-
Coridium Time Server
<? php
$ tidssone = htmlspecialchars ($ _ GET ["sone"]); hvis ($ tidssone == "")
$ tidssone = 'America/Los_Angeles';
$ tz_object = ny DateTimeZone ($ tidssone);
$ datetime = new DateTime ();
$ datetime-> setTimezone ($ tz_object);
ekko "time is-", $ datetime-> format ('H: i: s');
ekko "";
ekko "date is-", $ datetime-> format ('m/d/Y');
?>
Denne websiden er slik at du kan be om det
coridium.us/time.php - og du får godt tidssonen i USA
eller
coridium.us/time.php?zone=Europe/London
Ingen feilkontroll og vil sannsynligvis aldri bli det
Og Lua for å lese det -
wifi.sta.config ("your_SSID", "your_PASSWORD")> wifi.sta.connect () …
sk = net.createConnection (net. TCP, 0)
sk: on ("motta", funksjon (sck, c) print (c) end)
sk: connect (80, "coridium.us")
sk: send ("GET /time.php HTTP/1.1 / r / nHost: coridium.us / r / nTilkobling: keep-alive / r / nAccept: */ *\ r / n / r / n")
Og du får tilbake tiden som
klokken er-09: 38: 49dato er-2018-31-12
Trinn 5: Legg til BASIC -kode for å analysere tiden fra nettet
Dette er en delmengde av hele BASIC -programmet, det fulle programmet kan sees på lenken i det siste trinnet.
if strstr (build_gets, "time is-") = 0 da
hr = build_gets (8) - "0"
hvis build_gets (9) = ":" da
min = (build_gets (10) - "0")*10
min += build_gets (11) - "0"
ellers
hr = hr * 10 + build_gets (9) - "0"
min = (build_gets (11) - "0")*10
min += build_gets (12) - "0"
slutt om
slutt om
Trinn 6: Legg til en lyssensor og kode for å dempe skjermen
En fototransistor ble lagt til for å føle det omgivende lyset i rommet. Uten den er skjermen lys nok til å vekke de døde (meg) om natten.
Den analoge spenningen til utgangen til fototransistoren leses og pulsbreddemodulasjonen angir displayets generelle lysstyrke.
Trinn 7: Knapp opp klokken og begynn å bruke den
Den endelige versjonen viser tiden, og rundt klokken 03.00 går den ut på nettet for å lese gjeldende tid. Dette håndterer også sommertid.
Motivasjonen for dette prosjektet var strømbruddene vi opplever her i fjellet og behovet for å tilbakestille klokker eller bytte batterier for å holde dem i live.
Dette har vært en rask oversikt over prosjektet.
Full informasjon om denne DIY -tilkoblede klokken.
Anbefalt:
Hvordan lage analog klokke og digital klokke med LED -stripe ved hjelp av Arduino: 3 trinn
Hvordan lage analog klokke og digital klokke med LED -stripe ved hjelp av Arduino: I dag skal vi lage en analog klokke & Digital klokke med Led Strip og MAX7219 Dot -modul med Arduino. Den vil korrigere tiden med den lokale tidssonen. Den analoge klokken kan bruke en lengre LED -stripe, så den kan henges på veggen for å bli en kunstner
Internett -klokke: Vis dato og klokkeslett med en OLED ved bruk av ESP8266 NodeMCU med NTP -protokoll: 6 trinn
Internett -klokke: Vis dato og klokkeslett med en OLED Bruke ESP8266 NodeMCU Med NTP -protokoll: Hei folkens i denne instruksen vil vi bygge en internettklokke som får tid fra internett, så dette prosjektet trenger ikke noen RTC for å kjøre, det trenger bare en fungerende internettforbindelse Og for dette prosjektet trenger du en esp8266 som vil ha en
ESP8266 nettverksklokke uten noen RTC - Nodemcu NTP -klokke Ingen RTC - INTERNETT KLOKKESPROJEKT: 4 trinn
ESP8266 nettverksklokke uten noen RTC | Nodemcu NTP -klokke Ingen RTC | INTERNETT KLOKKESPROJEKT: I prosjektet skal vi lage et klokkeprosjekt uten RTC, det vil ta tid fra internett ved hjelp av wifi, og det vil vise det på st7735 -skjermen
Lage en klokke fra en klokke: 11 trinn (med bilder)
Opprette en klokke fra en klokke: I denne instruksen tar jeg en eksisterende klokke og lager det jeg føler er en bedre klokke. Vi går fra bildet til venstre til bildet til høyre. Før du begynner på din egen klokke, må du vite at gjenmontering kan være utfordrende som den viktigste
ESP32 og OLED -skjerm: Internett -klokke - DHT22: 10 trinn (med bilder)
ESP32 og OLED -skjerm: Internett -klokke - DHT22: This Instructable konkurrerer om konkurranse: " GIFs Challenge 2017 ", Hvis du liker det, vennligst gi din stemme ved å klikke på banneret ovenfor. Tusen takk!;-) Denne opplæringen er en fortsettelse av en reise for å lære mer om denne flotte IoT-enheten