Daftar Isi:
- Perlengkapan
- Langkah 1: Hubungkan Digit Drive dan Segment Drive untuk Multiplexed Display
- Langkah 2: Uji Koneksi
- Langkah 3: Kode untuk Menampilkan Waktu dan PWM untuk Mengontrol Kecerahan
- Langkah 4: Buat Koneksi Internet
- Langkah 5: Tambahkan Kode DASAR untuk Mengurai Waktu Dari Web
- Langkah 6: Tambahkan Sensor Cahaya dan Kode untuk Meredupkan Layar
- Langkah 7: Kancingkan Jam dan Mulai Menggunakannya
Video: Jam Digital Terhubung Web: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
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
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
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
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
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
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
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
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:
Jam Jaringan ESP8266 Tanpa RTC - Nodemcu NTP Jam Tidak Ada RTC - PROYEK JAM INTERNET: 4 Langkah
Jam Jaringan ESP8266 Tanpa RTC | Nodemcu NTP Jam Tidak Ada RTC | INTERNET CLOCK PROJECT : Pada project ini akan dibuat project clock tanpa RTC, akan memakan waktu dari internet menggunakan wifi dan akan ditampilkan pada layar st7735
Jam Samping Tempat Tidur Terhubung untuk Anak-Anak: 12 Langkah
Jam Samping Tempat Tidur yang Terhubung untuk Anak-Anak: Dengan mengikuti petunjuk ini, Anda akan dapat membuat jam yang diaktifkan dengan gerakan dan akan menunjukkan tanggal, waktu, dan acara yang relevan pada hari itu. Ini akan menunjukkan mode malam ketika saatnya untuk tidur dan ketika anak-anak bangun mereka dapat dengan cepat mengingat apa
Jam Animasi LED SMART yang Terhubung ke Web Dengan Panel Kontrol Berbasis Web, Server Waktu Disinkronkan: 11 Langkah (dengan Gambar)
Jam Animasi LED SMART yang Terhubung ke Web Dengan Panel Kontrol Berbasis Web, Server Waktu Disinkronkan: Kisah jam ini kembali ke masa lalu - lebih dari 30 tahun. Ayah saya mempelopori ide ini ketika saya baru berusia 10 tahun, jauh sebelum revolusi LED - kembali ketika LED di mana 1/1000 kecerahan kecemerlangan menyilaukan mereka saat ini. Benar
Membuat Robot Terhubung Web (Sekitar $500) (menggunakan Arduino dan Netbook): 6 Langkah (dengan Gambar)
Membuat Robot Terhubung Web (untuk Sekitar $ 500) (menggunakan Arduino dan Netbook): Instruksi ini akan menunjukkan kepada Anda cara membuat Robot Terhubung Web Anda sendiri (menggunakan mikrokontroler Arduino dan Asus eee pc). Mengapa Anda menginginkan Web Robot Terhubung? Untuk bermain dengan tentu saja. Kendarai robot Anda dari seberang ruangan atau melintasi hitungan
Termostat Terhubung Web Murah: 12 Langkah (dengan Gambar)
Termostat Terhubung Web Murah: Salah satu produk Internet of Things pertama yang ditemukan di banyak rumah tangga adalah termostat pintar. Mereka dapat belajar kapan Anda ingin rumah Anda menjadi hangat dan berapa suhu ruangan yang biasanya dibutuhkan. Yang keren adalah mereka juga bisa