Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <WiFi.h>
- #include <WiFiClientSecure.h>
- #include <UniversalTelegramBot.h>
- #define relay 2
- #define doorSensor 4
- #define face_detection_pin 19
- #define WIFI_SSID "ahmed2"
- #define WIFI_PASSWORD "123456789"
- // Telegram BOT Token (Get from Botfather)
- #define BOT_TOKEN "6233605202:AAFGQRfvyyP6UrqKvzwXS5LgLfqsO6tkyP8"
- const unsigned long BOT_MTBS = 1000;
- WiFiClientSecure secured_client;
- UniversalTelegramBot bot(BOT_TOKEN, secured_client);
- unsigned long bot_lasttime;
- bool Start = false;
- int face_detection;
- int flag_door_opened = 0;
- int flag_door_state = 0;
- int state;
- String text;
- String chat_id;
- String chat_id_1 = "-998291504";
- //"5994373858"
- void setup()
- {
- Serial.begin(9600);
- pinMode(face_detection_pin, INPUT);
- pinMode(doorSensor, INPUT_PULLUP);//if door open sensor pin HIGH 3.3V !!
- pinMode(relay, OUTPUT);
- digitalWrite(relay, 0);
- initWiFi_and_Time_For_Telegram();
- bot.sendMessage(chat_id_1, "Project ONLINE");
- }
- void loop() {
- //face_detection
- readSensors();
- if (state == 0 && flag_door_state == 1 && flag_door_opened == 1) {
- flag_door_state = 0;
- flag_door_opened = 0;
- bot.sendMessage(chat_id_1, "Door Closed");
- }
- if (state == 0){
- flag_door_opened = 0;
- }
- if (state == 1) {
- flag_door_opened = 1;
- if (flag_door_state == 1) {
- bot.sendMessage(chat_id_1, "Door Open");
- delay(5000);
- }
- else {
- if (face_detection == 0) {
- //send Telegram Notification Introder Alert!!
- bot.sendMessage(chat_id_1, "Door Open - [Introder Alert!!]");
- delay(5000);
- }
- }
- }
- if (face_detection == 1) {
- digitalWrite(relay, 1);
- //send Telegram Notification Access Granted - [Facecode OK]
- bot.sendMessage(chat_id_1, "Access Granted - [Facecode OK]");
- flag_door_state = 1;
- delay(5000);
- digitalWrite(relay, 0);
- }
- delay(100);
- }
- void readSensors() {
- state = digitalRead(doorSensor);
- face_detection = digitalRead(face_detection_pin);
- }
- void handel_Messages_Loop() {
- if (millis() - bot_lasttime > BOT_MTBS)
- {
- int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
- while (numNewMessages)
- {
- Serial.println("got response");
- handleNewMessages(numNewMessages);
- numNewMessages = bot.getUpdates(bot.last_message_received + 1);
- }
- bot_lasttime = millis();
- }
- }
- void initWiFi_and_Time_For_Telegram() {
- Serial.println();
- // attempt to connect to Wifi network:
- Serial.print("Connecting to Wifi SSID ");
- Serial.print(WIFI_SSID);
- WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
- secured_client.setCACert(TELEGRAM_CERTIFICATE_ROOT); // Add root certificate for api.telegram.org
- while (WiFi.status() != WL_CONNECTED)
- {
- Serial.print(".");
- delay(500);
- }
- Serial.print("\nWiFi connected. IP address: ");
- Serial.println(WiFi.localIP());
- Serial.print("Retrieving time: ");
- configTime(0, 0, "pool.ntp.org"); // get UTC time via NTP
- time_t now = time(nullptr);
- while (now < 24 * 3600)
- {
- Serial.print(".");
- delay(100);
- now = time(nullptr);
- }
- Serial.println(now);
- }
- void handleNewMessages(int numNewMessages)
- {
- Serial.println("handleNewMessages");
- Serial.println(String(numNewMessages));
- for (int i = 0; i < numNewMessages; i++)
- {
- chat_id = bot.messages[i].chat_id;
- text = bot.messages[i].text;
- String from_name = bot.messages[i].from_name;
- if (from_name == "")
- from_name = "Guest";
- if (text == "/send_test_action")
- {
- bot.sendChatAction(chat_id, "typing");
- delay(4000);
- bot.sendMessage(chat_id, "Did you see the action message?");
- // You can't use own message, just choose from one of bellow
- //typing for text messages
- //upload_photo for photos
- //record_video or upload_video for videos
- //record_audio or upload_audio for audio files
- //upload_document for general files
- //find_location for location data
- //more info here - https://core.telegram.org/bots/api#sendchataction
- }
- if (text == "/start")
- {
- String welcome = "Welcome to Universal Arduino Telegram Bot library, " + from_name + ".\n";
- welcome += "This is Chat Action Bot example.\n\n";
- welcome += "/send_test_action : to send test chat action message\n";
- bot.sendMessage(chat_id, welcome);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment