halo all. mau sedikit dokumentasikan oprekan pribadi nih. jadi ceritanya begini ane lagi ada request dari dev IoT supaya bisa ngirim LOG dari arduino ke syslog server. sebetulnya yang ane dapet dibawah ini bukan log dari arduino itu sendiri. tapi seolah olah data yang dikirimkan itu parameternya sesuai dengan standar log pada umumnya. jadi ini berguna apabila teman - teman ingin membutuhkan solusi untuk monitoring log yang ingin dikirim dari arduino ke syslog server. berhubung saya sangat familiar dengan graylog (support untuk protokol syslog, maka sebagai syslog servernya saya gunakan ini . untuk instalasi ada di archive blog ini ya).
oke kita mulai...
untuk perangkat pada arduino agar dapat mengiriman log over udp saya menggunakan modul ethernet lalu arduino uno R3.
- arduino uno
- module ethernet wiz5100
*code dibawah sedikit modifikasi dari saya pribadi.
/*
* Sent log to rsyslog sketch
* Ryan Adams
* 2/4/2012
*/
#include
#include
#include
#define localUdpPort 8888
#define syslogPort 1514
EthernetServer server(80);
String kota[] = {
"Bandung", "Jakarta", "Semarang", "Aceh", "Surabaya", "Kerawang"
};
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 100, 247);
IPAddress syslogServer(192, 168, 100, 246);
// An EthernetUDP instance to let us send and receive packets over UDP
EthernetUDP Udp;
void setup()
{
Ethernet.begin(mac,ip);
Udp.begin(localUdpPort);
sendSyslogMessage(6, "Syslog logging started");
server.begin();
sendSyslogMessage(6, "HTTP server started");
sendSyslogMessage(6, "Boot complete");
}
void loop()
{
for (int i=0; i <= 5; i++){
delay(1000);
}
}
void sendSyslogMessage(int severity, String message)
{
/*
0 Emergency: system is unusable
1 Alert: action must be taken immediately
2 Critical: critical conditions
3 Error: error conditions
4 Warning: warning conditions
5 Notice: normal but significant condition
6 Informational: informational messages
Only severity levels 0, 1, and 2 will trigger an email message
*/
int pri = (32 + severity);
String priString = String(pri, DEC);
String buffer = "<" + priString + ">" + "Arduino Uno " + message;
int bufferLength = buffer.length();
char char1[bufferLength+1];
for(int i=0; i
untuk graylog server disini saya menggunakan protokol UDP lalu open port di 1514 ...
apabila berhasil berikut hasilnya
dari sini kita bisa memanfaatkan protokol API dari graylog untuk memilah log dari arduino untuk dapat membuat aplikasi lagi sebagai monitoring ..
selesaii
terima kasih :)
0 comments:
Post a Comment