Daftar Isi:
- Langkah 1: Desain Antarmuka UI
- Langkah 2: Komunikasi MCU
- Langkah 3: Penulisan Kode Logika
- Langkah 4: Akuisisi Sensor
- Langkah 5: Efek Operasi Sebenarnya
Video: LCD BATU Dengan Rumah Pintar: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
Hari ini, saya mendapatkan tampilan drive port serial STONE, yang dapat berkomunikasi melalui port serial MCU, dan desain logika UI tampilan ini dapat dirancang secara langsung dengan menggunakan perangkat lunak VGUS yang disediakan di situs web resmi STONE, yang sangat nyaman bagi kami. Jadi saya berencana menggunakannya untuk membuat pengontrol alat sederhana, yang mencakup kontrol berbagai lampu (ruang tamu, dapur, kamar anak-anak, kamar mandi). Pada saat yang sama, suhu, kelembaban, dan kualitas udara dalam dan luar ruangan dapat dikumpulkan. Ini hanya demo sederhana, dan Anda dapat melakukan pengembangan sekunder melalui kode yang saya berikan. Beberapa tutorial dasar tentang layar BATU dapat mengunjungi situs web:
Situs web ini memiliki berbagai informasi tentang model, pengguna, dan dokumentasi desain, serta video tutorial. Saya tidak akan membahas terlalu banyak detail di sini.
Langkah 1: Desain Antarmuka UI
Photoshop
Saya mendesain dua halaman UI berikut dengan photoshop:
Proyek ini memiliki dua halaman di atas secara total. "Cahaya" dan "Sensor" di sudut kanan atas adalah tombol sakelar dari dua halaman ini.
Di halaman "Cahaya", Anda dapat mengontrol semua jenis lampu di rumah Anda. Di halaman "Sensor", Anda dapat memeriksa nilai yang terdeteksi oleh berbagai sensor.
Setelah mendesain dua halaman di atas, kita dapat melakukan desain logika tombol melalui software STONE TOOL yang disediakan di website resmi STONE.
Perlu dicatat bahwa sumber jam yang digunakan untuk tampilan waktu di sini adalah sumber jam dari layar tampilan, bukan sumber jam MCU.
Efek pengalihan halaman TAB
Tidak ada komponen pengalihan halaman TAB yang ditemukan dalam perangkat lunak STONE TOOL, jadi saya memikirkan metode lain untuk mencapai efek pengalihan halaman TAB.
Melalui pengamatan yang saya berikan dua gambar UI dapat ditemukan bahwa dua gambar di atas adalah teks "Light" dan "Sensor", perbedaannya adalah ukuran pikselnya berbeda, jadi kita hanya perlu menempatkan posisi dua piksel diatur ke teks yang sama, dan kemudian melalui sudut kiri atas waktu dan tanggal untuk referensi, Anda dapat mencapai TAB untuk beralih efek.
Logika tombol
Ambil tombol "Ruang Tamu" sebagai contoh. Ketika pengguna menekan tombol ini, layar tampilan port serial BATU akan mengirimkan instruksi protokol yang sesuai melalui port serial. Setelah menerima instruksi ini, MCU pengguna akan mengurai protokol untuk mengontrol status switching lampu yang terhubung dengan MCU.
Akuisisi sensor
Ambil "kualitas udara" misalnya: jika Anda ingin mendapatkan kualitas udara dalam ruangan, kita harus memiliki MCU untuk mengumpulkan kualitas udara, sensor kualitas udara ketika numerik MCU dikumpulkan melalui algoritma membandingkan pro dan kontra kualitas udara, dan kemudian MCU dikirim melalui port serial untuk menampilkan area penyimpanan "Baik" atau "Buruk", untuk mengubah konten tampilan "Variabel teks0", dan kemudian pengguna dapat secara intuitif melihat manfaat dari kontrol kualitas. Ini akan dijelaskan nanti dalam kode MCU.
Langkah 2: Komunikasi MCU
STM32 adalah MCU yang dikenal semua orang, dan merupakan model MCU yang umum di dunia internasional. Oleh karena itu, model khusus STM32 MCU yang saya gunakan dalam proyek ini adalah STM32F103RCT6.
Ada banyak seri STM32, yang dapat memenuhi berbagai permintaan pasar. Kernel dapat dibagi menjadi korteks-m0, M3, M4, dan M7, dan setiap kernel dapat dibagi menjadi arus utama, kinerja tinggi, dan konsumsi daya rendah.
Murni dari perspektif pembelajaran, Anda dapat memilih F1 dan F4, F1 mewakili tipe dasar, berdasarkan kernel korteks-m3, frekuensi utama adalah 72MHZ, F4 mewakili kinerja tinggi, berdasarkan kernel korteks-m4, utama frekuensi 180M.
Sedangkan untuk F1, F4 (seri 429 ke atas), selain kernel yang berbeda dan peningkatan frekuensi utama, fitur yang jelas dari peningkatan adalah pengontrol LCD dan antarmuka kamera, dukungan untuk SDRAM, perbedaan ini akan diprioritaskan dalam pemilihan proyek. Namun, dari perspektif pengajaran universitas dan pembelajaran awal pengguna, seri F1 masih menjadi pilihan utama. Saat ini, STM32 dari seri F1 memiliki jumlah material dan produk terbesar di pasar.
Tentang instalasi lingkungan pengembangan STM32 SCM dan metode pengunduhan program, saya tidak akan melakukan pendahuluan.
inisialisasi GPIO
Dalam proyek ini, kami menggunakan total 4 GPIO, salah satunya adalah pin output PWM. Mari kita lihat inisialisasi tiga port GPIO biasa:
Fungsi ini menginisialisasi PB0\PB1\PB2 dari STM32F103C8 sebagai pin output dan memanggilnya dari fungsi utama. Setelah inisialisasi, kita perlu memiliki logika untuk mengontrol status output, level tinggi dan rendah dari GPIO ini, jadi saya menulis fungsinya seperti di bawah ini:
Ini adalah fungsi yang secara intuitif dapat Anda pahami dengan nama variabel.
Inisialisasi port serial
Bagian inisialisasi port serial ada di uart.c:
Kemudian panggil uart_init di fungsi utama untuk menginisialisasi baud rate port serial 115200. Pin menggunakan PA9/PA10
inisialisasi PWM
Langkah-langkah spesifik:
1. Atur jam RCC;
2. Atur jam GPIO;Mode GPIO harus disetel ke GPIO_Model_AF_PP, atau ke fungsi GPIO_PinRemapConfig() jika pin remap diperlukan.
3. Atur register timer TIMx yang relevan;
4. Atur register terkait PWM dari timer TIMx;
A. Setel mode PWM
B. Mengatur duty cycle (perhitungan rumus)
C. Mengatur polaritas perbandingan keluaran (diperkenalkan sebelumnya)
D. Yang paling penting, aktifkan status keluaran TIMx dan aktifkan keluaran PWM TIMx; Setelah Pengaturan yang relevan selesai, timer TIMx dihidupkan oleh TIMx_Cmd () untuk mendapatkan output PWM. Panggil TIM3_PWM_Init ini dari fungsi utama.
Langkah 3: Penulisan Kode Logika
Tampilkan definisi alamat komponen
Komponen tampilan memiliki alamat terpisah, dan di sini saya telah menulis semuanya sebagai definisi makro: Penerimaan data serial
Melihat informasi tentang tampilan STONE, Anda dapat melihat bahwa ketika tombol ditekan, port serial pada layar mengirimkan protokol dalam format yang sesuai, yang dapat diterima dan diuraikan oleh pengguna MCU. Saat tombol ditekan, port serial pada layar mengirimkan sembilan byte data, termasuk data pengguna. Penerimaan data serial ditulis dalam Handler: Data yang diterima disimpan dalam larik "USART_RX_BUF". Dalam proyek ini, panjang penerimaan adalah tetap. Ketika panjang penerima lebih dari 9 byte, ujung penerima dinilai.
Kontrol status sakelar lampu
Dalam fungsi utama, saya menulis beberapa kode logika untuk mengontrol status sakelar lampu: Seperti yang dapat kita lihat, kode pertama menentukan apakah data port serial diterima, dan ketika data port serial diterima, menentukan tombol mana yang digunakan pengguna. menekan pada layar tampilan. Tombol yang berbeda pada layar memiliki alamat yang berbeda, yang dapat dilihat pada perangkat lunak STONE TOOL: Ketika pengguna menekan tombol "Ruang Tamu", bit keempat dan kelima dari data yang dikirim oleh port serial layar tampilan adalah alamat tombol. Karena bit keempat dari semua tombol yang diatur di sini adalah 0x00, kita dapat menilai tombol mana yang ditekan pengguna dengan langsung menilai data dari bit kelima. Setelah mendapatkan tombol yang ditekan oleh pengguna, kita perlu menilai data pengguna yang diterima saat tombol ditekan, yang merupakan digit kedelapan dari data yang dikirim dari layar tampilan. Oleh karena itu, kami membuat kontrol berikut: tulis parameter alamat tombol dan data pengguna ke dalam fungsi "Light_Contral" untuk mengontrol status nyala-mati lampu. Entitas fungsi Light_Contral adalah sebagai berikut: Seperti yang Anda lihat, jika alamat tombol adalah "Ruang Tamu" dan data pengguna adalah "LightOn", maka pin PB0 dari MCU diatur ke output tingkat tinggi, dan lampu menyala. Tiga tombol lainnya serupa, tetapi saya tidak akan melanjutkan di sini.
keluaran PWM
Di UI yang saya rancang, ada pengatur geser, yang digunakan untuk mengontrol kecerahan cahaya "Ruang Anak". MCU diimplementasikan dengan pin keluaran PWM. PWM adalah PB5. Kodenya adalah sebagai berikut: Penyetel geser diatur ke nilai minimum 0x00 dan nilai maksimum 0x64. Saat menggeser, port serial layar tampilan juga akan mengirim alamat dan data yang relevan, dan kemudian mengatur rasio tugas output PWM dengan memanggil fungsi berikut:
Langkah 4: Akuisisi Sensor
Di halaman "Sensor" di layar tampilan, ada empat data Sensor.
Data juga memiliki alamat penyimpanan di layar, dan kita dapat mengubah konten sebenarnya hanya dengan menulis data ke alamat ini melalui port serial MCU.
Di sini saya membuat implementasi kode sederhana:
Data tampilan diperbarui setiap 5 detik, dan saya hanya menulis demo sederhana dari fungsi pengumpulan sensor yang relevan, karena saya tidak memiliki sensor ini di tangan saya.
Dalam pengembangan proyek nyata, sensor ini dapat berupa data yang dikumpulkan oleh ADC, atau data yang dikumpulkan oleh antarmuka komunikasi IIC, UART, dan SPI. Yang perlu Anda lakukan adalah menulis data ini ke dalam fungsi yang sesuai sebagai nilai kembalian.
Langkah 5: Efek Operasi Sebenarnya
Direkomendasikan:
Cara Menampilkan Detak Jantung pada LCD BATU Dengan Ar: 31 Langkah
Cara Menampilkan Detak Jantung di LCD BATU Dengan Ar: perkenalan singkat Beberapa waktu lalu saya menemukan modul sensor detak jantung MAX30100 di belanja online. Modul ini dapat mengumpulkan oksigen darah dan data detak jantung pengguna, yang juga sederhana dan nyaman digunakan. Menurut data, saya menemukan bahwa ada
GUNAKAN BATU HMI Membuat Sistem Kontrol Rumah: 9 Langkah
GUNAKAN STONE HMI Membuat Sistem Kontrol Rumah: Pengenalan proyek Tutorial berikut menunjukkan cara menggunakan modul layar sentuh STONE STVC050WT-01 untuk membuat sistem kontrol peralatan rumah sederhana. STONE STVC050WT - 01 modul layar sentuh dukungan adalah 5 inci, resolusi 480 * 272 pada
Game Gunting Batu Kertas Arduino Genggam Menggunakan Layar LCD 20x4 Dengan I2C: 7 Langkah
Game Gunting Batu Kertas Arduino Genggam Menggunakan Layar LCD 20x4 Dengan I2C: Halo semuanya atau mungkin saya harus mengatakan "Halo Dunia!"Senang rasanya berbagi proyek dengan Anda yang telah menjadi entri saya untuk banyak hal Arduino. Ini adalah permainan Gunting Batu Kertas Arduino genggam menggunakan layar LCD I2C 20x4. SAYA
Cara Membuat Rumah Pintar Menggunakan Modul Relai Kontrol Arduino - Ide Otomasi Rumah: 15 Langkah (dengan Gambar)
Cara Membuat Rumah Pintar Menggunakan Modul Relay Kontrol Arduino | Ide Otomasi Rumah: Dalam proyek otomatisasi rumah ini, kami akan merancang modul relai rumah pintar yang dapat mengontrol 5 peralatan rumah tangga. Modul relai ini dapat dikontrol dari Ponsel atau smartphone, remote IR atau remote TV, sakelar Manual. Relai pintar ini juga dapat merasakan
Rumah Pintar Dengan Arduino: 11 Langkah (dengan Gambar)
Rumah Pintar Dengan Arduino: Halo. Saya akan menunjukkan cara membangun rumah pintar Anda sendiri. Ini menunjukkan suhu baik di dalam maupun di luar, jika jendela terbuka atau tertutup, menunjukkan saat hujan dan membuat alarm ketika sensor PIR bergerak. Saya membuat aplikasi di android untuk