NHẬT KÝ 1.1 Tuần 1 Họp ngày 6/12/2020 Phân công công việc - Phân công công việc Thành viên Công việc Hữu Thiết kế mô hình ngôi nhà Nhật Tìm hiểu mô hình nhận dạng khuôn mặt Thuận Tìm hi
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
BÁO CÁO Kiến trúc và giao thức truyền thông trong IoT
Project Cuối Kỳ: Smart HomeStay
Giảng viên hướng dẫn: PGS.TS Nguyễn Quốc Cường
Sinh viên thực hiện:
Trang 2MỤC LỤC
Trang 3Cửa tự động 10
Truyền thông không dây và kết nối Internet[6] 17
Trang 4Danh Mục Hình Ảnh
Hình 2.1.1 Mô hình smart home _ 8Hình 4.1.1 Mặt trước homestay 11Hình 4.1.2 Ngôi nhà nhìn từ trên xuống (a) Phòng ngủ (b) Phòng khách (c) Sân _ 12Hình 4.3.1.1 Sơ đồ tín hiệu 13Hình 4.3.4.1 Chế độ 1-Wire _ 15Hình 4.3.4.2 Giao thức 1-wire _ 15Hình 4.3.5.1 Giao thức UART _ 16Hình 4.3.5.2 Truyền dữ liệu bằng phương thức UART 16Hình 4.3.6.1 App Blynk 17Hình 5.1.1.1 Vi điều khiển ESP8266 19Hình 5.1.2.1 Cảm biến nhiệt độ, độ ẩm DHT11 _ 20Hình 5.1.3.1 Động cơ RC Servo SG90 _ 21Hình 5.1.4.1 Nguyên lý cảm biến chạm 22Hình 5.1.4.2 So sánh 2 module cảm biến chạm 22Hình 5.1.5.1 Máy bơm mini _ 23Hình 5.2.1 Sơ đồ trạng thái 24Hình 6.1 a) giao diện trên app Blynk b) thông báo khi homestay bị mất kết nối mạng _ 29Hình 6.2 Phòng khách homestay _ 30Hình 6.3 Phòng ngủ homestay _ 30Hình 6.4 Sân homestay _ 31Hình 6.5 Nhận diện chủ nhà qua camera trên PC 32
Trang 5CHƯƠNG 1 NHẬT KÝ 1.1 Tuần 1 (Họp ngày 6/12/2020)
Phân công công việc
- Phân công công việc
Thành viên Công việc
Hữu Thiết kế mô hình ngôi nhà
Nhật Tìm hiểu mô hình nhận dạng khuôn mặt
Thuận Tìm hiểu cách lập trình và phương pháp kết nối với app Blynk
-
Nội dung đã thực hiện
- Lên ý tưởng, thống nhất các chức năng, lên danh sách linh kiện
Nội dung vướng mắc 1.2 Tuần 2 (Họp ngày 13/12)
Phân chia công việc
-
Thành viên Công việc
Hữu Tiếp tục thiết kế mô hình ngôi nhà
Nhật Xây dựng mô hình nhận dạng khuôn mặt
Thuận Lập trình bật tắt đèn, đóng mở cửa bằng app
-
Nội dung đã thực hiện
- Đã mua đủ linh kiện: ESP, đèn, động cơ servo, máy bơm mini, cảm biến DHT11
- Hoàn thành khung ngôi nhà, tiếp tục lắp ráp phần cứng
- Lập trình được bật tắt đèn cơ bản sử dụng Blynk
- Tìm được cách dùng Blynk server không bị giới hạn energy
Nội dung vướng mắc
Trang 61.3 Tuần 3 (Họp ngày 20/12)
Phân chia công việc
Thành viên Công việc
Hữu Lắp ráp linh kiện lên ngôi nhà, kết nối các module
Nhật Triển khai mô hình nhận diện khuôn mặt lên ESP
Thuận Lập trình bật tắt đèn, đóng mở cửa, quan sát nhiệt độ độ ẩm
bằng app Blynk
Nội dung đã thực hiện
- Hoàn thành ngôi nhà với các trang thiết bị
- Hoàn thành mô hình nhận dạng khuôn mặt
- Đạt 50% nội dung lập trình
1.4 Tuần 4 (Họp ngày 27/12)
Phân chia công việc
Thành viên Công việc
Hữu Lập trình cùng Thuận
Nhật Triển khai mô hình nhận diện khuôn mặt lên ESP
Thuận Lập trình bật tắt đèn, đóng mở cửa, bật tắt đài phun nước bằng
cảm biến chạm TTP223
Nội dung đã thực hiện
- Hoàn thành mở cửa bằng nhận diện khuôn mặt
- Hoàn thành 70% nội dung lập trình
1.5 Tuần 5 (Họp ngày 3/1)
Phân chia công việc
Thành viên Công việc
Hữu Lập trình, hiệu chỉnh
Nhật Lập trình, hiệu chỉnh
Thuận Lập trình, hiệu chỉnh
Nội dung đã thực hiện
- Cơ bản hoàn thiện các nội dung của đề tài
Trang 71.6 Tuần 6 (Họp ngày 10/1)
Phân chia công việc
Thành viên Công việc
Nhật Viết báo cáo
Thuận Viết báo cáo
Nội dung đã thực hiện
- Hoàn hiện phần lập trình cũng như ngôi nhà
1.7 Đánh giá công việc của từng cá nhân
Thành viên Phần trăm đóng góp
Trang 8CHƯƠNG 2 NHIỆM VỤ THIẾT KẾ 2.1 Smart Home là gì?
Hiểu theo cách đơn giản nhất, Smart Home là ngôi nhà mà ở đó mọi thiết bị liên quan đến điện năng đều được điều khiển trực tiếp bằng bản công tắc cảm ứng hay điều khiển
từ xa qua những nút chạm hiển thị trên màn hình smart phone, tablet, máy tính cá nhân (PC, laptop)[1]
Theo nghĩa tương đối đầy đủ Smart Home hay nhà thông minh là ngôi nhà được tích hợp những công nghệ tân tiến về kỹ thuật điện – điện tử – tin học để quản lý và điều khiển các thiết bị điện theo mong muốn của chủ nhà mọi lúc, mọi nơi theo những chương trình được cài đặt theo ngữ cảnh, lịch trình, cảm biến tự động
Như vậy sự khác biệt với một ngôi nhà bình thường mà ở đó mọi việc quản lý và điều khiển thiết bị điện đều thực hiện bằng cách thủ công cơ học theo nguyên tắc Mở/Tắt (On/Off) thì Smart Home đã tiến lên một đẳng cấp khác về điều khiển, quản lý thiết bị một cách thông minh hơn rất nhiều
Hình 2.1.1 Mô hình smart home
Nhà thông minh (tiếng Anh: home automation, domotics, smart home hoặc Intellihome)
là kiểu nhà được lắp đặt các thiết bị điện, điện tử có thể được điều khiển hoặc tự động hoá hoặc bán tự động, thay thế con người trong thực hiện một hoặc một số thao tác quản
lý, điều khiển Hệ thống điện tử này giao tiếp với người dùng thông qua bảng điện tử đặt trong nhà, ứng dụng trên điện thoại di động, máy tính bảng hoặc một giao diện web
Trong căn nhà thông minh, đồ dùng trong nhà từ phòng ngủ, phòng khách đến toilet đều gắn các bộ điều khiển điện tử có thể kết nối với Internet và điện thoại di động, cho phép chủ nhân điều khiển vật dụng từ xa hoặc lập trình cho thiết bị ở nhà hoạt động theo lịch Thêm vào đó, các đồ gia dụng có thể hiểu được ngôn ngữ của nhau và có khả năng tương tác với nhau
Trang 9Các chức năng chính của nhà thông minh :
• Điều khiển chiếu sáng (on/off, dimmer, scence, timer, logic,…)
• Điều khiển mành, rèm, cửa cổng
• Hệ thống an ninh, báo động, báo cháy
• Điều Khiển Điều hòa, máy lạnh
• Hệ Thống Âm thanh đa vùng
• Camera, chuông hình
• Hệ thống Bảo vệ nguồn điện
• Các tiện ích và ứng dụng khác
2.2 Chức năng Smart Home của nhóm
- Sử dụng app điện thoại Blynk để giám sát chỉ, điều khiển từ xa (khi được kết nối internet)
- Hệ thống khóa cửa thông minh: nhận dạng khuôn mặt, đóng mở cửa bằng app
- Giám sát các thông số về nhiệt độ, độ ẩm trên app
- Điều khiển hệ thống đèn trên app và bằng công tắc cảm ứng
- Điều khiển đài phun nước trên app
Trang 10CHƯƠNG 3 KỊCH BẢN SỬ DỤNG 3.1 Phục vụ cho thiết kế
Cửa tự động
- Sử dụng phần mềm nhận diện khuôn mặt trên máy tính, khi chương trình nhận diện được chủ nhà thì cửa sẽ mở
- Điều khiển cửa đóng mở trên app Blynk
Hiển thị thông tin nhiệt độ, độ ẩm
- Đo các giá trị nhiệt độ, độ ẩm sau đó gửi lên app để cho chủ nhà thuận tiện trong việc giám sát
- Cập nhật thông số liên tục
Giám sát, điều khiển từ xa
- Sử dụng app Blynk bật tắt đèn, đài phun nước thông qua điện thoại từ xa (có kết nối mạng internet)
Công tắc cảm ứng
- Bật tắt đèn bằng công tắc cảm ứng khi không có điện thoại thông minh bên cạnh
3.2 Phục vụ cho đánh giá
Cửa tự động
- Khi chủ nhà lại gần, camera sẽ ghi hình và nhận dạng, nếu là chủ nhà, màn hình
sẽ hiện tên, đồng thời cửa sẽ tự mở
- Muốn đóng cửa phải dùng app trên điện thoại
- Khi người lạ lại gần camera, hệ thống không nhận diện được, cửa không mở
Hiển thị thông tin nhiệt độ, độ ẩm
- Hiển thị thông tin nhiệt độ, độ ẩm trên app Blynk
- Khi thay đổi nhiệt độ, độ ẩm ở cảm biến thì giá trị trên app tự cập nhật theo ngay lập tức
Giám sát, điều khiển từ xa
Trang 11CHƯƠNG 4 THIẾT KẾ 4.1 Thiết kế cơ khí
Hình 4.1.1 Mặt trước homestay
Trang 12Hình 4.1.2 Ngôi nhà nhìn từ trên xuống (a) Phòng ngủ (b) Phòng khách (c) Sân
o Cổng + cửa thông minh
o 3 đèn led bố trí tại 3 địa điểm trong nhà (phòng ngủ, phòng khách, sân) + 3 công tắc cảm ứng ứng với 3 đèn
o Cảm biến nhiệt độ, độ ẩm bố trí ở sân
o Đài phun nước bố trí ở sân
- Cách thức tiến hành: Làm bằng fomex, dán bằng keo nến
4.2 Thiết kế các chức năng, hệ thống (hardware)
- Các dây nguồn 5V, 3.3V chạy quanh tường
- ESP8266 đặt ngầm dưới nhà: Điều khiển toàn bộ hệ thống đèn, công tắc cảm ứng, và cảm biến nhiệt độ độ ẩm, truyền tín hiệu không dây
- Kết nối ngoại vi với EPS8266:
- Máy tính cá nhân kết nối với ESP8266 qua dây USB, sử dụng giao thức UART
để gửi tín hiệu đóng mở cửa bằng khuôn mặt
Trang 14Serial.println(F("Failed to read from DHT sensor!"));
Dùng 1 – Wire ở chế độ master – slave
Trong đó ESP8266 là master còn DHT11 là slave
Hình STYLEREF 1 \s 4 SEQ Hình \* ARABIC \s 1 3 Kết nối 1-Wire
Trang 15UART[5]
Tên đầy đủ UART là “Universal Asynchronous Receiver / Transmitter”, và nó là một vi mạch sẵn có trong một vi điều khiển nhưng không giống như một giao thức truyền thông (I2C & SPI) Chức năng chính của UART là truyền dữ liệu nối tiếp Trong UART, giao tiếp giữa hai thiết bị có thể được thực hiện theo hai cách là giao tiếp dữ liệu nối tiếp và giao tiếp dữ liệu song song
Hình STYLEREF 1 \s 4 SEQ Hình \* ARABIC \s 1 4 Giao thức 1-Wire
Trang 16Hình 4.3.5.1 Giao thức UART
Trong giao tiếp này, có hai loại UART có sẵn là truyền UART và nhận UART và giao tiếp giữa hai loại này có thể được thực hiện trực tiếp với nhau Đối với điều này, chỉ cần hai cáp để giao tiếp giữa hai UART Luồng dữ liệu sẽ từ cả hai chân truyền (Tx) và nhận (Rx) của UARTs Trong UART, việc truyền dữ liệu từ Tx UART sang Rx UART có thể được thực hiện không đồng bộ (không có tín hiệu CLK để đồng bộ hóa các bit o / p)
Việc truyền dữ liệu của UART có thể được thực hiện bằng cách sử dụng bus dữ liệu ở dạng song song bởi các thiết bị khác như vi điều khiển, bộ nhớ, CPU, v.v Sau khi nhận được dữ liệu song song từ bus, nó tạo thành gói dữ liệu bằng cách thêm ba bit như bắt đầu, dừng lại và trung bình Nó đọc từng bit gói dữ liệu và chuyển đổi dữ liệu nhận được thành dạng song song để loại bỏ ba bit của gói dữ liệu Tóm lại, gói dữ liệu nhận được bởi UART chuyển song song về phía bus dữ liệu ở đầu nhận
Hình 4.3.5.2 Truyền dữ liệu bằng phương thức UART
Trang 17Truyền thông không dây và kết nối Internet[6]
a) Kết nối ESP8266 và WiFi
Để kết nối các thiết bị wireless hoặc có dây vào mạng nội bộ (LAN), ta cần 1 thiết bị gọi là Điểm truy cập (Access Point) Những thiết bị kết nối với Access Point được gọi
là Station
Để một Station có thể kết nối không dây vào Access Point thì có 2 thông số cần quan tâm
- SSID: tên của Access Point muốn kết nối đến
- Password: mật khẩu truy nhập Access Point
ESP8266 có thể kết nối với các thiết bị khác thông qua mạng WiFi theo các chế độ:
- Library Blynk: support cho hầu hết tất cả các nền tảng phần cứng phổ biến - cho phép giao tiếp với máy chủ và xử lý tất cả các lệnh đến và đi
Hình 4.3.6.1 App Blynk
Trang 18#define BLYNK_PRINT Serial
#include <BlynkSimpleEsp8266.h>
char auth[] = "YourAuthToken"; //AuthToken copy ở Blynk Project
char ssid[] = "YourNetworkName"; //Tên wifi
char pass[] = "YourPassword"; //Mật khẩu wifi
Trang 19CHƯƠNG 5 TRIỂN KHAI 5.1 Linh kiện, thiết bị
Vi điều khiển ESP8266
Hình 5.1.1.1 Vi điều khiển ESP8266
- Kit RF thu phát Wifi ESP8266 NodeMCU Lua là kit phát triển dựa trên nền chip Wifi SoC ESP8266 với thiết kế dễ sử dụng và đặc biệt là có thể sử dụng trực tiếp trình biên dịch của Arduino để lập trình và nạp code
- Dùng cho các ứng dụng cần kết nối, thu thập dữ liệu và điều khiển qua sóng Wifi, đặc biệt là các ứng dụng liên quan đến IoT
Thông số kỹ thuật
- Phiên bản firmware: NodeMCU Lua
- Chip nạp: CP2102
- GPIO tương thích hoàn toàn với firmware Node MCU
- Cấp nguồn: 5VDC MicroUSB hoặc nguồn tự làm
- GIPO giao tiếp ở hiệu điện thế 3.3V
- Có Led báo trạng thái, nút Reset
- Tương thích hoàn toàn với trình biên dịch Arduino
- Kích thước: 25x50 mm
Trang 20Cảm biến nhiệt độ & độ ẩm DHT11
Hình 5.1.2.1 Cảm biến nhiệt độ, độ ẩm DHT11
DHT11 là cảm biến nhiệt độ & độ ẩm giá rẻ, cơ bản nhất hiện nay Nó có cấu tạo đơn giản, kích cỡ nhỏ gọn 15.5x12x5.5mm, nên thường được sử dụng trong những dự IoT đơn giản hoặc yêu cầu kích cỡ cảm biến nhỏ Cảm biến truyền dữ liệu thông qua giao thức 1-wire
Thông số cảm biến:
- Điện áp hoạt động: 3V - 5V (DC)
- Dải độ ẩm hoạt động: 20% - 90% RH, sai số ±5%RH
- Dải nhiệt độ hoạt động: 0°C ~ 50°C, sai số ±2°C
- Khoảng cách truyển tối đa: 20m
Trang 21Động cơ RC Servo SG90[7]
Động cơ RC Servo 9G là động phổ biến dùng trong các mô hình điều khiển nhỏ và đơn giản như cánh tay robot, khớp nối, Động cơ có tốc độ phản ứng nhanh, được tích hợp sẵn Driver điều khiển động cơ, dễ dàng điều khiển góc quay bằng phương pháp điều độ rộng xung PWM
Trang 22Cảm biến chạm TTP223
Cảm ứng điện dung là công nghệ cảm ứng dựa trên những thay đổi của điện tích trên bề mặt cảm ứng khi tay người, hoặc các vật có tích điện chạm nhẹ vào Bề mặt cảm ứng điện dung sử dụng một tấm kính được phủ ion, lớp ion kim loại trên bề mặt sẽ tạo ra mạng lưới các tụ điện Các tụ điện này sẽ bị mất điện tích khi tay người hay các vật có điện chạm vào Nhờ vậy, bề mặt cảm ứng dạng có thể được điều khiển bởi những “cái chạm” rất nhẹ từ ngón tay
Hình 5.1.4.1 Nguyên lý cảm biến chạm
Hình 5.1.4.2 So sánh 2 module cảm biến chạm
Trang 23Máy bơm mini
Hình 5.1.5.1 Máy bơm mini
Thông số kỹ thuật của máy bơm chìm mini 3 - 12VDC:
Trang 24Đọc giá trị nhiệt độ, độ ẩm: đọc từ cảm biến DHT11 và gửi lên server ở mỗi vòng lặp, giá trị được cập nhật theo chu kỳ của vòng lặp
Sau khi cập nhật giá trị của DHT11, chương trình sẽ kiểm tra buffer UART, nếu có chuỗi “<ten_chu_nha>” thì sẽ điều khiển cho mở cổng Nếu không có dữ liệu, chương trình thực hiện lại vòng lặp
Nếu có sự cố ngắt kết nối mạng, app sẽ hiện thông báo và hàm Blynk.run() tự động kết nối lại với wifi
#define BLYNK_PRINT Serial
Trang 25DHTesp dht;
Servo myservo;
char auth[] = "uJA9SlCdCIBAcQk6QVzvsfQ1WTcipJuT";
char ssid[] = "Minhduc";
char pass[] = "nhatsiunhan";
int pos, pinValue6, pinValue7, pinValue8, pinValue, pinValue10;
bool gate;
boolean checkDataV6 = false;
boolean checkDataV7 = false;
boolean checkDataV8 = false;
boolean checkDataV10 = false;
void myTimerEvent()
{
delay(dht.getMinimumSamplingPeriod());
float humidity = dht.getHumidity();
float temperature = dht.getTemperature();
Trang 26for (pos = 0; pos <=100; pos += 1) {
// if(pos%20==0) {digitalWrite(9,0); delay(50); digitalWrite(9,1);}
if(pinValue == 1 && gate == true){
for (pos = 100; pos >=0; pos -= 1) {
// if(pos%20==0) {digitalWrite(9,0); delay(50); digitalWrite(9,1);}
Trang 27delay(dht.getMinimumSamplingPeriod());
float humidity = dht.getHumidity();
float temperature = dht.getTemperature();
Trang 28String text = Serial.readStringUntil('\n'); // đọc giá trị gửi đến cho đến khi gặp kí
tự xuống dòng \n
if (text == "nhat" && gate == true) {
for (pos = 100; pos >= 0; pos -= 1) {
Trang 29CHƯƠNG 6 THỬ NGHIỆM, ĐÁNH GIÁ
Hình 6.1a thể hiện giao diện app Blynk bao gồm các chức năng điều khiển ngôi nhà từ
xa : Bật tắt đèn, đài phun nước; Đóng mở cửa từ xa; Hiển thị nhiệt độ, độ ẩm Ngoài ra app còn được lập trình để hiển thị thông báo lên điện thoại thông minh khi homestay bị mất kết nối mạng (hình 6.1b)
Hình 6.1 a) giao diện trên app Blynk b) thông báo khi homestay bị mất kết nối mạng