Prototipe Digital I/O dengan Modul Bluetooth RN487x Microchip
Bangun periferal input dan output digital yang andal menggunakan modul Bluetooth RN487x
Dalam bagian kedua dari seri tiga bagian kami tentang modul Bluetooth RN487x Microchip, kami akan memandu Anda dalam membuat input digital (saklar) dan output digital (LED). Untuk latar belakang konfigurasi modul, lihat artikel pertama.
Proyek 1: Input Digital Saklar RN487x
Desain kami mengikuti pola tiga langkah:
- Hardware – saklar yang menghasilkan sinyal digital.
- Konfigurasi – perintah RN487x untuk mengalokasikan variabel database dan memetakan pin ke variabel tersebut.
- Aplikasi – skrip workstation yang membaca nilai database.
Hardware Input Digital
Input adalah saklar normally-open (SW1) sederhana. RN487x menyediakan internal pull-up, jadi saklar yang terhubung ke ground saat ditutup memberikan sinyal two-state yang bersih.


Kami menggunakan RN4871, yang mendukung GPIO single-pin. Rangkaian dapat diberi daya dari dua baterai AAA atau baterai koin. Komponen tambahan:
- C1: Kapasitor bypass untuk stabilitas daya.
- R1, C2: Tunda untuk reset processor saat menyala.
- J1: Port serial untuk konfigurasi.
Konfigurasi Input Digital
Pastikan modul dalam kondisi yang diketahui sebelum melanjutkan (lihat appendix untuk inisialisasi). Buat satu service dan satu characteristic di database GATT untuk mewakili status saklar:
PS,59c88760536411e7b114b2f933d5fe66 PC,59c889e0536411e7b114b2f933d5fe66,10,01
Di sini, PS membuat service, dan PC membuat characteristic. UUID adalah placeholder; buat UUID Anda sendiri mengikuti standar UUID. Parameter kedua dalam PC (10) meminta notifikasi segera saat nilai berubah, dan parameter ketiga (01) mengatur ukuran nilai ke satu byte.
Skrip periferal mengonfigurasi pin dan menangani event:
@PW_ON SW,0A,09 @PIO1H SHW,0072,01 @PIO1L SHW,0072,00
Setiap metode yang diawali dengan @ berjalan pada event sistem:
PW_ON – saat menyala, mengatur P1_2 sebagai input digital yang dipicu. PIO1H – saat transisi tinggi, menulis 1 ke database. PIO1L – saat transisi rendah, menulis 0 ke database.
Aplikasi Input Digital
Gunakan skrip Python switch.py (link disediakan). Ganti alamat MAC contoh dengan alamat MAC perangkat Anda. Setelah menyala periferal, jalankan skrip pada komputer yang mampu Bluetooth. Skrip terhubung ke perangkat, mendengarkan notifikasi, dan mencetak setiap event saklar. Lihat panduan setup Linux di appendix.
Fitur BLE kunci: notifikasi—periferal mendorong perubahan status ke klien tanpa polling.
Proyek 2: Kontrol Digital (LED) RN487x
Kami menerapkan pola tiga langkah yang sama untuk output:
- Hardware – LED yang didorong oleh GPIO open-collector RN4871.
- Konfigurasi – buat variabel database yang dipetakan ke pin LED.
- Aplikasi – skrip yang menulis nilai ke database untuk menyalakan atau mematikan LED.
Hardware Kontrol Digital
LED (D1) terhubung sebagai open-collector sink. Skematik mengikuti desain referensi RN487x.


Komponen:
- C1: Kapasitor bypass daya.
- R1, C2: Tunda reset.
- J1: Port serial.
Konfigurasi Kontrol Digital
Inisialisasi modul seperti yang dijelaskan di appendix. Buat satu service dan characteristic:
PS,59c88760536411e7b114b2f933d5fe66 PC,59c889e0536411e7b114b2f933d5fe66,08,01
Di sini, 08 menunjukkan bahwa periferal harus mengonfirmasi tulisan, dan 01 mengatur nilai satu byte. Skrip menangani koneksi klien:
@CONN |O,08,72
Saat klien terhubung, perintah mengasosiasikan variabel database dengan pin LED (bitmask 08) dan handle characteristic (72). Tulis selanjutnya oleh klien mengubah LED.
Aplikasi Kontrol Digital
Jalankan light.py (link disediakan) setelah mengganti alamat MAC. Skrip terhubung ke periferal, kemudian mengirim nilai baru setiap detik untuk menyalakan dan mematikan LED. Skrip mencatat progres dan mengilustrasikan fitur handle association.
Tonton demonstrasi lengkap dalam video proyek pendamping.
Langkah Selanjutnya
Ini menutup bagian 2 dari seri RN487x kami. Bagian 3 akan membahas sensor dan kontrol analog, serta menyediakan sumber daya tambahan yang berlaku untuk semua proyek.