You are on page 1of 8

//CHUONG TRINH DIEU KHIEN KHOI DONG TU

#include <Wire.h>
#include <EEPROM.h>
#include "RTClib.h"
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // 0x27 là địa chỉ của lcd 16x2
RTC_DS1307 RTC;
DateTime now = 0;
const int chay = 2;// the number of the pushbutton pin
const int bat1 = 4;
const int bat2 = 7;
const int role = 13; // the number of the role pin

// variables will change:


int ttchay = 0; // variable for reading the pushbutton status int bat1 = 4
int ttbat1 = 0;
int ttbat2 = 0;
void setup()
{
// initialize the pushbutton pin as an input:
pinMode(chay, INPUT);
pinMode(bat1, INPUT);
pinMode(bat2, INPUT);
// initialize the role pin as an output:
pinMode(role, OUTPUT);
// initialize the LCD
lcd.begin();
// Turn on the blacklight and print a message.
lcd.backlight(); //đèn nền bật
// cài đặt số cột và số dòng
lcd.print("BO DK BOM NUOC");
delay(3000);
lcd.setCursor(0, 1);
lcd.print("0978655137");
delay (2500);
lcd.clear();

Wire.begin();
Wire.beginTransmission(0x68);// địa chỉ của ds1307
Wire.write(0x07); //
Wire.write(0x10); //
//Wire.endTransmission();

//RTC.begin();
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
lcd.print("DH KHONG CHAY");
//RTC.adjust(DateTime(__DATE__, __TIME__));

}
}
void loop(){

//lcd.setCursor(5, 1);
//lcd.print(now.day(), DEC);
//lcd.print("/");
//lcd.print(now.month(), DEC);
//lcd.print("/");
//lcd.print(now.year(), DEC);
//lcd.print("");
//delay(1000);
// read the state of the pushbutton value:
ttchay = digitalRead(chay);
ttbat1 = digitalRead(bat1);
ttbat2 = digitalRead(bat2);

// check if the pushbutton is pressed. If it is, the buttonState is HIGH:


if (ttchay == HIGH){
RTC.begin();
Wire.begin();
Wire.beginTransmission(0x68);// địa chỉ của ds1307
Wire.write(0x07); //
Wire.write(0x10); //
//Wire.endTransmission();

//if (! RTC.isrunning()) {
// Serial.println("RTC is NOT running!");
// lcd.print("DH KHONG CHAY");
//RTC.adjust(DateTime(__DATE__, __TIME__));
lcd.setCursor(2,0);
lcd.print("DA TUOI DUOC");
DateTime now = RTC.now();
// RTC.adjust(DateTime(__DATE__, __TIME__));
lcd.setCursor(5, 1);
lcd.print(now.hour(), DEC);
lcd.print(":");
lcd.print(now.minute(), DEC);
lcd.print(":");
lcd.print(now.second(), DEC);
lcd.print(" ");
delay(10);
}
else(! RTC.isrunning()&& Wire.endTransmission());

while(ttbat1 == HIGH){
lcd.clear();
lcd.setCursor(2,0);
lcd.print("TU BAT SAU 1H");
digitalWrite(role, LOW);
delay(1000);
digitalWrite(role,HIGH);
delay(1000);
}

**************chuong trinh đk modul sim 900A**************************

//#include <sim900a_ktphuhung.h>
#include <ktphuhung.h>
//#include <sim900a_ktphuhung.h>
/////////////////////////////////////////////////////////////////
// CHƯƠNG TRÌNH ĐIỀU KHIỂN GPIO ARDUINO //
// SỬ DỤNG MODULE SIM 900 //
// NGƯỜI VIẾT: HUỲNH MINH PHÚ-NGUYỄN ANH HOÀNG //
// SẢN PHẨM MODULE SIM 900 HIỆN ĐƯỢC BÁN TẠI: www.ktphuhung.com//
// MỌI CHI TIẾT XIN LIÊN HỆ Gmail: hmphubt@gmail.com //
/////////////////////////////////////////////////////////////////
// CÁCH NỐI CHẦN NHƯ SAU : //
// BOAR ARDUINO MODULE SIM 900 //
// 5V VCC //
// GND GND //
// 2 TX //
// 3 RX //
/////////////////////////////////////////////////////////////////
// CÁCH SỬ DỤNG //
// THAY ĐỔI SỐ ĐIỆN THOẠI CỦA BẠN VÀO "SO_DT_CUA_BAN" //
// NẠP CHƯƠNG TRÌNH CHO ARDUINO //
// MỞ SERIAL TERMINAL VÀ CHỌN 9600 BAUND ĐỂ XEM SỐ GỌI TỚI //
// DÙNG ĐIỆN THOẠI VỚI SỐ VỪA THAY ĐỔI, GỌI TỚI SIM 900 //
// NẾU LED 13 ĐỔI TRẠNG THÁI LÀ BẠN ĐÃ LÀM ĐƯỢC //
// www.ktphuhung.com CHÚC BẠN THÀNH CÔNG //
/////////////////////////////////////////////////////////////////
#include <Wire.h>
#include "SoftwareSerial.h"
#include "ktphuhung.h"
ktphuhung sim900a;
int gia_tri_cam_bien=0;

const int thu= 8;


const int thu2= 7;
const int kichhoat= 12;
const int kichhoat2= 10;
int i;
int k;
int l;
int m;
int n;int p;
float giatridienap ;
float giatridienapcucdai ;
float giatridienapthucte;
float giatridoam;

void setup() {
Wire.begin();
pinMode(thu,OUTPUT);
pinMode(thu2,OUTPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(A4,INPUT);
pinMode(A5,INPUT_PULLUP);
pinMode(kichhoat,OUTPUT);
pinMode(kichhoat2,OUTPUT);
//analogWrite(docdienapluoi,0); // Kéo chân A0 xuống mức thấp
//void baodienap();
// digitalWrite(thu, HIGH);delay( 3000);
// THAY CHÂN ARDUINO MUỐN ĐIỀU KHIỂN BẰNG CUỘC GỌI TẠI ĐÂY
sim900a.cai_dat_pin_goi(11);

// THAY SỐ CỦA BẠN TẠI ĐÂY


// MẶC ĐỊNH BẠN CÓ THỂ CHO 5 SỐ ĐIỆN THOẠI
sim900a.cai_dat_so_dt("0978655137","","","","01659XXXXXX");

// THAY MÃ ĐIỀU KHIỂN BẬT TẮT BẰNG TIN NHẮN CỦA BẠN TẠI ĐÂY
// CÁC CHÂN CÓ THỂ ĐIỀU KHIỂN GỒM
// 4-5-6-7-8-9-10-11-12-13
// LƯU Ý MÃ DÀI TỐI ĐA 20 KÝ TỰ VÀ TỐI THIỂU 3 KÝ TỰ
// THAY ĐỔI MÃ THEO CÚ PHÁP SAU :
// sim900a.pinx("MÃ BẬT","MÃ TẮT","MÃ KIỂM TRA");
//sim900a.pin4("4bat","4tat","4kt");
sim900a.pin5("5bat","5tat","5kt");
sim900a.pin6("6bat","6tat","6kt");
// sim900a.pin7("7bat","7tat","7kt");
//sim900a.pin8("8bat","8tat","8kt");
//sim900a.pin9("9bat","9tat","9kt");
//sim900a.pin10("10bat","10tat","10kt");
sim900a.pin11("11bat","11tat","11kt");
//sim900a.pin12("12bat","12tat","12kt");
sim900a.pin13("13bat","13tat","13kt");
analogWrite(A1, 0);
analogWrite(A2, 0);
analogWrite(A4, 0);

//analogWrite(A5, 0);
sim900a.init();//Khi module hu thi dong lenh nay de thu cac lenh khac
//digitalWrite(thu, LOW);
// void baodienap();
}

void loop() {

gia_tri_cam_bien = analogRead(A5);
giatridienap = analogRead(A1)*5/1023;
giatridienapcucdai = giatridienap*311/5;
giatridienapthucte = giatridienapcucdai/1.41;

//Serial.begin(9600 ); Serial.println(giatridienapthucte);
//Serial.println();
// delay(100);

// Serial.print(gia_tri_cam_bien );
//delay(1000);

//if(analogRead(A4) * (5.0 / 1023.0)< 3.5){baodoam();}


// void baodienap();
sim900a.start();

// Serial.println((giatridienapthucte* 220)/3);
//delay(1000);

// Vùng nhận điện thế từ biến áp, tính toán và gởi tin nhắn cho người điều khiển báo
điện sụt áp. và thực hiện cuộc gọi đến máy người điều khiển.
if( giatridienap <3 ) {
// Serial.println(giatridienapthucte);
// delay(100);

while(k >=0 ){
sim900a.call("0978655137", 100);
k = k - 1;

digitalWrite(thu, HIGH);
sim900a.smsbegin("0978655137",20);
sim900a.smscontent("DIEN LUOI SUT AP: ");
sim900a.smscontent(giatridienapthucte);
// sim900a.smssend();

delay(500);
if(k == 0)k=0;break;digitalWrite(thu, LOW); }}
else k = 2; digitalWrite(thu, LOW);
//delay(10);
// Vùng nhận cuộc gọi,kích hoạt bật động cơ
if(analogRead(A4) * (5.0 / 1023.0)> 3){
while(m >=0 ){ m= m - 1; digitalWrite(kichhoat, HIGH);digitalWrite(kichhoat2,
LOW); //MOI
delay(2000);
if(m==0)m=0; break;digitalWrite(kichhoat, LOW);digitalWrite(kichhoat2, HIGH); }
}
else m=1 ; digitalWrite(kichhoat, LOW);digitalWrite(kichhoat2, HIGH); //MOI
if(analogRead(A2) * (5.0 / 1023.0)> 3){ while(p >=0 ){ p= p - 1;
digitalWrite(kichhoat, HIGH);
delay(1000);
if(p==0)p=0; break;digitalWrite(kichhoat, LOW);}}else p=2;digitalWrite(kichhoat,
LOW);

// Vùng nhận tín hiệu điện thế từ KĐT khi chạy ,thực hiện cuộc gọi, nhắn tin đến máy
người điều khiển.
if(analogRead(A2) * (5.0 / 1023.0)> 3){
while(i >=0 ){ i= i - 1; sim900a.smsbegin("0978655137",100);
sim900a.smscontent(" Dong co da bat");
//sim900a.smssend();

delay(3000);
if(i==0)i=0; break;}
}
else i=2 ;
// Vùng đọc dữ liệu từ cảm biến độ ẩm đất , tính toán và gởi tin nhắn cho người điều
khiển báo cần tưới nước.
if(gia_tri_cam_bien > 900){
gitridoam = 1-(gia_tri_cam_bien/ 1023);
while(l >=0 ){
//sim900a.call("0978655137");
l= l - 1;
digitalWrite(thu2, HIGH);

//sim900a.smsbegin("0978655137",20);
//sim900a.smscontent("Hello,DO AM THAP: ");
// sim900a.smscontent(gitridoam);
//sim900a.smssend();
// sim900a.call("0978655137");
delay(5000);
if(l==0)l=0; break;digitalWrite(thu2, LOW);}
}
else l=2 ;digitalWrite(thu2, LOW);
//Code nay cho nhan tin
//tham so thu 1 la so dien thoai
//tham so thu 2 la thoi gian goi tin nhan tiep theo sms.SendSMS(number, "Da bat");
//gửi tin nhắn phản hồi trạng thái,
//sim900a.smsbegin("0978655137",20);
//Noi dung tin nhan
//sim900a.smscontent("Hello ");
//sim900a.smscontent(gia_tri_cam_bien);
//sim900a.smssend();
//code nay cho goi dien
//tham so thu 1 la so dien thoai
//tham so thu 2 la thoi gian goi cuoc goi tiep theo
//sim900a.call("098xxxxxx",5);
//}
}
// het vong void loop
void thuchiencuocgoibaotat(){ if(analogRead(A2) * (5.0 / 1023.0)< 3){
while(n >=0 ){ n= n - 1; sim900a.call("0978655137");

delay(5000);if(n==0)n=0; break;}
}
else n=2 ; }

You might also like