Difference between revisions of "Libcoap"

From belajarwiki
Jump to navigation Jump to search
 
(15 intermediate revisions by the same user not shown)
Line 25: Line 25:
  
 
===Instalasi===
 
===Instalasi===
Untuk instalasi libcoap, dapat menuliskan
+
Untuk instalasi libcoap di server, dapat menuliskan
 +
git clone https://github.com/obgm/libcoap.git
  
idf.py add-dependency "espressif/coap^4.3.5~1"
+
Pastikan sudah instalasi beberapa package berikut (sesuaikan jika berbeda)
  
===Tambah project===
+
sudo apt install autoconf automake libtool pkg-config
Kita akan gunakan contoh yang sudah ada dari link https://components.espressif.com/components/espressif/coap/versions/4.3.5~1/examples. Buat folder baru
 
  
mkdir projects
+
Jangan lupa juga cek compiler
cd projects
 
  
Ambil contoh coap_client
+
sudo apt install g++
 +
sudo apt install build-essential
 +
 +
Kemudian masuk ke folder libcoap
  
  idf.py create-project-from-example "espressif/coap^4.3.5~1:coap_client"
+
  sudo chmod 777 autogen.sh
 +
./autogen.sh
 +
./configure --disable-documentation --disable-dtls --with-openssl
 +
make
 +
sudo make install
  
Ambil contoh coap_server
 
  
idf.py create-project-from-example "espressif/coap^4.3.5~1:coap_server"
+
==Testing Minimal==
 +
Akan kita coba komunikasi client-server yang sederhana menggunakan CoAP.
 +
Ambil cource dari git
  
Untuk config project
+
git clone https://github.com/obgm/libcoap-minimal.git
 +
cd libcoap-minimal
 +
make
  
idf.py menuconfig
+
Untuk running server, jalankan perintah
  
Untuk build
+
./server
  
idf.py build
+
Untuk client, coba kirimkan paket sederhana
  
Untuk flash project
+
  coap-client -v GET coap://192.168.1.104/hello
 
 
  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
 
  
 +
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==
 
==Link Terkait==
Line 99: Line 77:
 
* Definisi tanya chatGPT
 
* Definisi tanya chatGPT
 
* https://components.espressif.com/components/espressif/coap/versions/4.3.5~1
 
* https://components.espressif.com/components/espressif/coap/versions/4.3.5~1
 +
* https://github.com/obgm/libcoap-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