Tartalomjegyzék:

Internetes csatlakozású digitális óra: 7 lépés
Internetes csatlakozású digitális óra: 7 lépés

Videó: Internetes csatlakozású digitális óra: 7 lépés

Videó: Internetes csatlakozású digitális óra: 7 lépés
Videó: CooSpace4 Online óra 2024, Július
Anonim
Internetes csatlakozású digitális óra
Internetes csatlakozású digitális óra

Találtam egy 10 dolláros digitális órát az Amazon -on. Most testreszabhatja, hogy időt nyerjen az internetről.

Kellékek

A BASIC programozható ARM bélyegző itt érhető el

1. lépés: Csatlakoztassa a Digitális meghajtót és a szegmensmeghajtót a többszörös megjelenítéshez

Csatlakoztassa a Digitális meghajtót és a szegmensmeghajtót a többszörös megjelenítéshez
Csatlakoztassa a Digitális meghajtót és a szegmensmeghajtót a többszörös megjelenítéshez

Kezdtem egy olcsó polcról készült nagyszámú digitális órával. Először eltávolítottam a meglévő óralapot. Ezután némi szondázást végeztek, és megtalálták a 7 szegmenses csatlakozást, amelyeket közvetlenül a mikroprocesszor hajthat meg. Ezután megtalálta a 4 számjegyű illesztőprogramokat, amelyek tranzisztorok voltak, amelyeket a mikroprocesszor képes meghajtani. És akkor bekötötte ezeket.

2. lépés: Ellenőrizze a kapcsolatokat

Tesztelje a kapcsolatokat
Tesztelje a kapcsolatokat

Kísérletként írtam egy BASIC programot az összes vezeték meghajtására, a vezetékek ellenőrzésére és az áram mérésére, ami ebben az esetben 82 mA volt

Következő lépésként a sorok beolvasásához szükséges kódot kellett írni.

'webes órameghajtó

IO (7) = 0 'PMOS meghajtó - egyszer PWM lesz

y = 45 és 48 között

IO (y) = 0 'számjegyű meghajtó

x = 8-15

IO (x) = 0 'szegmenshajtás

várj (500)

IO (x) = 1

következő x

DIR (y) = 0 'a hajtás letiltása a szegmensen

következő y

3. lépés: A megjelenítési idő kódolása és a PWM a fényerő szabályozása

A megjelenítési idő kódja és a PWM a fényerő szabályozásához
A megjelenítési idő kódja és a PWM a fényerő szabályozásához
A megjelenítési idő kódja és a PWM a fényerő szabályozásához
A megjelenítési idő kódja és a PWM a fényerő szabályozásához

Ezután hozzáadtam egy PMOS tranzisztort a tápegységhez az összes számjegyű illesztőprogramhoz. Ezzel az impulzusszélesség -moduláció vezérli a kijelző fényerejét. Itt az alapkód az idő megjelenítéséhez.

'webóra kijelző meghajtó #include "LPC11U3x.bas"

'globális

hr = 0 'az óra meghatározása

min = 0 'perc meghatározása

#define SEG_0 & HBB00

#define SEG_1 és H1800

#define SEG_2 és HD300

#define SEG_3 és HD900

#define SEG_4 & H7800

#define SEG_5 és HE900

#define SEG_6 és 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)

halvány hr10, hr1, min10, min1, i

#ifdef US_TIME

ha hr> 12, akkor hr -= 12

ha hr = 0, akkor hr = 12

#endif

óra 10 = óra / 10

hr1 = óra MOD 10

min10 = perc / 10

min1 = min MOD 10

mert i = 0-1

ha hr10 akkor

IO (45) = 0

endif

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (10. óra)

GPIO_CLR (0) = DIGarray (óra 10)

várj (DIG_WAIT)

BEMENET (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árj (DIG_WAIT)

BEMENET (46)

IO (47) = 0

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min10)

GPIO_CLR (0) = DIGarray (min10)

várj (DIG_WAIT)

BEMENET (47)

IO (48) = 0

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min1)

GPIO_CLR (0) = DIGarray (min1)

várj (DIG_WAIT)

BEMENET (48)

következő i

Endsub

'TIMER1 felhasználó (32 bites) minden perc megszakításához

MEGSZAKÍTOTT SUB TIMER1IRQ

T1_IR = 1 'Megszakítás törlése

min += 1

ha min> 59 akkor

min = 0

óra += 1

ha hr> 23 akkor

óra = 0

endif

endif

ENDSUB

SUB ON_TIMER (max_cnt, dothis)

TIMER1_ISR = a VIC + 1 'funkciója - szükség van a +1 -re a hüvelykujj működéséhez

SYSCON_SYSAHBCLKCTRL VAGY = (1 << 10) 'TIMER1 engedélyezése

T1_PR = 0 'nincs előskála - az értéket a pontosabb idő érdekében állítja be

VICIntEnable OR = (1 << TIMER1_IRQn) 'A megszakítás engedélyezése

T1_MR0 = max_cnt-1 'állítsa be az egyezési számú ms-ot

T1_MCR = 3 'Megszakítás és visszaállítás bekapcsolva

MR0 T1_IR = 1 'világos megszakítás

T1_TC = 0 'időzítő számláló törlése

T1_TCR = 1 'TIMER1 Engedélyezés

ENDSUB

#define MINUT_PCLK 2880000000 '60 másodperc 48 MHz -en

fő:

óra = 9

min = 33

ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)

IO (7) = 0 'PWM egy nap - át kell lépni a P0_22 -re ??

míg 1

display_time (0, óra, perc)

hurok

4. lépés: Hozzon létre internetkapcsolatot

Hozzon létre internetkapcsolatot
Hozzon létre internetkapcsolatot

Használjon ESP8266 -ot WiFi kapcsolathoz. Miután egy ideig a weben böngésztem, a legjobb megoldás a nodemcu 0.9.6 verziója volt, és egy régebbi esp8266_flasher működött a legjobban.

www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip

Ezután egy egyszerű PHP weboldal, amely időt tölthet az internetről-

Coridium időszerver

<? php

$ timezone = htmlspecialchars ($ _ GET ["zone"]); ha ($ timezone == "")

$ timezone = 'Amerika/Los_Angeles';

$ tz_object = new DateTimeZone ($ timezone);

$ datetime = new DateTime ();

$ datetime-> setTimezone ($ tz_object);

echo "az idő is-", $ datetime-> formátum ('H: i: s');

visszhang "";

echo "date is-", $ datetime-> formátum ('m/d/Y');

?>

Ez a weboldal így kérhető

coridium.us/time.php - és megkapja az amerikai csendes -óceáni időzónát

vagy

coridium.us/time.php?zone=Europe/London

Nincs hibaellenőrzés, és valószínűleg soha nem is lesz

És a Lua ezt olvassa -

wifi.sta.config ("a_SSID -azonosító", "a_JELSZÓ")> wifi.sta.connect ()…

sk = net.createConnection (net. TCP, 0)

sk: on ("fogadás", függvény (sck, c) print (c) end)

sk: connect (80, "coridium.us")

sk: send ("GET /time.php HTTP/1.1 / r / nHost: coridium.us / r / nKapcsolat: életben marad / r / nElvétel: */ *\ r / n / r / n")

És visszakapod az időt

az idő-09: 38: 49dátum: 2018. 12. 12.

5. lépés: BASIC kód hozzáadása az internetről származó idő elemzéséhez

Adjon hozzá BASIC kódot a weben töltött idő elemzéséhez
Adjon hozzá BASIC kódot a weben töltött idő elemzéséhez

Ez a teljes BASIC program részhalmaza, amely a teljes program megtekinthető az utolsó lépés linkjén.

ha strstr (build_gets, "time is-") = 0 akkor

hr = build_gets (8) - "0"

ha build_gets (9) = ":" akkor

min = (build_gets (10) - "0")*10

min += build_gets (11) - "0"

más

hr = hr * 10 + build_gets (9) - "0"

min = (build_gets (11) - "0")*10

min += build_gets (12) - "0"

endif

endif

6. lépés: Fényérzékelő és kód hozzáadása a kijelző elsötétítéséhez

Adjon hozzá fényérzékelőt és kódot a kijelző tompításához
Adjon hozzá fényérzékelőt és kódot a kijelző tompításához
Adjon hozzá fényérzékelőt és kódot a kijelző tompításához
Adjon hozzá fényérzékelőt és kódot a kijelző tompításához
Adjon hozzá fényérzékelőt és kódot a kijelző tompításához
Adjon hozzá fényérzékelőt és kódot a kijelző tompításához

Fénytranzisztor került a helyiség környezeti fényének érzékelésére. Enélkül a kijelző elég világos ahhoz, hogy éjszaka felébressze a halottakat (engem).

A fototranzisztor kimenetének analóg feszültsége kiolvasásra kerül, és az impulzusszélesség -moduláció beállítja a kijelző teljes fényerejét.

7. lépés: Gombolja fel az órát, és kezdje el használni

Gombolja fel az órát, és kezdje el használni
Gombolja fel az órát, és kezdje el használni

A végleges verzió megjeleníti az időt, és hajnali 3 óra körül az internetre megy, hogy leolvassa az aktuális időt. Ez a nappali fénytakarékos időt is kezeli.

Ennek a projektnek a motivációja az áramkimaradások voltak, amelyeket itt, a hegyekben tapasztalunk, és az óra visszaállításának vagy az elemek cseréjének szükségessége, hogy életben maradjanak.

Ez egy gyors áttekintés a projektről.

Ennek a DIY webes órának a részletei.

Ajánlott: