You are on page 1of 37

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH


KHOA KỸ THUẬT ĐIỆN TỬ 2
*****

TIỂU LUẬN MÔN HỌC


Đề tài:
MÔ HÌNH NHÀ THÔNG MINH CÔNG NGHỆ 4.0

Sinh viên thực hiện : ĐẶNG VĂN TRƯỜNG


Sinh vien B
SINH VIEN C

TP. Hồ Chí Minh, tháng 12 năm 2018


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH
KHOA KỸ THUẬT ĐIỆN TỬ 2
*****

TIỂU LUẬN MÔN HỌC


Đề tài:
MÔ HÌNH NHÀ THÔNG MINH CÔNG NGHỆ 4.0

Sinh viên thực hiện : ĐẶNG VĂN TRƯỜNG –


filter
Sinh vien B
SINH VIEN C

TP. Hồ Chí Minh, tháng 12 năm 2018


NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

TP. HCM, ngày ……tháng… .năm 2018


Giáo viên hướng dẫn
MỤC LỤC

LỜI NÓI ĐẦU.............................................................................................................. 1


CHƯƠNG I. CƠ SỞ LÝ THUYẾT...........................................................................2
1.1. Kit Wifi Node MCU 8266 CP 2102...................................................................2
1.1.1. Giới thiệu chung...........................................................................................2
1.1.2. Thông số kỹ thuật.........................................................................................2
1.1.3. Quản lý năng lượng NODE MCU................................................................4
1.2. Giới thiệu về Arduino IDE..................................................................................5
1.3. Phần mềm Blynk.................................................................................................8
1.4. DHT11..............................................................................................................11
1.4.1. Giới thiệu...................................................................................................11
1.4.2. Thông số....................................................................................................11
1.4.3. Cách điều khiển..........................................................................................12
1.4.4. Cảm biến khí ga MQ2................................................................................12
1.5. Cảm biến chuyển động HC-SR501...................................................................13
1.6. Tìm hiểu và xây dựng Web...............................................................................14
1.6.1. Lịch sử của World Wide Web.....................................................................14
1.6.2. Web Server.................................................................................................14
CHƯƠNG II. PHÂN TÍCH HỆ THỐNG................................................................15
2.1. Yêu cầu của hệ thống........................................................................................15
2.1.1. Mô tả hoạt động của hệ thống....................................................................15
2.1.2. Yêu cầu của hệ thống.................................................................................15
2.2. Thiết kế hệ thống..............................................................................................15
2.2.1. Các khối chức năng....................................................................................15
2.2.3. Thiết kế phần mềm.....................................................................................16
2.2.4. Thiết kế phần cứng.....................................................................................23
2.3. Kết quả đạt được...............................................................................................24
CHƯƠNG III. KẾT LUẬN.......................................................................................28
3.1. Kết luận............................................................................................................. 28
TÀI LIỆU THAM KHẢO.........................................................................................29
MỤC LỤC HÌNH

Hình 1.1: Sơ đồ chân của Node MCU CP2102..............................................................2


Hình 1.2: Dán link vào...................................................................................................3
Hình 1.3: Lựa chọn Board.............................................................................................4
Hình 1.4: Phần mềm Blynk............................................................................................9
Hình 1.5: Tạo Project cho Blynk.................................................................................10
Hình 1.6: Tạo giao diện cho Blynk..............................................................................10
Hình 1.7: Cấu hình chân..............................................................................................11
Hình 1.8: Cảm biến DHT11.........................................................................................11
Hình 1.9: Cảm biến MQ2............................................................................................12
Hình 1.10: Cảm biến chuyển động...............................................................................13

Hình 2. 1: Sơ đồ khối hoạt động hệ thống....................................................................16


Hình 2. 2 : Mạch điều khiển thiết bị qua wifi...............................................................16
Hình 2. 3 : Mạch báo cháy...........................................................................................17
Hình 2. 4 : Mạch chống trộm.......................................................................................17
Hình 2. 5: Lưu đồ thuật toán mạch đo..........................................................................19
Hình 2. 6: Chương trình con giải mã lệnh....................................................................20
Hình 2. 7: Sơ đồ nguyên lý..........................................................................................25
Hình 2. 8: Sơ đồ mạch in.............................................................................................26
Hình 2. 9: Websever....................................................................................................26
Hình 2. 10: Giao diện hiển trị trên Blynk.....................................................................27
Hình 2. 11: Mô hình nhà phía trong.............................................................................28
Hình 2. 12: Mô hình nhà thực tế..................................................................................29
Lời nói đầu
LỜI NÓI ĐẦU

ĐẶNG VĂN TRƯỜNG N14DCDT113 1


Chương I. Cơ sở lý thuyết
CHƯƠNG I. CƠ SỞ LÝ THUYẾT

1.1. Kit Wifi Node MCU 8266 CP 2102


1.1.1. Giới thiệu chung
Kit Wifi ESP8266 NodeMCU 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, điều này khiến việc sử dụng và lập trình các ứng
dụng trên ESP8266trở nên rất đơngiản.
Kit Wifi ESP8266 NodeMCU được 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.
Kit Wifi ESP8266 NodeMCU sử dụng chip nạp và giao tiếp UART mới và ổn
định nhất là CP2102 có khả năng tự nhận Driver trên tất cả các hệ điều hành Window
và Linux, đây là phiên bản nâng cấp từ các phiên bản sử dụng IC nạp CH340.Do đó
việc nạp code là hết sức đơn giản nhanh chóng và hiệu quả.
1.1.2. Thông số kỹ thuật

Hình 1.1: Sơ đồ chân của Node MCU CP2102


Kit ESP8266 được 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 tích hợp sẵn mạch nạp sử dụng chip CP2102 trên board. Bên trong
ESP8266 có sẵn một lõi vi xử lý nên có thể lập trình chỉ với con ESP8266 và sử dụng

ĐẶNG VĂN TRƯỜNG N14DCDT113 2


Chương I. Cơ sở lý thuyết
phần mềm Node MCU. Sơ đồ chân của Node MCU được mô tả như trong hình 1.1 với
các thông số như sau [1]:
 Chip: ESP8266
 WiFi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n
 Điện áp hoạt động: 3.3V
 Điện áp vào: 5V thông qua cổng USB
 Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire, trừ
chân D0)
 Số chân Analog Input: 1 (điện áp vào tối đa 3.3V)
 Bộ nhớ Flash: 4MB
 Giao tiếp: Cable Micro USB
 Hỗ trợ bảo mật: WPA/WPA2
 Tích hợp giao thức TCP/IP
 Lập trình trên các ngôn ngữ: C/C++, Micropython, NodeMCU 
Kit wifi Node MCU CP2102 có thể lập trình trên Arduino IDE như một arduino
thông thường do đó việc lập trình và nạp code cho nó trở nên đơn giản hơn.
Hướng dẫn:
 Mở chương trình Arduino và cửa sổ Preferences.
 Enter  http://arduino.esp8266.com/stable/package_esp8266com_index.json  vào Additio
nal Board Manager URLs. Ta có thể thêm nhiều URL, cách nhau bằng dấu
phẩy.

Hình 1.2: Dán link vào

ĐẶNG VĂN TRƯỜNG N14DCDT113 3


Chương I. Cơ sở lý thuyết
 Mở Boards Manager từ Tools > Board menu và tìm ESP8266 platform
 Chọn phiên bản bạn cần từ cửa sổ Drop-down.
 Click nút install.
 Đừng quên chọn loại ESP8266 board từ Tools > Board menu sau khi cài đặt.

Hình 1.2: Lựa chọn Board


1.1.3. Quản lý năng lượng NODE MCU
 NODE MCU được thiết kế cho điện thoại di động, điện tử lắp ráp và ứng
dụng InternetofThings với mục đích đạt được mức tiêu thụ điện năng thấp
nhất với sự kết hợp của nhiều kỹ thuật độc quyền. Kiến trúc tiết kiệm năng
lượng hoạt động trong 3 chế độ: chế độ hoạt động, chế độ ngủ và chế độ ngủ
sâu.
 Bằng cách sử dụng các kỹ thuật quản lý nguồn điện và kiểm soát chuyển đổi
giữa chế độ ngủ NODE MCU tiêu thụ chưa đầy 12uA ở chế độ ngủ nhỏ hơn
1.0mW so với (DTIM = 3) hoặc ít hơn 0.5mW (DTIM = 10) để giữ kết nối
với các điểm truy cập.
 Khi ở chế độ ngủ, chỉ có bộ phận hiệu chỉnh đồng hồ thời gian thực và cơ
quan giám sát vẫn hoạt động. Đồng hồ thời gian thực có thể được lập trình
để đánh thức NODE MCU ở bất kỳ khoảng thời gian cần thiết nào.
 NODE MCU có thể được lập trình để thức dậy khi một điều kiện chỉ định
được phát hiện. Tính năng tối thiểu thời gian báo thức này của NODE MCU
có thể được sử dụng bởi Tính năng tối thiểu thời gian báo thức của NODE

ĐẶNG VĂN TRƯỜNG N14DCDT113 4


Chương I. Cơ sở lý thuyết
MCU có thể được sử dụng bởi thiết bị di động SOC. Cho phép chúng vẫn ở
chế độ chờ, điện năng thấp cho đến khi Wifi là cần thiết.
 Để đáp ứng nhu cầu điện năng của thiết bị di động và điện tử lắp giáp,
ESP8266 có thể được lập trình để giảm công suất đầu ra của PA phù hợp với
các ứng dụng khác nhau. Bằng việc tắt khoảng tiêu thụ năng lượng.
 Các chip có thể được thiết lập ở các trạng thái sau:
 OFF: chân CHIP_PD ở mức thấp. Các RTC (đồng hồ thời gian) bị vô
hiệu hóa và mọi thanh ghi sẽ bị xóa.
 SLEEP DEEP: Các RTC được kích hoạt, khi đó các phần còn lại của
chip sẽ ở trạng thái off. RTC phục hồi bộ nhớ nội bộ để lưu trữ các thông
tin kết nối WiFi cơ bản.
 SLEEP: Chỉ RTC hoạt động. Các dao động tinh thể được vô hiệu hóa.
Bất kỳ sự kiện wakeup (MAC, host, RTC hẹn giờ, ngắt ngoài) sẽ đưa
chip vào trạng thái wakeup.
 Wakeup: Trong trạng thái này, hệ thống đitừ trạng thái ngủ sang trạng
thái PWR. Các dao động tinh thể và PLLs được kích hoạt.
 Trạng thái ON: Xung clock tốc độ cao hoạt động và gửi đến mỗi khối
được kích hoạtbằng cách đăng ký kiểm soát xung clock. Mức độ thấp
hơnclock gating được thực hiện ở cấp khối, bao gồm cả CPU, có thể đạt
được bằng cách sử dụng lệnh WAIT, trong khi hệ thống trên off.
1.2. Giới thiệu về Arduino IDE
Arduino IDE là một phần mềm để lập trình cho các kit Arduino khác nhau. Các
chương trình Arduino IDE được viết bằng C hoặc C++. Arduino IDE đi kèm với một
thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thể giúp các thao
tác input/output được dễ dàng hơn. Người dùng chỉ cần định nghĩa 2 hàm để tạo ra một
chương trình vòng thực thi là có thể chạy được:
 setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết
lập các cài đặt.
 loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch.
Nhiều ngôn ngữ lập trình hiện nay, nhất là các ngôn ngữ viết cho Windows,
thường có cung cấp thêm một số lượng rất lớn các thư viện bao gồm nhiều hàm để hỗ
trợ giao diện người dùng, và các thư viện có sẵn trong Arduino không đủ để đáp ứng
yêu cầu của người lập trình, vì thế chung ta cần phải nạp thêm thư viện cần thiết.
Trên giao diện IDE Arduino các bạn vào Sketch chọn Import Library, chọn
tiếp Add Library và tìm đến file nén vừa tạo (file.zip) [2].

ĐẶNG VĂN TRƯỜNG N14DCDT113 5


Chương I. Cơ sở lý thuyết
 Cấu trúc phần mềm các hàm cơ bản.
Cấu trúc chương trình viết cho Arduino gồm hai phần đầu tiên là hàm khởi tạo
setup() và vòng lặp loop().
Hàm setup() được gọi khi bắt đầu một bản thiết kế. Trong hàm sẽ khai báo các
biến khởi tạo, các chế độ của chân, bắt đầu sử dụng các thư viện. Hàm setup chỉ chạy
một lần sau mỗi lần bật nguồn hoặc reset mạch Arduino.
Ví dụ 1
------------------------------------------------------------------------------------------------
int buttonPin = 3;
void setup()
{
serial.begin(9600); // cấu hình cổng nối tiếp có tốc độ dữ liệu là
9600 bps
pinMode(buttonPin, INPUT); // đặt chân 3 là chân input
}
void loop()
{
//…
}
------------------------------------------------------------------------------------------------
Vòng lặp loop() sử dụng để lặp và những vòng lặp liên tiếp, chương trình có thể
thay đổi và đáp ứng. Sử dụng để điều khiển mạch Arduino.
Ví dụ 2:
------------------------------------------------------------------------------------------------
int button = 3; // ham setup se khoi tao cong serial va nut pin
void setup() {
beginSerial(9600);
pinMode(buttonPin, INPUT);
}
//vong lap loop kiem tra nut pin moi lan lap
//va gui du lieu ra cong serial neu an nut
void loop()
{
if(digitalRead(buttonPin) == HIGH)
serialWrite(‘H’);
else
serialWrite(‘L’);
delay(1000);
}

ĐẶNG VĂN TRƯỜNG N14DCDT113 6


Chương I. Cơ sở lý thuyết
------------------------------------------------------------------------------------------------
 Các hàm vào ra số
 Hàm pinMode(): Cấu hình một chân thành một chân vào hoặc một chân ra.
Cú pháp: pinMode(pin, mode);
Trong đó: pin là số của chân muốn đặt chế độ, mode là các chế độ INPUT,
INPUT_PULLIP, OUTPUT. Giá trị trả về là none.
Ví dụ 3:
------------------------------------------------------------------------------------------------
int ledPin = 13; //ket noi den Led voi chan so 13
void setup()
{
pinMode(ledPin, OUTPUT);// dat chan so lam chan ra
}
void loop()
{
digitalWrite(ledPin, HIGH); // den led sang
delay(1000); // doi trong 1s
digitalWrite(ledPin, LOW); //den led tat
delay(1000); //doi trong 1s
}
------------------------------------------------------------------------------------------------
 serial.println (giá trị): In giá trị để Monitor Serial trên máy tính.
 pinMode (pin, chế độ): Cấu hình cho một pin kỹ thuật số để đọc (đầu
vào) hoặc viết (đầu ra) một giá trị kỹ thuật số.
 digitalRead (pin): Đọc một giá trị kỹ thuật số (HIGH hoặc LOW) trên
một bộ pin cho đầu vào.
 digitalWrite (pin, giá trị): Ghi giá trị kỹ thuật số (HIGH hoặc LOW) với
một bộ pin cho đầu ra.
Ví dụ 4:
------------------------------------------------------------------------------------------------
int ledPin = 13;//ket noi den led voi chan so 13
int inPin = 7; //ket noi chan so 7 voi nut nhan
int val = 0;// bien doc cac gia tri cua nut nhan
void setup()
{
pinMode(ledPin, OUTPUT);// dat chan so 13 lam chan xuat
pinMode(inPin, INPUT);//dat chan so 7 lam chan nhap
}
void loop()

ĐẶNG VĂN TRƯỜNG N14DCDT113 7


Chương I. Cơ sở lý thuyết
{
val = digitalRead(inPin); //doc du lieu tu chan so 7
digitalWrite(ledPin, val); //den led se sang hoac tat theo nut nhan
}
------------------------------------------------------------------------------------------------
1.3. Phần mềm Blynk
Blynk là một ứng dụng iOS và Android để kiểm soát thiết bị Esp8266, Arduino,
Raspberry Pi và thiết bị khác trên Internet [3].
Blynk không bị ràng buộc với những phần cứng. Thay vào đó, nó hỗ trợ phần
cứng cho bạn lựa chọn. Cho dù Arduino hoặc Raspberry Pi của bạn muốn kết nối đến
Internet qua Wi-Fi, Ethernet hoặc chip ESP8266, Blynk sẽ giúp bạn đưa nó làm việc
và sẵn sàng kiểm soát trên Internet.
Những lý do nên sử dụng Blynk:
 Dễ sử dụng: việc cài đặt ứng dụng và đăng ký tài khoản trên điện thoại rất
đơn giản cho cả IOS và Android
Chức năng phong phú: Blynk hỗ trợ rất nhiều chức năng với giao diện đẹp
và thân thiện, bạn chỉ việc kéo thả đối tượng và sử dụng nó.
 Không phải lập trình ứng dụng: nếu bạn không có kiến thức về lập trình app
cho Android cũng như IOS thì Blynk là một ứng dụng tuyệt vời để giúp bạn
khám phá thế giới IOTs.
 Điều khiển, giám sát thiết bị ở bất kì đâu thông qua internet với khả năng
đồng bộ hóa trạng thái và thiết bị.
 Cách hoạt động
Blynk được thiết kế cho IoT, nó có thể điều khiển phần cứng từ xa, hiển thị dữ
liệu cảm biến, lưu trữ dữ liệu và có thể làm một vài điều khác khá thú vị. Blynk gồm 3
phần:
 Phần 1 - Blynk App: cho phép tạo các giao diện từ Widget có sẵn
 Phần 2 - Blynk Server: truyền tải thông tin giữa Smarthome và thiết bị.
Blynk Server có thể là 1 đám mây của Blynk hoặc có thể cài đặt trên máy cá
nhân. Có thể cài đặt trên Raspberry Pi.
 Phần 3 - Blynk Libraries: thư viện cung cấp kết nối phần cứng đến server,
xử lý các lệnh đến và đi.

ĐẶNG VĂN TRƯỜNG N14DCDT113 8


Chương I. Cơ sở lý thuyết

Hình 1.3: Phần mềm Blynk


Để Sử dụng blynk trên arduino IDE thì ta cần cài đặt thư viện của nó bằng cách
vào Manager Libraries bằng cách tìm kiếm từ khóa Blynk và cài đặt.
Để cài đặt blynk trên smart phone ta chỉ cần vào app store và gõ blynk, tải về
vào tạo một tài khoản là ta có thể sử dụng nó, thao tác trên blynk khá đơn giản .
Cấu hình app Blynk theo các bước sau: 
 Các bạn có thể tạo tài khoản hoặc dùng tài khoản Facebook.
 Tạo một project, đây được hiểu giống như là một ứng dụng.
 Điền tên Project và chọn Board phần cứng (Các bạn có thể chọn NodeMCU
hoặc ESP8266).

ĐẶNG VĂN TRƯỜNG N14DCDT113 9


Chương I. Cơ sở lý thuyết

Hình 1.4: Tạo Project cho Blynk

Mỗi project, Blynk sẽ gửi cho bạn 1 mã Auth Token để nhập vào trong
code của Board mạch điều khiển NodeMCU, Các bạn có thể lựa chọn nhiều
chức năng như nút bấm, hẹn giờ, LCD… để đưa vào project của mình.
Mỗi đối tượng các bạn chọn sẽ tốn energy (1 đơn vị giới hạn khi bạn dùng
server miễn phí). 

Hình 1.5: Tạo giao diện cho Blynk

ĐẶNG VĂN TRƯỜNG N14DCDT113 10


Chương I. Cơ sở lý thuyết
Sau khi chọn xong đối tượng, các bạn nhấp vào để cấu hình chân, các mức
logic… Các cấu hình này sẽ tác động đến board phần cứng. Ví dụ nhất nút thì chân
gp16 sẽ chuyển từ trạng thái logic 1 sang logic 0:

Hình 1.6: Cấu hình chân


1.4. DHT11
1.4.1. Giới thiệu
DHT11 Là cảm biến rất thông dụng hiện nay vì chi phí rẻ và rất dễ lấy dữ liệu
thông qua giao tiếp 1-wire (giao tiếp digital 1-wire truyền dữ liệu duy nhất). Cảm biến
được tích hợp bộ tiền xử lý tín hiệu giúp dữ liệu nhận về được chính xác mà không cần
phải qua bất kỳ tính toán nào.
DHT11 có tích hợp thư viện sẵn trong Arduino IDE nên việc sử dụng nó để lập
trình là khá đơn giản [4].
1.4.2. Thông số

Hình 1.7: Cảm biến DHT11

ĐẶNG VĂN TRƯỜNG N14DCDT113 11


Chương I. Cơ sở lý thuyết
 Điện áp hoạt động: 3 --> 5V
 Dải nhiệt độ đo: 0 -> 50°C với độ chính xác là ±2°C
 Dải độ ẩm đo: 20 -> 80% với độ chính xác là 5%
 Kích thước: 15.5mm x 12mm x 5.5mm
 Tần số lấy mẫu: 1Hz , nghĩa là 1 giây DHT11 lấy mẫu một lần.
 4 chân: VCC( cực (+) nguồn ), DATA(chân tín hiệu), NC, GND(cực (-) nguồn).
1.4.3. Cách điều khiển
DHT11 gửi và nhận dữ liệu với một dây tín hiệu DATA, với chuẩn dữ liệu
truyền 1 dây này, chúng ta phải đảm bảo sao cho ở chế độ chờ (idle) dây DATA có giá
trị ở mức cao, nên trong mạch sử dụng DHT11, dây DATA phải được mắc với một trở
kéo bên ngoài (thông thường giá trị là 4.7kΩ) [5].
Dữ liệu truyền về của DHT11 gồm 40bit dữ liệu theo thứ tự: 8 bit biểu thị phần
nguyên của độ ẩm + 8 bit biểu thị phần thập phân của độ ẩm + 8 bit biểu thị phần
nguyên của nhiệt độ + 8 bit biểu thị phần thập phân của nhiệt độ + 8 bit check sum.
Ví dụ: ta nhận được 40 bit dữ liệu như sau:
0011 0101     0000 0000     0001 1000     0000 0000     0100 1101
Tính toán: 
8 bit checksum: 0011 0101 + 0000 0000 + 0001 1000 + 0000 0000 = 0100 1101
Độ ẩm: 0011 0101 = 35H = 53% (ở đây do phần thập phân có giá trị 0000
0000, nên ta bỏ qua không tính phần thập phân)
Nhiệt độ: 0001 1000 = 18H = 24°C (ở đây do phần thập phân có giá trị 0000
0000, nên ta bỏ qua không tính phần thập phân)
1.4.4. Cảm biến khí ga MQ2

Hình 1.8: Cảm biến MQ2

ĐẶNG VĂN TRƯỜNG N14DCDT113 12


Chương I. Cơ sở lý thuyết
Cảm biến khí ga MQ2 là một trong những loại cảm biến được sử dụng để nhận
biết: LPG, i-butan, Propane, Methane, Alcohol, Hydrogen, Smoke và khí ga. Được
thiết kế với độ nhạy cao, thời gian đáp ứng nhanh. Giá trị đọc được từ cảm biến sẽ
được đọc về từ chân Analog của vi điều khiển.
Thông số kỹ thuật:
 Nguồn hoạt động: 5VDC
 Dòng: 150mA
 Tính hiệu tương tự (analog)
 Hoạt động trong thời gian dài, ổn định
1.5. Cảm biến chuyển động HC-SR501

Hình 1.9: Cảm biến chuyển động


Cảm biến chuyển động HC-SR501 là cảm biến có khả năng nhận biết được một
vật di chuyển vào vùng mà cảm biến hoạt động. Module cảm biến có thể điều chỉnh
được độ nhạy nhờ 2 biến trở là Sx biến trở điều chỉnh độ nhạy của cảm biến, Tx biến
trở điều chỉnh thời gian đóng của cảm biến, giúp cho cảm biến hoạt động phù hợp với
những yêu cầu của người dùng.
 Thông số kỹ thuật :
 Sử dụng điện áp: 4.5V - 20V DC
 Điện áp đầu ra: 0V - 3.3V DC
 Có 2 chế độ hoạt động:
 Thời gian trễ: điều chỉnh trong khoảng 0.5-200S
 Góc quét <100 độ

ĐẶNG VĂN TRƯỜNG N14DCDT113 13


Chương I. Cơ sở lý thuyết
 Sử dụng cảm biến: 500BP
 Khoảng các phát hiện: 2m -4.5m
 Kích thước PCB:32mm x 24mm
1.6. Tìm hiểu và xây dựng Web
1.6.1. Lịch sử của World Wide Web
Web được sinh ra bởi Internet, và nó cho thấy khả năng tự trị và giới hạn của
kiến trúc Internet. Ngày nay, các trình duyệt Web có khả năng truy cập vào công nghệ
Internet khác nhau như: Email, www... Nhưng Web và Internet không chỉ là một
ngành kỹ thuật mà đó là môi trường để con người liên lạc, buôn bán và tác động qua
lại nhau trong cùng một môi trường văn hóa.
Năm 1926, Paul Baran, mô tả trên giáy lời giải một vấn đề đau đầu các nhà
quân sự lúc bấy giờ, tựa: “Liên lạc phân tán qua mạng”. Anh ta đưa ra một hệ thống
máy tính rộng khắp đất nước kết nối lại với nhau sử dụng hệ thống mạng không tập
trung (dêcntralized) do đó nếu một hay nhiều node mạng chính bị phá hủy thì các node
còn lại vẫn tự động điều chỉnh các kết nối để duy trì việc liên lạc.
Do mạng là không tập trung, nên ta có thể thêm vào một máy tính thông qua
đường dây điện thoại, một thiết bị phần cứng, và một số phần mềm NCP (Netword
Control Protocol), ví dụ như ARPAnet.
Một số ứng dụng chính được phát triển đầu tiên trên ARPAnet là thư điện tử
(Electronic mail). Ngày nay, email là một phần không thể thiếu được của Net và nó
được thiết kế sãn bên trong các trình duyệt Web (ví dụ netscape) do đó một chương
trình đơn lẻ để xem email là không cần thiết.
1.6.2. Web Server
Web Server là một hay nhiều máy tính mà tại đó chứa đựng nguồn của trang
web, máy tính đó còn phải được cài các chương trình phục vụ web. Chính những
chương trình này sẽ thiết lập các kết nối để người trình duyệt web có thể truy cập được
vào trang web (ví dụ như IIS của Microsoft).
Để một tình duyệt web có thể truy cập vào tài nguyên của web server thì chúng
phải dùng chung một giao thức. Có nhiều loại giao thức cho phép hai máy tính liên lạc
với nhau, tuy nhiên giao thức TCP/IP là giao thưc phổ biến nhất, được sử dụng hầu hết
trong các mạng máy tính LAN, WAN,... và ngay cả mạng toàn cầu Internet cũng sử
dụng giao thức này.
TCP/IP được phát triển là một dạng rút gọn của mô hình OSI.

ĐẶNG VĂN TRƯỜNG N14DCDT113 14


Chương II. Phân tích hệ thống
CHƯƠNG II. PHÂN TÍCH HỆ THỐNG
2.1. Yêu cầu của hệ thống
2.1.1. Mô tả hoạt động của hệ thống
Hệ thống giao tiếp với người dùng theo hai cách:
 Qua smartphone bằng phần mềm blynk: Node MCU sẽ kết nối vào một
wifi và đồng thời có nhiệm vụ đọc dữ liệu từ các cảm biến và truyền về
WEB sever của blynk, người dùng giao tiếp với hệ thống thông qua blynk,
khi có chỉ thị điều khiển thì blynk gửi về cho Node MCU thực thi chỉ thị.
 Qua websever: Node MCU đóng vai trò là một là station kết nối vào một
access point (kết nối tới một wifi) có nhiệm vụ truyền và nhận thông tin từ
websever, Node MCU nhận dư liệu từ cảm biến truyền lên websever. Khi có
chỉ thị bật tắt từ websever thì nhân thông tin và trực tiếp chỉ thi thực thi
lệnh. Với phương thức này thì chỉ thực hiện được với nhưng IP cùng lớp
mạng (phải cùng mạng).
2.1.2. Yêu cầu của hệ thống
 Trên phần mềm blynk phải hiển thị các nút bấm on/off để giao tiếp với
người dung, có hiển thị các giá trị như độ âm, nhiệt độ, khí gas, có người
hay không có người.
 Trên websever phải hiển thị cái nút on/off để bật tắt, có hiển thị thông tin:
nhiệt độ, độ ẩm, khí gas, có người hay không có người.
 Các cơ cấu chấp hành là các relay phải thực thi chỉ thị khi có chỉ thị gửi đến.
 Hoạt động của hệ thống phải chính xác.
2.2. Thiết kế hệ thống
2.2.1. Các khối chức năng
Các khối chức năng trong hệ thống hoạt động như mô tả trong hình 2.1 và cụ
thể phần thực thi của các khối là:
 Khối nguồn: cung cấp nguồn cho toàn hệ thống
 Khối xử lý và kết nối: thực hiện kết nối với Webserver và truyền nhận dữ
liệu với Webserver. Ngoài ra, khối này còn đóng vai trò như một vi xử lý.
 Khối Server: có chức năng nhận dữ liệu và hiển trị dữ liệu. Bên cạnh đó,
lệnh gửi về khối xử lý cũng được phát bởi khối này.
 Khối chấp hành: nhận các yêu cầu của khối xử lý và thực thi mệnh lệnh.

ĐẶNG VĂN TRƯỜNG N14DCDT113 15


Chương II. Phân tích hệ thống

Hình 2. 1: Sơ đồ khối hoạt động hệ thống


2.2.2. Nguyên lý hoạt động
2.2.2.1. Mạch điều khiển các thiết bị trong nhà
Trên websever hoặc là blynk sẽ có các nút nhất bật tắt cho các thiết bị, khi nhấn
on thì từ blynk gửi tiến hiệu lên websever blynk và từ websever sẽ truyền tín hiệu về
cho Node MCU. Tiếp tục Node MCU sẽ nhận l ệnh và chỉ thị cho relay chấp hành
bất bóng đèn lên, tương tự đối với tắt.

Hình 2. 2 : Mạch điều khiển thiết bị qua wifi


2.2.2.2. Mạch báo cháy:

ĐẶNG VĂN TRƯỜNG N14DCDT113 16


Chương II. Phân tích hệ thống
Cảm biến MQ2 có chức năng đo nồng độ khí gas trong môi trường và truyên tín
hiệu về Node MCU. Từ Node MCU gửi dữ liệu lên websever và hiện thị nồng độ khí
gas trên phần mềm blynk cũng như websever. Nếu nồng độ khí gas vượt ngưỡng thì
node mcu sẽ điều khiển cơ cấu chấp hành là coi reo lên cảnh báo cháy.

Hình 2. 3 : Mạch báo cháy


2.2.2.3. Mạch chống trộm:
Cảm biến chuyển động gửi tín hiệu về node mcu với hai mức cao và thấp, node
mcu gửi tín hiệu lên websever và blynk để hiển thị lên trên phần mềm blynk cũng như
websever, nếu Tín hiệu báo HIGH có nghĩa là mức cao, khi đó có vật xuất hiện, đồng
thời khi đó node MCU cũng sẽ chỉ thị cho cơ cấu chấp hành báo còi tín hiệu.

Hình 2. 4 : Mạch chống trộm

ĐẶNG VĂN TRƯỜNG N14DCDT113 17


Chương II. Phân tích hệ thống

2.2.3. Thiết kế phần mềm


2.2.3.1. Lưu đồ thuật toán mạch đo
Bắt đầu chúng ta thiết lập các chân in/ out, timer, khởi tạo chân cho các cảm
biến, tiếp theo là cấu hình cho Node MCU để kết nối với wifi, khi đã kết nối được tới
wifi thì thực hiện lấy địa chỉ IP. Địa chỉ IP này để người dùng đang nhập vào
websever. Tiếp theo Node MCU sẽ nhận tín hiệu điều khiển từ websever, nếu lệnh
đúng thì giải mã và chỉ thị thực thi lệnh ,nếu sai thì sét nếu timer đủ 4 s thì đọc nhiệt
độ gửi lên sever còn nếu timer chưa đủ 4s thì nhận tín hiệu điều khiển lại. Có nghĩa là
cứ sau 4s thì nhiệt độ, độ ẩm lại được cập nhật lên 1 lần. Thuật toán mạch đo được thể
hiện qua lưu đồ ở hình 2.2.

ĐẶNG VĂN TRƯỜNG N14DCDT113 18


Chương II. Phân tích hệ thống

Hình 2. 5: Lưu đồ thuật toán mạch đo


2.2.3.2. Chương trình con giải mã lệnh
Chương trình con cho giải mã lệnh được mô tả như hình 2.2. Quá trình giải mã
lệnh được bắt đầu với việc NHẬN tín hiệu điều khiển, từ đó sẽ mở cổng kết nối (ở đây
là cổng số 80) để đọc dữ liệu gửi về từ sever, khối xử lý (node MCU) sẽ nhận tín hiệu
và đảo trạng thái chân điều khiển, đóng cổng kết nối để kết thúc quá trình.

ĐẶNG VĂN TRƯỜNG N14DCDT113 19


Chương II. Phân tích hệ thống

Hình 2. 6: Chương trình con giải mã lệnh


2.2.3.3. CODE của hệ thống
-----------------------------------------------------------------------------------------------
#include <ESP8266WiFi.h>
#include "DHT.h"
#define BLYNK_PRINT Serial
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>

// Pin
#define DHTPIN D5
#define den D7
#define quat D1
#define GAS A0
// Su dung cam bien DHT11
#define DHTTYPE DHT11

// Thiet lap DHT

ĐẶNG VĂN TRƯỜNG N14DCDT113 20


Chương II. Phân tích hệ thống
DHT dht(DHTPIN, DHTTYPE);
char auth[] = "cc61900784154f54b05ea96e07c2dc1f"; //Token cua blynk
// Thong so WiFi nha ban
const char* ssid = "ALO TEA";
const char* pass = "09091994";
SimpleTimer timer; // Su dung timer

// Tao server
WiFiServer server(80);
void sendSensor()
{
float h = dht.readHumidity(); //Doc gia tri do am
float t = dht.readTemperature(); //Doc gia tri nhiet do
float g = analogRead(GAS) ;
float nguoi = digitalRead(D6);

// Gan du lieu vao bien virtual de hien thi len blynk


// Chi nen gan 10 bien tro xuong
delay(10);
Blynk.virtualWrite(A0, T);
Blynk.virtualWrite(V0, h);
Blynk.virtualWrite(V1, t);
}

void setup() {

// Mo Serial
Serial.begin(115200);
delay(10);
Blynk.begin(auth, ssid, pass); // Ket noi voi blynk
dht.begin(); // Khoi tao DHT

timer.setInterval(4000L, sendSensor); //4s doc cam bien 1 lan

// Khoi tao DHT


dht.begin();
pinMode(D7, OUTPUT);
digitalWrite(D0, 0);
pinMode(D1, OUTPUT);
digitalWrite(D1, 0);

// Ket noi toi mang WiFi

ĐẶNG VĂN TRƯỜNG N14DCDT113 21


Chương II. Phân tích hệ thống
Serial.println();
Serial.println();
Serial.print("Ket noi toi mang ");
Serial.println(ssid);

WiFi.begin(ssid, pass);

while (WiFi.status() != WL_CONNECTED) {


delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Da ket noi WiFi");

// Khoi dong server


server.begin();
Serial.println("Khoi dong Server");

// In ra dia chi IP
Serial.println(WiFi.localIP());
}

void loop() {
float g = analogRead(GAS) ;
float nguoi = digitalRead(D6);
if (g>300){
digitalWrite(D8, HIGH);
}
if (nguoi == HIGH){
digitalWrite(D3,HIGH);
}

Blynk.run(); // Chay Blynk


timer.run(); // Chay SimpleTimer

// Kiem tra khi co client ket noi


WiFiClient client = server.available();
if (!client) {
return;
}

ĐẶNG VĂN TRƯỜNG N14DCDT113 22


Chương II. Phân tích hệ thống
// Doi client gui ket noi
Serial.println("Co mot client moi ket noi xem du lieu");
while(!client.available()){
delay(1);
}

// Doc do am
float h = dht.readHumidity();
// Doc nhiet do o do C
float t = dht.readTemperature();
// Doc yeu cau tu client
String req = client.readStringUntil('\r');
Serial.println(req);
client.flush();

// Kiem tra yeu cau la gi


if (req.indexOf("/on") != -1){
digitalWrite(D0, 1);
}
else if (req.indexOf("/off") != -1) {
digitalWrite(D0, 0);
}
if (req.indexOf("/on1") != -1){
digitalWrite(D1, 1);
}
else if (req.indexOf("/off1") != -1) {
digitalWrite(D1, 0);
}

// Chuan bi tao web de phan hoi


String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
s += "<head>";
s += "<meta name=\"viewport\" content=\"width=device-width, initial-
scale=1\">";
s += "<meta http-equiv=\"refresh\" content=\"60\" />";
s += "<script src=\"https://code.jquery.com/jquery-2.1.3.min.js\"></script>";
s += "<link rel=\"stylesheet\"
href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css\">";
s += "<style>body{font-size: 24px;} .voffset {margin-top: 30px;}</style>";
s += "</head>";

s += "<div class=\"container\">";

ĐẶNG VĂN TRƯỜNG N14DCDT113 23


Chương II. Phân tích hệ thống
s += "<h1>Dieu khien den</h1>";
s += "<div class=\"row\">";
s += "<div class=\"col-md-2\"><input class=\"btn btn-block btn-lg btn-
primary\" type=\"button\" value=\"On\" onclick=\"on()\"></div>";
s += "<div class=\"col-md-2\"><input class=\"btn btn-block btn-lg btn-
danger\" type=\"button\" value=\"Off\" onclick=\"off()\"></div>";
s += "</div></div>";
s += "<script>function on() {$.get(\"/on\");}</script>";
s += "<script>function off() {$.get(\"/off\");}</script>";

s += "<div class=\"container\">";
s += "<h1>Dieu khien quat</h1>";
s += "<div class=\"row\">";
s += "<div class=\"col-md-2\"><input class=\"btn btn-block btn-lg btn-
primary\" type=\"button\" value=\"On1\" onclick=\"on1()\"></div>";
s += "<div class=\"col-md-2\"><input class=\"btn btn-block btn-lg btn-
danger\" type=\"button\" value=\"Off1\" onclick=\"off1()\"></div>";
s += "</div></div>";
s += "<script>function on1() {$.get(\"/on1\");}</script>";
s += "<script>function off1() {$.get(\"/off1\");}</script>";

s += "<div class=\"container\">";
s += "<h1>Theo doi nhiet do va do am</h1>";
s += "<div class=\"row voffset\">";
s += "<div class=\"col-md-3\">Nhiet do: </div><div class=\"col-md-3\">" +
String(t) + "</div>";
s += "<div class=\"col-md-3\">Do am: </div><div class=\"col-md-3\">" +
String(h) + "</div>";
s += "</div>";

s += "<div class=\"container\">";
s += "<h1>Theo doi khi Gas va canh bao trom</h1>";
s += "<div class=\"row voffset\">";
s += "<div class=\"col-md-3\">GAS: </div><div class=\"col-md-3\">" +
String(g) + "</div>";
s += "<div class=\"col-md-3\">Nguoi: </div><div class=\"col-md-3\">" +
String(nguoi) + "</div>";
s += "</div>";

// Gui phan hoi toi client (o day la giao dien web)


client.print(s);
delay(1);

ĐẶNG VĂN TRƯỜNG N14DCDT113 24


Chương II. Phân tích hệ thống
Serial.println("Client da thoat");

// Sau khi nhan duoc thong tin thi se tu dong ngat ket noi
}
------------------------------------------------------------------------------------------------
2.2.4. Thiết kế phần cứng
2.2.4.1. Sơ đồ nguyên lý
Khối chấp hành (khối relay)

Hình 2. 7: Sơ đồ nguyên lý

2.2.4.2. Sơ đồ mạch in
Khối chấp hành

ĐẶNG VĂN TRƯỜNG N14DCDT113 25


Chương II. Phân tích hệ thống

Hình 2. 8: Sơ đồ mạch in
2.3. Kết quả đạt được
Đề tài thực hiện được một số kết quả tiêu biểu như sau:

- Thiết kế được hệ thống báo cháy và chống trộm giúp người dung có thể
quan sát các chỉ số của nhà mình.
- Kết nối thành công mạch với server, demo điều khiển thiết bị thông qua
wifi.
- Thiết kế thành công mạch đo nhiệt độ, độ ẩm sử dụng cảm biến DHT11, và
truyền lên server cũng như Blynk.
- Lập trình giao diện web để đo lường, hiển thị thống kê các thông số nhiệt
độ, độ ẩm và điều khiển cơ cấu chấp hành
Bên cạnh đó, việc thực hiện xây dựng Webserver và hiển thị hình ảnh lên Blynk
như mô tả ở hình 2.6 và 2.7 bên dưới.

Hình 2. 9: Websever

ĐẶNG VĂN TRƯỜNG N14DCDT113 26


Chương II. Phân tích hệ thống

Hình 2. 10: Giao diện hiển trị trên Blynk


Thiết kế phần cứng cho việc mô phỏng nhà thông minh như hình 2.8 và 2.9.

ĐẶNG VĂN TRƯỜNG N14DCDT113 27


Chương II. Phân tích hệ thống

Hình 2. 11: Mô hình nhà phía trong

ĐẶNG VĂN TRƯỜNG N14DCDT113 28


Chương II. Phân tích hệ thống

Hình 2. 12: Mô hình nhà thực tế


 Đánh giá những kết quả đã đạt được
- Đo và hiển thị chính xác nhiệt độ, độ ẩm môi trường lên Smartphone và
upload dữ liệu lên server ổn định. Kết quả đo là khá chính xác với sai số
nằm trong phạm vi cho phép. Mạch hoạt động ổn định.
- Tuy nhiên, một số mặt hạn chế đó là trang web chưa tự động cập nhật lên
giá trị mới phải refresh lại trang để cập nhật dữ liệu mới.
- Với kết quả bước đầu là kết nối truyền dữ liệu thành công qua mạng wifi và
thực hiện đo lường và điều khiển một số thông số môi trường, điều khiển cơ
cấu chấp hành như là quạt, đèn ... với những kết quả demo như vậy đã
khẳng định khả năng phát triển của đề tài.

ĐẶNG VĂN TRƯỜNG N14DCDT113 29


Chương III. Kết luận

CHƯƠNG III. KẾT LUẬN

3.1. Kết luận


Việc thiết kế Nhà thông minh có ý nghĩa rất to lớn, có thể ứng dụng trong nhiều
lĩnh vực của đời sống xã hội và trong công nghiệp. Ngoài ra, module wifi kết hợp với
Blynk cũng mở ra rất nhiều hướng ứng dụng khác, phục vụ tốt cho việc học tập và
nghiên cứu của sinh viên. Việc xây dựng mô hình nhà thông minh này cũng liên quan
đến nhiều nền tảng kiến thức từ những kiến thức lý thuyết cho đến những kiến thức
thực tiễn.
 Hướng phát triển của đề tài
Trong thời gian tới, em sẽ tiếp tục nghiên cứu phát triển đề tài theo hướng sau:
- Tăng tính chính xác và ổn định hơn nữa.
- Tích hợp nhiều cảm biến hơn nữa phù hợp với nhiều đối tượng người dùng
để phục vụ cho cuộc sống và phục vụ trong công nghiệp thay thế các chuẩn
ethernet, RS485...
- Phát triển các ứng dụng theo dõi sức khỏe bệnh nhân từ xa.

ĐẶNG VĂN TRƯỜNG N14DCDT113 30


Tài liệu tham khảo
TÀI LIỆU THAM KHẢO

[1] ESP8266EX Datasheet, Version 6.0, Espressif Systems


[2] https://github.com/itead/ITEADLIB_Arduino_WeeESP8266
[3] https://blynk.vn
[4] https://github.com/adafruit/DHT-sensor-library
[5] https://drive.google.com/open?id=0B3hx0mu4KssVQ1NwbUpsYVQxaVU
[6] https://quantrimang.com
[7] http://arduino.vn

ĐẶNG VĂN TRƯỜNG N14DCDT113 31

You might also like