Thiết kế mô hình nhà thông minh

88 40 0
Thiết kế mô hình nhà thông minh

Đ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

Thiết kế mơ hình nhà thơng minh MỤC LỤC MỤC LỤC DANH SÁCH HÌNH ẢNH VÀ BẢNG Chương TỔNG QUAN MƠ HÌNH NHÀ THƠNG MINH 1.1 Định nghĩa nhà thông minh 1.2 Các thành phần hệ thống nhà thông minh .10 1.2.1 Hệ thống chiếu sáng thông minh 11 1.2.2 Hệ thống kiểm soát vào 13 1.2.3 Hệ thống quan sát .14 1.2.4 Hệ thống giải trí đa phương tiện .14 1.2.5 Hệ thống cảm biến, an ninh 15 1.3 Giải pháp tiết kiệm nhà thông minh 15 1.4 Phân loại chế thông minh 15 1.5 T iêu chuẩn nhà thông minh .16 1.6 Xu hướng tương lai nhà thông minh 17 Chương XÂY DỰNG Ý TƯỞNG MƠ HÌNH VÀ CÁC THIẾT BỊ NHÀ THÔNG MINH 19 Chương GIỚI THIỆU THIẾT BỊ TRONG MÔ HÌNH 21 Sinh viên thực Thiết kế mơ hình nhà thơng minh Sinh viên thực Thiết kế mơ hình nhà thơng minh 3.6.3 Thơng số kĩ thuật: .40 3.6.4 Sơ đồ chân chức chân: 41 3.7 Module SIM800L .42 3.7.1 Giới thiệu 42 3.7.2 Thông số kỹ thuật .42 3.7.3 Tập lệnh AT 43 3.7.4 Sơ đồ chân chức chân 44 3.8 Sơ đồ tổng quát thiết bị .44 3.9 Cấu trúc mạch in 45 Chương CÁC PHẦN MỀM VÀ CHUẨN GIAO TIẾP 46 4.1 Giới thiệu phần mềm Arduino IDE 46 4.1.1 Phần mềm Arduino IDE 46 4.1.2 Phần mềm Visual Studio Code: 49 4.2 Các chuẩn giao tiếp sử dụng hệ thống: 51 4.2.1 Chuẩn giao tiếp SPI: 52 4.2.2 Chuẩn giao tiếp UART-Serial: 53 4.2.3 Chuẩn giao tiếp I2C: 55 4.2.4 Chuẩn giao tiếp Wifi 56 4.3 Chương trình điều khiển 58 4.4 Lưu đồ thuật toán .58 Sinh viên thực Thiết kế mơ hình nhà thông minh 4.5 Nguyên lý hoạt động 59 Chương THỰC NGHIỆM VÀ KẾT LUẬN .61 5.1 Thi công thực nghiệm 61 5.2 Kết luận 66 PHỤ LỤC .67 Sinh viên thực DANH SÁCH HÌNH ẢNH VÀ BẢNG Danh sách hình ảnh Hình 1-1 Mơ hình nhà thơng minh Hình 1-2 Các thành phần hệ thống nhà thơng minh .11 Hình 1-3 Nhà thông minh xu hướng tương lai 18 Hình 2-1 Mơ hình tổng quát hệ thống nhà thông minh 19 Hình 3-1 Sơ đồ khối phần cứng hệ thống nhà thơng minh 21 Hình 3-2 Arduino nano 22 Hình 3-3 Sơ đồ chân Arduino nano 24 Hình 3-4 Ảnh minh họa 26 Hình 3-5 Module cảm biến vật cản 27 Hình 3-6 Sơ đồ nguyên lý cảm biến vật cản 28 Hình 3-7 Cảm biến MQ-2 29 Hình 3-8 Cảm biến khí gas MQ-2 30 Hình 3-9 Cảm biến DHT11 31 Hình 3-10 Module DHT11 31 Hình 3-11 Động servo S90 34 Hình 3-12 Cấu tạo relay 35 Hình 3-13 Module relay 5V kênh .35 Hình 3-14 Module Esp8266 v3 .36 Hình 3-15 Sơ đồ chân ESP8266 v3 37 Hình 3-16 Module đọc RFID loại thẻ Mifare 39 Hình 3-17 Cấu tạo thẻ Mifare 39 Hình 3-18 Module RFID .41 Hình 3-19 Module SIM800L 42 Hình 3-20 Sơ đồ chân SIM800L 44 Hình 3-21 Tổng quát hệ thống 44 Hình 3-22 Cấu trúc mặt board điều khiển .45 Hình 4-1 Giao diện lệnh để thao tác với chương trình File menu .47 Hình 4-2 Giao diện lệnh để thao tác với chương trình Sketch 48 Hình 4-3 Giao diện lệnh để thao tác với chương trình Tool menu 48 Hình 4-4 Giao diện lệnh để thao tác với chương trình Toolbar 49 Hình 4-5 Giao diện sildebar 50 Hình 4-6 Giao diện trình soạn thảo Visual Studio Code 50 Hình 4-7 Giao diện trang Debug .51 Hình 4-8 Các chuẩn giao tiếp 52 Hình 4-9 Kết nối chuẩn giao tiếp SPI 53 Hình 4-10 Mơ hình kết nối Master với nhiều Slave .53 Hình 4-11 Sơ đồ kết nối UART .54 Hình 4-12 Giản đồ truyền liệu UART 55 Hình 4-13 Sơ đồ kết nối chuẩn giao tiếp I2C 55 Hình 4-14 Một hệ thống Wifi 57 Hình 4-15 Sơ đồ khối hệ thống nhà thông minh .58 Hình 4-16 Lưu đồ thuật tốn hệ thống nhà thơng minh 59 Hình 5-1 Ảnh minh họa thiết kế mơ hình Corel 61 Hình 5-2 Ảnh minh họa thiết kế mơ hình Corel 61 Hình 5-3 Ảnh minh họa mơ hình 62 Hình 5-4 Ảnh minh họa mơ hình 62 Hình 5-5 Ảnh minh họa thi cơng tủ điện .63 Hình 5-6 Ảnh minh họa chương trình Arduino 63 Hình 5-7 Ảnh minh họa chương trình ESP8266 64 Hình 5-8 Ảnh minh họa chương trình WebServer với Nodejs .64 Hình 5-9 Ảnh minh họa chương trình giao diện Web 65 Hình 5-10 Ảnh minh họa giao diện Web .65 Hình 5-11 Ảnh minh họa mơ hình 65 Hình 5-12 Ảnh minh họa mơ hình 66 Danh sách bảng Bảng 4-1 Tập lệnh AT điều khiển gọi 43 Bảng 4-2 Tập lệnh AT điều khiển tin nhắn 43 Chương TỔNG QUAN MƠ HÌNH NHÀ THƠNG MINH 1.1 Định nghĩa nhà thơng minh Nhà thông minh (tiếng anh "Smart Home") hệ thống nhà thông minh nhà/căn hộ trang bị hệ thống tự động thông minh với bố trí hợp lý, hệ thống có khả tự điều phối hoạt động ngơi nhà theo thói quen sinh hoạt nhu cầu cá nhân gia chủ Chúng ta hiểu nhà thông minh hệ thống chỉnh thể mà đó, tất thiết bị điện tử gia dụng liên kết với thiết bị điều khiển trung tâm phối hợp với để thực chức Các thiết bị đưa cách xử lý tình lập trình trước, điều khiển giám sát từ xa nhằm mục đính cho sống ngày tiện nghi, an toàn góp phần sử dụng hợp lý nguồn tài nguyên Hình 1-1 Mơ hình nhà thơng minh Các thành phần hệ thống nhà thông minh bao gồm cảm biến (như cảm biến nhiệt độ, cảm biến ánh sáng cử chỉ), điều khiển máy chủ thiết bị chấp hành khác Nhờ hệ thống cảm biến, điều khiển máy chủ theo dõi trạng thái bên ngồi nhà để đưa định điều khiển thiết bị chấp hành cách phù hợp nhằm đảm bảo mơi trường sống tốt cho người Ngồi ra, với phát triển thiết bị điện tử cá nhân máy tính bảng điện thoại thông minh hạ tầng thông tin ngày tiên tiến internet mạng thông tin di động wifi, 3G, 4G, ngày hệ thống nhà thơng minh cịn cung cấp khả tương tác với người sử dụng thông qua giao diện cảm ứng smart phone cho phép người giám sát điều khiển nhà từ đâu Tùy theo nhu cầu, người sử dụng cấu hình hệ thống theo kịch lập trình hẹn tắt đèn ngủ, quên tắt tivi, kéo rèm cửa sô tới nơi làm việc, họ có điều khiển qua điện thoại smartphone để điều khiển từ xa Tùy theo mức độ sử dụng mà mức giá Nhà Thông Minh dao động từ vài triệu đến vài trăm triệu đồng cho nhà 1.2 Các thành phần hệ thống nhà thông minh Các thành phần hệ thống nhà thông minh bao gồm hệ thống cảm biến cảm biến nhiệt độ, cảm biến ánh sáng cử chỉ, điều khiển máy chủ thiết bị chấp hành khác Nhờ hệ thống cảm biến, điều khiển máy chủ theo dõi trạng thái bên nhà để đưa định điều khiển thiết bị chấp hành cách phù hợp nhằm đảm bảo mơi trường sống tốt cho người • • • • Old_State_Output1 = Old_State_Output1 + Output_Buffer; Send_Data("Response", Valuel, Value2); } _ else if (Value2.compareTo("OFF") == && State_Array[Value1.toInt()] == 1) { Output_Buffer = 128; • • • • • • State_Array[Value1.toInt()] = 0; Set_Output(String(Old_State_Output1 - Output_Buffer), String(Old_State_Output2)); Old_State_Output1 = Old_State_Output1 - Output_Buffer; Send_Data("Response", Value1, Value2); } else; • } • else if (Value1.compareTo("4") == 0) { • if (Value2.compareTo("ON") == && State_Array[Value1.toInt()] == 0) { Output_Buffer = 4; • • • • • • State_Array[Value1.toInt()] = 1; Set_Output(String(Old_State_Output1 + Output_Buffer), String(Old_State_Output2)); Old_State_Output1 = Old_State_Output1 + Output_Buffer; Send_Data("Response", Value1, Value2); } _ else if (Value2.compareTo("OFF") == && State_Array[Value1.toInt()] == 1) { Output_Buffer = 4; • • • • • • State_Array[Value1.toInt()] = 0; Set_Output(String(Old_State_Output1 - Output_Buffer), String(Old_State_Output2)); Old_State_Output1 = Old_State_Output1 - Output_Buffer; Send_Data("Response", Value1, Value2); } else; • } • else if (Value1.compareTo("5") == 0) { • if (Value2.compareTo("ON") == && State_Array[Value1.toInt()] == 0) { Output_Buffer = 8; • • • • • • State_Array[Value1.toInt()] = 1; Set_Output(String(Old_State_Output1 + Output_Buffer), String(Old_State_Output2)); Old_State_Output1 = Old_State_Output1 + Output_Buffer; Send_Data("Response", Value1, Value2); } _ else if (Value2.compareTo("OFF") == && State_Array[Value1.toInt()] == 1) { Output_Buffer = 8; • • • • • • • • State_Array[Value1.toInt()] = 0; Set_Output(String(Old_State_Output1 - Output_Buffer), String(Old_State_Output2)); Old_State_Output1 = Old_State_Output1 - Output_Buffer; Send_Data("Response", Value1, Value2); } else; } else if (Value1.compareTo("6") == 0) { • if (Value2.compareTo("ON") == && State_Array[Value1.toInt()] == 0) { Output_Buffer = 8; • • State_Array[Value1.toInt()] = 1; Set_Output(String(Old_State_Output1), String(Old_State_Output2 + Output_Buffer)); • • • • Old_State_Output2 = Old_State_Output2 + Output_Buffer; Send_Data("Response", Value1, Value2); } _ else if (Value2.compareTo("OFF") == && State_Array[Value1.toInt()] == 1) { Output_Buffer = 8; • • • • • • • • State_Array[Value1.toInt()] = 0; Set_Output(String(Old_State_Output1), String(Old_State_Output2 - Output_Buffer)); Old_State_Output2 = Old_State_Output2 - Output_Buffer; Send_Data("Response", Value1, Value2); } else; } else if (Value1.compareTo("7") == 0) { • if (Value2.compareTo("ON") == && State_Array[Value1.toInt()] == 0) { Output_Buffer = 64; • • • • • • State_Array[Value1.toInt()] = 1; Set_Output(String(Old_State_Output1), String(Old_State_Output2 + Output_Buffer)); Old_State_Output2 = Old_State_Output2 + Output_Buffer; Send_Data("Response", Value1, Value2); } _ else if (Value2.compareTo("OFF") == && State_Array[Value1.toInt()] == 1) { • • • • • • • • • Output_Buffer = 64; State_Array[Value1.toInt()] = 0; Set_Output(String(Old_State_Output1), String(Old_State_Output2 - Output_Buffer)); Old_State_Output2 = Old_State_Output2 - Output_Buffer; Send_Data("Response", Value1, Value2); } else; } else if (Value1.compareTo("8") == 0) { • if (Value2.compareTo("ON") == && State_Array[Value1.toInt()] == 0) { Output_Buffer = 32; • • • • • • State_Array[Value1.toInt()] = 1; • • • • • • State_Array[Value1.toInt()] = 0; Set_Output(String(Old_State_Output1), String(Old_State_Output2 + Output_Buffer)); Old_State_Output2 = Old_State_Output2 + Output_Buffer; Send_Data("Response", Value1, Value2); } _ else if (Value2.compareTo("OFF") == && State_Array[Value1.toInt()] == 1) { Output_Buffer = 32; • • Set_Output(String(Old_State_Output1), String(Old_State_Output2 - Output_Buffer)); Old_State_Output2 = Old_State_Output2 - Output_Buffer; Send_Data("Response", Value1, Value2); } else; } else if (Value1.compareTo("9") == 0) { • if (Value2.compareTo("ON") == && State_Array[Value1.toInt()] == 0) { Output_Buffer = 16; • • • • • • State_Array[Value1.toInt()] = 1; • • • • • • State_Array[Value1.toInt()] = 0; Set_Output(String(Old_State_Output1), String(Old_State_Output2 + Output_Buffer)); Old_State_Output2 = Old_State_Output2 + Output_Buffer; Send_Data("Response", Value1, Value2); } _ else if (Value2.compareTo("OFF") == && State_Array[Value1.toInt()] == 1) { Output_Buffer = 16; • • Set_Output(String(Old_State_Output1), String(Old_State_Output2 - Output_Buffer)); Old_State_Output2 = Old_State_Output2 - Output_Buffer; Send_Data("Response", Value1, Value2); } else; } else if (Value1.compareTo("10") == 0) { • if (Value2.compareTo("ON") == && State_Array[Value1.toInt()] == 0) { Output_Buffer = 128; • • • • • • State_Array[Value1.toInt()] = 1; Set_Output(String(Old_State_Output1), String(Old_State_Output2 + Output_Buffer)); Old_State_Output2 = Old_State_Output2 + Output_Buffer; Send_Data("Response", Value1, Value2); } _ else if (Value2.compareTo("OFF") == && State_Array[Value1.toInt()] == 1) { Output_Buffer = 128; • • • • • • • • Set_Output(String(Old_State_Output1), String(Old_State_Output2 - Output_Buffer)); Old_State_Output2 = Old_State_Output2 - Output_Buffer; Send_Data("Response", Value1, Value2); } else; } else if (Value1.compareTo("11") == 0) { • • • • • • • • • • • State_Array[Value1.toInt()] = 0; if (Value2.compareTo("ON") == && State_Array[Value1.toInt()] == 0) { State_Array[Value1.toInt()] = 1; BedRoom_Window_Servo.write(180); } else if (Value2.compareTo("OFF" ) == && State_Array[Value1.toInt()] == 1) { State_Array[Value1.toInt()] = 0; BedRoom_Window_Servo.write(75); } else; } else if (Value1.compareTo("12") == 0) { • • • if (Value2.compareTo("ON") == && State_Array[Value1.toInt()] == 0) { State_Array[Value1.toInt()] = 1; Living_Window_Servo.write(75); • • } • • • Living_Window_Servo.write(150); else if (Value2.compareTo("OFF") == && State_Array[Value1.toInt()] == 1) { State_Array[Value1.toInt()] = 0; • • } else if (Value1.compareTo("13") == && State_Array[Value1.toInt()] == 0) { • • • • • • • • • • • } else; if (Value2.compareTo("ON") == 0) { State_Array[Value1.toInt()] = 1; Gara_Door_Servo.write(90); } else if (Value2.compareTo("OFF") == && State_Array[Value1.toInt()] == 1) { State_Array[Value1.toInt()] = 0; Gara_Door_Servo.write(0); } else; } else if (Value1.compareTo("14") == && State_Array[Value1.toInt()] == 0) { • • • • • if (Value2.compareTo("ON") == 0) { • • • Kitchen_Window_Servo.write(90); State_Array[Value1.toInt()] = 1; Kitchen_Window_Servo.write(0); } _ _ else if (Value2.compareTo("OFF") == && State_Array[Value1.toInt()] == 1) { State_Array[Value1.toInt()] = 0; • • } else; } else if (Value1.compareTo("15") == && State_Array[Value1.toInt()] == 0) { • • • • • if (Value2.compareTo("ON") == 0) { • • • Living_Door_Servo.write(90); State_Array[Value1.toInt()] = 1; Living_Door_Servo.write(0); } else if (Value2.compareTo("OFF") == && State_Array[Value1.toInt()] == 1) { State_Array[Value1.toInt()] = 0; • • • • } else; • } • else if (Command.compareTo("IR") == 0) { int Output_Buffer = 0; if (State_Array[5] == 0) { • • • • • • } else; } Output_Buffer = 8; State_Array[5] = 1; Set_Output(String(Old_State_Output1 + Output_Buffer), String(Old_State_Output2)); Old_State_Output1 = Old_State_Output1 + Output_Buffer; Send_Data("Arduino", "5", "ON"); • else if (State_Array[5] == 1) { • • • • • • • • • • • • • State_Array[5] = 0; Set_Output(String(Old_State_Output1 - Output_Buffer), String(Old_State_Output2)); Old_State_Output1 = Old_State_Output1 - Output_Buffer; Send_Data("Arduino", "5", "OFF"); } else; • } • else if (Command.compareTo("Reset") == 0) { Set_Output("0", "0"); Reset_Servo(); memset(State_Array, 0, sizeof(State_Array)); Old_State_Output2 = 0; Old_State_Output1 = 0; • } • else if (Command.compareTo("RFID") == 0) { if (Value1.compareTo("53c98c19") == 0) { • • Output_Buffer = 8; } Send_Data("RFID", "", ""); • else { • } • } • • • else ; } void Upload() { • if ((unsigned long)(millis() - time) > 1000) { time = millis(); • • • float h = dht.readHumidity(); float t = dht.readTemperature(); Send_Data("Upload", String(h), String(t)); • • } • • • void Emergency() { } if (digitalRead(Gas) ! = Old_State) { if Old_State = 0; • • • (digitalRead(Gas) • • • • • BedRoom_Window_Servo.write(180); • • • • • • • Old_State = 1; Kitchen_Window_Servo.write(0); Living_W indow_S ervo.write(75); Set_Output("0", "248"); Send_Data("Emergenéy","", ""); } else { delay(10000); Set_Output("0", "0"); Reset_Servo(); memset(State_Array, 0, sizeof(State_Array)); Old_State_Output2 = 0; Old_State_Output1 = 0; } • • • } else ; • • • • • • • • • • • • void setup() { } Serial.begin(115200); pinMode(LATCH_595, OUTPUT); pinMode(SCK_595, OUTPUT); pinMode(SDA_595, OUTPUT); pinMode(SH_165, OUTPUT); pinMode(INH_165, OUTPUT); pinMode(SCK_165, OUTPUT); pinMode(SO_165, INPUT); pinMode(Gas, INPUT); Gara_Door_Servo.attach(Gara_Door); Living_Door_Servo.attach(Living_Door); == 0) { • • • • • • • • • • • Kitchen_W indow_S ervo.attach(Kitchen_W indow); • • • • • • void loop() { BedRoom_Window_Servo.attach(BedRoom_Window); Living_W indow_Servo attach(Living_W indow); delay(2000); Set_Output("0", "0"); Reset_Servo(); memset(State_Array, 0, sizeof(State_Array)); Send_Data("InitArduino", "", ""); delay(250); time = millis(); } //Upload(); Emergency(); if (Serial.available() > 0) { char Buffer_Data = Serial.read(); if (String(Buffer_Data).compareTo("{") == 0) { Serial_Data = ""; • • } Serial_Data = Serial_Data + Buffer_Data; • else if (String(Buffer_Data).compareTo("}") == 0) { Serial_Data = Serial_Data + Buffer_Data; • • • Execute_Data(Serial_Data); } else Serial_Data = Serial_Data + Buffer_Data; • • • } Input_Value1, Input_Value2 = Read_Button(); • Chương trình ESP • • • • • • • • • • #include • • • #define SS_PIN D8 • • • MFRC522 RFID(SS_PIN, RST_PIN); • • • extern "C" { • • • • • • • • SerialCommand sCmd; } #include #include #include #include #include #include #include #include #include #define RST_PIN D1 #define IR_Sensor D2 MFRC522: :MIFARE_Key key; // client.connect("esp8266mcu-smart.herokuapp.com"); #include "user_interface.h" } char host[] = "172.20.10.3"; int port = 3000; extern String RID; extern String Rfull; SocketIOClient client; unsigned long timer; int Old_State = 1; • String dump_byte_array(byte *buffer, byte bufferSize) { • • String ID_RFID = ""; • • } return ID_RFID; for (byte i = 0; i < bufferSize; i++) { ID_RFID = ID_RFID + String(buffer[i], HEX); • } • void Transfer_Data(String Command, String Value1, String Value2) { DynamicJsonDocument Data(256); • • • • • • • Data["Command"] = Command; • • void Read_Sensor() { Data["Value1"] = Value1; Data["Value2"] = Value2; serializeJson(Data, Serial); Serial.println(); } if (digitalRead(IR_Sensor) != Old_State) { if (digitalRead(IR_Sensor) == 0) { • • • • Old_State = 0; Transfer_Data("IR", "",""); } else Old_State = 1; • • • } else; } • • • • • • • • void Read_RFID() { if (RFID.PICC_IsNewCardPresent()) { if (RFID.PICC_ReadCardSerial()) { • • • • • • Transfer_Data("RFID", ID_RFID_Tag, ""); RFID.PICC_HaltA(); • • } • • • • void setup() { } SPI.begin(); RFID.PCD_Init(); for(byte i = 0; i < 6; i++){ key.keyByte[i] = 0xFF; • • • • • • • } Serial.begin(115200); WiFiManager wifiManager; wifiManager.autoConnect("ESP8266-SmartHome", " 12345678"); client.connect(host, port); if (!client.connect(host, port)) { return; } if (client.connected()) { client.send("Esp_Connection", "message", "Connected!!!!"); • • • } sCmd.addDefaultHandler(defaultCommand); • • • • • void loop() { } Read_Sensor(); Read_RFID(); sCmd.readSerial(); if (client.monitor()) { if (RID == "Server") { • • • • • • ID_RFID_Tag = dump_byte_array(RFID.uid.uidByte, RFID.uid.size); } • • • String ID_RFID_Tag = ""; StaticJsonDocument Data; deserializeJson(Data, Rfull); String V1 = Data["Address"]; String V2 = Data["State"]; Transfer_Data("Control", V1, V2); } • } • if (!client.connected()) { client.connect(host, port); • • • } unsigned long a = millis() - timer; if (a > 30000) • • • • { timer = millis(); client.connect(host, port); client.send("Esp_Connection", "message", "Connected!!!!"); • • } • • • • • void defaultCommand(String command) { • • var express = require('express'); • app.set('view engine', 'ejs'); } char *json = sCmd.next(); client.send(command, (String) json); } Chương trình WebServer var app = express(); • • app.set('views', './views'); • app.use(express.static('public')); var Save_Data = {State0 : "OFF", Statel : "OFF", State2 : "OFF", State3 : "OFF", State4 : "OFF", State5 : "OFF", State6 : "OFF", State7 : "OFF", State8 : "OFF", State9 : "OFF", • • State10 : "OFF", State11 : "OFF", State12 : "OFF", State13 : "OFF", State14 : "OFF", State15 : "OFF"} • var State = [Save_Data.State0, Save_Data.State1, Save_Data.State2, Save_Data.State3, Save_Data.State4, Save_Data.State 5, • • • Save_Data.State6, Save_Data.State7, Save_Data.State8, Save_Data.State9, Save_Data.State10, Save_Data.State11, Save_Data.State12, Save_Data.State13, Save_Data.State 14, Save_Data.State 15] • • • • var server = require("http").Server(app); var io = require("socket.io")(server); var esp; server.listen(process.env.PORT||3000, function () { console.log("Start Server"); • • • • }); • io.on("connection", function (socket) { socket.emit("Initilize", State); console.log("Đã có người kết nối Server"); socket.on("disconnect", function () { • if(socket.id == esp){ • socket.broadcast.emit("Esp_Disconnection", esp); • console.log("ESP8266 ngắt kết nối"); • • • } }); socket.on("Send_Data", íunction (data) { • • io.sockets.emit("Server", data); console.log(data); • }); • socket.on("Response", function (data) { • • • State [parseInt(data V alue 1)]=data.V alue2; socket.broadcast.emit("Response", data); console.log(data); • }); • socket.on("Arduino", function (data) { socket.broadcast.emit("Arduino", (data)); if(data.State == "OFF") • { • State[parseInt(data.Address)]="OFF"; • • } else{ • State[parseInt(data.Address)]="ON"; • • } console.log(data); • }); • socket.on("Esp_Connection", íunction (data) { socket.broadcast.emit("Esp_Temp", (data)); esp = socket.id; • • • • console.log("ESP8266 kết nối"); }); • socket.on("Emergency", íunction (data) { socket.broadcast.emit("Emergency", (data)); • socket.on("Safe", function (data) { socket.broadcast.emit("Safe", (data)); • socket.on("Upload", function (data) { socket.broadcast.emit("Upload", (data)); • }); • socket.on("RFID", function (data) { console.log("RFID") socket.broadcast.emit("RFID", (data)); }); }); • }); • socket.on("InitArduino", íunction (data) { socket.broadcast.emit("InitArduino", (data)); for(var i = 0; i < 15 ; i ++){ • State[i] == "OFF" • • • • } }); }); app.get('/', function (req, res) { res.render('home'); • }); ... Hình 5-1 Ảnh minh họa thiết kế mơ hình Corel 61 Hình 5-2 Ảnh minh họa thiết kế mơ hình Corel 61 Hình 5-3 Ảnh minh họa mơ hình 62 Hình 5-4 Ảnh minh họa mơ hình 62 Hình. .. SÁCH HÌNH ẢNH VÀ BẢNG Danh sách hình ảnh Hình 1-1 Mơ hình nhà thơng minh Hình 1-2 Các thành phần hệ thống nhà thơng minh .11 Hình 1-3 Nhà thông minh xu hướng tương lai 18 Hình. .. Chương TỔNG QUAN MƠ HÌNH NHÀ THƠNG MINH 1.1 Định nghĩa nhà thơng minh Nhà thông minh (tiếng anh "Smart Home") hệ thống nhà thông minh nhà/ căn hộ trang bị hệ thống tự động thông minh với bố trí hợp

Ngày đăng: 22/03/2022, 23:15

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan