Difference between revisions of "Libcoap"

From belajarwiki
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 30: Line 30:
 
Pastikan sudah instalasi beberapa package berikut (sesuaikan jika berbeda)
 
Pastikan sudah instalasi beberapa package berikut (sesuaikan jika berbeda)
  
  sudo apt install autoconf automake libtool
+
  sudo apt install autoconf automake libtool pkg-config
  
 
Jangan lupa juga cek compiler
 
Jangan lupa juga cek compiler
Line 36: Line 36:
 
  sudo apt install g++
 
  sudo apt install g++
 
  sudo apt install build-essential
 
  sudo apt install build-essential
 
+
 
Kemudian masuk ke folder libcoap
 
Kemudian masuk ke folder libcoap
  
 
  sudo chmod 777 autogen.sh
 
  sudo chmod 777 autogen.sh
 
  ./autogen.sh
 
  ./autogen.sh
  ./configure --disable-documentation --with-openssl
+
  ./configure --disable-documentation --disable-dtls --with-openssl
 
  make
 
  make
 
  sudo make install
 
  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 (https://github.com/dsp-mc-itb/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
 
  
 
==Testing Minimal==
 
==Testing Minimal==

Latest revision as of 16:12, 9 November 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

Pastikan sudah instalasi beberapa package berikut (sesuaikan jika berbeda)

sudo apt install autoconf automake libtool pkg-config

Jangan lupa juga cek compiler

sudo apt install g++
sudo apt install build-essential

Kemudian masuk ke folder libcoap

sudo chmod 777 autogen.sh
./autogen.sh
./configure --disable-documentation --disable-dtls --with-openssl
make
sudo make install


Testing Minimal

Akan kita coba komunikasi client-server yang sederhana menggunakan CoAP. Ambil cource dari git

git clone https://github.com/obgm/libcoap-minimal.git
cd libcoap-minimal
make

Untuk running server, jalankan perintah

./server

Untuk client, coba kirimkan paket sederhana

coap-client -v GET coap://192.168.1.104/hello

Server akan memberikan respon world

./server 
v:1 t:CON c:GET i:ad53 {} [ Uri-Path:hello, Request-Tag:0xbfb4674b ]
v:1 t:ACK c:2.05 i:ad53 {} [ ] :: 'world'

Link Terkait


Referensi