1. Trang chủ
  2. » Công Nghệ Thông Tin

Tiểu Luận Tốt Nghiệp Điều Khiển Thiết Bị Qua Mạng Internet

82 521 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 82
Dung lượng 6,2 MB

Nội dung

Đề tài này được phát triển nhằm tạo ra phiên bản thử nghiệm cho việc xây dựng một hệ thống điều khiển tự động các thiết bị trong gia đình dựa trên các vi xử lý Arduino UNO, Arduino Mega 2560, và Arduino Promini. Hệ thống sẽ được điều khiển thông qua giao diện điều khiển trên trình duyệt web. Phần lớn các công việc tập trung vào việc thiết kế trên phần mềm thiết kế mạch, lập trình vi điều khiển dựa trên ngôn ngữ CC++ và thực hiện chế tạo các mạch điều khiển. Trong chương 4 của bài báo cáo này sẽ chỉ rõ làm thế nào để thiết kế các mạch điều khiển và mạch cảm biến. Phần cuối của bài báo cáo sẽ tổng hợp tất cả các mã lập trình được sử dụng cho đề tài.

TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG TIỂU LUẬN TỐT NGHIỆP THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN TRONG NHÀ VỚI ARDUINO Sinh viên thực Giáo viên hướng dẫn TRỊNH HẢI ĐẢO TS.LÊ VĂN LÂM MSSV: CM14V7K501 Cà Mau – 2016 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino LỜI CẢM ƠN Em xin gửi đến thầy cô khoa Công Nghệ Thông Tin & Truyền Thông Trường Đại Học Cần Thơ lời biết ơn sâu sắc nhất, người với tri thức tâm huyết để truyền đạt vốn kiến thức quý báu cho chúng em thời gian học tập vừa qua Xin gửi lời cảm ơn chân thành đến gia đình, bè bạn, cộng đồng người lập trình internet ln nguồn động viên to lớn, giúp em vượt qua khó khăn suốt trình học tập thực đồ án Mặc dù cố gắng hoàn thiện đồ án với tất nỗ lực, nhiên bước đầu vào thực tế, tìm hiểu xây dựng đồ án thời gian có hạn, kiến thức hạn chế nên đồ án “Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino” chắn khơng thể tránh khỏi thiếu sót Em mong nhận quan tâm, thông cảm đóng góp q báu thầy bạn để đồ án ngày hoàn thiện Một lần nữa, em xin chân thành cám ơn ln mong nhận đóng góp người Sau cùng, em xin kính chúc thầy cô Khoa Công nghệ Thông Tin & Truyền Thông dồi sức khỏe, niềm tin để tiếp tục thực sứ mệnh cao đẹp truyền đạt kiến thức cho hệ mai sau Trân trọng ! Cà Mau, ngày 27 tháng 08 năm 2016 Sinh viên thực Trịnh Hải Đảo 66 18 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino MỤC LỤC 66 18 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino MỤC LỤC HÌNH 66 18 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino KÝ HIỆU VÀ TỪ VIẾT TẮT Bảng từ viết tắt Viết tắt Viết đầy đủ Diễn giải IoT Internet of Things “Vạn vật kết nối” tất thứ điều kết nối với Internet Shield Lá chắn kết nối Là bo mạch kết nối có khả mở rộng thêm chức vi xử lý RFID Datasheet I/O IDE DIY UART Radio Frequency Là công nghệ nhận dạng đối tượng Identification sóng vơ tuyến Là tài liệu tóm tắt việc thực Tài liệu thông số đặc tính kỷ thuật sản phẩm, máy kỷ thuật móc, linh kiện Input/Output Đầu vào/ra vi điều khiển Integrated Development Mơi trường phát triển tích hợp Environment Do It Yourself Những người tự tạo sản phẩm Universal Asynchronous Chuẩn giao tiếp liệu nối tiếp Receiver SPI Serial Peripheral Interface I2C Inter-Intergrated Chuẩn giao tiếp nối tiếp dây Circuit PWM PCB NFC PIR Op-Amp AJAX Pulse Width Modulation Printer Circuit Board Near-Field Communication s Passive InfraRed sensor Operational Amplifier Asynchronous Javascript and XML Chuẩn giao tiếp đồng song công Phương pháp điều xung, điều chỉnh điện áp tải Bảng mạch in Công nghệ giao tiếp gần sử dụng cảm ứng từ trường Cảm biến thụ động dùng nguồn kích thích tia hồng ngoại Mạch khuếch đại tín hiệu thuật tốn Javascript XML không đồng 66 18 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino Extensible Markup Language XML Ngôn ngữ đánh dấu mở rộng Bảng ký hiệu Ký hiệu Tên ký hiệu Actor Use case Diễn giải Tác nhân Trường hợp sử dụng Unidirectional Association Quan hệ tác nhân trường hợp sử dụng Generalization Quan hệ khái quát hóa Object Message Message to self Đối tượng Thông điệp đối tượng Thông điệp lặp có điều kiện LED Đèn led Res Điện trở Button Vcc Diode Nút nhấn vật lý Nguồn dương Đi-ốt chiều Rad Tụ phân cực Cap Tụ không phân cực 66 18 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino Op-amp GND Mạch khuếch đại thuật tốn Nối đất (nguồn âm) TĨM TẮT VÀ TỪ KHĨA Tóm tắt: Đề tài phát triển nhằm tạo phiên thử nghiệm cho việc xây dựng hệ thống điều khiển tự động thiết bị gia đình dựa vi xử lý Arduino UNO, Arduino Mega 2560, Arduino Promini Hệ thống điều khiển thông qua giao diện điều khiển trình duyệt web Phần lớn cơng việc tập trung vào việc thiết kế phần mềm thiết kế mạch, lập trình vi điều khiển dựa ngôn ngữ C/C++ thực chế tạo mạch điều khiển Trong chương báo cáo rõ làm để thiết kế mạch điều khiển mạch cảm biến Phần cuối báo cáo tổng hợp tất mã lập trình sử dụng cho đề tài Từ khóa: vi điều khiển, Arduino, điều khiển từ xa, máy chủ web Abstract: This project I would like to introducing a trial version of an automatic controllable devices system in the home based on the microprocessor Arduino UNO, Arduino Mega 2560 and Arduino Promini The system will be controlled through the console on the web browser Much of the work focuses on software design on circuit design, microcontroller programming language based on C/C++ and implement controllers fabrication In Chapter of this report will indicate how to design the control circuit and sensor circuit The report's final section will sum up all the programming code used for the project 66 18 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino Keyword: microcontroller, Arduino, remote control, web server 66 18 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino CHƯƠNG 1: TỔNG QUAN Đặt vấn đề Ngày với phát triển công nghệ thông tin xu hướng “Vạn vật kết nối – Internet of Things (IoT)”, ln muốn đồ vật xung quanh ta điều kết nối với internet để dễ dàng kiểm soát hoạt động điều khiển chúng Và đời bo mạch vi xử lý như: Raspberry pi, Intel Galileo hay Arduino… yếu tố tất yếu để đáp ứng nhu cầu Những bo mạch vi xử lý nhỏ lòng bàn tay sức mạnh tính tốn khơng nhỏ, giá chúng khơng thể cao máy vi tính bình thường Internet of Things kịch giới, mà đồ vật, người cung cấp định danh riêng mình, tất có khả truyền tải, trao đổi thông tin, liệu qua mạng mà không cần đến tương tác trực tiếp người với người, hay người với máy tính IoT phát triển từ hội tụ công nghệ không dây, công nghệ vi điện tử Internet [18] Theo khái niệm ta hiểu IoT vật kết nối với qua internet, người dùng kiểm sốt đồ vật qua thiết bị thơng minh laptop, máy tính để bàn hay smatphone Các hãng công nghệ lớn Samsung hay LG cho đời sản phẩm IoT nghĩa như: tủ lạnh máy giặt hay ti vi thông minh, mục tiêu sản phẩm hướng đến xây dựng nhà thông minh Trong phát triển xu chung xã hội, việc làm chủ công nghệ thiết kế mạch vi xử lý xây dựng thiết bị kết nối với internet để tạo hệ sinh thái IoT mang thương hiệu riêng điều cần thiết Mục tiêu đề tài xây dựng hệ thống điều khiển thiết bị điện gia đình thơng qua internet, giúp kiểm sốt tốt vấn đề an ninh, an tồn gia đình nhờ vào cảm biến, hướng đến xây dựng hộ thông minh 66 18 10 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino Lịch sử vấn đề Đề tài phát triển dựa tảng đề tài “Điều Khiển Thiết Bị Điện Qua Internet” em báo cáo môn Niên Luận năm 2015 thầy Lê Văn Lâm giảng dạy Trong đề tài lần trước, em giải vấn đề điều khiển thiết bị qua mạng internet nhiều thiếu sót việc thiết kế mạch điều khiển kỹ thuật chế tạo mạch chưa cao, số lượng thiết bị mà hệ thống điều khiển bị giới hạn, độ bảo mật hệ thống khơng đảm bảo chưa có chế chứng thực người dùng hợp lý Mục tiêu nhiệm vụ đề tài Như nói trên, mục tiêu đề tài lần xây dựng hệ thống điều khiển thiết bị điện gia đình thơng qua internet, xây dựng giao diện điều khiển trình duyệt web thiết kế cảm biến như: cảm biến chuyển động, nhiệt độ, độ ẩm, phát lửa - khí Gas… nhằm giúp người dùng phát sớm vấn đề an ninh, an tồn gia đình Nhiệm vụ cần thực đề tài thiết kế bo mạch kết nối (shield) dựa bo mạch vi xử lý có sẵn, lập trình cho vi xử lý thiết kế mạch cảm biến phù hợp với mục đích người sử dụng Nền tảng thực đề tài dựa kiến thức học mơn học: Lập trình C, Lập trình Web với kiến thức vi xử lý chia internet hiểu biết em thiết kế mạch điện, thiết bị điện - điện tử giúp đỡ từ cộng đồng người lập trình Arduino toàn giới Phạm vi đề tài - Xây dựng thiết kế mạch điều khiển thiết bị điện điều khiển thiết bị lúc - Thiết kế mạch mở khóa cửa thẻ từ (RFID) bàn phím ma trận để điều khiển đóng/mở khóa cửa - Thiết kế cảm biến chuyển động, cảm biến nhiệt độ độ ẩm, cảm biến khí Gas, cảm biến ánh sáng… 66 18 68 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino void loop() { for (int i = 0; i < 8; i++) { readingbnt[i] = digitalRead(bnt[i]); } if (vw_get_message(buf, &buflen)) { for (int i = 0; i < buflen; i++) { if (buf[i] == 49) ledStates[i] = HIGH; if (buf[i] == 48) ledStates[i] = LOW; } } if ((readingbnt[0] != lastbntState[0]) || (readingbnt[1] != lastbntState[1]) || (readingbnt[2] != lastbntState[2]) || (readingbnt[3] != lastbntState[3]) || (readingbnt[4] != lastbntState[4]) || (readingbnt[5] != lastbntState[5]) || (readingbnt[6] != lastbntState[6]) || (readingbnt[7] != lastbntState[7])) { lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { for (int i = 0; i < 8; i++) { if (readingbnt[i] != bntState[i]) { bntState[i] = readingbnt[i]; if (bntState[i] == HIGH) ledStates[i] = !ledStates[i]; } } } for (int i = 0; i < 8; i++) { if (ledStates[i] == LOW) ledState[i] = 0; else ledState[i] = 1; lastbntState[i] = readingbnt[i]; Serial.print(ledState[i]); } ledStatus = ( ledState[7]*pow(2,0) + ledState[6]*pow(2,1) + ledState[5]*pow(2,2) + ledState[4]*pow(2,3) + ledState[3]*pow(2,4) + ledState[2]*pow(2,5) + ledState[1]*pow(2,6) + ledState[0]*pow(2,7) ); Serial.println(); shiftOutHC595(dataPin,clockPin,ledStatus); } 66 18 69 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino PHỤ LỤC B – Mã lập trình mạch mở khóa RFID #include #include #include #include #include #include //Thu vien giao tiep SPI cho board arduino //Thu vien giao tiep I2C cho board arduino //Thu vien cua servo //Thu vien cua ban phim ma tran //Thu vien nhap password //Thu vien cua dau doc the tu RFID //Khai bao chan ket noi danh cho dau doc the tu tren board #define SS_PIN 10 #define RST_PIN MFRC522 nfc(SS_PIN, RST_PIN); //Khai bao tong so the dang su dung #define AUTHORIZED_COUNT byte Authorized[AUTHORIZED_COUNT][5] = { //Ma the {0xA2, 0xA3, 0x90, 0xF0, 0x61} }; //Khai bao mang cho ban phim ma tran 4x3 const byte ROWS = 4; //4 hang const byte COLS = 3; //3 cot char keys[ROWS][COLS] = { {'1','2','3'}, // A0 {'4','5','6'}, // A1 {'7','8','9'}, // A2 {'*','0','#'} // A3 // }; //Khai bao cac chan ket noi voi ban phim byte rowPins[ROWS] = {A0, A1, A2, A3}; //Ket noi voi cac chan tren hang cua ban phim byte colPins[COLS] = {8, 7, 6}; //Ket noi voi cac chan tren cot cua ban phim Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //Khai bao chuoi password mac dinh Password password = Password( "1234" ); //Khai bao cac chan ket noi cua board arduino #define buttonOpen A6 #define buttonClose A7 #define ledClosed #define ledOpened #define buzzer Servo myservo; //Khoi tao doi tuong dieu khien servo //Khai bao ham thoi gian de kiem tra cac tien trinh unsigned long time1 = 0; unsigned long time2 = 0; //Khai bao bien nhan ky tu nhan tu ban phim char key = keypad.getKey(); //Khai bao cac bien de su dung ham so sanh the RFID byte status; byte data[MAX_LEN]; byte serial[5]; 66 18 70 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino //Khai bao bien kiem tra trang thai cho boolean wait = true; //Khai bao bien kiem tra trang thai dang nhap boolean logIn = false; //Khai bao bien kiem tra so lan quet the byte cID = 0; //Khai bao bien kiem tra so lan nhap password byte cPass = 0; //Khai bao bien dem so nut da duoc nhan byte cKey = 0; //Khai bao bien dem goc quay cua servo int pos = 0; void setup() { pinMode(buttonOpen, INPUT); pinMode(buttonClose, INPUT); pinMode(ledOpened, OUTPUT); pinMode(ledClosed, OUTPUT); pinMode(buzzer, OUTPUT); //Dat pin lam doi tuong dieu khien servo myservo.attach(3); myservo.write(pos); //Phan khai bao giao tiep I2C Wire.begin(1); //Ket noi voi I2C bus voi dia chi la #1 Wire.onRequest(requestEvent); //Yeu cau nhan su kien tu master Wire.onReceive(receiveEvent); //Yeu cau goi du kien den master Serial.begin(9600); //Lang nghe su kien tu ban phim keypad.addEventListener(keypadEvent); Serial.println("Dang tim chip MFRC522."); SPI.begin(); nfc.begin(); byte version = nfc.getFirmwareVersion(); if(! version) { Serial.println("Khong tim thay chip MFRC522."); while(1); } Serial.println("Da tim thay chip MFRC522."); Serial.print("Firmware phien ban 0x"); Serial.println(version, HEX); beep(50); beep(50); beep(200); } void loop() { requestEvent(); keypad.getKey(); btOpenClose(); waitPower(); 66 18 71 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino readRFID(); checkTimer(); startAlerts(); } //Phan RIFD //Ham quet the RFID void readRFID() { status = nfc.requestTag(MF1_REQIDL, data); if (status == MI_OK) { status = nfc.antiCollision(data); memcpy(serial, data, 5); beep(50); beep(50); delay(100); if(isAuthorized(serial)) { printSerial(serial); Serial.println("Ma the dung"); time1 = millis(); wait = false; cID = 0; cPass = 0; cKey = 0; digitalWrite(ledOpened, LOW); digitalWrite(ledClosed, HIGH); } else { printSerial(serial); Serial.println("Ma the KHONG dung"); time1 = millis(); warningLogin(); cID++; Serial.print("cid:"); Serial.println(cID); } nfc.haltTag(); delay(500); } } //Ham gan ma the dang doc voi mang duoc tao boolean isSame(byte *key, byte *serial) { for(int i = 0; i < 5; i++) { if(key[i] != serial[i]) { return false; } } return true; } //Ham so sanh ma the voi tong so the cho truoc boolean isAuthorized(byte *serial) { for(int i = 0; i < AUTHORIZED_COUNT; i++) { if(isSame(serial, Authorized[i])) { return true; } 66 18 72 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino } return false; } //Ham in ma the len serial monitor void printSerial(byte *serial) { Serial.print("The: "); for(int i = 0; i < 5; i++) { Serial.print(serial[i], HEX); Serial.print(" "); } } //Phan KEYPAD //Ham kiem tra su kien nhap tu ban phim void keypadEvent(KeypadEvent eKey) { if (wait == false && logIn == false) { switch (keypad.getState()) { case PRESSED: Serial.print(""); cKey++; beep(50); time1 = millis(); Serial.println(eKey); switch (eKey) { case '#': delay(500); checkPassword(); break; case '*': password.reset(); cKey = 0; Serial.println("Da xoa cac ky tu, nhap lai pass !"); break; default: password.append(eKey); } } } else if (wait == false && logIn == true) { //da dang nhap cong switch (keypad.getState()) { case PRESSED: Serial.print(""); beep(50); time1 = millis(); Serial.println(eKey); if (eKey == '*') { delay(500); closeLock(); } } } else { //dang o che khoa switch (keypad.getState()) { case PRESSED: Serial.print(""); time1 = millis(); Serial.println(eKey); if (eKey != NO_KEY) { warningLogin(); cKey++; } Serial.print("ckey: "); Serial.println(cKey); } } 66 18 73 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino } //Ham kiem tra trung khop password void checkPassword() { if (wait == false) { if (password.evaluate()) { Serial.println("Success"); //logIn = true; //cKey = 0; //cID = 0; //cPass = 0; //Serial.println("Goi ham Servo mo khoa"); openLock(); } else { Serial.println("Wrong"); logIn = false; cPass++; warningLogin(); password.reset(); time1 = millis(); digitalWrite(ledOpened, LOW); digitalWrite(ledClosed, HIGH); } } } //Phan dieu khien Mo/Khoa Servo void btOpenClose() { int a = analogRead(buttonOpen); int b = analogRead(buttonClose); if (a >= 1000 && b = 1000 && a 0; pos ) { myservo.write(pos); delay(5); } beep(255); Serial.print("pos: "); Serial.println(pos); break; } digitalWrite(ledOpened, LOW); Serial.println("Da dong khoa !"); } //Cac ham CO dieu kien //Ham led nhap nhay o che cho void waitPower() { if (wait == true) { if ((millis() - time2) > 1000) { if (digitalRead(ledClosed) == LOW ) { digitalWrite(ledClosed, HIGH); } else { digitalWrite(ledClosed, LOW); } time2 = millis(); } } } //Ham kiem tra thoi gian khong co tac dong toi ban phim void checkTimer() { if ((key == NO_KEY && wait != true) || (wait == true && cKey != 0) || (wait == true && cID != 0)) { if ((millis() - time1) > 30000) { closeLock(); } } } //Ham phat am va led canh bao 66 18 75 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino void startAlerts() { if (cID > || cPass > || (cKey > && wait == true)) { Serial.println("Dang phat canh bao !"); digitalWrite(ledOpened, LOW); digitalWrite(ledClosed, HIGH); while ((isAuthorized(serial) == false && wait == true) || (isAuthorized(serial) == true && wait == false) || (isAuthorized(serial) == false && wait == false) || (logIn == false && wait == true)) { readRFID(); beep(255); break; } } } //Cac ham KHONG CO dieu kien //Ham phat am buzzer void beep(unsigned char delayms) { analogWrite(buzzer, 10); delay(delayms); analogWrite(buzzer, 0); delay(delayms); } //Ham canh bao dang nhap sai the hoac sai pass void warningLogin() { beep(50); beep(50); digitalWrite(ledClosed, HIGH); delay(100); digitalWrite(ledClosed, LOW); delay(100); digitalWrite(ledClosed, HIGH); delay(100); digitalWrite(ledClosed, LOW); delay(100); } 66 18 76 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino PHỤ LỤC C – Mã lập trình Arduino Web Server #include #include #include #define SD_CARD byte byte byte byte ip[4] gateway[4] subnet[4] mac[6] = = = = { { { { 192,168,0,20 }; 192,168,0,254 }; 255,255,255,0 }; 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; EthernetServer server(80); boolean LED_state[7] = {0}; char linebuf[80]; int charCount = 0; void setup() //Khai báo pinMode(2, pinMode(3, pinMode(5, pinMode(6, pinMode(7, pinMode(8, pinMode(9, { chân kết nối LED OUTPUT); OUTPUT); OUTPUT); OUTPUT); OUTPUT); OUTPUT); OUTPUT); Serial.begin(9600); pinMode(10, OUTPUT); digitalWrite(10, HIGH); Serial.println("Initializing SD card "); if (!SD.begin(SD_CARD)) { Serial.println("ERROR - SD card initialization failed!"); return; } Serial.println("SUCCESS - SD card initialized."); if (!SD.exists("index.htm")) { Serial.println("ERROR - Can't find index.htm file!"); return; } Serial.println("SUCCESS - Found index.htm file."); Ethernet.begin(mac, ip, gateway, subnet); server.begin(); Serial.print("server is at "); Serial.println(Ethernet.localIP()); } void loop() { EthernetClient client = server.available(); if (client) { boolean authenticated = false; boolean currentLineIsBlank = true; boolean logoff = false; boolean xml = false; 66 18 77 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino while (client.connected()) { if (client.available()) { char c = client.read(); linebuf[charCount] = c; if (charCount ) { logoff = true; } if (strstr(linebuf, "Authorization: Basic") > ) { if(strstr(linebuf, "YWRtaW46YWRtaW4=") != NULL) { authenticated = true; } } if (strstr(linebuf, "ajax_inputs") > ) { xml = true; SetLEDs(); } memset(linebuf, 0, sizeof(linebuf)); charCount = 0; } else if (c != '\r') { currentLineIsBlank = false; } } } delay(1); client.stop(); } } void html_logoff(EthernetClient &client){ client.print(F( "HTTP/1.1 401 Authorization Required\n" "Content-Type: text/html\n" "Connnection: close\n\n" "\n" "Logoff\n" "document.execCommand('ClearAuthenticationCache', 'false');" "try {" "var agt=navigator.userAgent.toLowerCase();" "if (agt.indexOf(\"msie\") != -1) {document.execCommand(\"ClearAuthenticationCache\"); }" "else {" 66 18 78 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino "var xmlhttp = createXMLObject();" "xmlhttp.open(\"GET\",\"URL\",true,\"logout\",\"logout\");" " xmlhttp.send(\"\");" " xmlhttp.abort();" " }" " } catch(e) {" " alert(\"erro ao fazer logoff\");" " }" "function createXMLObject() {" " try {if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();} else if (window.ActiveXObject) {xmlhttp=new ActiveXObject(\"Microsoft.XMLHTTP\");}} catch (e) {xmlhttp=false;}" " return xmlhttp;" "}" "401 AuthenticationYou had exit the application, reload the page and sign in to continue the program.\n")); } void html_authenticator(EthernetClient &client) { client.print(F("HTTP/1.1 401 Authorization Required\n" "WWW-Authenticate: Basic realm=\"Area Restrita\"\n" "Content-Type: text/html\n" "Connnection: close\n\n" "\n" "Error\n" "401 Unauthorized AccessEnter a valid username and password to be verified\n")); } void html_xml(EthernetClient &client) { client.println(F("HTTP/1.1 200 OK\n" "Content-Type: text/xml\n" "Connection: keep-alive\n")); XML_response(client); } void html_authenticated(EthernetClient &client){ client.println(F("HTTP/1.1 200 OK\n" "Content-Type: text/html\n" "Connection: keep-alive\n")); File webFile = SD.open("index.htm"); if (webFile) { while(webFile.available()) { client.write(webFile.read()); } webFile.close(); } } void SetLEDs() { // LED (pin 2) if (strstr(linebuf, "LED1=1")) { LED_state[0] = 1; digitalWrite(2, HIGH); } else if (strstr(linebuf, "LED1=0")) { LED_state[0] = 0; digitalWrite(2, LOW); } // LED (pin 3) 66 18 79 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino if (strstr(linebuf, "LED2=1")) { LED_state[1] = 1; digitalWrite(3, HIGH); } else if (strstr(linebuf, "LED2=0")) { LED_state[1] = 0; digitalWrite(3, LOW); } // LED (pin 5) if (strstr(linebuf, "LED3=1")) { LED_state[2] = 1; digitalWrite(5, HIGH); } else if (strstr(linebuf, "LED3=0")) { LED_state[2] = 0; digitalWrite(5, LOW); } // LED (pin 6) if (strstr(linebuf, "LED4=1")) { LED_state[3] = 1; digitalWrite(6, HIGH); } else if (strstr(linebuf, "LED4=0")) { LED_state[3] = 0; digitalWrite(6, LOW); } // LED (pin 7) if (strstr(linebuf, "LED5=1")) { LED_state[4] = 1; digitalWrite(7, HIGH); } else if (strstr(linebuf, "LED5=0")) { LED_state[4] = 0; digitalWrite(7, LOW); } // LED (pin 8) if (strstr(linebuf, "LED6=1")) { LED_state[5] = 1; digitalWrite(8, HIGH); } else if (strstr(linebuf, "LED6=0")) { LED_state[5] = 0; digitalWrite(8, LOW); } // LED (pin 9) if (strstr(linebuf, "LED7=1")) { LED_state[6] = 1; digitalWrite(9, HIGH); } else if (strstr(linebuf, "LED7=0")) { LED_state[6] = 0; digitalWrite(9, LOW); } } //Gởi file XML chứa thông tin trạng thái LED đầu vào analog void XML_response(EthernetClient &client) { int analog_val; //Lưu trữ giá trị đầu vào analog int count; //Sử dụng vòng lặp for client.print(F("")); client.print(F("")); 66 18 80 Thiết kế hệ thống điều khiển thiết bị điện nhà với Arduino //Đọc đầu vào analog for (count = 2; count

Ngày đăng: 21/03/2019, 21:40

TỪ KHÓA LIÊN QUAN

w