1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

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

37 1,7K 16

Đ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

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 12,94 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 2

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ạ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 3

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 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 5

CHƯƠ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 6

boothloader

Trang 7

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 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 8

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

Trang 9

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

Trang 11

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

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:

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 13

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ầ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 15

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ườ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 17

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

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 18

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-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 19

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ạ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 20

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

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

Trang 21

CHƯƠ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 22

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

Nhấ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 24

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 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 25

0.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 26

0.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 27

0.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 28

0.50

Cửa chínhCửa sổ

Hình 3-35 Thay bằng mô hình thật

Trang 29

CHƯƠ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 30

TÀI LIỆU THAM KHẢO[1] qweqwe

[2] qwqeeqwe

Trang 31

PHỤ 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 34

if(inbyte == 'B' || (val > 90 && val < 250 &&!d2)) {

Trang 36

if(inbyte == 'E')

{

myservo1.write(RIG, SPEED1); myservo1.wait();

}

if(inbyte == 'e')

{

myservo1.write(LEF, SPEED1); myservo1.wait();

myservo3.wait();

Ngày đăng: 29/03/2019, 21:17

TỪ KHÓA LIÊN QUAN

w