WELCOME BACK HOME Email: thanh.ntr.61cntt@ntu.edu.vn
window.onload = function(){ init(); document.getElementById("homecontrol").style.display = "block"; document.getElementById("wifisetupap").style.display = "none"; } // -Hàm khởi tạo đối tượng request -function create_obj(){ td = navigator.appName; 41 if(td == "Microsoft Internet Explorer"){ obj = new ActiveXObject("Microsoft.XMLHTTP"); }else{ obj = new XMLHttpRequest(); } return obj; } //===========Configure WiFi===================================== var xhttp = create_obj(); function configurewifiap(){ document.getElementById("homecontrol").style.display = "none"; document.getElementById("wifisetupap").style.display = "block"; document.getElementById("ssidap").value = ssid_ap; document.getElementById("passap").value = pass_ap; var cd_hdwifi = document.getElementsByName("cdhdwifi"); for (var i = 0, length = cd_hdwifi.length; i < length; i++) { if (cd_hdwifi[i].value == cdhd_wifi) { document.getElementsByName("cdhdwifi")[i].checked = "true"; break; } } } // -Thiết lập liệu gửi request ssid password function writeEEPROMap(){ if(Empty(document.getElementById("ssidap"), "Please enter ssid!")&&Empty(document.getElementById("passap"), "Please enter password")){ var ssidap = document.getElementById("ssidap").value; var passap = document.getElementById("passap").value; var cd_hdwifi = document.getElementsByName("cdhdwifi"); for (var i = 0, length = cd_hdwifi.length; i < length; i++) { if (cd_hdwifi[i].checked) { // whatever you want with the checked radio cd_hdwifi=cd_hdwifi[i].value; // only one radio can be logically checked, don't check the rest 42 break; } } xhttp.open("GET","/writeEEPROMap? ssidap="+ssidap+"&passap="+passap+"&cdhdap="+cd_hdwifi,true); xhttp.onreadystatechange = process;//nhận reponse xhttp.send(); } } function clearEEPROM(){ if(confirm("Do you want to delete all saved wifi configurations?")){ xhttp.open("GET","/clearEEPROM",true); xhttp.onreadystatechange = process;//nhận reponse xhttp.send(); } } function restartESP(){ if(confirm("Do you want to reboot the device?")){ xhttp.open("GET","/restartESP",true); xhttp.send(); alert("Device is restarting! If no wifi is found please press reset!"); } } // -Kiểm tra response function process(){ if(xhttp.readyState == && xhttp.status == 200){ // Updat data sử dụng javascript -ketqua = xhttp.responseText; alert(ketqua); } } //============Hàm thực khác================================ // Load lại trang để quay Home control - 43 function backHOME(){ document.getElementById("homecontrol").style.display = "block"; document.getElementById("wifisetupap").style.display = "none"; } // CHECK EMPTY -function Empty(element, AlertMessage){ if(element.value.trim()== ""){ alert(AlertMessage); element.focus(); return false; }else{ return true; } } //============WEBSOCKETCLIENT=============================== var Socket; //Khai báo biến Socket var d4, ssid_ap, pass_ap, cdhd_wifi, led; function init(){ //Khởi tạo websocket Socket = new WebSocket('ws://' + window.location.hostname + ':81/'); //Nhận broadcase từ server Socket.onmessage = function(event){ JSONobj = JSON.parse(event.data); //Tách liệu json //alert(event.data); d4 = JSONobj.D4; ssid_ap = JSONobj.SSIDap; pass_ap = JSONobj.PASSap; cdhd_wifi = JSONobj.CDHDap; led = JSONobj.LED; //Kiểm tra trạng thái khóa hiển thị lên webserver if(d4 == "0"){ document.getElementById("button_lock").value ="UNLOCK" document.getElementById("iconlock").style.display ="none"; 44 document.getElementById("iconunlock").style.display = "block"; } else{ document.getElementById("button_lock").value = "LOCK" document.getElementById("iconlock").style.display = "block"; document.getElementById("iconunlock").style.display = "none"; } if(led == "0"){document.getElementById("ledconnect").style.background = "#222222"; //document.getElementById("status_Door").style.color = "#FFFFFF"; }else{ document.getElementById("ledconnect").style.background = "#00EE00"; //document.getElementById("status_Door").style.color = "#222222"; } } } function lockactive(){ if(document.getElementById("button_lock").value == "LOCK"){ Socket.send("unlock"); } } )====="; void setup() { Serial.begin(9600); EEPROM.begin(512); //Khởi tạo nhớ EEPROM delay(10); lcd.init(); // turn on LCD backlight lcd.backlight(); pinMode(D5,OUTPUT); digitalWrite(D5,LOW); //Thiết lập đèn nối với chân D5 tắt 45 pinMode(D8,OUTPUT); digitalWrite(D8,LOW); //Thiết lập đèn nối với chân D8 tắt myservo.attach(D4); //Thiết bị khóa chân D4 myservo.write(180); //Thiết lập khóa đóng lcd.setCursor(0, 0); //Thiết lập LCD hiển thị từ vị trí (0, 0) // print message lcd.print("close the door!"); read_EEPROM(); WiFi.begin(ssid,pass); Serial.print("Connecting"); while(WiFi.status()!=WL_CONNECTED){ Thiết lập kết nối với wifi để phản hồi địa webserver delay(500); Serial.print(" "); } Serial.println(WiFi.localIP()); delay(100); WiFi.mode(WIFI_AP_STA); Serial.println("Soft Access Point mode!"); Serial.print("Please connect to "); Serial.println(ssid_ap); Serial.print("Password is: "); Serial.println(pass_ap); startWebServer(); webSocket.begin(); webSocket.onEvent(webSocketEvent); Serial.print("Web Server IP Address: "); Serial.println(ip_ap); timer_update.setInterval(500L, updateStateD); timer_unlock.setTimeout(5000L,unLock); } 46 void loop() { webServer.handleClient(); webSocket.loop(); timer_update.run(); timer_unlock.run(); } //==========CHƯƠNG TRÌNH CON===================================// // Đọc nhớ EEPROM -void read_EEPROM(){ Serial.println("Reading EEPROM "); if(EEPROM.read(0)!=0){ ssid_ap = ""; pass_ap = ""; cdhd_ap = ""; for (int i=0; i