Microsoft Word DATN Nhà Thông Minh 2021 BUI DUC BINH FINE BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN QUA APP BLYNK CHO NGÔI NHÀ THÔNG MINH SỬ DỤNG HỆ VI ĐIỀU KHIỂN ARDUINO MEGA 2560 R3 Ngành Kỹ Thuật Điện Tử Truyền Thông Giảng viên hướng dẫn Th S Bùi Hữu Hiên Sinh viên thực hiện Bùi Đức Bình Mssv 1411010147 Lớp 14DDT01 TP Hồ Chí Minh, ngày 01 tháng 12 năm 2021 5 MỤC LỤC LỜI CAM ĐOAN 3 LỜI CẢM ƠN 4 MỤC LỤC 5 DANH SÁCH CÁC HÌNH 7 Ch.
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN QUA APP BLYNK CHO NGÔI NHÀ THÔNG MINH SỬ DỤNG HỆ VI ĐIỀU KHIỂN ARDUINO MEGA 2560 R3 Ngành: Kỹ Thuật Điện Tử Truyền Thông Giảng viên hướng dẫn: Th.S Bùi Hữu Hiên Sinh viên thực hiện: Bùi Đức Bình Mssv: 1411010147 Lớp: 14DDT01 TP Hồ Chí Minh, ngày 01 tháng 12 năm 2021 MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH SÁCH CÁC HÌNH Chương 1: MỞ ĐẦU 1.1 Đặt vấn đề 1.2 Mục đích đề tài 1.3 Nội dung đề tài 10 1.4 Ý nghĩa đề tài 10 Chương 2: 11 TỔNG QUAN 11 2.1 Giới thiệu sơ lược IoT 11 2.1.1 Đặc tính 12 2.1.2 Ứng dụng 12 2.1.3 Lịch sử hình thành phát triển Bluetooth 13 2.1.4 Khởi nguồn Bluetooth 14 2.1.5 Tiêu chuẩn ban đầu 15 2.1.6 Sửa đổi nâng cấp 16 2.2 Lịch sử hình thành phát triển WiFi 17 2.3 Giới thiệu phần mềm sử dụng 20 2.3.1 Phần mềm Arduino IDE 20 2.3.2 Phần mềm Blynk 20 Chương 3: 25 NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG 25 3.1 Hệ thống mơ hình 25 3.1.1 Khối xử lý trung tâm 25 3.1.2 Khối xử lý Wifi 27 3.2 Khối cảm biến 29 3.2.1 Cảm biến khí gas 29 3.2.2 Cảm biến nhiệt độ, độ ẩm (DHT11) 30 3.3 Module đọc thẻ từ RC522 31 3.3.1 Thẻ RFID 32 3.4 Module điều khiển động L298N 33 3.5 Khối động 34 3.6 Khối relay 35 Chương 4: 36 SƠ ĐỒ KHỐI HỆ THỐNG VÀ LƯU ĐỒ THUẬT TOÁN 36 4.1 Sơ đồ khối hệ thống 36 4.2 Sơ đồ khối hệ thống khí gas 37 4.2.1 Lưu đồ thuật tốn hệ thống khí gas 38 4.3 Sơ đồ khối hệ thống cửa RFID 38 4.3.1 Lưu đồ thuật toán hệ thống cửa RFID 39 4.4 Sơ đồ khối hệ thống đo nhiệt độ, độ ẩm 40 Chương 5: 41 THI CÔNG 41 5.1 Giới thiệu 41 5.2 Thi công hệ thống 41 5.2.1 Thi công mạch xử lý thu phát wifi 42 5.2.2 Danh sách linh kiện 43 5.3 Lắp ráp kiểm tra 44 5.3.1 Lắp ráp mạch điều khiển 44 5.3.2 Lắp ráp mơ hình 44 5.4 Viết tài liệu hướng dẫn sử dụng, thao tác Điều khiển giám sát App Blynk 45 Chương 6: 46 ĐÁNH GIÁ KẾT QUẢ, KẾT LUẬN 46 6.1 Kết đạt 46 6.2 Đánh giá kết thực tế 46 6.3 Nhận xét 47 6.3.1 Ưu điểm 47 6.3.2 Nhược điểm 47 6.4 Định hướng phát triển 48 TÀI LIỆU THAM KHẢO 49 I Tài liệu từ sách 49 II Tài liệu từ nguồn từ Internet 49 PHỤ LỤC 49 Code lập trình Arduino 49 Code lập trình Node MCU ESP8266 58 DANH SÁCH CÁC HÌNH Hình 2.1 Biểu tượng Internet of Thing Hình 2.2 Biểu tượng Bluetooth Hình 2.3 Điện thoại có Bluetooth Hình 2.4 Các phiên Bluetooth Hình 2.5 Những năm đầu phát triển Wifi Hình 2.6 Các chuẩn mạng Wifi Hình 2.7 Sự kết nối Wifi thiết bị Hình 2.8 Phần mềm Arduino IDE Hình 2.9 Biểu tượng phần mềm Blynk Hình 2.10 Cấu trúc phần mềm Blynk Hình 2.11 Giao diện Log in tạo Project Blynk Hình 2.12 Giao diện tạo thành phần Project Blynk Hình 2.13 Giao diện cấu hình thành phần Project Blynk Hình 3.1 Mơ hình nhà thơng minh Hình 3.2 Board Arduino Mega 2560 R3 Hình 3.3 Board NodeMCU (ESP8266) Hình 3.4 Cảm biến khí gas MQ2 Hình 3.5 Cảm biến nhiệt độ, độ ẩm (DHT11) Hình 3.6 Module đọc thẻ từ RC522 Hình 3.7 Thẻ RFID Hình 3.8 Module điều khiển ĐC (L298N) Hình 3.9 Động giảm tốc Hình 3.10 Module relay kênh (5VDC) Hình 4.1 Sơ đồ khối hệ thống Hình 4.2 Sơ đồ khối hệ thống khí gas Hình 4.3 Lưu đồ thuật tốn hệ thống gas Hình 4.4 Sơ đồ khối hệ thống cửa RFID Hình 4.5 Lưu đồ thuật tốn hệ thống cửa RFID Hình 4.6 Sơ đồ khối hệ thống đo nhiệt độ, độ ẩm Hình 5.1 Sơ đồ nguyên lý mạch xử lý trung tâm thu phát Wifi Hình 5.2 Sơ đồ mạch PCB Layout Hình 5.3 Sơ đồ bố trí linh kiện 3D Hình 5.4 Mạch thực tế sau lắp ráp Hình 5.5 Thi cơng ráp mơ hình Hình 5.6 Mơ hình lắp hồn thiện Hình 5.7 Màn hình giao diện Blynk Hình 6.1 Mơ hình hoạt động thực tế Chương 1: MỞ ĐẦU 1.1 Đặt vấn đề Trong năm gần trường đại học, viện nghiên cứu phát triển công nghệ sâu vào nghiên cứu ứng dụng điều khiển thiết bị từ xa hay vạn vật kết nối với việc kết nối thực qua Wifi, mạng viễn thơng (3G,4G) Bluetooth, hồng ngoại thời đại công nghệ 4.0 việc tự động hóa điều khiển giám sát thiết bị trở nên cần thiết, việc ứng dụng công nghiệp sản xuất chế tạo ứng dụng gia đình đời sống ngày, ngơi nhà thơng minh khơng cịn mơ ước người mà trở thành thực hóa, qua báo chí, phương tiện truyền thơng hay Internet thấy mơ hình ngơi nhà thơng minh đời Là sinh viên ngành Kỹ thuật Điện tử truyền thông trường Đại học Công Nghệ TP.HCM với kiến thức học với mong muốn thiết kế ngơi nhà tự động hóa đáp ứng nhu cầu sinh hoạt ngày nên chọn đề tài “Thiết kế hệ thống điều khiển qua app Blynk cho nhà thông minh sử dụng hệ vi điều khiển Arduino Mega 2560 R3” để làm đề tài tốt nghiệp cho 1.2 Mục đích đề tài Đề tài “Thiết kế hệ thống điều khiển qua app Blynk cho nhà thông minh sử dụng hệ vi điều khiển Arduino Mega 2560 R3” thực với mục đích chính: + Tổng hợp kiến thức học, lý thuyết vi xử lý, mở rộng xây dựng giải thuật để độc lập làm chủ cơng nghệ việc thiết kế hệ thống điều khiển thiết bị gia đình cách tự động ổn định + Với việc phát triển mạnh mẽ IoT, kết nối điều khiển thiết bị với từ phát triển điều khiển thiết bị điện gia đình + Bên cạnh đề tài cịn kết hợp hệ thống bảo vệ cho gia đình hệ thống cảnh báo khí gas ngăn chặn nguy cháy nổ, hệ thống giám sát nhiệt độ, độ ẩm gia đình, hệ thống cửa tự động RFID 1.3 Nội dung đề tài - Tìm hiểu vi xử lý Atmega 2560 NodeMCU ESP8266 - Tìm hiểu cảm biến, cách xử lý tín hiệu - Tìm hiểu cách truyền nhận liệu khơng dây (Bluetooth, Wifi) - Thiết kế viết chương trình cho phần mềm điều khiển điện thoại 1.4 Ý nghĩa đề tài Là tảng để ứng dụng việc tự động hóa vào ngơi nhà chúng ta, điều khiển giám sát trạng thái thiết bị gia đình, góp phần phục vụ người thời đại công nghệ 4.0 10 Chương 2: TỔNG QUAN 2.1 Giới thiệu sơ lược IoT Thuật ngữ “Internet of things” (viết tắt IoT) thời gian gần xuất nhiều thu hút khơng quan tâm ý giới công nghệ Vì bùng nổ IoT tương lai có tác động mãnh mẽ tới sống, cơng việc xã hội loài người Internet of Things mạng lưới vật thể gắn cảm biến hệ thống điện tử đặc biệt cho phép chúng kết nối với để thu thập trao đổi liệu Các vật thể mạng lưới kết nối với mạng Internet cho mục đích điều khiển từ xa Hình 2.1 Biểu tượng Internet of Thing Mạng lưới vạn vật kết nối Internet mạng lưới thiết bị kết nối Internet viết tắt IoT kịch giới, mà đồ vật, người cung cấp định danh riêng 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 Nói đơn giản tập hợp thiết bị có khả kết nối với nhau, với Internet với giới bên để thực 11 cơng việc Hay hiểu cách đơn giản IOT tất thiết bị kết nối với Việc kết nối thực qua WiFi, mạng viễn thông băng rộng (3G, 4G), Bluetooth, ZigBee, hồng ngoại… Các thiết bị điện thoại thông minh, máy pha cafe, máy giặt, tai nghe, bóng đèn nhiều thiết bị khác 2.1.1 Đặc tính Sự nhận diện: Nghĩa “Things” phải có ID riêng biệt, kết nối thiết lập dựa định danh (ID) vật nói riêng Tính kết nối liên thơng: với IoT, điều kết nối với thông qua mạng lưới thông tin sở hạ tầng liên lạc tổng thể Tính điều khiển: Mọi “Things” liên kết IoT điều khiển được, đầu thời điểm Thay đổi linh hoạt: Trạng thái thiết cập nhật cách liên tục cách tự động Khả cộng tác: Hệ thống IoT khả tương tác qua lại network Things Bảo mật: Vì kết nối với nhau, việc bảo mật quan tâm đến, tránh thông tin bị lộ, liệu bị thay đổi làm giả Tính tiện lợi: Các Things phải plug-and-play cách dễ dàng tiện dụng 2.1.2 Ứng dụng IoT mang đến khả ứng dụng rộng lớn, mở rộng hệ thống quản lý cách nhanh chóng Các chuyên gia cho với phổ biến điện thoại thơng minh việc ứng dụng IoT giúp sống dễ dàng, tiện nghi Điều thể rõ qua thiết bị nhà bếp, mà bật tủ lạnh Trước kia, chẳng biết tủ lạnh cịn chưa mở cửa Nhưng cần liếc qua hình smartphone biết sản phẩm nào, đặt đâu nhờ tích hợp camera bên kết nối đến ứng dụng di động Lĩnh vực y tế: IoT vấn đề sức khỏe chủ đề quan tâm hàng đầu, thiết bị theo dõi sức khỏe kết nối để người thân theo 12 dõi dù có nơi đâu Những ứng dụng phổ biến theo dõi thể trạng, nhịp tim, hay giấc ngủ bạn đưa lời khuyên hợp lý Ví dụ ứng dụng “Sleep Better” Runtastic giúp theo dõi giấc ngủ bạn báo thức vào thời điểm thích hợp để bạn thức dậy tỉnh táo Nhà thông minh: Là hệ thống IoT người tìm kiếm nhiều nay, đem đến khả kiểm soát giám sát nơi cách trực quan, tránh rủi ro không cần thiết kẻ trộm đột nhập, quên tắt thiết bị công tác xa qua việc liên kết “Things” mạng lưới điều khiển qua smartphone Quản lý mơi trường: Nếu nói ứng dụng giúp tiết kiệm nước khuyến khích người dân thị trồng khơng thể khơng nhắc đến Hachi, hệ thống tưới hẹn “hot” nhóm bạn trẻ Hà Nội phát minh Bạn chơi thấy trời mưa? Khỏi lo, bạn dễ dàng tắt hệ thống tưới qua ứng dụng smartphone đâu Mà khỏi lo việc bị úng nước nhé, tưới với liều lượng thích hợp Vừa tiết kiệm nước, vừa có đẹp nhà Ngồi ra, tác động IoT đa dạng phát triển cách nhanh chóng, lĩnh vực khác như: Mua sắm thông minh, đồng hồ thông minh, vận tải thông minh hay thông minh việc quản lý điện lưới Trong giới mở, IoT mang tính chất phức tạp bao gồm lượng lớn đường liên kết thiết bị, máy móc, dịch vụ với đợi người khám phá 2.1.3 Lịch sử hình thành phát triển Bluetooth Ngày Bluethooth công nghệ thiếu đại đa số người dùng điện thoại di động, phục vụ nhiều nhu cầu từ tai nghe đến loa khơng dây, thiết bị chơi game cầm tay, bàn phím chia tập tin ứng dụng IOT điều khiển thiết bị Các tính Bluetooth ngày hữu ích đa dạng, kết trình hình thành, phát triển sau 20 năm kể từ mắt 13 #include // ##NodeMcu## SDA(SS) 10 // RST // SCK 13 // MISO 12 // MOSI 11 #define gas 10 #define coi #define quat_khach 29 #define den_khach 27 #define den_ngu 25 #define den_tam 23 #define den_bep 33 #define den_vuon 31 #define k_denKhach #define k_quatKhach #define k_denNgu 36 #define k_denTam 34 #define k_denBep 32 #define enB 11 #define in4 12 #define in3 13 #define SS_PIN 53 #define RST_PIN 49 MFRC522 rfid(SS_PIN, RST_PIN); MFRC522::MIFARE_Key key; int stateDenKhach = HIGH; int stateQuat = HIGH; int stateDenNgu = HIGH; int stateDenTam = HIGH; int stateDenBep = HIGH; int stateDenVuon = HIGH; int dem = 0; 50 int c_esp; void setup() { Serial.begin(9600); Serial2.begin(9600); SPI.begin(); rfid.PCD_Init(); pinMode(k_denKhach, INPUT_PULLUP); pinMode(k_quatKhach, INPUT_PULLUP); pinMode(k_denNgu, INPUT_PULLUP); pinMode(k_denTam, INPUT_PULLUP); pinMode(k_denBep, INPUT_PULLUP); pinMode(coi, OUTPUT); pinMode(den_khach, OUTPUT); pinMode(quat_khach, OUTPUT); pinMode(den_ngu, OUTPUT); pinMode(den_bep, OUTPUT); pinMode(den_tam, OUTPUT); pinMode(den_vuon, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); pinMode(enB, OUTPUT); analogWrite(enB, 120); digitalWrite(coi, HIGH); digitalWrite(den_khach, 1); digitalWrite(quat_khach, 1); digitalWrite(den_ngu, 1); digitalWrite(den_bep, 1); digitalWrite(den_tam, 1); digitalWrite(den_vuon, 1); digitalWrite(in3, 1); digitalWrite(in4, 0); delay(800); digitalWrite(in3, 0); digitalWrite(in4, 0); 51 } void loop() { rfiddoor(); uart_data(); NutNhan(); } void rfiddoor() { if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return; MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI && piccType != MFRC522::PICC_TYPE_MIFARE_1K && piccType != MFRC522::PICC_TYPE_MIFARE_4K) { Serial.println(F("Your tag is not of type MIFARE Classic.")); return; } String strID = ""; for (byte i = 0; i < 4; i++) { strID += (rfid.uid.uidByte[i] < 0x10 ? "0" : "") + String(rfid.uid.uidByte[i], HEX) + (i != ? ":" : ""); } strID.toUpperCase(); Serial.print("Tap card key: "); Serial.println(strID); rfid.PICC_HaltA(); rfid.PCD_StopCrypto1(); if (strID == "09:95:A5:6E" || strID == "09:DF:E7:6E") { dem = dem + 1; moCua(); 52 delay(3000); dongCua(); } if (dem == 1) { //moCong(); } if (dem == 2) { //dongCong(); dem = 0; } rfid.PICC_HaltA(); rfid.PCD_StopCrypto1(); } void moCua() { digitalWrite(in3, 0); digitalWrite(in4, 1); delay(800); digitalWrite(in3, 0); digitalWrite(in4, 0); } void dongCua() { digitalWrite(in3, 1); digitalWrite(in4, 0); delay(800); digitalWrite(in3, 0); digitalWrite(in4, 0); } /*====Chuong trình điều khiển phím bấm======*/ void NutNhan() { if (digitalRead(k_quatKhach)) { 53 while (digitalRead(k_quatKhach)); stateQuat = !stateQuat; digitalWrite(quat_khach, stateQuat); if (stateQuat == 0) { Serial2.write(1); } if (stateQuat == 1) { Serial2.write(2); } } if (digitalRead(k_denKhach)) { while (digitalRead(k_denKhach)); stateDenKhach = !stateDenKhach; digitalWrite(den_khach, stateDenKhach); if (stateDenKhach == 0) { Serial2.write(3); } if (stateDenKhach == 1) { Serial2.write(4); } } if (digitalRead(k_denNgu)) { while (digitalRead(k_denNgu)); stateDenNgu = !stateDenNgu; digitalWrite(den_ngu, stateDenNgu); if (stateDenNgu == 0) { Serial2.write(5); } if (stateDenNgu == 1) { Serial2.write(6); } } if (digitalRead(k_denTam)) { while (digitalRead(k_denTam)); stateDenTam = !stateDenTam; 54 digitalWrite(den_tam, stateDenTam); if (stateDenTam == 0) { Serial2.write(7); } if (stateDenTam == 1) { Serial2.write(8); } } if (digitalRead(k_denBep)) { while (digitalRead(k_denBep)); stateDenBep = !stateDenBep; digitalWrite(den_bep, stateDenBep); if (stateDenBep == 0) { Serial2.write(9); } if (stateDenBep == 1) { Serial2.write(10); } } if (!digitalRead(gas)) { digitalWrite(coi, 0); Serial2.write(11); } else { digitalWrite(coi, 1); } } /*======UART Dieu Khien Thiết Bị======*/ void uart_data() { if (Serial2.available() > 0) { c_esp = Serial2.read(); //Serial.println(c_esp); if (c_esp == 1) 55 { digitalWrite(quat_khach, LOW); } else if (c_esp == 2) { digitalWrite(quat_khach, HIGH); } if (c_esp == 3) { digitalWrite(den_khach, LOW); } else if (c_esp == 4) { digitalWrite(den_khach, HIGH); } if (c_esp == 5) { digitalWrite(den_ngu, LOW); } else if (c_esp == 6) { digitalWrite(den_ngu, HIGH); } if (c_esp == 7) { digitalWrite(den_tam, LOW); } else if (c_esp == 8) { digitalWrite(den_tam, HIGH); } if (c_esp == 9) { digitalWrite(den_bep, LOW); 56 } else if (c_esp == 10) { digitalWrite(den_bep, HIGH); } if (c_esp == 11) { digitalWrite(den_vuon, LOW); } else if (c_esp == 12) { digitalWrite(den_vuon, HIGH); } if (c_esp == 13) { //Về nhà VeNha(); } if (c_esp == 14) { //Ra RaNgoai(); } } } void VeNha() { digitalWrite(den_khach, LOW); digitalWrite(quat_khach, LOW); //Serial2.write(1); //Serial2.write(2); //Serial2.write(3); //Serial2.write(4); } 57 void RaNgoai() { digitalWrite(coi, HIGH); digitalWrite(den_khach, 1); digitalWrite(quat_khach, 1); digitalWrite(den_ngu, 1); digitalWrite(den_bep, 1); digitalWrite(den_tam, 1); digitalWrite(den_vuon, 1); digitalWrite(in3, 1); digitalWrite(in4, 0); delay(800); digitalWrite(in3, 0); digitalWrite(in4, 0); Serial2.write(1); Serial2.write(2); Serial2.write(3); Serial2.write(4); Serial2.write(5); Serial2.write(6); Serial2.write(7); Serial2.write(8); Serial2.write(9); Serial2.write(10); stateDenKhach = HIGH; stateQuat = HIGH; stateDenNgu = HIGH; stateDenTam = HIGH; stateDenBep = HIGH; } Code lập trình Node MCU ESP8266 #include SoftwareSerial s(D6, D5); #include #include LiquidCrystal_I2C lcd(0x27, 16, 2); 58 #define BLYNK_PRINT Serial #include #include #include char auth[] = "qMCQcmrQ0ANgWPwbisWzB3ysX31F-5H7"; char ssid[] = "smarthome"; //Ten wifi char pass[] = "123456789"; //Pass wifi //DHT config #define DHTPIN D3 // what digital pin we're connected to #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 //#define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht(DHTPIN, DHTTYPE); WidgetLCD lcd_blynk(V8); BlynkTimer timer; int valGas; int c; byte degree[8] = { 0B01110, 0B01010, 0B01110, 0B00000, 0B00000, 0B00000, 0B00000, 0B00000 }; void setup() { Serial.begin(9600); s.begin(9600); dht.begin(); lcd.init(); lcd.createChar(1, degree); Blynk.begin(auth, ssid, pass); // Ket noi voi blynk timer.setInterval(1000L, sendSensor); //1s doc cam bien lan lcd.backlight(); lcd_blynk.print(0, 0, " DKTB Trong Nha "); 59 //Token lcd_blynk.print(0, 1, "Khoi tao "); delay(3000); lcd.clear(); lcd_blynk.clear(); Blynk.notify("Cài đặt xong!"); } void loop() { Blynk.run(); // Chay Blynk timer.run(); // Chay SimpleTimer uart_data(); } /*================================================================*/ void sendSensor() { float temp = dht.readTemperature(); float humi = dht.readHumidity(); lcd.setCursor(0, 0); lcd.print("Nhiet do: "); lcd.print(temp, 0); lcd.write(1); lcd.print("C"); lcd.setCursor(0, 1); lcd.print("Do am: "); lcd.print(humi, 0); lcd.print("%"); lcd_blynk.print(0, 0, "Nhiet do: "); lcd_blynk.print(10, 0, (int)temp); lcd_blynk.print(0, 1, "Do am: "); lcd_blynk.print(10, 1, (int)humi); if(temp > 40){ Blynk.notify("Nhiệt độ cao!"); } } /*====================================================*/ BLYNK_WRITE(V0) 60 { int x = param.asInt(); // Get value as integer if (x == 1) { s.write(1); } else { s.write(2); } } /*====================================================*/ BLYNK_WRITE(V1) { int x = param.asInt(); // Get value as integer if (x == 1) { s.write(3); } else { s.write(4); } } /*====================================================*/ BLYNK_WRITE(V2) { int x = param.asInt(); // Get value as integer if (x == 1) { s.write(5); } else { s.write(6); } } /*====================================================*/ BLYNK_WRITE(V3) { int x = param.asInt(); // Get value as integer if (x == 1) { s.write(7); } 61 else { s.write(8); } } /*====================================================*/ BLYNK_WRITE(V4) { int x = param.asInt(); // Get value as integer if (x == 1) { s.write(9); } else { s.write(10); } } /*====================================================*/ BLYNK_WRITE(V5) { int x = param.asInt(); // Get value as integer if (x == 1) { s.write(11); } else { s.write(12); } } /*===============Về nhà==============================*/ BLYNK_WRITE(V6) { int x = param.asInt(); // Get value as integer if (x == 1) { s.write(13); } } /*=================Ra ngoài===============================*/ BLYNK_WRITE(V7) { 62 int x = param.asInt(); // Get value as integer if (x == 1) { s.write(14); } } //======================================================== BLYNK_CONNECTED() { // Request the latest state from the server Blynk.syncVirtual(V0); Blynk.syncVirtual(V1); Blynk.syncVirtual(V2); Blynk.syncVirtual(V3); Blynk.syncVirtual(V4); } void uart_data() { if (s.available() > 0) { c = s.read(); //Serial.println(c); if (c == 1) { Blynk.virtualWrite(V0, 1); } else if (c == 2) { Blynk.virtualWrite(V0, 0); } if (c == 3) { Blynk.virtualWrite(V1, 1); } else if (c == 4) { Blynk.virtualWrite(V1, 0); } 63 if (c == 5) { Blynk.virtualWrite(V2, 1); } else if (c == 6) { Blynk.virtualWrite(V2, 0); } if (c == 7) { Blynk.virtualWrite(V3, 1); } else if (c == 8) { Blynk.virtualWrite(V3, 0); } if (c == 9) { Blynk.virtualWrite(V4, 1); } else if (c == 10) { Blynk.virtualWrite(V4, 0); } if (c == 11) { Blynk.notify("Rò gas !"); } } } 64 ... hệ thống điều khiển qua app Blynk cho nhà thông minh sử dụng hệ vi điều khiển Arduino Mega 2560 R3” để làm đề tài tốt nghiệp cho 1.2 Mục đích đề tài Đề tài ? ?Thiết kế hệ thống điều khiển qua app. .. nghiệp với đề tài ? ?Thiết kế hệ thống điều khiển qua app Blynk cho nhà thông minh sử dụng hệ vi điều khiển Arduino Mega 2560 R3” đạt kết sau: Qua q trình thực đề tài, đề tài có khả ứng dụng thực tiễn... vi điều khiển cách trực tiếp, Blynk thiết kế thêm Virtual pin (chân I/O ảo) Virtual pin sử dụng gởi liệu từ vi điều khiển đến Blynk app ngược lại, điều mang lại lợi ích tất thứ kết nối với vi điều