Isi kandungan:

Jam Digital Bersambung Web: 7 Langkah
Jam Digital Bersambung Web: 7 Langkah

Video: Jam Digital Bersambung Web: 7 Langkah

Video: Jam Digital Bersambung Web: 7 Langkah
Video: cara setting smartwatch t800 ultra 2.0 full tutorial 2024, Julai
Anonim
Jam Digital Bersambung Web
Jam Digital Bersambung Web

Menjumpai jam digital $ 10 di Amazon. Sekarang untuk menyesuaikannya untuk mendapatkan masa dari internet.

Bekalan

Cap ARM yang boleh diprogramkan dalam ASAS boleh didapati di sini

Langkah 1: Sambungkan Digit Drive dan Segment Drive untuk Multiplexed Display

Sambungkan Digit Drive dan Segment Drive untuk Paparan Berganda
Sambungkan Digit Drive dan Segment Drive untuk Paparan Berganda

Saya mulakan dengan jam digital nombor besar yang murah. Mula-mula saya mengeluarkan cip jam yang ada. Kemudian melakukan beberapa penyiasatan di sekitar dan terletak sambungan 7 segmen, yang dapat didorong secara langsung oleh mikropemproses. Kemudian dijumpai pemacu 4 digit yang merupakan transistor yang boleh dipacu oleh mikropemproses. Dan kemudian menyambungkannya.

Langkah 2: Uji Sambungan

Uji Sambungan
Uji Sambungan

Sebagai percubaan, saya menulis program BASIC untuk menggerakkan semua garis, untuk memeriksa pendawaian dan mengukur arus, yang dalam hal ini adalah 82 mA

Seterusnya adalah menulis kod untuk mengimbas garis.

pemacu paparan jam web

IO (7) = 0 'pemacu PMOS - akan menjadi PWM suatu hari nanti

untuk y = 45 hingga 48

Pemacu digit IO (y) = 0 '

untuk x = 8 hingga 15

Pemacu segmen IO (x) = 0 '

tunggu (500)

IO (x) = 1

x seterusnya

DIR (y) = 0 'lumpuhkan pemacu pada segmen

seterusnya y

Langkah 3: Kod untuk Menunjukkan Waktu dan PWM untuk Mengawal Kecerahan

Kod untuk Menunjukkan Masa dan PWM untuk Mengawal Kecerahan
Kod untuk Menunjukkan Masa dan PWM untuk Mengawal Kecerahan
Kod untuk Memaparkan Masa dan PWM untuk Mengawal Kecerahan
Kod untuk Memaparkan Masa dan PWM untuk Mengawal Kecerahan

Seterusnya saya menambahkan transistor PMOS dalam bekalan kuasa ke semua pemacu digit. Dengan itu didorong oleh modulasi lebar nadi akan mengawal kecerahan paparan. Berikut adalah kod ASAS untuk memaparkan waktu.

pemacu paparan jam web #masuk "LPC11U3x.bas"

'global

hr = 0 'tentukan jam

min = 0 'tentukan minit

#tentukan SEG_0 & HBB00

#tentukan SEG_1 & H1800

#tentukan SEG_2 & HD300

#tentukan SEG_3 & HD900

#tentukan SEG_4 & H7800

#tentukan SEG_5 & HE900

#tentukan SEG_6 & HEB00

#tentukan SEG_7 & H9800

#tentukan SEG_8 & HFB00

#tentukan SEG_9 & HF800

#tentukan SEG_o & H4B00

#tentukan 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}

#tentukan DIG_WAIT 1

#tentukan US_TIME

sub display_time (err, hr, min)

redup hr10, hr1, min10, min1, i

#ifdef US_TIME

jika jam> 12 maka jam - = 12

jika hr = 0 maka hr = 12

#endif

hr10 = jam / 10

hr1 = jam MOD 10

min10 = min / 10

min1 = min MOD 10

untuk i = 0 hingga 1

jika jam 10 maka

IO (45) = 0

endif

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

GPIO_CLR (0) = DIGarray (jam 10)

tunggu (DIG_WAIT)

INPUT (45)

IO (46) = 0

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (jam1) + JIKA (i, & H400, 0)

GPIO_CLR (0) = DIGarray (jam1) + JIKA (i, & H400, 0)

tunggu (DIG_WAIT)

INPUT (46)

IO (47) = 0

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

GPIO_CLR (0) = DIGarray (min10)

tunggu (DIG_WAIT)

INPUT (47)

IO (48) = 0

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

GPIO_CLR (0) = DIGarray (min1)

tunggu (DIG_WAIT)

INPUT (48)

seterusnya i

endub

'pengguna TIMER1 (32 bit) untuk mengganggu setiap minit

INTERRUPT SUB TIMER1IRQ

T1_IR = 1 'Hentikan gangguan

min + = 1

jika min> 59 maka

min = 0

jam + = 1

jika jam> 23 maka

jam = 0

endif

endif

ENDSUB

SUB ON_TIMER (max_cnt, dothis)

TIMER1_ISR = dothis + 1 'fungsi set VIC - memerlukan +1 untuk operasi Thumb

SYSCON_SYSAHBCLKCTRL ATAU = (1 << 10) 'dayakan TIMER1

T1_PR = 0 'tanpa prescale - akan menyesuaikan nilai untuk masa yang lebih tepat

VICIntEnable OR = (1 << TIMER1_IRQn) 'Aktifkan gangguan

T1_MR0 = max_cnt-1 'menetapkan bilangan padanan ms

T1_MCR = 3 'Ganggu dan Tetapkan semula

MR0 T1_IR = 1 'gangguan yang jelas

T1_TC = 0 'pembilang pemasa yang jelas

T1_TCR = 1 'TIMER1 Dayakan

ENDSUB

#tentukan MINUT_PCLK 2880000000 '60 saat pada 48 MHz

utama:

jam = 9

min = 33

ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)

IO (7) = 0 'PWM suatu hari - perlu berpindah ke P0_22 ??

sementara 1

display_time (0, jam, min)

gelung

Langkah 4: Buat Sambungan Internet

Buat Sambungan Internet
Buat Sambungan Internet

Gunakan ESP8266 untuk sambungan WiFi. Setelah menelusuri sebentar di web penyelesaian terbaik adalah nodemcu versi 0.9.6 dan esp8266_flasher yang lebih tua berfungsi dengan baik.

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

Kemudian laman web PHP yang mudah untuk meluangkan masa dari internet--

Pelayan Masa Coridium

<? php

$ timezone = htmlspecialchars ($ _ DAPATKAN ["zon"]); jika ($ timezone == "")

$ timezone = 'Amerika / Los_Angeles';

$ tz_object = DateTimeZone baru ($ zon waktu);

$ datetime = DateTime baru ();

$ datetime-> setTimezone ($ tz_object);

echo "time is-", format $ datetime-> ('H: i: s');

gema "";

echo "tarikh is-", format $ datetime-> ('m / d / Y');

?>

Laman web itu adalah supaya anda dapat meminta

coridium.us/time.php - dan anda mendapat zon waktu Pasifik AS

atau

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

Tiada ralat memeriksa dan kemungkinan besar tidak akan berlaku

Dan Lua membaca bahawa -

wifi.sta.config ("your_SSID", "your_PASSWORD")> wifi.sta.connect ()…

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

sk: on ("terima", fungsi (sck, c) cetak (c) akhir)

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

sk: send ("GET /time.php HTTP / 1.1 / r / nHost: coridium.us / r / nSambungan: terus-hidup / r / nTerima: * / * / r / n / r / n")

Dan anda mendapat kembali masa sebagai

waktu adalah-09: 38: 49 tarikh adalah-2018-31-12

Langkah 5: Tambahkan Kod ASAS untuk Menghuraikan Masa Dari Web

Tambahkan Kod ASAS untuk Menghuraikan Masa Dari Web
Tambahkan Kod ASAS untuk Menghuraikan Masa Dari Web

Ini adalah subset program BASIC penuh, bahawa program penuh dapat dilihat di pautan pada langkah terakhir.

jika strstr (build_gets, "time is-") = 0 maka

hr = build_gets (8) - "0"

jika build_gets (9) = ":" maka

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

min + = build_gets (11) - "0"

yang lain

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

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

min + = build_gets (12) - "0"

endif

endif

Langkah 6: Tambahkan Sensor Cahaya dan Kod untuk Meringankan Paparan

Tambahkan Sensor Cahaya dan Kod untuk Meringankan Paparan
Tambahkan Sensor Cahaya dan Kod untuk Meringankan Paparan
Tambahkan Sensor Cahaya dan Kod untuk Meringankan Paparan
Tambahkan Sensor Cahaya dan Kod untuk Meringankan Paparan
Tambahkan Sensor Cahaya dan Kod untuk Meringankan Paparan
Tambahkan Sensor Cahaya dan Kod untuk Meringankan Paparan

Transistor foto ditambahkan untuk merasakan cahaya sekitar di dalam bilik. Tanpa itu paparannya cukup terang untuk membangunkan si mati (saya) pada waktu malam.

Voltan analog output transistor foto dibaca dan modulasi lebar nadi menetapkan kecerahan keseluruhan paparan.

Langkah 7: Butang Jam dan Mula Menggunakannya

Butang Jam dan Mula Menggunakannya
Butang Jam dan Mula Menggunakannya

Versi terakhir memaparkan waktu, dan sekitar jam 3 pagi keluar ke web untuk membaca waktu terkini. Ini juga menangani masa penjimatan cahaya siang.

Motivasi untuk projek ini adalah kegagalan kuasa yang kita alami di pergunungan dan keperluan untuk mengatur semula jam atau mengganti bateri agar tetap hidup.

Ini adalah gambaran keseluruhan ringkas mengenai projek ini.

Maklumat lengkap jam bersambung web DIY ini.

Disyorkan: