Real Project Example
Last updated: January 26 th, 2017
Geeknesia Microcontroller & IOT Starter Kit
Sebuah Starter Kit Lengkap dari Geeknesia untuk mempelajari IOT dan Micro Controller dengan mudah melalui praktek secara langsung.
Starter Kit ini menyediakan development board ESP 8266 tipe WeMos D1 yang compatible dengan board arduino sehingga mudah dipahami, muda diperlajari, dan mudah dimengerti. Dalam kit ini tersedia komponen elektronik lengkap untuk berbagai keperluan tutorial dan project real.
Arduino COAP Protocol
MQTT dan COAP keduanya digunakan sebagai protokol IoT, namun terdapat perbedaan mendasar.
MQTT => Bisa digunakan untuk banyak komunikasi protokol dalam pengiriman informasi antara beberapa client, melalui central broker,MQTT memiliki dukungan,seperti memiliki komunikasi bus yang baik untuk live data.
COAP => Menggunakan komunikasi antar protokol untuk mengirim informasi antara client dan server, COAP lebih cocok untuk model pengalihan informasi,tidak mengambil live data atau real time data.
Berikut contoh aplikasi yang menghubungkan arduino dengan broker COAP.
Alat dan bahan yang diperlukan
1. Arduino Mega
2. Ethernet Shield
3. Kabel LAN
4. Kabel Data (untuk upload program)
Download File Microcoap
Download file coap library pada link di bawah ini
https://github.com/1248/microcoap
Buka file code arduino
Script Arduino
/*
* WARNING - UDP_TX_PACKET_MAX_SIZE is hardcoded by Arduino to 24 bytes
* This limits the size of possible outbound UDP packets
*/
#include
#include
#include
#include
#include "coap.h"
#define PORT 5683
static uint8_t mac[] = {0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02};
EthernetClient client;
EthernetUDP udp;
uint8_t packetbuf[256];
static uint8_t scratch_raw[32];
static coap_rw_buffer_t scratch_buf = {scratch_raw, sizeof(scratch_raw)};
void setup()
{
int i;
Serial.begin(9600);
while (!Serial)
{
; // wait for serial port to connect. Needed for Leonardo only
}
// start the Ethernet connection:
if (Ethernet.begin(mac) == 0)
{
Serial.println("Failed to configure Ethernet using DHCP");
while(1);
}
Serial.print("My IP address: ");
for (i=0;i<4;i++)
{
Serial.print(Ethernet.localIP()[i], DEC);
Serial.print(".");
}
Serial.println();
udp.begin(PORT);
coap_setup();
endpoint_setup();
}
void udp_send(const uint8_t *buf, int buflen)
{
udp.beginPacket(udp.remoteIP(), udp.remotePort());
while(buflen--)
udp.write(*buf++);
udp.endPacket();
}
void loop()
{
int sz;
int rc;
coap_packet_t pkt;
int i;
if ((sz = udp.parsePacket()) > 0)
{
udp.read(packetbuf, sizeof(packetbuf));
for (i=0;i
Kemudian pilih file library yang telah di download sebelumnya.
Jika langsung compile default script pasti akan terjadi error, masuk ke C:\Users\Documents\Arduino\libraries\microcoap-master, kemudian hapus filemain-posix.c, karena file tersebut digunakan untuk OS X/Linux.
Wiring Arduino
Pasang ethernet shield pada Arduino Mega, masukan kabel data dan kabel LAN yang telah disiapkan, kemudian Upload script.
Install Copper (Firefox Plugin)
Sebelum melanjutkan pengetesan kita harus menentukan broker yang akan dipakai, pada tutorial ini menggunakan Copper (Firefox Plugin).
Buka Firefox kemudian tambahkan Copper(Firefox Plugin) seperti gambar di bawah.
Jika sudah terinstall cara membuka Copper klik toollbar pada pojok kanan atas layar PC, kemudian akan muncul seperti gambar di bawah,
1. Copy link yang muncul pada Copper
2. Kemudian paste
Kemudian akan muncul halaman seperti pada gambar.
Kemudian kembali ke program Arduino , Pilih Serial Monitor untuk melihat IP Address Arduino yang anda gunakan.
Catatan Penting:
"IP Address yang tertampil di serial monitor Arduino bukan IP address static melainkan dinamic (DHCP), jadi address 192.168.2.109 adalah IP yang didapat dari hasil percobaan ,jika anda mencoba pasti IP nya akan berbeda."
Kemudian buka Copper (Fiirefox Plugin), masukan IP Address Arduino 192.168.2.109 atau IP Address yang anda dapatkan, ikuti gambar di bawah ini.
coap://vs0.inf.ethz.ch/ ganti dengan coap://192.168.2.109:5683/
Klik Ping jika sudah terhubung dengan IP Address Arduino maka akan muncul "Pong : Remote responds to CoAP".
Ketika di klik Ping maka akan terlihat pada Serial Monitor Arduino nilai yang tertampil akan bertambah ketika di klik Ping.