
Dalam pelajaran ini, kita akan memeriksa penggunaan variabel sistem khusus untuk menghubungkan antarmuka konfigurasi berbasis web dan desain proyek. Kami juga mencoba mengkonfigurasi sinkronisasi jam sistem pengontrol dengan server waktu yang tepat.
Pelajaran ini dibuat untuk versi 3.1.4, yang sekarang dalam pengujian pra-rilis. Anda dapat mengunduhnya di sini . Anda dapat mempelajari lebih lanjut tentang proyek FLProg dari blog perusahaan di hub , situs web proyek, dan forum . Selain itu, pada saluran ArduinoProm , Anda dapat menonton beragam pelajaran video.Kami akan menggunakan
proyek yang dibuat dalam
pelajaran terakhir sebagai dasar.
Untuk memulainya, kita akan membuat tiga parameter pengguna sistem di mana waktu sistem saat ini dari pengontrol, zona waktu, dan alamat server waktu yang tepat dengan mana kita akan disinkronkan akan disimpan. Untuk melakukan ini, kami menemukan cabang "
Tambahkan Parameter " di pohon proyek di simpul "
Parameter Pengguna ".

Kotak dialog untuk menambahkan parameter sistem baru akan terbuka. Isi itu.

Di bidang "
Nama ", masukkan nama parameter. Mari kita pilih tipe parameter - "
String ". Nilai parameter ini akan berubah secara dinamis selama operasi, oleh karena itu, kami akan menonaktifkan penghematan nilai parameter di EEPROM. Karena itu, kami tidak menetapkan nilai default. Panjang garis maksimum adalah 20 (output akan dalam bentuk
01:01:01 01-01-2018 yaitu 19 karakter).
Tambahkan parameter kedua dengan cara yang sama.

Biarkan saja save di EEPROM, sehingga controller mengingat server yang kita masukkan, dan mengatur server secara default.
Terakhir, buat parameter ketiga, nilai zona waktu, untuk tampilan waktu yang benar.

Jenis parameter
integer , Pastikan untuk menyimpan di EEPROM, nilai default pilihan Anda (saya punya 4 jam).
Hasilnya, kami mendapat tiga parameter pengguna

Kami lolos ke skema firmware.
Di perpustakaan blok fungsi, kami menemukan blok â
Mendapatkan waktu dari server NTP â dan menyeretnya ke area kerja rangkaian

Mengklik dua kali pada blok ini membuka editor parameter blok.

Mari kita pertimbangkan pengaturan lebih detail.
Server NTP - alamat server dari mana waktu yang tepat akan diambil. Itu dapat diatur sebagai konstanta. Anda dapat memilih dari daftar yang standar. Saya memeriksa semuanya - mereka bekerja. Untuk memilih, klik tombol "
Server Standar ".

Tetapi karena kami ingin mengatur alamat server "
dari orang dewasa " dari antarmuka web, beri tanda centang pada kotak centang "
Login "
Periode permintaan sebelum menerima respons pertama adalah frekuensi pengontrol akan "
mengetuk " server hingga menerima waktu untuk pertama kalinya. Kami meninggalkan nilai konstan setiap 30 detik. Dimungkinkan juga untuk mengatur input, maka akan perlu untuk menerapkan nilai dalam milidetik untuk itu.
Periode permintaan setelah menerima respons pertama adalah seberapa sering pengendali akan memeriksa waktu di server. Kami berangkat secara default, setiap setengah jam sekali. Anda juga dapat mengatur melalui input, dalam milidetik.
Zona Waktu - Karena server memberikan waktu dalam GMT, parameter ini menetapkan offset zona waktu dalam jam. Kami memutuskan untuk mengatur parameter ini melalui antarmuka web, jadi kami memberi tanda centang pada kotak centang "
Login "
Keluar "Tahun" ,
Keluar "Bulan" ,
Keluar "Hari" ,
Keluar "Jam" ,
Keluar "Menit" ,
Keluar "Kedua" - kami tidak membutuhkannya dalam pelajaran ini, jadi kami tidak mencentang kotak.
Output
"Waktu Unix" - kami tidak membutuhkan output ini, kami tidak memberi tanda centang (sejujurnya, saya belum menemukan Case Pengguna untuk itu. Tapi untuk berjaga-jaga, saya melakukannya, ini berguna bagi seseorang).
Total kami mendapat pengaturan blok seperti itu

Dengan demikian, blok pada skema firmware juga telah berubah.

Temukan blok "
Membaca parameter sistem " di perpustakaan dan seret ke diagram.

Klik dua kali pada blok ini, dan mulai untuk mengkonfigurasi parameternya.
Pertama, tekan tombol pilih parameter sistem.

Jendela untuk memilih parameter sistem terbuka. Pilih parameter "
Server waktu "

Ini menyelesaikan pengaturan blokir.
Kami dengan nyaman menempatkan blok dan menghubungkan output dari blok "
Baca parameter sistem " ke input "
Server " dari blok "
Terima waktu dari server NTP "

Seret blok lain "
Baca parameter sistem " ke diagram dan konfigurasikan untuk membaca parameter "
Zona waktu ".

Kami menghubungkan output dari blok ini ke input "
TimeZone " dari blok "
Receive time from NTP server "

Tambahkan papan baru ke sirkuit. Untuk melakukan ini, klik tombol "
Tambah Papan "

Kami mematikan papan pertama, kami tidak lagi membutuhkannya. Untuk melakukan ini, klik pada panah di header papan pertama.

Kami menarik keluar blok "
Menerima data dari jam waktu yang tepat " pada sirkuit di papan kedua

Klik dua kali untuk memanggil dialog pengaturan blok. Dengan menekan tombol "
Baru ", kami membuka dialog pemilihan jam dan memilih "
Jam sistem pengontrol ".


Lalu kami beri tanda centang "
Output" Jam " "

Dan kami selesai mengedit blok.
Kemudian kami menyalin blok ini lima kali lagi, mengatur ulang di pengaturan masing-masing dari mereka tanda centang keluar dalam urutan
Menit - Kedua - Hari - Bulan - Tahun .

Sekarang kita tarik keluar blok "
String Conversion " ke diagram dari perpustakaan.

Dan dalam pengaturannya, pilih jenis konversi "
Waktu "

Kami menyalin blok lima kali lagi, dan mengumpulkan skema

Transfer ke diagram dari perpustakaan, blok â
Addition of lines â

Dalam pengaturan blok, kami menetapkan 11 input.

Dan kami menghubungkan blok sesuai dengan skema

Pada input bebas dari blok kita mengatur konstanta
Input 2 - â:â
Input 4 - â:â
Input 6 - Spasi
Input 8 - â-â
Input 10 - â-â
Untuk menetapkan konstanta, klik kanan pada input gratis dan pilih "
Sisipkan Constant " dari menu drop-down.

Jendela input konstan terbuka, di mana dalam bidang "
Nilai default " konstanta yang diperlukan dimasukkan

Sekarang kita mengambil blok "
Merekam parameter sistem " dari perpustakaan ke sirkuit

Dalam pengaturan blokir, hapus centang pada kotak centang "
Rekam izin input " dan pilih parameter "
Tanggal - Waktu "

Kami menghubungkan output dari blok "
Line Addition " dengan input dari "
System Parameter Record "

Sebagai hasilnya, kita harus mendapatkan skema seperti itu (Untuk kejelasan, gunakan papan pertama).

Setelah skema firmware selesai, kami kembali ke pohon proyek.
Kami akan menambahkan tiga parameter ke halaman utama antarmuka Web (lihat bagaimana melakukan ini dalam
pelajaran sebelumnya ).
Parameter 1 - Parameter sistem "
Tanggal - Waktu ", tipe parameter - "
Teks ", label - "
Waktu "
Parameter 2 - Parameter sistem "
Server waktu yang tepat ", tipe parameter - "
Bidang input ", label - "
Server "
Parameter 3 - Parameter sistem "
Zona Waktu ", tipe parameter - "
Bidang input ", label - "
Zona waktu "

Nyalakan tombol "
Simpan " di halaman

Tuangkan program ke dalam pengontrol, dan lihat apa yang terjadi di halaman utama (bagaimana melakukan ini, lihat
pelajaran sebelumnya )
Segera setelah terhubung - server waktu belum disinkronkan

Setelah satu menit (menyegarkan halaman) - sinkronisasi telah berlalu

Ubah zona waktu dan klik simpan

Proyek yang dibuat dalam pelajaran dapat diunduh di
sini .