Daftar Isi:

Jam Digital Terhubung Web: 7 Langkah
Jam Digital Terhubung Web: 7 Langkah

Video: Jam Digital Terhubung Web: 7 Langkah

Video: Jam Digital Terhubung Web: 7 Langkah
Video: Mudah KoK Cara Koneksi Smartwatch T500 Tanpa Bluetooth Fitpro Ke HP, Ikutin Cara Ini 2024, Juli
Anonim
Jam Digital Terhubung Web
Jam Digital Terhubung Web

Menemukan jam digital $10 di Amazon. Sekarang untuk menyesuaikannya untuk mendapatkan waktu dari internet.

Perlengkapan

ARM Stamp dapat diprogram dalam BASIC tersedia di sini

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

Hubungkan Digit Drive dan Segment Drive untuk Multiplexed Display
Hubungkan Digit Drive dan Segment Drive untuk Multiplexed Display

Saya mulai dengan jam digital nomor besar yang murah. Pertama saya melepas chip jam yang ada. Kemudian melakukan probing sekitar dan menemukan koneksi 7 segmen, yang dapat digerakkan langsung oleh mikroprosesor. Kemudian ditemukan driver 4 digit yang merupakan transistor yang dapat digerakkan oleh mikroprosesor. Dan kemudian menyambungkannya.

Langkah 2: Uji Koneksi

Uji Koneksi
Uji Koneksi

Sebagai percobaan saya menulis program BASIC untuk menggerakkan semua jalur, untuk memeriksa kabel dan mengukur arus, yang dalam hal ini adalah 82 mA

Selanjutnya adalah menulis kode untuk memindai garis.

' drive tampilan jam web

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

untuk y=45 sampai 48

IO(y)=0 ' digit drive

untuk x=8 sampai 15

IO(x)=0 ' penggerak segmen

tunggu(500)

IO(x)=1

x berikutnya

DIR(y)=0 ' nonaktifkan drive pada segmen

selanjutnya kamu

Langkah 3: Kode untuk Menampilkan Waktu dan PWM untuk Mengontrol Kecerahan

Kode untuk Menampilkan Waktu dan PWM untuk Mengontrol Kecerahan
Kode untuk Menampilkan Waktu dan PWM untuk Mengontrol Kecerahan
Kode untuk Menampilkan Waktu dan PWM untuk Mengontrol Kecerahan
Kode untuk Menampilkan Waktu dan PWM untuk Mengontrol Kecerahan

Selanjutnya saya menambahkan transistor PMOS di catu daya ke semua driver digit. Dengan didorong oleh modulasi lebar pulsa akan mengontrol kecerahan tampilan. Berikut adalah kode BASIC untuk menampilkan waktu.

' drive tampilan jam web #include "LPC11U3x.bas"

' global

jam = 0 ' tentukan jam

min = 0 ' tentukan menit

#tentukan SEG_0 &HBB00

#define SEG_1 &H1800

#define SEG_2 &HD300

#tentukan SEG_3 &HD900

#tentukan SEG_4 &H7800

#tentukan SEG_5 &HE900

#define SEG_6 &HEB00

#tentukan SEG_7 &H9800

#tentukan SEG_8 &HFB00

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

#tentukan DIG_WAIT 1

#tentukan US_TIME

sub tampilan_waktu(err, jam, menit)

redup hr10, hr1, min10, min1, i

#ifdef US_TIME

jika jam > 12 maka jam -= 12

jika jam = 0 maka jam = 12

#berakhir jika

jam10 = jam / 10

jam1 = jam MOD 10

min10 = menit / 10

min1 = min MOD 10

untuk i=0 sampai 1

jika jam 10 maka

IO(45) = 0

berakhir jika

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

GPIO_CLR(0) = DIGarray(jam10)

tunggu(DIG_WAIT)

MASUKAN(45)

IO(46) = 0

GPIO_DIR(0) = (GPIO_DIR(0) &HFFFF00FF) + DIGarray(hr1) + IF(i, &H400, 0)

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

tunggu(DIG_WAIT)

MASUKAN(46)

IO(47) = 0

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

GPIO_CLR(0) = DIGarray(min10)

tunggu(DIG_WAIT)

MASUKAN(47)

IO(48) = 0

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

GPIO_CLR(0) = DIGarray(min1)

tunggu(DIG_WAIT)

MASUKAN(48)

selanjutnya saya

sub akhir

' pengguna TIMER1 (32 bit) untuk menginterupsi setiap menit

INTERRUPT SUB TIMER1IRQ

T1_IR = 1 'Hapus interupsi

min += 1

jika min > 59 maka

menit = 0

jam += 1

jika jam > 23 maka

jam = 0

berakhir jika

berakhir jika

SELESAI

SUB ON_TIMER (max_cnt, lakukan ini)

TIMER1_ISR = lakukan ini + 1 'set fungsi VIC -- perlu +1 untuk operasi Thumb

SYSCON_SYSAHBCLKCTRL OR= (1<<10) ' aktifkan TIMER1

T1_PR = 0 'tidak ada skala awal -- akan menyesuaikan nilai untuk waktu yang lebih akurat

VICintEnable OR= (1<<TIMER1_IRQn) 'Aktifkan interupsi

T1_MR0 = max_cnt-1 ' mengatur jumlah kecocokan ms

T1_MCR = 3' Interrupt dan Reset on

MR0 T1_IR = 1 'menghapus interupsi

T1_TC = 0 'menghapus penghitung waktu

T1_TCR = 1' TIMER1 Aktifkan

SELESAI

#define MINUT_PCLK 2880000000 ' 60 detik pada 48 MHz

utama:

jam = 9

menit = 33

ON_TIMER(MINUT_PCLK, ALAMAT TIMER1IRQ)

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

sementara 1

tampilan_waktu(0, jam, mnt)

lingkaran

Langkah 4: Buat Koneksi Internet

Buat Koneksi Internet
Buat Koneksi Internet

Gunakan ESP8266 untuk koneksi WiFi. Setelah mengaduk-aduk web untuk sementara waktu, solusi terbaik adalah nodemcu versi 0.9.6 dan esp8266_flasher yang lebih lama bekerja paling baik.

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

Kemudian halaman web PHP sederhana untuk melayani waktu dari internet--

Server Waktu Coridium

<?php

$zona waktu = htmlspecialchars($_GET["zona"]); if ($zona waktu == "")

$zona waktu = 'Amerika/Los_Angeles';

$tz_object = new DateTimeZone($zona waktu);

$datetime = new DateTime();

$datetime->setTimezone($tz_object);

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

gema "";

echo "tanggal adalah-", $datetime->format('m/h/Y');

?>

Halaman web itu agar Anda dapat meminta

coridium.us/time.php -- dan Anda mendapatkan zona waktu Pasifik AS

atau

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

Tidak ada pengecekan kesalahan dan kemungkinan besar tidak akan pernah terjadi

Dan Lua membacanya --

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

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

sk:on("menerima", fungsi(sck, c) print(c) end)

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

sk:send("DAPATKAN /time.php HTTP/1.1\r\nHost: coridium.us\r\nKoneksi: keep-alive\r\nTerima: */*\r\n\r\n")

Dan Anda mendapatkan kembali waktu sebagai

waktu adalah-09:38:49tanggal 31-12/2018

Langkah 5: Tambahkan Kode DASAR untuk Mengurai Waktu Dari Web

Tambahkan Kode DASAR untuk Mengurai Waktu Dari Web
Tambahkan Kode DASAR untuk Mengurai Waktu Dari Web

Ini adalah bagian dari program BASIC lengkap, program lengkap itu dapat dilihat di tautan di langkah terakhir.

jika strstr(build_gets, "waktu adalah-") = 0 maka

jam = build_gets(8) - "0"

jika build_gets(9) = ":" maka

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

min += build_gets(11) - "0"

lain

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

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

min += build_gets(12) - "0"

berakhir jika

berakhir jika

Langkah 6: Tambahkan Sensor Cahaya dan Kode untuk Meredupkan Layar

Tambahkan Sensor Cahaya dan Kode untuk Meredupkan Layar
Tambahkan Sensor Cahaya dan Kode untuk Meredupkan Layar
Tambahkan Sensor Cahaya dan Kode untuk Meredupkan Layar
Tambahkan Sensor Cahaya dan Kode untuk Meredupkan Layar
Tambahkan Sensor Cahaya dan Kode untuk Meredupkan Layar
Tambahkan Sensor Cahaya dan Kode untuk Meredupkan Layar

Sebuah transistor foto ditambahkan untuk merasakan cahaya sekitar di dalam ruangan. Tanpa itu, layarnya cukup terang untuk membangunkan orang mati (saya) di malam hari.

Tegangan analog dari output transistor foto dibaca dan modulasi lebar pulsa mengatur kecerahan tampilan secara keseluruhan.

Langkah 7: Kancingkan Jam dan Mulai Menggunakannya

Tombol Up the Clock dan Mulai Menggunakannya
Tombol Up the Clock dan Mulai Menggunakannya

Versi terakhir menampilkan waktu, dan sekitar pukul 3 pagi ia keluar ke web untuk membaca waktu saat ini. Ini juga menangani waktu hemat cahaya siang hari.

Motivasi proyek ini adalah padamnya listrik yang kami alami di pegunungan ini dan kebutuhan untuk menyetel ulang jam atau mengganti baterai agar tetap hidup.

Ini adalah gambaran singkat dari proyek ini.

Detail lengkap dari jam terhubung web DIY ini.

Direkomendasikan: