Opsi jam tangan DIY saya dengan klien NTP

Karena dalam publikasi sebelumnya tidak pernah sampai ke produk jadi, saya mengusulkan versi saya sendiri. Besi bukan spesialisasi saya, jadi tolong jangan menilai dengan ketat.

Jadi, dalam urutan. Ketika kecintaan saya pada jam tangan dan waktu yang tepat mencapai tahap akhir, diputuskan untuk membuat mimpi itu menjadi kenyataan. Pencarian dimulai untuk papan pengembangan yang terjangkau dengan Ethernet on board. Rapsberry dengan Linux seperti β€œgun on sparrows”, jadi saya mengajukan pertanyaan di forum Netduino, karena sekarang saya duduk dengan C # dan menarik untuk menjalankan bytecode pada mikrokontroler. Namun sayang, satu-satunya moderator forum, tampaknya, pergi berlibur, dan butuh beberapa minggu untuk menyetujui dan menerbitkan pesan pertama saya. Tidak bagus, tidak bagus ... Papan Arch Pro dan body kit lainnya yang hilang dipesan di aliexpress. Maka itu adalah solusi yang paling terjangkau. Di papan tulis itu sendiri, ada mikrokontroler NXP LPC1768 (inti Cortex-M3), ditambah mikrokontroler LPC11U35 (Cortex-M0) untuk memfasilitasi komunikasi dengan perangkat lunak mereka. Pabrikan itu sendiri menyediakan IDE online,kompilasi juga ada di server mereka, firmware diunduh dan diunduh ke papan sebagai file pada USB flash drive, tidak ada debugger, jadi saya mulai mengembangkan proyek di Keil uVision, versi percobaan, tentu saja. Hanya kabel micro-USB yang diperlukan untuk firmware dan debugging mikrokontroler.

Sebagai jam waktu nyata, DS3231 dipilih, yang datang kepada saya dalam bentuk modul siap pakai yang berkomunikasi melalui I2C:

Rtc

Untuk beberapa alasan, modul misterius hanya bekerja ketika penganalisa logika terhubung dan dihidupkan (saya menggunakan Logic-U ISL dari orang-orang dari Kharkov):

pengalaman

Seharusnya ada 10K resistor antara garis sinyal dan V +, modul yang dipanggil megaom. Apa jenis boneka bukannya rakitan resistor dan LED yang tidak pernah menyala, saya tidak mengerti. Resistor yang disolder modul dihidupkan kembali, tetapi ambang pertanian kolektif melewati garis tertentu, sehingga papan dikembangkan sesuai dengan jenis "perisai" Arduino:

melindungi

Skema:

skema

Tampilan segmen diambil sebagai indikator - ukuran ini (tinggi 0,8)) hanya dengan LED putih, dari semua dokumentasi di atasnya, Cina hanya menyediakan jip dengan pinout, beberapa karakter yang tidak dapat dibaca harus ditebak dengan metode pengecualian. Pengontrol untuk itu diambil oleh MAX7219 yang terkenal, berkomunikasi dengan SPI.

Kasus ... Pada liburan Tahun Baru, tentu saja, tidak ada printer 3D atau pemotongan laser. Saya sendiri melihat sebuah kaca plexiglass berukuran 8 mm.

Momen keputusasaan di tahap akhir:

oops

Pandangan produk akhir:

akhir

Jam menerima alamat IP melalui DHCP (router mendistribusikannya ke saya). Server NTP dipilih secara acak. Waktu diminta setiap 25 jam (penyedia saya terputus dari Internet pada waktu yang sama di malam hari, jadi saya tidak ingin masuk ke periode waktu ini). Karena undang-undang yang terus berubah dengan zona waktu, saya memutuskan untuk tidak menerapkan transisi ke musim panas dan musim dingin, dua tombol hanya mengurangi atau menambah offset dari UTC satu jam. Offset direkam dalam EEPROM mikrokontroler. Jam ini juga didukung oleh baterai lithium 3V, sehingga pemadaman listrik dan internet tidak menjadi masalah. Empat warna LED di papan digunakan untuk menunjukkan masalah dengan Internet, perangkat keras atau kesalahan dalam runtime.

Kode sumber untuk firmware di github:

https://github.com/sapozhnikov/eclock

Source: https://habr.com/ru/post/id384127/


All Articles