Nhà thông minh được hiểu theo nghĩa đơn giản là sự kết hợp tất cả các thiết bị trong nhàthông qua kết nối Internet không dây và được điều khiển trực tiếp, gián tiếp qua cácthiết bị thông
Trang 1ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ NHÀ THÔNG MINH SỬ
DỤNG ARDUINO
Trang 2CHƯƠNG 1 TỔNG QUAN
1.1 Giới thiệu về Smart home:
Smart home là một trong những đề tài được phát triển sâu rộng trong cách mạngcông nghiệp 4.0, đây được coi như là một xu hướng của tương lai
Hình 1-1 Lịch sử 4 cuộc cách mạng công nghiệp
Những yếu tố chính của kỹ thuật số trong cách mạng công nghiệp 4.0 là trí tuệnhân tạo (AI); vạn vật kết nối – Internet of things (IoT) và dữ liệu lớn (Big Data).Trong cơn lốc cuộc cách mạng công nghệ 4.0 trên toàn thế giới, thì sự ra đời của
nhà thông minh (Smart home) là điều tất yếu và xu hướng trên toàn thế giới Nhà
thông minh được hiểu theo nghĩa đơn giản là sự kết hợp tất cả các thiết bị trong nhàthông qua kết nối Internet không dây và được điều khiển trực tiếp, gián tiếp qua cácthiết bị thông minh như: điện thoại, máy tính bảng v.v… hoặc bằng giọng nói, tựđộng cài đặt theo các hoạt cảnh khác nhau v.v…
1.2Internet Of Things:
Trang 3Hình 1-2 Sự kết nối của IOT
Khả năng định danh độc nhất:
Một trong những vấn đề với IoT đó là khả năng tạo ra một ứng dụng IoT nhanhchóng Để khắc phục, hiện nay nhiều hãng, công ty, tổ chức trên thế giới đangnghiên cứu các nền tảng giúp xây dựng nhanh ứng dụng dành cho IoT
Hình 1-3 IOT có thể kết nối mọi thiết bị với nhau
Những tác nhân ngăn cản sự phát triển của Internet of Things:
- Chưa có một ngôn ngữ chung:
Trang 4Ở mức cơ bản nhất, Internet là một mạng dùng để nối thiết bị này với thiết bịkhác Nếu chỉ riêng có kết nối không thôi thì không có gì đảm bảo rằng các thiết bịbiết cách nói chuyện nói nhau
Một số trong những vấn đề nói trên chỉ đơn giản là vấn đề về kiến trúc mạng, vềkết nối mà các thiết bị sẽ liên lạc với nhau (Wifi, Bluetooth, NFC, ) Những thứnày thì tương đối dễ khắc phục với công nghệ không dây ngày nay Còn với các vấn
đề về giao thức thì phức tạp hơn rất nhiều, nó chính là vật cản lớn và trực tiếp trêncon đường phát triển của Internet of Things
- Có quá nhiều "ngôn ngữ địa phương":
- Tiền và chi phí:
1.3Phạm vi đồ án:
Mô phỏng hệ thống nhà thông minh trên nền tảng Arduino
Kết hợp với IOT để điều khiển, giám sát hoạt động của hệ thống
1.4Mục tiêu đồ án:
Sử dụng Arduino để lập trình, xây dựng hệ thống nhà thông minh, kết hợp với
Trang 5CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
1.5Phần cứng:
1.1.1 Board Arduino Uno R3:
Hình 2-1 Board mạch Arduino Uno R3
Bảng 2 1 Thông số kỹ thuật của Arduino Uno R3
Điện áp hoạt động 5V DC (chỉ được cấp qua cổng
USB)
Điện á vào khuyên dùng 7-12V
Điện áp vào giới hạn 6-20V
Số chân Digital I/O 14 chân ( 6 chân hardware)
Số chân Analog 6 ( độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/
Dòng ra tối đa (5V) 500mA
Dòng ra tối đa (3.3V) 50mA
Bộ nhớ 32 KB (Atmega328 với 0.5KB
Trang 6boothloader
Trang 71.1.2 Cảm biến chuyển động PIR:
Hình 2-4 Cảm biến chuyển động PIR
Nguyên lí hoạt động:
- Các nguồn nhiệt (đối với người và con vật là nguồn thân nhiệt) đều phát ratia hồng ngoại, qua kính Fresnel, qua kích lọc lấy tia hồng ngoại, nó được cho tiêuthụ trên 2 cảm biến hồng ngoại gắn trong đầu dò, và tạo ra điện áp được khuếch đạivới transistor FET Khi có một vật nóng đi ngang qua, từ 2 cảm biến này sẽ choxuất hiện 2 tín hiệu và tín hiệu này sẽ được khuếch đại để có biên độ đủ cao và đưavào mạch so áp để tác động vào một thiết bị điều khiển hay báo động
- Phương pháp đấu dây:
Trang 8Hình 2-2 Kết nối PIR với Arduino trong ứng dụng phát hiện chuyển động
Trang 91.1.3 Module khí gas (MQ5 – Gas Sensor):
Hình 2-3 Cảm biến khí gas
Hình 2-4 Kết nối cảm biến với Arduino
Trang 11Hình 2-6 Kết nối servo SG90 với Arduino
1.6Phần mềm Arduino IDE (Intergrated Development Environment):
Hình 2-7 Giao diện phần mềm Arduino
1.7Phần mềm Node Red:
1.1.5 Giới thiệu về Node Red:
Node-RED được xây dựng dựa trên nền tảng Node.js, nó được xem như mộtweb server mà ta có thể cấu hình tùy chỉnh các chức năng gọi là “flow” từ bất kỳtrình duyệt nào trên máy tính Mỗi ứng dụng Node-RED bao gồm các node có thểliên kết được với nhau với các dạng là input, output và operation
Trang 12Hình 2-8 Ví dụ về sự tương tác của các tab trong Node Red
Với Node-RED ta có thể hình dung cách tương tác và giao tiếp với các thiết bịmột cách tổng quan như sau Nếu dùng Raspberry hay OrangePi thì thiết bị này sẽđóng vai trò là Server, còn lại sẽ là client như hình:
Hình 2-9 Kết nối Node Red sử dụng module Raspberry Pi
Trong dề tài này, ta sử dụng trực tiếp máy tính (hoặc laptop) của ta để làm server
và client:
Hình 2-10 Kết nối Node Red sử dụng trực tiếp qua máy tính
Trang 131.1.6 Cài đặt Nodejs:
Để có thể sử dụng được phần mềm Node Red, trước tiên máy tính của ta cầnphải có ứng dụng NodeJS NodeJS là một mã nguồn được xây dựng dựa trên nềntảng Javascript V8 Engine, nó được sử dụng để xây dựng các ứng dụng web như cáctrang video clip, các forum và đặc biệt là trang mạng xã hội phạm vi hẹp NodeJS
có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ Window cho tới Linux,
OS X nên đó cũng là một lợi thế Nó cung cấp các thư viện phong phú ở dạngJavascript Module khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ởmức thấp nhất
Hình 2-11 Logo của chương trình NodeJS
Ta có thể download và cài đặt chương trình này 1 cách dễ dàng bằng cách truycập vào địa chỉ trang web: https://nodejs.org/en/download/, tại đây, ta chọn vàdownload phiên bản phù hợp với cấu hình máy tính mà ta sử dụng
Hình 2-12 Các phiên bản của NodeJS
Trang 14Để cài đặt node red, ta bấm vào nút Start trên thanh Menu của màn hình, sau đó
chọn Run và đánh vào mục tìm cụm từ “cmd”, sau đó nhấn Enter.
Hình 2-13 Giao diện chính của cmd Tại đây, ta gõ tiếp lệnh “npm install -g –unsafe-perm node-red” ngay tại vị trí
con trỏ chuột trên Node Red
Chương trình sẽ được tự động cài đặt vào máy tính:
Hình 2-14 Chương trình Node Red đã được cài đặt
Để sử dụng Node Red, tại cửa sổ của cmd.exe, ta nhập tiếp lệnh “node-red” và
nhấn Enter để thiết lập server Local cho máy tính
Trang 15Hình 2-15 Hoàn thành thiết lập server Local cho máy tính
Sau khi đã hoàn thành thiết lập server Local, ta mở trình duyệt internet thườngdùng lên, ở đây ta sử dụng trình duyệt Google Chrome, ta copy địa chỉ
“http://127.0.0.1:1880/” được đánh dấu đỏ ở hình trên vào phần tìm kiếm của
Chrome và bấm Enter
Hình 2-16 Giao diện lập trình cơ bản của Node Red
Vậy là ta đã hoàn thành cài đặt thiết lập chương trình Node Red sử dụng máytính làm server truyền tải thông tin Tại đây ta bắt đầu lập trình cho hệ thống nhàthông minh theo thiết kế ban đầu, sử dụng các tab ở cột bên trái và kéo thả chúngvào giữa màn hình, viết code cho từng khối để chúng có thể hoạt động và liên kếtvới nhau
1.1.8 Cài đặt các ứng dụng cần thiết cho Node Red:
Trang 16Để sử dụng têem nhiều chế độ, ứng dụng khác của Node Red, ta cần tiến hànhcài đặt thêm các thư viện ứng dụng khác ngoài những ứng dụng dã có sẵn trên NodeRed.
- Node Red Dashboard:
Tại cửa sổ cmd.exe, ta tắt chương trình Node Red bằng tổ hợp phím Cntrl+C.
Ta đánh dòng lệnh “npm i Node-red-dashboard” và bấm Enter.
Thư viện dashboard sẽ được tự động cài đặt 1 cách nhanh chóng
Hình 2-17 Cài đặt thư viện Dashboard cho Node Red
- Node Red Serial Port:
Tương tự với cách cài đặt thư viện Dashboard, ta nhập dòng lệnh “npm I
node-red-node-serialport” và bấm Enter.
Trang 17Vì Node Red là chương trình dạng mở, nên nếu không có các biện pháp bảo mật,thì hệ thống của ta sẽ rất dễ bị xâm nhập, phá hoại hoặc sử dụng với các mục đích
có hại cho người dùng hoặc người sở hữu hệ thống đối với tình huống này, ta cóthể tạo 1 lớp bảo mật nhẹ riêng cho Node Red với tên truy cập và password
Để làm được điều này, ta cần thiết lập cho quyền admin của Node Red chuyển
sang Enabled
Ta cần kiếm file settings.js của Node Red trong máy tính qua đường dẫn:
“Local Disk (C:) > Users > User’s Name > node-red”
Hình 2-19 Địa chỉ của file settings.js trong máy tính
Để khởi động quyền admin cho Node Red, ta cần điều chỉnh một số nội dungbên trong file settings.js này
Ta mở file bằng chương trình Wordpad hoặc Notepad, sau đó copy đoạn codesau và paste xuống dưới cùng:
Trang 18B1: Mở lại chương trình cmd.exe (không khởi động Node Red)
B2: Cài đặt để máy tính có thể mã hóa mật khẩu mà ta mong muốn thành một
chuổi ký tự mà Node Red có thể hiểu được bằng cách nhập dòng lệnh
“node-red-admin hash-pw”, chương trình sẽ hiển thị ra dòng chữ Password để ta nhập mật
khẩu mới, sau khi nhập, ta bấm Enter.
Hình 2-20 Mã hóa mật khẩu để sử dụng cho chương trình Node Red
B3: Copy dòng mật khẩu vừa được mã hóa và dán đè lên dòng mật khẩu trong file Settings,js
Hình 2-21 Chỉnh sửa thông tin đăng nhập trong file settings.js
B4: Save file settings.js, khởi động lại Node Red, và chương trình sẽ yêu cầu ta nhập thông tin để đăng nhập
Trang 19Hình 2-22 Màn hình đăng nhập vào giao diện lập trình của Node Red
1.1.9 Lập trình cho hệ thống nhà thông minh trên Node Red:
Ta tiến hành lập trình cho hệ thống trên giao diện kéo thả của Node Red tại địa
chỉ localhost:1880.
Thiết kế, lập trình mộ hệ thống trên Node Red rất đơn giản, ta chỉ cần kéo thảcác tab phía bên trái chương trình vào khu vực chính giữa, sau đó kết nối các tab lạitheo chức năng, lưu đồ giải thuật của hệ thống
Hình 2-23 Lập trình cho hệ thống nhà thông minh trên Node Red
Sau khi đã hoàn thành phần viết code cho Node Red, ta bấm vào nút Deploy ởphía trên góc phải màn hình của giao diên viết code cho Node Red, nếu chươngtrình báo lỗi, ta tìm chỗ sai và sửa lại code cho thật chính xác, khi chương trình
Trang 20Deploy thành công, ta truy cập tiếp vào địa chỉ “http://127.0.0.1:1880/ui” để truy
cập vào giao diện hoạt động chính
Hình 2-24 Giao diện dành cho người sử dụng
Trang 21CHƯƠNG 3 XÂY DỰNG HỆ THỐNG NHÀ THÔNG MINH
1.8Lắp ráp hệ thống với Arduino:
Ta tiến hành lắp ráp các thiết bị rất đơn giản:
- Dây tín hiệu của các module, servo được nối vào các cổng tín hiệu trênArduino
- Dây nguồn VCC và GND được nối với mass (ở đây ta nới vào terminal đượcnối song song với nguồn tổ ong 5V-5A vì board Arduino không thể cùng một lúccấp nguồn cho tất cả các thiết bị)
Servo (mỗi servo là 1 cánh cửa)
Module 4relay 5V (cắm được 4 tải)
Cáp USB
CB khí gas
PIR
Nguồn tổ ong 5A (cấp nguồn cho toàn hệ thống) Terminal
5V-Hình 3-25 Kết nối các thiết bị
Trang 22Hình 3-26 Hình ảnh chi tiết chân các thiết bị
1.9Nguyên lý hoạt động của mạch:
Nhấn nút điều khiển trên màn hình điện thoại (android hoặc IOS), điện thoại sẽtruyền tín hiệu tới module Arduino Uno R3 để điều khiển các thiết bị với chức năng
đã được gán cho trên màn hình điện thoại:
- Tắt/ mở các đèn LED.
- Đóng/mở cửa theo yêu cầu.
- Các cảm biến kích hoạt theo tín hiệu về nồng độ khí gas và chuyển động.
1.10 Lưu đồ giải thuật:
Trang 23Nhấn nút 1 (Lần 1)
Nhấn nút 2 (Lần 1) Đèn mở
Cửa mở
Nhấn nút 1 (Lần 2)
Đèn tắt
Nhấn nút 2 (Lần 2)
Báo lên giao diện
Mở hết các cửa
Cảm biến chuyển động ON
Báo lên giao diện
Reset A
A
Đúng
Đúng
Hình 3-27 Lưu đồ giải thuật điều khiển, giám sát nhà thông minh
1.11 Thiết kế hệ thống nút bấm sử dụng chân Analog của Arduino:
Để sử dụng 1 cách tiết kiệm số chân của board Arduino UNO R3, ta có thể sửdụng duy nhất 1 chân analog của Arduino cho tất cả các nút bấm thay vì phải sử
Trang 24dụng riêng 1 chân digital cho từng nút bấm Trong đề tài này, ta sử dụng 4 nút bấm,được kết nối theo sơ đồ sau:
Hình 3-28 Sơ đồ kết nối nút bấm sử dụng chân Analog
Công thức tính mức điện áp cấp vào chân Analog:
UA = [VCC/(R1 + R)] * R
Trong đó: UA là mức địện áp được quy đổi cho từng nút bấm (dùng cho IDE)
R là điện trở nối từ A0 qua nút bấm tới GNDR1 là điện trở được nối trực tiếp từ VCC tới chân Analog
Ta có : U1 = [VCC / (1K2)]
U2 = [VCC / (1K2 + 220)] * 220
U3 = [VCC / (1K2 +440)] * 440
U4 = [VCC / (1K2 + 1K2)] * 1K2
Trang 250.50 0.50
45.00 44.00
19.00 16.50
4.50
4.50 5.00 5.00
10.00 4.91 4.91
3.00
0.50
Cửa chínhCửa sổ
Hình 3-30 Bản vẽ 2 loại cửa
Trang 260.50
Cửa chínhCửa sổ
3.00
0.50
Cửa chínhCửa sổ
Hình 3-32 Thay bằng mô hình thật
Trang 270.50
Cửa chínhCửa sổ
3.00
0.50
Cửa chínhCửa sổ
Hình 3-34 Thay bằng mô hình thật
Trang 280.50
Cửa chínhCửa sổ
Hình 3-35 Thay bằng mô hình thật
Trang 29CHƯƠNG 4 KẾT LUẬN
Hệ thống đã hoạt động như đúng yêu cầu đặt ra
Người dùng có thể dễ dàng sử dụng giao diện của hệ thống
Nên khởi động, điều khiển các thiết bị mốt cách lần lượt, không điều khiển quánhiều thiết bị cùng một lúc
Ưu điểm của hệ thống:
- Hệ thống hoạt đống đúng như yêu cầu đặt ra
- Giá thành rẻ, dễ dàng lắp đặt, lập trình và sử dụng
Hạn chế :
- Thỉnh thoảng các nút bấm bị nhiễu tín hiệu do sử dụng cùng lúc nhiều thiết
bị nhưng không đáng kể
Hướng phát triển và hoàn thiện:
- Có thể phát triển thêm các ứng dụng khác như bộ điều khiển điều chỉnh nhiệt
độ và độ ẩm
- Có thể sử dụng các module loại lớn hơn để điều khiển được nhiều thiết bị hơn
Trang 30TÀI LIỆU THAM KHẢO[1] qweqwe
[2] qwqeeqwe
Trang 31PHỤ LỤC
Code chạy chương trình Arduino IDE:
const int relay1 = 2; //định dạng relay1 là chân số 7
const int relay2 = 4; //định dạng relay1 là chân số 8
const int relay3 = 7; //định dạng relay1 là chân số 12
const int relay4 = 8; //định dạng relay1 là chân số 13
#define Button_analogPin A0 //định dạng các nút bấm vào chân A0int inbyte = 0;
Trang 34if(inbyte == 'B' || (val > 90 && val < 250 &&!d2)) {
Trang 36if(inbyte == 'E')
{
myservo1.write(RIG, SPEED1); myservo1.wait();
}
if(inbyte == 'e')
{
myservo1.write(LEF, SPEED1); myservo1.wait();
myservo3.wait();