IOT Basic Tutorial

Last updated: February 10 th, 2017

Geeknesia Microcontroller & IOT Starter Kit

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

Read More or Buy Now !

Part 5 MQTT- Arduino Send Alert Message

Pada tutorial ini akan menjelaskan bagaimana cara mengrim Alert Message dari device yang telah terhubung dengan Geeknesia ke alamat email yang dituju.

 

1. Siapkan Alat dan bahan:

  1. Arduino + Ethernet shield.
  2. Kabel LAN.
  3. Kabel untuk Upload program.

 

Rangkailah alat yang sudah disiapkan seperti gambar di bawah ini:

 

2. Upload code pada Arduino IDE:

 #include <SPI.h>
#include <Ethernet.h>
#include <PubSubClient.h>


// Update these with values suitable for your network.
byte mac[] = {  0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
byte ip[] = { Your IP Address }; // ex: 192,168,0,2
byte dns2[] = {8,8,8,8};
byte gateway[] = { IP Access Point }; // ex: 192,168,0,1
char message_buff[200];
int flag;

char *deviceId = "device-a3a33635cc9e3eb0ecd2a1e1a91xxxxx";
char *deviceUsername = "7309cb5831af0623a420bf2d3fexxxxx";
char *devicePassword = "a75a605e88b3a8033957b1f1f2dxxxxx";
String deviceCredential = String(deviceUsername) + ":" + String(devicePassword);

EthernetClient ethClient;
PubSubClient client("geeknesia.com", 1883, callback, ethClient);

void callback(char* topic, byte* payload, unsigned int length) {
}

void setup()
{
  Serial.begin(9600);
  Serial.println("Get Here");
  Ethernet.begin(mac, ip,dns2,gateway);
  delay(500); 
}

//Send data
void senddata(char* topic,String credential, char *var1, unsigned int nilai1){
  String pubString  ="{\"code\":\"";
  pubString += credential;
  pubString +="\",";
  pubString +="\"attributes\":{\"";
  pubString +=String(var1)+"\":\""+nilai1+"\"";
  //pubString +=String(var2)+"\": "+String(nilai2);
  pubString +="}}";
  pubString.toCharArray(message_buff,pubString.length()+1);
  Serial.println(message_buff);
  client.publish("iot/data",message_buff);
}

//Send Alert
void sendAlert(String from, String to, String subject, String content){
  String pubString = "{\"from\":\""+from+"\",\"to\":\""+to+"\",\"subject\":\""+subject+"\",\"content\":\""+content+"\"}";
  pubString.toCharArray(message_buff,pubString.length()+1);
  client.publish("iot/trigger",message_buff);
  Serial.println(message_buff);
}


void loop(){ 
  Serial.println("Loop");
  if (!client.connected()){
     client.connect(deviceId,NULL,NULL,"iot/will",2,64,deviceId);
     Serial.println("gagal konek mqtt");
  } else{
    client.publish("iot/live",deviceId);
     Serial.println("MQTT Connect");
  }

  flag++;
  if (flag==10){
    sendAlert("support@geeknesia.com","egafebriyana@gmail.com","subject","Perhatian!! Counter=10");
  }
  
  senddata(deviceId,deviceCredential,"Count",flag);
  delay(5000);
}

Code di atas dibuat hanya sebagai system counter biasa yang dimana counter akan bertambah per 5 detik.

3. Upload program di atas kemudian buka serial monitor untuk debugging.

 

4. Terlihat pada Serial monitor Arduino, ketika count mencapai "10" maka support@geeknesia.com akan mengirimkan Alert Message ke email yang dituju yaitu egafebriyana@gmail.com, lihatlah gambar di bawah ini:

 

5. Ini adalah gambar pesan yang telah dikirim dari support@geeknesia.com.