first commit
This commit is contained in:
commit
33ca53f114
|
@ -0,0 +1,138 @@
|
|||
#include "CTBot.h"
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <WiFiClient.h>
|
||||
#include <ThingSpeak.h>
|
||||
|
||||
CTBot myBot;
|
||||
|
||||
String ssid = "subin"; // Sesuaikan dengan nama wifi anda
|
||||
String pass = "nuris123"; // Sesuaikan dengan password wifi
|
||||
String token = "7183938345:AAFvCxsZBR-XZdOdn5v_D_Q5FQWSabEKJrs"; // Token bot telegram yang telah dibuat
|
||||
int64_t chat_id = 6227877658; // Ganti dengan chat ID Anda
|
||||
|
||||
const int pinLED = 2; // Pin LED, sesuaikan dengan pin yang Anda gunakan
|
||||
String data;
|
||||
char c;
|
||||
|
||||
WiFiClient client;
|
||||
unsigned long myChannelNumber = 2555678; // Ganti dengan Channel Number ThingSpeak Anda
|
||||
const char * myWriteAPIKey = "7BD4FJO9N8OKLWKH"; // Ganti dengan Write API Key ThingSpeak Anda
|
||||
|
||||
bool suhuTinggiTerdeteksi = false;
|
||||
bool apiTerdeteksi = false;
|
||||
bool gasBerbahayaTerdeteksi = false;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
Serial.println("Starting TelegramBot...");
|
||||
|
||||
pinMode(pinLED, OUTPUT);
|
||||
digitalWrite(pinLED, HIGH);
|
||||
|
||||
WiFi.begin(ssid, pass);
|
||||
while (WiFi.status() != WL_CONNECTED) {
|
||||
delay(1000);
|
||||
Serial.println("Connecting to WiFi...");
|
||||
}
|
||||
|
||||
Serial.println("Connected to WiFi.");
|
||||
ThingSpeak.begin(client);
|
||||
|
||||
myBot.wifiConnect(ssid, pass);
|
||||
myBot.setTelegramToken(token);
|
||||
|
||||
// check if all things are ok
|
||||
if (myBot.testConnection()) {
|
||||
Serial.println("\ntestConnection OK");
|
||||
myBot.sendMessage(chat_id, "Telegram bot connected successfully!");
|
||||
|
||||
// Blink LED to indicate successful connection
|
||||
for (int i = 0; i < 5; i++) {
|
||||
digitalWrite(pinLED, LOW);
|
||||
delay(500);
|
||||
digitalWrite(pinLED, HIGH);
|
||||
delay(500);
|
||||
}
|
||||
} else {
|
||||
Serial.println("\ntestConnection NOK");
|
||||
myBot.sendMessage(chat_id, "Failed to connect to Telegram bot.");
|
||||
}
|
||||
}
|
||||
|
||||
void loop() {
|
||||
TBMessage msg;
|
||||
|
||||
if (myBot.getNewMessage(msg)) {
|
||||
String reply;
|
||||
reply = "Alat Pendeteksi Bahaya Kebakaran Sudah Aktif";
|
||||
myBot.sendMessage(msg.sender.id, reply);
|
||||
}
|
||||
|
||||
while (Serial.available() > 0) {
|
||||
delay(10);
|
||||
c = Serial.read();
|
||||
data += c;
|
||||
}
|
||||
|
||||
if (data.length() > 0) {
|
||||
// Send data to ThingSpeak
|
||||
String tempData = data;
|
||||
int sensorApiIndex = tempData.indexOf("Sensor Api: ");
|
||||
int sensorGasIndex = tempData.indexOf("Sensor Gas: ");
|
||||
int suhuIndex = tempData.indexOf("Suhu: ");
|
||||
|
||||
if (sensorApiIndex != -1 && sensorGasIndex != -1 && suhuIndex != -1) {
|
||||
int sensorApiValue = tempData.substring(sensorApiIndex + 12, sensorGasIndex - 1).toInt();
|
||||
int sensorGasValue = tempData.substring(sensorGasIndex + 12, suhuIndex - 1).toInt();
|
||||
float suhuValue = tempData.substring(suhuIndex + 6).toFloat();
|
||||
|
||||
ThingSpeak.setField(1, suhuValue);
|
||||
ThingSpeak.setField(2, sensorApiValue);
|
||||
ThingSpeak.setField(3, sensorGasValue);
|
||||
|
||||
ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
|
||||
|
||||
Serial.println("Data sent to ThingSpeak.");
|
||||
|
||||
// Check for individual danger conditions
|
||||
if (suhuValue > 57) {
|
||||
if (!suhuTinggiTerdeteksi) {
|
||||
myBot.sendMessage(chat_id, "Peringatan: Suhu tinggi terdeteksi!");
|
||||
suhuTinggiTerdeteksi = true;
|
||||
}
|
||||
} else {
|
||||
suhuTinggiTerdeteksi = false;
|
||||
}
|
||||
|
||||
if (sensorApiValue > 800) {
|
||||
if (!apiTerdeteksi) {
|
||||
myBot.sendMessage(chat_id, "Peringatan: Api terdeteksi!");
|
||||
apiTerdeteksi = true;
|
||||
}
|
||||
} else {
|
||||
apiTerdeteksi = false;
|
||||
}
|
||||
|
||||
if (sensorGasValue > 100) {
|
||||
if (!gasBerbahayaTerdeteksi) {
|
||||
myBot.sendMessage(chat_id, "Peringatan: Gas berbahaya terdeteksi!");
|
||||
gasBerbahayaTerdeteksi = true;
|
||||
}
|
||||
} else {
|
||||
gasBerbahayaTerdeteksi = false;
|
||||
}
|
||||
|
||||
// Check for combined danger condition
|
||||
if (suhuTinggiTerdeteksi && apiTerdeteksi && gasBerbahayaTerdeteksi) {
|
||||
myBot.sendMessage(chat_id, "Peringatan: Kebakaran terdeteksi! Semua sensor (api, suhu, gas) mengindikasikan bahaya.");
|
||||
// Reset flags to prevent repeated messages
|
||||
suhuTinggiTerdeteksi = false;
|
||||
apiTerdeteksi = false;
|
||||
gasBerbahayaTerdeteksi = false;
|
||||
}
|
||||
}
|
||||
data = "";
|
||||
}
|
||||
|
||||
delay(1000); // Kirim data ke ThingSpeak setiap 1 detik
|
||||
}
|
Loading…
Reference in New Issue