127 lines
2.7 KiB
C++
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 ;
|
|
}
|
|
|
|
|