0% found this document useful (0 votes)
130 views

Koding Telegram Bot

This document describes an Arduino-based home security system that uses fingerprint authentication, ultrasonic sensors, servos, and Telegram notifications. The system detects fingerpints, measures distances with ultrasonic sensors, controls servos to open/close doors, and sends notifications to Telegram when motion is detected or doors open/close. It connects to WiFi and initializes the Telegram bot to send alerts. Fingerprint data is read and compared to stored IDs. Distances are measured and doors are controlled based on the sensor readings.

Uploaded by

Andi Cahyo
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
130 views

Koding Telegram Bot

This document describes an Arduino-based home security system that uses fingerprint authentication, ultrasonic sensors, servos, and Telegram notifications. The system detects fingerpints, measures distances with ultrasonic sensors, controls servos to open/close doors, and sends notifications to Telegram when motion is detected or doors open/close. It connects to WiFi and initializes the Telegram bot to send alerts. Fingerprint data is read and compared to stored IDs. Distances are measured and doors are controlled based on the sensor readings.

Uploaded by

Andi Cahyo
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

#include <ESP8266WiFi.

h>
#include <ESP8266HTTPClient.h>
#define echoPin 4 // D2 Nodemcu = Echo Pin
#define trigPin 5 // D1 Nodemcu = Trigger Pin

long durasi, ketinggian,TinggiBak;


HTTPClient http;
String url="https://api.telegram.org/bot<token>/sendMessage?chat_id=<id_tujuan>&text=";
int sensor;

void setup() {
  WiFi.mode(WIFI_STA);
  WiFi.begin("SSSID", "PASSWORD");
}

void loop() {
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 durasi = pulseIn(echoPin, HIGH);
 ketinggian = TinggiBak - (durasi/58.2);
 String myurl = url + String(ketinggian);
 http.begin(myurl,"BB:DC:45:2A:07:E3:4A:71:33:40:32:DA:BE:81:F7:72:6F:4A:2B:6B");
 http.GET();
 http.end();
 delay(2000);
}

//Inisialisasi Telegram Bot dan WiFI


#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
char ssid[] = "Nama WiFi temen2";    
char password[] = "password wifi temen2";
// Initialize Telegram BOT
#define BOTtoken "Masukkan Bot Token milik temen2" 
#define chat_id "ID Bot Telegram temen2"
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);

//Inisialisasi sensor PIR


#define PIR_MOTION_SENSOR D2
#define LED  D4

void connectwifi(){
  // Attempt to connect to Wifi network:
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);

  // Set WiFi to station mode and disconnect from an AP if it was Previously


  // connected
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {


    Serial.print(".");
    delay(500);
 }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void setup(){
  Serial.begin(115200);
  pinMode(PIR_MOTION_SENSOR, INPUT);
  pinMode(LED,OUTPUT);
  pinMode(button1, INPUT);
  connectwifi();
}

void loop() {
  //Pir Setting
  if(isPeopleDetected())
    turnOnLED();   
  else
    turnOffLED();
}

void turnOnLED(){
  digitalWrite(LED,HIGH);
  Serial.println("Gerakan Terdeteksi");
  bot.sendChatAction(chat_id, "Sedang Mengetik");
  Serial.println("Mengidentifikasi Adanya Gerakan");
  bot.sendMessage(chat_id, "Gerakan Terdeteksi", "");  
}

void turnOffLED(){
  digitalWrite(LED,LOW);
  Serial.println("Tidak ada Gerakan Terdeteksi");
  bot.sendChatAction(chat_id, "Sedang Mengetik");
  Serial.println("Mengidentifikasi Sensor");
  bot.sendMessage(chat_id, "Tidak ada Gerakan Terdeteksi", ""); 
}

boolean isPeopleDetected(){
  int sensorValue = digitalRead(PIR_MOTION_SENSOR);
  if(sensorValue == HIGH)
 {
    return true;
 }
  else
 {
    return false;
 }
}

#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
#include <Servo.h> //Add servo library
#include <Ultrasonic.h>
int distance,distance1;
int getFingerprintIDez();
Ultrasonic ultrasonic(5,4);
Ultrasonic ultrasonic1(11,12);
Servo servo1,servo2;
int servoMin = 0;

SoftwareSerial mySerialnodemcu(7, 8);


SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup() 
{
  while (!Serial); 
  mySerialnodemcu.begin(115200);
  Serial.begin(9600);
  Serial.println("Adafruit finger detect test");
 
  servo1.attach(9);
  servo1.write(servoMin);
  servo2.attach(10);
  servo2.write(servoMin);

  // set the data rate for the sensor serial port


  finger.begin(57600);
 
  if (finger.verifyPassword()) {
    Serial.println("Found fingerprint sensor!");
  } else {
    Serial.println("Did not find fingerprint sensor :(");
    while (1);
 }
  Serial.println("Waiting for valid finger...");
}

void loop()                     // run over and over again


{    distance = ultrasonic.distanceRead();
 
  Serial.print("Distance in CM: ");
  Serial.println(distance);
  delay(100);
  if(distance<=10){
    servo1.write(0);
    mySerialnodemcu.print(&apos;D&apos;);
    }
     distance1 = ultrasonic1.distanceRead();
 
  Serial.print("Distance1 in CM: ");
  Serial.println(distance1);
  delay(100);
   if(distance1<=10){
    servo2.write(90);
    mySerialnodemcu.print(&apos;A&apos;);
    delay(5000);
    servo2.write(0);
   mySerialnodemcu.print(&apos;X&apos;);
    }
 getFingerprintIDez();
  delay(50);            //don&apos;t ned to run this at full speed.
}

uint8_t getFingerprintID() {
  uint8_t p = finger.getImage();
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image taken");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.println("No finger detected");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("Imaging error");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
 }

  // OK success!

  p = finger.image2Tz();
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("Image too messy");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      Serial.println("Could not find fingerprint features");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      Serial.println("Could not find fingerprint features");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
 }
 
  // OK converted!
  p = finger.fingerFastSearch();
  if (p == FINGERPRINT_OK) {
    Serial.println("Found a print match!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_NOTFOUND) {
    Serial.println("Did not find a match");
    return p;
  }else {
    Serial.println("Unknown error");
    return p;
  }  
  Serial.print("Found ID #"); Serial.print(finger.fingerID);
  Serial.print(" with confidence of "); Serial.println(finger.confidence);
}

// returns -1 if failed, otherwise returns ID #


int getFingerprintIDez() {
  uint8_t p = finger.getImage();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.image2Tz();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.fingerFastSearch();
  if (p != FINGERPRINT_OK)  return -1;
 servo1.write(90);
  mySerialnodemcu.print(&apos;B&apos;);
 
  // found a match!
  Serial.print("Found ID #"); Serial.print(finger.fingerID);
  Serial.print(" with confidence of "); Serial.println(finger.confidence);
  Serial.println("Ndaru aji p");
  return finger.fingerID;
}

#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <SoftwareSerial.h>
char ssid[] = "ssid";
char password[] = "password";
#define BOTtoken "BOT:token"
String chatid = "chatid";
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);

SoftwareSerial mySerialnodemcu(D2, D3);


char baca;
String notifikasi;
void setup() {
  mySerialnodemcu.begin(115200);
  Serial.begin(9600);
  WifiStatus();
}

void loop() {
  if(mySerialnodemcu.available()>0){
    baca = mySerialnodemcu.read();
    Serial.println(baca);
    if(baca == &apos;B&apos;){
  notifikasi = "Pintu depan terbuka";
  bot.sendMessage(chatid, notifikasi);
 }
  if(baca == &apos;D&apos;){
    notifikasi = "Pintu depan tertutup";
    bot.sendMessage(chatid, notifikasi);
    }
    if(baca == &apos;A&apos;){
      notifikasi = "Pintu samping terbuka";
      bot.sendMessage(chatid, notifikasi);
      }
      if(baca == &apos;X&apos;){
        notifikasi = "Pintu samping tertutup";
        bot.sendMessage(chatid, notifikasi);
        }
    Serial.println(notifikasi);
    }

}
void WifiStatus() {
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {


    Serial.print(".");
    delay(500);
 }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

You might also like