Innehållsförteckning:
- Tillbehör
- Steg 1: Anslut Digit Drive och Segment Drive för Multiplexed Display
- Steg 2: Testa anslutningarna
- Steg 3: Kod för visningstid och PWM för att styra ljusstyrkan
- Steg 4: Skapa en internetanslutning
- Steg 5: Lägg till BASIC -kod för att analysera tiden från webben
- Steg 6: Lägg till en ljussensor och kod för att dimma skärmen
- Steg 7: Knappa upp klockan och börja använda den
Video: Webbansluten digital klocka: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Hittade en digital klocka på $ 10 på Amazon. Nu för att anpassa det för att få tid från internet.
Tillbehör
ARM Stamp programmerbar i BASIC tillgänglig här
Steg 1: Anslut Digit Drive och Segment Drive för Multiplexed Display
Jag började med en billig digital klocka på hyllan. Först tog jag bort det befintliga klockchippet. Gjorde sedan en del undersökningar och hittade de 7 segmentanslutningarna, som kan drivas direkt av mikroprocessorn. Hittade sedan de fyrsiffriga drivrutinerna som var transistorer som mikroprocessorn kan driva. Och sedan kopplade de upp dem.
Steg 2: Testa anslutningarna
Som ett experiment skrev jag ett BASIC -program för att driva alla linjer, för att kontrollera ledningarna och mäta strömmen, som i detta fall var 82 mA
Nästa var att skriva koden för att skanna linjerna.
'webbklocka displayenhet
IO (7) = 0 'PMOS -enhet - kommer att vara PWM någon gång
för y = 45 till 48
IO (y) = 0 'siffra enhet
för x = 8 till 15
IO (x) = 0 'segment -enhet
vänta (500)
IO (x) = 1
nästa x
DIR (y) = 0 'inaktivera enhet på segment
nästa y
Steg 3: Kod för visningstid och PWM för att styra ljusstyrkan
Därefter lade jag till en PMOS -transistor i strömförsörjningen till alla sifferdrivrutiner. Med det som drivs av pulsbreddsmodulering styr displayens ljusstyrka. Här är BASIC -koden för att visa tiden.
'webbklocka display #inkludera "LPC11U3x.bas"
'globaler
hr = 0 'definiera timme
min = 0 'definiera minut
#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 (err, hr, min)
dim hr10, hr1, min10, min1, i
#ifdef US_TIME
om hr> 12 så hr -= 12
om hr = 0 då hr = 12
#endif
hr10 = hr / 10
hr1 = hr MOD 10
min10 = min / 10
min1 = min MOD 10
för i = 0 till 1
om hr10 då
IO (45) = 0
endif
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (hr10)
GPIO_CLR (0) = DIGarray (hr10)
vänta (DIG_WAIT)
INGÅNG (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)
vänta (DIG_WAIT)
INGÅNG (46)
IO (47) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min10)
GPIO_CLR (0) = DIGarray (min10)
vänta (DIG_WAIT)
INGÅNG (47)
IO (48) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min1)
GPIO_CLR (0) = DIGarray (min1)
vänta (DIG_WAIT)
INGÅNG (48)
nästa i
ändsub
'användare TIMER1 (32 bit) för att avbryta varje minut
AVBRYT SUB TIMER1IRQ
T1_IR = 1 'Rensa avbrott
min += 1
om min> 59 då
min = 0
tim += 1
om tim> 23 då
tim = 0
endif
endif
ENDSUB
SUB ON_TIMER (max_cnt, detta)
TIMER1_ISR = gör denna + 1 'inställningsfunktion för VIC - behöver +1 för tummen
SYSCON_SYSAHBCLKCTRL ELLER = (1 << 10) 'aktivera TIMER1
T1_PR = 0 'ingen förskalning - justerar värdet för mer exakt tid
VICIntEnable OR = (1 << TIMER1_IRQn) 'Aktivera avbrott
T1_MR0 = max_cnt-1 'ställa in matchningsantal ms
T1_MCR = 3 'Avbrott och återställning på
MR0 T1_IR = 1 'klart avbrott
T1_TC = 0 'tydlig timerräknare
T1_TCR = 1 'TIMER1 Aktivera
ENDSUB
#define MINUT_PCLK 2880000000 '60 sekunder vid 48 MHz
huvud:
tim = 9
min = 33
ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)
IO (7) = 0 'PWM någon dag - måste flytta till P0_22 ??
medan 1
display_time (0, hr, min)
slinga
Steg 4: Skapa en internetanslutning
Använd en ESP8266 för en WiFi -anslutning. Efter att ha petat runt på nätet ett tag var den bästa lösningen nodemcu version 0.9.6 och en äldre esp8266_flasher fungerade bäst.
www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip
Sedan en enkel PHP-webbsida för att servera tid från internet--
Coridium Time Server
<? php
$ tidszon = htmlspecialchars ($ _ GET ["zon"]); if ($ tidszon == "")
$ timezone = 'America/Los_Angeles';
$ tz_object = ny DateTimeZone ($ tidszon);
$ datetime = new DateTime ();
$ datetime-> setTimezone ($ tz_object);
echo "time is-", $ datetime-> format ('H: i: s');
eko "";
eko "datum är-", $ datetime-> format ('m/d/Y');
?>
Den webbsidan är så att du kan begära
coridium.us/time.php - och du får väl tidszon i USA
eller
coridium.us/time.php?zone=Europe/London
Inget felkontroll och kommer troligen aldrig att bli det
Och Lua att läsa det -
wifi.sta.config ("your_SSID", "your_PASSWORD")> wifi.sta.connect () …
sk = net.createConnection (net. TCP, 0)
sk: on ("ta emot", funktion (sck, c) print (c) end)
sk: connect (80, "coridium.us")
sk: send ("GET /time.php HTTP/1.1 / r / nHost: coridium.us / r / nConnection: keep-alive / r / nAccept: */ *\ r / n / r / n")
Och du får tillbaka tiden som
tid är-09: 38: 49datum är-2018-31-12
Steg 5: Lägg till BASIC -kod för att analysera tiden från webben
Detta är en delmängd av hela BASIC -programmet, hela programmet kan ses på länken i det sista steget.
if strstr (build_gets, "time is-") = 0 then
hr = build_gets (8) - "0"
if build_gets (9) = ":" då
min = (build_gets (10) - "0")*10
min += build_gets (11) - "0"
annan
hr = hr * 10 + build_gets (9) - "0"
min = (build_gets (11) - "0")*10
min += build_gets (12) - "0"
endif
endif
Steg 6: Lägg till en ljussensor och kod för att dimma skärmen
En fototransistor tillsattes för att känna av det omgivande ljuset i rummet. Utan det är displayen tillräckligt ljus för att väcka de döda (jag) på natten.
Den analoga spänningen för utgången på fototransistorn avläses och pulsbreddsmodulationen anger skärmens totala ljusstyrka.
Steg 7: Knappa upp klockan och börja använda den
Den slutliga versionen visar tiden, och runt 03:00 går den ut på webben för att läsa den aktuella tiden. Detta klarar också sommartid.
Motiveringen för detta projekt var de strömavbrott vi upplever här i bergen och behovet av att återställa klockor eller byta batterier för att hålla dem vid liv.
Detta har varit en snabb översikt över projektet.
Fullständig information om denna DIY webbkopplade klocka.
Rekommenderad:
Hur man gör analog klocka och digital klocka med LED -remsa med Arduino: 3 steg
Hur man gör analog klocka och digital klocka med LED -remsa med Arduino: Idag kommer vi att göra en analog klocka & Digital klocka med Led Strip och MAX7219 Dot -modul med Arduino. Den kommer att korrigera tiden med den lokala tidszonen. Den analoga klockan kan använda en längre LED -remsa, så den kan hängas på väggen för att bli en konstverk
Skapa en klocka från en klocka: 11 steg (med bilder)
Skapa en klocka från en klocka: I denna instruktionsbok tar jag en befintlig klocka och skapar vad jag tycker är en bättre klocka. Vi går från bilden till vänster till bilden till höger. Innan du börjar på din egen klocka, vänligen vet att återmontering kan vara en utmaning som
Webbansluten SMART LED-animationsklocka med webbaserad kontrollpanel, synkroniserad tidsserver: 11 steg (med bilder)
Webbansluten SMART LED-animationsklocka Med webbaserad kontrollpanel, tidsserver synkroniserad: Klockans historia går långt tillbaka-mer än 30 år. Min far var banbrytande för denna idé när jag bara var 10 år gammal, långt före LED -revolutionen - tillbaka när LED: erna var 1/1000 ljusstyrkan för deras nuvarande bländande glans. En sann
Gör en webbansluten robot (för cirka $ 500) (med en Arduino och en Netbook): 6 steg (med bilder)
Skapa en webbansluten robot (för cirka $ 500) (med en Arduino och en Netbook): Denna instruktion visar dig hur du bygger din egen webbanslutna robot (med en Arduino mikrokontroller och Asus eee pc). Varför vill du ha en webb Ansluten robot? Att leka med förstås. Kör din robot från andra sidan rummet eller från räkningen
Billig webbansluten termostat: 12 steg (med bilder)
Billig webbansluten termostat: En av de första Internet of Things-produkterna som hittade in i många hushåll är den smarta termostaten. De kan lära sig när du vill att ditt hus ska bli varmt och vilken rumstemperatur som vanligtvis krävs. Det coola är att de också kan