#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
void Gsm_Power_On(); // Bat module Sim 900A
void Gsm_Init(); // Cau hinh Module Sim 900A
void Gsm_MakeCalla(); // Ham goi dien
void Gsm_MakeSMSa(); // Ham nhan tin canh bao
void Gsm_MakeCallb(); // Ham goi dien
void Gsm_MakeSMSb(); // Ham nhan tin canh bao
void Gsm_MakeCallc(); // Ham goi dien
void Gsm_MakeSMSc(); // Ham nhan tin canh bao
void Gsm_MakeCalld(); // Ham goi dien
void Gsm_MakeSMSd(); // Ham nhan tin canh bao
void Gsm_MakeCalle(); // Ham goi dien
void Gsm_MakeSMSe(); // Ham nhan tin canh bao
LiquidCrystal_I2C lcd(0x27,16,2);
const String myphonea = "840968587828";
const String myphoneb = "0000000000";
const String myphonec = "1111111111";
const String myphoned = "2222222222";
const String myphonee = "3333333333";
const int DHTPIN = 2;
const int PWR_KEY = 9;
const int buttonPin = 4; // pin nối button để điều khiển
const int ledPin = 3; // pin nối LED
byte degree[8] = {
0B01110,
0B01010,
0B01110,
0B00000,
0B00000,
0B00000,
0B00000,
0B00000
};
// Tạo một biến nhận diện trạng thái button:
int buttonState = 0;
void setup() {
Serial.begin(9600); // Cau hinh UART de giao tiep module Sim800L
pinMode(ledPin, OUTPUT); /// set ledPin là output
pinMode(buttonPin, INPUT); // set buttonPin là input để đọc giá trị từ button
// Cấu hình baud rate là 9600, đây là baud mặc định trên SIM800
// SIM900.begin(9600);
// Chờ 1 thời gian để Module sim đăng ký vào mạng di động.
delay(500);
pinMode(PWR_KEY, OUTPUT);
Gsm_Power_On();
Gsm_Init();
}
void loop() {
// đọc giá trị button rồi lưu vào buttonState
buttonState = digitalRead(buttonPin);
// nếu button được nhấn, buttonState nhận giá trị HIGH, và ngược lại
if (buttonState == HIGH) {
// Bật LED:
digitalWrite(ledPin, HIGH);
lcd.init();
lcd.backlight();
lcd.setCursor(2,0);
lcd.print("Bao chay");
lcd.setCursor(0,1);
lcd.print("sdt lien he 0xxxx");
// Thực hiện gọi điện thoại
Gsm_MakeCalla();
Gsm_MakeSMSa();
Gsm_MakeCallb();
Gsm_MakeSMSb();
Gsm_MakeCallc();
Gsm_MakeSMSc();
Gsm_MakeCalld();
Gsm_MakeSMSd();
Gsm_MakeCalle();
Gsm_MakeSMSe();
} else {
// Tắt LED:
digitalWrite(ledPin, LOW);
lcd.noDisplay ();
}
}
void Gsm_Power_On()
{
digitalWrite(PWR_KEY, HIGH); // Du chan PWR_KEY len cao it nhat 1s
delay(500); // o day ta de 1,5s
digitalWrite(PWR_KEY, LOW); // Du chan PWR_KEY xuong thap
delay(500); // cac ban xem trong Hardware designed sim900A de hieu ro hon
}
void Gsm_Init()
{
Serial.println("ATE0"); // Tat che do phan hoi (Echo mode)
delay(500);
Serial.println("AT+IPR=9600"); // Dat toc do truyen nhan du lieu 9600 bps
delay(500);
Serial.println("AT+CMGF=1"); // Chon che do TEXT Mode
delay(500);
Serial.println("AT+CLIP=1"); // Hien thi thong tin nguoi goi den
delay(500);
Serial.println("AT+CNMI=2,2"); // Hien thi truc tiep noi dung tin nhan
delay(500);
}
void Gsm_MakeCalla()
{
Serial.println("ATD" + myphonea + ";"); // Goi dien so a
delay(500); // Sau 15s
Serial.println("ATH"); // Ngat cuoc goi
delay(500);
}
void Gsm_MakeSMSa()
{
Serial.println("AT+CMGS=\"" + myphonea + "\""); // Lenh gui tin nhan so a
delay(500); // Cho ky tu '>' phan hoi ve
Serial.println("Bao chay"); // Gui noi dung
Serial.println("ctrl-z"); // Gui Ctrl+Z hay 26 de ket thuc noi dung tin nhan va gui tin di
delay(500); // delay 5s
}
void Gsm_MakeCallb()
{
Serial.println("ATD" + myphoneb + ";"); // Goi dien so b
delay(500); // Sau 15s
Serial.println("ATH"); // Ngat cuoc goi
delay(500);
}
void Gsm_MakeSMSb()
{
Serial.println("AT+CMGS=\"" + myphoneb + "\""); // Lenh gui tin nhan so b
delay(500); // Cho ky tu '>' phan hoi ve
Serial.println("Bao chay"); // Gui noi dung
Serial.println((char)26); // Gui Ctrl+Z hay 26 de ket thuc noi dung tin nhan va gui tin di
delay(500); // delay 5s
}
void Gsm_MakeCallc()
{
Serial.println("ATD" + myphonec + ";"); // Goi dien so c
delay(500); // Sau 15s
Serial.println("ATH"); // Ngat cuoc goi
delay(500);
}
void Gsm_MakeSMSc()
{
Serial.println("AT+CMGS=\"" + myphonec + "\""); // Lenh gui tin nhan so c
delay(500); // Cho ky tu '>' phan hoi ve
Serial.println("Bao chay"); // Gui noi dung
Serial.println((char)26); // Gui Ctrl+Z hay 26 de ket thuc noi dung tin nhan va gui tin di
delay(500); // delay 5s
}
void Gsm_MakeCalld()
{
Serial.println("ATD" + myphoned + ";"); // Goi dien so d
delay(500); // Sau 15s
Serial.println("ATH"); // Ngat cuoc goi
delay(500);
}
void Gsm_MakeSMSd()
{
Serial.println("AT+CMGS=\"" + myphoned + "\""); // Lenh gui tin nhan so d
delay(500); // Cho ky tu '>' phan hoi ve
Serial.println("Bao chay"); // Gui noi dung
Serial.println((char)26); // Gui Ctrl+Z hay 26 de ket thuc noi dung tin nhan va gui tin di
delay(500); // delay 5s
}
void Gsm_MakeCalle()
{
Serial.println("ATD" + myphonee + ";"); // Goi dien so e
delay(500); // Sau 15s
Serial.println("ATH"); // Ngat cuoc goi
delay(500);
}
void Gsm_MakeSMSe()
{
Serial.println("AT+CMGS=\"" + myphonee + "\""); // Lenh gui tin nhan so e
delay(500); // Cho ky tu '>' phan hoi ve
Serial.println("Bao chay"); // Gui noi dung
Serial.println((char)26); // Gui Ctrl+Z hay 26 de ket thuc noi dung tin nhan va gui tin di
delay(500); // delay 5s
}