Libcoap
libcoap adalah pustaka open-source yang dirancang untuk memfasilitasi pengembangan aplikasi berbasis protokol CoAP (Constrained Application Protocol). Pustaka ini menyediakan implementasi CoAP yang lengkap dan efisien untuk perangkat dengan sumber daya terbatas, menjadikannya ideal untuk aplikasi Internet of Things (IoT). Berikut adalah penjelasan detail mengenai libcoap:
Contents
Pengantar libcoap
libcoap dikembangkan untuk mendukung kebutuhan komunikasi di jaringan yang memiliki keterbatasan bandwidth dan daya. Pustaka ini memberikan antarmuka yang sederhana dan fleksibel bagi pengembang untuk membangun aplikasi CoAP.
Fitur Utama
- Implementasi Lengkap: libcoap menyediakan semua elemen dasar dari protokol CoAP, termasuk pengiriman dan penerimaan pesan, mekanisme pengiriman ulang, dan pengelolaan observasi.
- Dukungan Multicast: libcoap mendukung pengiriman pesan multicast, yang memungkinkan efisiensi komunikasi di jaringan dengan banyak perangkat.
- Dukungan untuk DTLS: Pustaka ini mendukung DTLS (Datagram Transport Layer Security) untuk menyediakan keamanan dalam komunikasi CoAP.
- Dukungan untuk Berbagai Platform: libcoap dapat diintegrasikan ke dalam berbagai platform dan sistem operasi, termasuk Linux, Windows, dan sistem berbasis embedded.
- Modular: Arsitektur libcoap yang modular memungkinkan pengguna untuk menyesuaikan dan memperluas fungsionalitas sesuai kebutuhan aplikasi.
Struktur dan Penggunaan
libcoap biasanya digunakan dalam konteks aplikasi server dan klien:
- Klien CoAP: Mengirim permintaan ke server dan menerima respons.
- Server CoAP: Menerima permintaan dari klien dan memberikan respons yang sesuai.
API dan Fungsi
libcoap menyediakan API (Application Programming Interface) yang memungkinkan pengembang untuk berinteraksi dengan protokol CoAP. Beberapa fungsi penting dalam API libcoap meliputi:
- Pengaturan Klien dan Server: Fungsi untuk menginisialisasi dan mengkonfigurasi klien dan server CoAP.
- Pengiriman dan Penerimaan Pesan: Fungsi untuk mengirim permintaan dan menerima respons.
- Pengelolaan Observasi: Fungsi untuk mendaftar dan membatalkan pengamatan terhadap resource tertentu.
- Pengaturan Keamanan: Fungsi untuk mengkonfigurasi DTLS dan pengaturan keamanan lainnya.
Instalasi
Untuk instalasi libcoap di server, dapat menuliskan
git clone https://github.com/obgm/libcoap.git
Kemudian masuk ke folder libcoap
sudo chmod 777 autogen.sh ./autogen.sh ./configure --disable-documentation --with-openssl make sudo make install
Tambah project
Kita akan gunakan esp-eye sebagai client. Sehingga harus instalasi esp-idf agar dapat di-build dan di-flash ke client. Kita ambil contoh yang sudah ada dari link https://components.espressif.com/components/espressif/coap/versions/4.3.5~1/examples. Buat folder baru
mkdir projects cd projects
Tambahkan komponen libcoap
idf.py add-dependency "espressif/coap^4.3.5~1"
Ambil contoh coap_client
idf.py create-project-from-example "espressif/coap^4.3.5~1:coap_client"
Ambil contoh coap_server
idf.py create-project-from-example "espressif/coap^4.3.5~1:coap_server"
Untuk config project (setting WiFi, IP server, dll)
idf.py menuconfig
Untuk build
idf.py build
Untuk flash project
idf.py flash
Untuk melihat log/monitoring yang terjadi
idf.py monitor
Jika ada error port, tambahkan perintah
idf.py -p PORT flash monitor idf.py -p /dev/ttyUSB0 flash idf.py -p COM3 flash
Cara mendapatkan port
- Linux: Ketik perintah ini sebelum dan sesudah ESP32 dipasang
ls /dev/tty*
- macOS:
ls /dev/tty.* ls /dev/cu.*.
- Windows: Buka Device Manager, cek "Ports (COM & LPT)"
Percobaan
Setelah install libcoap, ambil code dari example coap-server.c. Dengan code tersebut, sesuaikan struktur dari COAP-CLIENT2-ROBUST.
Pada file CMakeList (yang ada di COAP-CLIENT2-ROBUST) -> edit (local_client -> local_server; Sensor_local_client -> Sensor_local_server)
Setelah itu ketik
sudo apt install cmake mkdir build cmake -S . -B build cd build cmake --build . ./local_server
Link Terkait
Referensi
- Definisi tanya chatGPT
- https://components.espressif.com/components/espressif/coap/versions/4.3.5~1