Difference between revisions of "Libcoap"

From belajarwiki
Jump to navigation Jump to search
Line 37: Line 37:
  
 
===Tambah project===
 
===Tambah project===
Kita akan gunakan [[esp-eye]] sebagai client. Sehingga harus instalasi [[esp-idf]] adar 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
+
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
 
  mkdir projects

Revision as of 21:02, 5 October 2024

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:

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

  1. Implementasi Lengkap: libcoap menyediakan semua elemen dasar dari protokol CoAP, termasuk pengiriman dan penerimaan pesan, mekanisme pengiriman ulang, dan pengelolaan observasi.
  2. Dukungan Multicast: libcoap mendukung pengiriman pesan multicast, yang memungkinkan efisiensi komunikasi di jaringan dengan banyak perangkat.
  3. Dukungan untuk DTLS: Pustaka ini mendukung DTLS (Datagram Transport Layer Security) untuk menyediakan keamanan dalam komunikasi CoAP.
  4. Dukungan untuk Berbagai Platform: libcoap dapat diintegrasikan ke dalam berbagai platform dan sistem operasi, termasuk Linux, Windows, dan sistem berbasis embedded.
  5. 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:

  1. Klien CoAP: Mengirim permintaan ke server dan menerima respons.
  2. 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:

  1. Pengaturan Klien dan Server: Fungsi untuk menginisialisasi dan mengkonfigurasi klien dan server CoAP.
  2. Pengiriman dan Penerimaan Pesan: Fungsi untuk mengirim permintaan dan menerima respons.
  3. Pengelolaan Observasi: Fungsi untuk mendaftar dan membatalkan pengamatan terhadap resource tertentu.
  4. 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

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 -> 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