TKK_E32210750/Notifikasi_Whatsapp.ino

127 lines
2.7 KiB
C++

#include <ESP8266HTTPClient.h>
#include <ESP8266WiFi.h>
const char* ssid = "SG";
const char* password = "12121212";
#define pinSensor D1
#define Led D0
#define Pompa D2
int pompa_air;
String url;
// siapkan variable untuk WIFI Client
WiFiClient client;
void setup(){
Serial.begin(9600);
pinMode (pinSensor, INPUT);
pinMode (Led, OUTPUT);
pinMode (Pompa, OUTPUT);
digitalWrite(Pompa, LOW);
// koneksi wifi
WiFi.hostname ("ESP8266");
WiFi.begin(ssid, password);
// Uji koneksi ke wifi
while(WiFi.status() != WL_CONNECTED)
{
digitalWrite(Led, LOW);
delay (500);
}
digitalWrite(Led, HIGH);
}
void loop() {
pompa_air = digitalRead(Pompa);
int api = digitalRead (pinSensor);
if (api==0)
{
// Tidak ada api
//digitalWrite(Pompa, LOW);
Serial.println("Tidak Ada Api");
}
else
{
//digitalWrite(Pompa, HIGH);
Serial.println("Ada Api");
// Kirim Pesan Via Whatsapp
kirim_wa("Kepada yang terhormat,\n\nKami mendeteksi titik api di sekitar lingkungan Rumah Anda. Mohon segera evakuasi keluarga Anda ke tempat yang aman.\n\n1. Tetap tenang.\n2. Evakuasi diri dan keluarga.\n3. Hubungi layanan darurat pemadam kebakaran.\n\nKeselamatan Anda adalah prioritas utama. Mohon tindakan segera.\n\nTerima kasih atas perhatiannya.");
}
delay (1000);
}
void kirim_wa (String pesan)
{
url = "http://api.callmebot.com/whatsapp.php?phone=6281331285356&text="+ urluncode(pesan) +"&apikey=6955011";
// kirim pesan
postData();
}
void postData()
{
// Siapkan variable untuk menampung pesan status pesan terkirim atau tidak
int httpCode;
// Siapkan variable untuk protokol http yg akan terkoneksi ke server callmebot
HTTPClient http;
//eksekusi link URL
http.begin(client, url);
httpCode = http.POST(url);
// Uji nilai variable httpCode
if(httpCode==200)
{
Serial.println("Notifikasi Pesan telah berhasil Terkirim");
}
else
{
Serial.println("Notifikasi Pesan Gagal Terkirim");
}
http.end();
}
String urluncode(String str)
{
String encodedString="";
char c;
char code0, code1, code2;
for(int i=0; i<str.length(); i++)
{
c = str.charAt(i);
// Jika ada spasi kosong diantara pesannya yang akan di kirim maka ganti dengan tanda +
if(c == ' '){
encodedString += '+' ;
}
else if(isalnum(c))
{
encodedString += c ;
}
else
{
code1 = (c & 0xf) + '0';
if((c & 0xf) > 9) {
code1 = (c & 0xf) - 10 + 'A' ;
}
c = (c>>4)&0xf;
code0 = c+'0';
if (c > 9) {
code0 = c - 10 + 'A' ;
}
code2 = '\0';
encodedString += '%';
encodedString += code0;
encodedString += code1;
}
yield();
}
Serial.println(encodedString);
return encodedString ;
}