Tải bản đầy đủ - 0 (trang)
Tài liệu tiếng Anh

Tài liệu tiếng Anh

Tải bản đầy đủ - 0trang





Phụ lục



 Code điều khiển arduino

 #include "SIMFunc.h"



(sobom.toInt() == 1 &&



 #include "SENSORFunc.h"



thoigiantatbom1 == "") ||



 #include "RELAYFunc.h"



(sobom.toInt() == 3 &&



 unsigned long timer = millis();



(thoigiantatbom2 == "" ||



 void setup() {



thoigiantatbom1 == ""))) {







Serial.begin(115200);







Serial.print("Bat bom: ");







relaybegin();







Serial.print(sobom);







simbegin();







Serial.print("\tTrong: ");







Serial.println(ngaygio());







Serial.print(sophut.toInt());



 }







Serial.println("phut");



 void loop() {







batbom(sobom.toInt(),







simcheck();







if (millis() - timer > 1000) {



sophut.toInt());

}











checkbom();







}







checkbonchua();







if







if (Alarm.indexOf(giophut(1))



(Alarm.indexOf(ngaygio()) !=

-1) {



!= -1) {









String sobom =



Alarm.substring(Alarm.indexOf(



Alarm.substring(Alarm.indexOf(



ngaygio()) + 20,



giophut(1)) + 10,



Alarm.indexOf(ngaygio()) + 21);



Alarm.indexOf(giophut(1)) +





11);





String sophut =

Alarm.substring(Alarm.indexOf(



String sophut =



ngaygio()) + 23);



Alarm.substring(Alarm.indexOf(





giophut(1)) + 13);





String sobom =



if ((sobom.toInt() == 2 &&

thoigiantatbom2 == "") ||



if ((sobom.toInt() == 2 &&



(sobom.toInt() == 1 &&



thoigiantatbom2 == "") ||



thoigiantatbom1 == "") ||

74



(sobom.toInt() == 3 &&



if (tmp.indexOf("{BEGIN}") !







(thoigiantatbom2 == "" ||



= -1 && tmp.indexOf("{END}")



thoigiantatbom1 == ""))) {



!= -1) {







Serial.print("Bat bom: ");







Serial.print(sobom);



tmp.substring(tmp.indexOf("{B







Serial.print("\tTrong: ");



EGIN}") + 7,







Serial.print(sophut.toInt());



tmp.indexOf("{END}"));







Serial.println("phut");











batbom(sobom.toInt(),







Serial.println(Alarm);

}



 }



sophut.toInt());



 void simcheck() {



}







Alarm =











}







static String tmp;







timer = millis();







if (SerialAT.available()) {







char c = SerialAT.read();



 }







if (c != '\0') {



 void getTimer() {







tmp += c;



String tmp =







}







if (tmp != "" && c == '\n') {



}











String(luongnuoc());





tmp = "get&nctb=" + tmp;







xuly(tmp);







tmp += "&nhietdo=" +







tmp = "";



String(nhietdo());





tmp += "&doam=" +

String(doam());











static unsigned long timerd =







tmp += "&bom2=" +

tmp += "&bom3=" +



if (millis() - timerd > 20000) {







getTimer();







timerd = millis();







String(digitalRead(M3_PIN));





}

millis();



String(bom2);









tmp += "&bom1=" +

String(bom1);







}







}



 }



tmp = AT_GetServer(tmp);



 void xuly(String tmp) {

75







//Serial.println(tmp);







if (tmp.indexOf(MyNumber) !=



else if ((tmp.indexOf("+CLIP")







!= -1)) SerialAT.println("ATH");

 }



-1) call_recv();

 Chương trình con của relay

 #define M1 1



//







Trọng số mô tơ bơm thứ nhất

 #define M2 2



if (thoigiantatbom1 != "" &&

thoigiantatbom2 != "") return;



//







String tmp = "";



Trọng số mô tơ bơm thứ hai







if (hour() + (int)(sophut / 60) <

10) tmp += "0";





 /* Các chân điều khiển động cơ







60);



thơng qua mạch kích Relay có

LED báo kiểm tra */

 #define M1_PIN 4



//







tmp += ":";







if (minute() + sophut - (((int)



Chân khởi động mô tơ thứ nhất

 #define M2_PIN 5



(sophut / 60)) * 60) < 10) tmp



//



+= "0";



Chân khởi động mô tơ thứ hai

 #define M3_PIN 6



tmp += hour() + (int)(sophut /







//



tmp += minute() + sophut (((int)(sophut / 60)) * 60);



Chân khởi động bơm nước vào







tmp += ":00A";



bồn







if (!bom1 && (bom == 1 || bom



 bool bom1 = false, bom2 = false;



== 3)) {



 String thoigiantatbom1 = "";







Serial.print("Bat bom 1 - ");



 String thoigiantatbom2 = "";







Serial.println(tmp);



 void relaybegin() {







thoigiantatbom1 = tmp;







pinMode(M1_PIN, OUTPUT);







digitalWrite(M1_PIN, HIGH);







pinMode(M2_PIN, OUTPUT);







bom1 = true;







pinMode(M3_PIN, OUTPUT);







}







if (!bom2 && (bom == 2 || bom



 }

 void batbom(int bom, int sophut)



== 3)) {



{



76







Serial.print("Bat bom 2 - ");







Serial.println(tmp);







thoigiantatbom2 = tmp;











digitalWrite(M2_PIN, HIGH);



 }







bom2 = true;



 String ngaygio() {



}



else return tmp;







String date = (String)year();



 }







date += "-";



 void tatbom(int bom) {







if (month() < 10) date += "0";







date += month();







date += "-";







if (bom1 && (bom == 1 || bom







== 3)) {





Serial.println("Tat bom 1");







if (day() < 10) date += "0";







digitalWrite(M1_PIN, LOW);







date += day();







bom1 = false;







date += " " + giophut(false);







thoigiantatbom1 = "";







return date;







}



 }







if (bom2 && (bom = 2 || bom



 void checkbom() {



== 3)) {



if (giophut(0) ==











Serial.println("Tat bom 2");







digitalWrite(M2_PIN, LOW);







if (bom1) {







bom2 = false;







tatbom(1);







thoigiantatbom2 = "";







bom1 = false;







thoigiantatbom1) {



}



}







 }







}



 String giophut(bool co) {







if (giophut(0) ==







String tmp = "";







if (hour() < 10) tmp = "0";







if (bom2) {







tmp += hour();







tatbom(2);







tmp += ":";







bom2 = false;







if (minute() < 10) tmp += "0";











tmp += minute();











tmp += ":00A";



 }







if (co) return "\"" + tmp;



 void checkbonchua() {



thoigiantatbom2) {



77



}

}







if (luongnuoc() > 17) return;







tmp += ":00A";







if (luongnuoc() < 5) {







thoigiantatbom1 = tmp;







digitalWrite(M1_PIN, HIGH);



digitalWrite(M3_PIN, 1);









} else if (luongnuoc() < 14) {







bom1 = true;







} else {







thoigiantatbom2 = tmp;







digitalWrite(M2_PIN, HIGH);







bom2 = true;



digitalWrite(M3_PIN, 0);







}





 }







 void call_recv() {







call_stt = 0;







String tmp = "";







if (hour() + (int)(1 / 60) < 10)







SerialAT.println("ATH"); // Tắt

máy







waitFor("OK", 5000);



} else {



tmp += "0";







SerialAT.println("AT+CLIP=1");







tmp += hour() + (int)(1 / 60);







tmp += ":";







if (minute() + 1 - (((int)(1 /







waitFor("OK", 5000);







static bool call_stt = 0;







if (!call_stt) {







call_stt = 1;







String tmp = "";







tmp += ":00A";







if (hour() + (int)(15 / 60) <







thoigiantatbom1 = tmp;







thoigiantatbom2 = tmp;



60)) * 60) < 10) tmp += "0";

tmp += minute() + 1 - (((int)(1







/ 60)) * 60);



10) tmp += "0";





tmp += hour() + (int)(15 / 60);







digitalWrite(M1_PIN, LOW);







tmp += ":";







digitalWrite(M2_PIN, LOW);







if (minute() + 15 - (((int)(15 /







60)) * 60) < 10) tmp += "0";





}



 }



tmp += minute() + 15 - (((int)

(15 / 60)) * 60);





 Code cho cảm biến:

 // Untrasonic sensor



 #include

78



 #define TRIGGER_PIN 13 //



 OneWire



Arduino pin tied to trigger pin



__nhietdo(ONE_WIRE_BUS);



on the ultrasonic sensor.

 #define ECHO_PIN



 DallasTemperature



12 //



_nhietdo(&__nhietdo);



Arduino pin tied to echo pin on



 int nhietdo() {



the ultrasonic sensor.







 #define MAX_DISTANCE 20 //



_nhietdo.requestTemperatures();



Maximum distance we want to



if







ping for (in centimeters).



(_nhietdo.getTempCByIndex(0)



Maximum sensor distance is



> 50) return nhietdo();



rated at 400-500cm.



return







 NewPing



_nhietdo.getTempCByIndex(0);



_luongnuoc(TRIGGER_PIN,



 }



ECHO_PIN,



 // ELSE



MAX_DISTANCE);



 #define SENSOR_PIN A0







// Chân cảm biến



 int luongnuoc() {







return MAX_DISTANCE -







 int doam(){



_luongnuoc.ping_cm();

 }







pinMode(A0, INPUT);







int value =



 // Temperature sensor DS18B20



analogRead(A0);



 #include



giá trị hiệu điện thế của cảm biến



 #include



return map(value, 0, 1023, 100,











// Ta sẽ đọc



0);



 #define ONE_WIRE_BUS 7



 }





 Code cho sim A7:

 #include



 // AT+IPR=9600



befor ussing



 #include



 String Alarm;



 SoftwareSerial SerialAT(10, 11);

79



 #define PWR 2



//







}



Định nghĩa chân kích hoạt







if (tmp != "" && c == '\n') {



module SIM







 #define PWR_Try 3



//



if

(tmp.indexOf("{BEGIN}") !=



Định nghĩa số lần thử khích hoạt



-1) return tmp;



lại SIM



if (tmp.indexOf("+CTZV:")







 #define ERROR_PIN A4



!= -1) return tmp;



// Chân LED lỗi kết nối



if (tmp == subStr + "\r\n")







 #define READY_PIN A5



return tmp;



// Chân LED kết nối đã thiết lập,







hệ thống vận hành tốt







 String server = "luan.ga";







 const int port = 80;







}



 String MyNumber =







return "ERROR";



}

}



"962392521"; // Định nghĩa số



 }



điện thoại có thể dùng cuộc gọi



 bool AT_syncTime() {



để tắt/mở bơm nước







 String username = "admin";



SerialAT.println("AT+CGATT=1



 String password = "11221212";



");



 String waitFor(String subStr, int







timeOut) {



String tmp = waitFor("OK",

15000);







String tmp;











unsigned long Error_Timer =







millis();





tmp = "";







while (millis() - Error_Timer <







timeOut) {



if (tmp == "ERROR") {

return false;

} else {

if (tmp.indexOf("+CTZV:")

== -1) return false;







if (SerialAT.available()) {







waitFor("OK", 5000);







char c = SerialAT.read();







tmp =







if (c != '\0') {







tmp += c;



tmp.substring(tmp.indexOf("+C

TZV:"));

80







int G[7];







for (byte i = 0; i < 6; i++) G[i]



SerialAT.print("GET /recv.php?







name=admin&key=11221212&d



= tmp.substring(6 + i * 3, 8 + i *



ata=" + noidung + "



3).toInt();



HTTP/1.1\r\n");



G[6] = tmp.substring(25,







server);



27).toInt();

int mins = (G[3] + G[6]) * 60







SerialAT.println("Host: " +







SerialAT.print("Connection:







close\r\n\r\n\x1A");



+ G[4];



String tmp =







G[3] = mins / 60;







G[4] = mins - G[3] * 60;



waitFor("+TCPCLOSED:0",







setTime(G[3], G[4], G[5],



10000);











G[2], G[1], G[0]);





}







return true;



SerialAT.println("AT+CLIP=1");





waitFor("OK", 1000);



 }







return tmp;



 String AT_GetServer(String



 }

 // Hàm khởi động SIM



noidung) {





SerialAT.println("ATH");



 bool SIM_init() {







waitFor("OK", 1000);







Serial.println("SIM INIT...");







SerialAT.print("AT+CIPSTART







digitalWrite(PWR, HIGH);



= \"TCP\",\"" + server + "\"," +







delay(2000);



port + "\r\n");







digitalWrite(PWR, LOW);







byte ErrorTime = 0;







while (waitFor("OK", 3000) ==







waitFor("CONNECT OK",

7000);







SerialAT.println("ATH");







waitFor("OK", 1000);



"ERROR") {











SerialAT.print("AT\r\n");







if (ErrorTime++ >= 5) return



SerialAT.print("at+cipsend\r\n");





false;



delay(100);







81



}



while







 bool simbegin() {



(SerialAT.available())SerialAT.re







SerialAT.begin(9600);



ad();







pinMode(PWR, OUTPUT);







pinMode(ERROR_PIN,



Serial.println("Get Data







info...");



OUTPUT);







SerialAT.println("AT+CGATT=0



OUTPUT);



");



HIGH);



return false;



HIGH);



false;



for (byte i = 0; i < PWR_Try;







Serial.println("Turn on call







digitalWrite(READY_PIN,







if (!AT_syncTime()) return







digitalWrite(ERROR_PIN,







if (!waitFor("OK", 5000))







i++) {



info...");



if (SIM_init()) {











digitalWrite(ERROR_PIN,







SerialAT.println("AT+CLIP=1");



HIGH);



if (!waitFor("OK", 3000))







LOW);



String tmp =







digitalWrite(READY_PIN,







return false;



return true;







AT_GetServer("get");





pinMode(READY_PIN,







}







Alarm =

tmp.substring(tmp.indexOf("{B







}







digitalWrite(ERROR_PIN,



EGIN}") + 7,



HIGH);



tmp.indexOf("{END}"));



digitalWrite(READY_PIN,











Serial.println(Alarm);







Serial.println("READY");











return true;



 }



LOW);



 }





 Một phần code của web server:

82



return false;



 if (isset($_POST['name']) &&



 ?>



isset($_POST['key'])){











$name = $_POST['name'];











$key = md5($_POST['key']);











$sql = "SELECT * FROM







`user` WHERE `name` = '$name'











AND `key` ='$key'";














$result = $conn->query($sql);







if ($result->num_rows > 0) {



type="text/css"

href="asset/css/bootstrap.min.css



$user = $result-







">



>fetch_array();

$_SESSION['userid'] =






















$user['name'];



type="text/css"



$_SESSION["fullname"]=







href="asset/css/plugins/font-



$user['fullname'];



awesome.min.css"/>



if(!











empty($_POST["remember"])) {




type="text/css"







$days = 30;



href="asset/css/plugins/simple-







$value =



line-icons.css"/>



encryptCookie($userid);







setcookie ("rememberme",








type="text/css"



$value,time()+ ($days * 24 * 60



href="asset/css/plugins/animate.



* 60 * 1000));



min.css"/>








}







header("Location: ./");



type="text/css"







exit;



href="asset/css/plugins/icheck/sk







} else {



ins/flat/aero.css"/>





$message = "Invalid Login";














rel="stylesheet">



}





 }

83







Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tài liệu tiếng Anh

Tải bản đầy đủ ngay(0 tr)

×