(123doc) - Thiet-Ke-Nha-Thong-Minh-Su-Dung-Arduino-Co-Code

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 37

Trang 1/37

THIẾT KẾ NHÀ THÔNG MINH SỬ


DỤNG ARDUINO

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


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…

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


Trang 3/37

1.2 Internet Of Things:

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


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


Trang 5/37

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT

2.1 Phần cứng:

2.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 khiển ATmega328 họ 8 bit


5V DC (chỉ được cấp qua cổng
Điện áp hoạt động
USB)
Tần số hoạt động 16 MHz
Dòng tiêu thụ Khoảng 300 mA
Đ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/O 30mA

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


Trang 6/37

Dòng ra tối đa (5V) 500mA


Dòng ra tối đa (3.3V) 50mA
32 KB (Atmega328 với 0.5KB
Bộ nhớ dùng với 0.5KB dùng bởi
boothloader
SRAM 2KB (Atmega328)
EEPROM 1 KB (Atmega328)

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


Trang 7/37

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


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


Trang 9/37

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


Trang 10/37

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

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


Trang 11/37

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

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

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

2.3 Phần mềm Node Red:

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

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


Trang 12/37

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

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


Trang 13/37

2.3.2 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: 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

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


Trang 14/37

2.3.3 Cài đặt Node Red:

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


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.

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


Trang 16/37

2.3.4 Cài đặt các ứng dụng cần thiết cho Node Red:

Để 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 node-
red-node-serialport” và bấm Enter.

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

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


Trang 17/37

- 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
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: "*"
}]
},

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


Trang 18/37

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

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


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

2.3.5 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

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


Trang 20/37

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

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


Trang 21/37

CHƯƠNG 3. XÂY DỰNG HỆ THỐNG NHÀ THÔNG MINH

3.1 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


Trang 22/37

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

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

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


Trang 23/37

3.3 Lưu đồ giải thuật:

Hình 3-27. Lưu đồ giải thuật điều khiển, giám sát nhà thông minh

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


Trang 24/37

3.4 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ử
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

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


Trang 25/37

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

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


Trang 26/37

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

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

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


Trang 27/37

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

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

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


Trang 28/37

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

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


Trang 29/37

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.

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


Trang 30/37

TÀI LIỆU THAM KHẢO

[1] qweqwe
[2] qwqeeqwe

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


Trang 31/37

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 A0
int inbyte = 0;
int val;
bool d1 = false;
bool d2 = false;
bool d3 = false;
bool d4 = false;

#include <VarSpeedServo.h>
VarSpeedServo myservo1;
VarSpeedServo myservo2;
VarSpeedServo myservo3;
VarSpeedServo myservo4;

int inputPin = 11;


int chuyendong = 0;
int pirState = LOW;

void setup() {
//Thiết lập cho đèn
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);

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


Trang 32/37

pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
digitalWrite(relay1,1);
digitalWrite(relay2,1);
digitalWrite(relay3,1);
digitalWrite(relay4,1);
pinMode(Button_analogPin, INPUT);
//Thiết lập cho động cơ Servo
myservo1.attach(3);
myservo2.attach(5);
myservo3.attach(6);
myservo4.attach(9);
//Cảm biến
pinMode(inputPin, INPUT);
Serial.begin(9600);
}

void loop() {
if(Serial.available())
{
inbyte = Serial.read();
}
nhannutbam();
mocua();
inbyte = 0;
int gas = analogRead(A1);
Serial.print("gas,");
Serial.println(gas);
delay(1000);

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


Trang 33/37

//Phần nút bấm


//Giới hạn điện áp của các nút bấm nối vào chân analog:
//nút 1 < 60
//nút 2 > 60, < 250
//nút 3 > 250, < 400
//nút 4 > 400, < 800
void nhannutbam() {
val=analogRead(Button_analogPin);

//Đèn 1
if(inbyte == 'A' || (val < 90 &&!d1))
{
digitalWrite(relay1,0);
delay(500); //chờ buông tay.
relay1,0;
d1 = true;
Serial.println("A");
}
else if(inbyte == 'a' || (val < 90 && d1))
{
digitalWrite(relay1,1);
delay(500); //chờ buông tay.
relay1,1;
d1 = false;
Serial.println("a");
}
//Đèn 2

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


Trang 34/37

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


{
digitalWrite(relay2,0);
delay(500); //chờ buông tay.
relay2,0;
d2 = true;
Serial.println("B");
}
else if(inbyte == 'b' || (val > 90 && val < 250 && d2))
{
digitalWrite(relay2,1);
delay(500); //chờ buông tay.
relay2,1;
d2 = false;
Serial.println("b");
}
//Đèn 3
if(inbyte == 'C' || (val > 250 && val < 400 &&!d3))
{
digitalWrite(relay3,0);
delay(500); //chờ buông tay.
relay3,0;
d3 = true;
Serial.println("C");
}
else if(inbyte == 'c' || (val > 250 && val < 400 && d3))
{
digitalWrite(relay3,1);
delay(500); //chờ buông tay.

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


Trang 35/37

relay3,1;
d3 = false;
Serial.println("c");
}
//Đèn 4
if(inbyte == 'D' || (val > 400 && val < 800 &&!d4))
{
digitalWrite(relay4,0);
delay(500); //chờ buông tay.
relay4,0;
d4 = true;
Serial.println("D");
}
else if(inbyte == 'd' || (val > 400 && val < 800 && d4))
{
digitalWrite(relay4,1);
delay(500); //chờ buông tay.
relay4,1;
d4 = false;
Serial.println("d");
}
}

//Phần mở cửa
void mocua() {
int LEF = 0;
int RIG = 70;
int SPEED1 = 40;
//servo 1

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


Trang 36/37

if(inbyte == 'E')
{
myservo1.write(RIG, SPEED1);
myservo1.wait();
}
if(inbyte == 'e')
{
myservo1.write(LEF, SPEED1);
myservo1.wait();
}

//servo 2 & 3
if(inbyte == 'F')
{
myservo2.write(LEF, SPEED1);
myservo3.write(RIG, SPEED1);
myservo2.wait();
myservo3.wait();
}
if(inbyte == 'f')
{
myservo2.write(RIG, SPEED1);
myservo3.write(LEF, SPEED1);
myservo2.wait();
myservo3.wait();
}

//servo 4
if(inbyte == 'G')

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


Trang 37/37

{
myservo4.write(LEF, SPEED1);
myservo4.wait();
}
if(inbyte == 'g')
{
myservo4.write(RIG, SPEED1);
myservo4.wait();
}
}

void pir()
{
chuyendong = digitalRead(inputPin); // đọc giá trị đầu vào.
delay(1000);
if (chuyendong == HIGH) // nếu giá trị ở mức cao.(1)
{
Serial.println("Z");
delay(3000);
}
else
{
Serial.println("z");
delay(1000);
}
}

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

You might also like