Tải bản đầy đủ (.docx) (37 trang)

THIẾT kế NHÀ THÔNG MINH sử DỤNG ARDUINO (có code)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.64 MB, 37 trang )

ĐỒ ÁN TỐT NGHIỆP
Trang 1/37

ĐỒ ÁN TỐT NGHIỆP
THIẾT KẾ NHÀ THÔNG MINH SỬ
DỤNG ARDUINO

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 2/37

CHƯƠ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ạng
cô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ác
thiế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.2 Internet Of Things:

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 3/37

Hì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 nhanh
chóng. Để khắc phục, hiện nay nhiều hãng, công ty, tổ chức trên thế giới đang
nghiê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:

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 4/37

Ở 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.
-

Hàng rào subnetwork:

Lấy ví dụ như xe ô tô chẳng hạn. Một chiếc Ford Focus có thể giao tiếp cực kì
tốt đến các dịch vụ và trung tâm dữ liệu của Ford khi gửi dữ liệu lên mạng. Nếu một
bộ phận nào đó cần thay thế, hệ thống trên xe sẽ thông báo về Ford, từ đó hãng tiếp
tục thông báo đến người dùng. Nhưng trong trường hợp chúng ta muốn tạo ra một
hệ thống cảnh báo kẹt xe thì mọi chuyện rắc rối hơn nhiều bởi xe Ford được thiết
lập chỉ để nói chuyện với server của Ford, không phải với server của Honda, Audi,
Mercedes hay BMW. Lý do cho việc giao tiếp thất bại? Chúng ta thiếu đi một ngôn
ngữ chung. Và để thiết lập cho các hệ thống này nói chuyện được với nhau thì rất
tốn kém, đắt tiền.
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ên
con đườ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.3 Phạ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.4 Mụ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
IOT để giám sát, điều khiển hệ thống.

Dựng mô hình nhà thông minh và thiết lập giao diện dễ tiếp cận với người sử
dụng

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 5/37

CHƯƠNG 2.

CƠ SỞ LÝ THUYẾT

1.5 Phầ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

Loại vi điều ATmega328 họ
khiển
Điện áp hoạt
động

(chỉ

được cấp qua
cổng USB)


Tần số hoạt
động
Dòng tiêu thụ
Điện

8 bit
5V DC

á

vào

khuyên dùng
Điện áp vào
giới hạn

Thiết kế nhà thông minh sử dụng Arduino

16 MHz
Khoảng
mA
7-12V
6-20V

300


ĐỒ ÁN TỐT NGHIỆP
Trang 6/37


Số

chân 14 chân ( 6

Digital I/O
chân hardware)
Số
chân 6 ( độ phân giải
Analog
10bit)
Dòng tối đa
trên mỗi chân 30mA
I/O
Dòng ra tối đa
(5V)
Dòng ra tối đa
(3.3V)

500mA
50mA
32

KB

(Atmega328
Bộ nhớ

với 0.5KB dùng
với 0.5KB dùng


SRAM
EEPROM

Thiết kế nhà thông minh sử dụng Arduino

bởi boothloader
2KB
(Atmega328)
1
KB
(Atmega328)


ĐỒ ÁN TỐT NGHIỆP
Trang 7/37

1.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 ra tia hồng
ngoại, qua kính Fresnel, qua kích lọc lấy tia hồng ngoại, nó được cho tiêu thụ 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 đại với
transistor FET. Khi có một vật nóng đi ngang qua, từ 2 cảm biến này sẽ cho xuấ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à đưa và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:

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 8/37

Hình 2-2. Kết nối PIR với Arduino trong ứng dụng phát hiện chuyển động

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 9/37

1.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

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 10/37


1.1.4 Động cơ servo SG90:

Hình 2-5. Động cơ servo SG90

-

Thông số kỹ thuật:
Khối lượng : 9g
Kích thước: 22.2×11.8.32 mm
Momen xoắn: 1.8kg/cm
Tốc độ hoạt động: 60 độ trong 0.1 giây
Điện áp hoạt động: 4.8V(~5V)
Nhiệt độ hoạt động: 0 ºC – 55 ºC
Kết nối dây màu đỏ với 5V, dây màu nâu với mass, dây màu cam với chân phát

-

xung của vi điều khiển.
Ở chân xung cấp một xung từ 1ms-2ms theo để điều khiển góc quay theo ý muốn.

Hình 2-6. Kết nối servo SG90 với Arduino

1.6 Phần mềm Arduino IDE (Intergrated Development Environment):

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 11/37


Hình 2-7. Giao diện phần mềm Arduino

1.7 Phầ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ột
web 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.

Hì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:

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 12/37

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

Thiết kế nhà thông minh sử dụng Arduino



ĐỒ ÁN TỐT NGHIỆP
Trang 13/37

1.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ần
phải có ứng dụng NodeJS. NodeJS là một mã nguồn được xây dựng dựa trên nền
tảng Javascript V8 Engine, nó được sử dụng để xây dựng các ứng dụng web như các
trang 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ạng
Javascript 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 truy
cập vào địa chỉ trang web: 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

1.1.7 Cài đặt Node Red:

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 14/37


Để 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.

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 15/37

Hì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ường
dù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áy

tí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úng
và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ết
với nhau.
1.1.8 Cài đặt các ứng dụng cần thiết cho Node Red:

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 16/37

Để sử dụng têem nhiều chế độ, ứng dụng khác của Node Red, ta cần tiến hành
cà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 Node
Red.
- 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 nodered-node-serialport” và bấm Enter.

Hình 2-18. Cài đặt thư viện SerialPort cho Node Red

- Node Red Security:
Vì 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


Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 17/37

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 dung
bên trong file settings.js này.
Ta mở file bằng chương trình Wordpad hoặc Notepad, sau đó copy đoạn code
sau và paste xuống dưới cùng:
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password:
"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9D
N.",
permissions: "*"
}]
},

Đây là thông tin đăng nhập cơ bản của Node Red, ta cần phải đổi lại mật khẩu
để có thể sử dụng được chương trình, cách đổi mật khẩu như sau:
B1: 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-redadmin 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.
Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 18/37

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.

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 19/37

Hì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ại
theo 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ương
trì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
Deploy 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.

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 20/37

Hình 2-24. Giao diện dành cho người sử dụng

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 21/37

CHƯƠNG 3.


XÂY DỰNG HỆ THỐNG NHÀ THÔNG MINH

1.8 Lắ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ên Arduino
Dây nguồn VCC và GND được nối với mass (ở đây ta nới vào terminal được nối
song song với nguồn tổ ong 5V-5A vì board Arduino không thể cùng một lúc cấp
nguồn cho tất cả các thiết bị).

Hình 3-25. Kết nối các thiết bị

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 22/37

Hình 3-26. Hình ảnh chi tiết chân các thiết bị

1.9 Nguyê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:


Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 23/37

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ử

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 24/37

dụ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 GND
R1 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

1.12 Mô hình thành phẩm:

Thiết kế nhà thông minh sử dụng Arduino


ĐỒ ÁN TỐT NGHIỆP
Trang 25/37

Hình 3-29. Bản vẽ mặt bằng của mô hình

Hình 3-30. Bản vẽ 2 loại cửa

Thiết kế nhà thông minh sử dụng Arduino


×