Reading Requirement:


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


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:


Buatlah code seperti di bawah ini:

Code   

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

Upload program di atas kemudian buka serial monitor untuk debugging.



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:


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