Professional Documents
Culture Documents
Thitkbiukhinthitbintxathngquamnginternettrnphnmminthoithngminh 230828082448 dd28f501
Thitkbiukhinthitbintxathngquamnginternettrnphnmminthoithngminh 230828082448 dd28f501
Luận văn được bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn
Điện – Điện tử khoa Kỹ Thuật Công Nghệ, Trường Đại học Tây Đô vào ngày
25 tháng 5 năm 2019
Mã số đề tài:
Luận văn đại học Thiết kế bộ điều khiển thiết bị điện từ xa thông qua mạng internet
trên phần mềm điện thoại thông minh do sinh viên Trần Võ Bão, mã số sinh viên:
15D520201001, thực hiện và báo cáo đã được chỉnh sửa theo góp ý và được Hội đồng chấm
luận văn đại học thông qua.
_____________________________ _____________________________
Th.s Đỗ Chí Tâm Ts Trần Văn Tấn
Giảng viên hướng dẫn Phản biện
____________________________
Đặng Kim Sản
Thư ký
_______________________________
Nguyễn Vĩnh Thành
Chủ tịch Hội đồng
KHOA KỸ THUẬT – CÔNG NGHỆ
BỘ MÔN ĐIỆN – ĐIỆN TỬ
Sinh viên thực hiện: Trần Võ Bão Lớp: Đại học Kỹ thuật Điện - Điện Tử 10
Mã số sinh viên: 15D520201001 Niên khóa: 2015 – 2019
Đã thực hiện đề tài luận văn tốt nghiệp” Thiết kế bộ điều khiển thiết bị điện từ xa
thông qua mạng Internet trên phần mềm điện thoại thông minh”
Dưới sự hướng dẫn của Th.s Đỗ Chí Tâm
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
…………………………………………………………………………………....
Cần Thơ, ngày tháng năm 2019
XÁC NHẬN CỦA
GIẢNG VIÊN HƯỚNG DẪN
Được sự phân công của quý thầy cô khoa Kỹ Thuật - Công Nghệ, trường Đại Học
Tây Đô, sau gần ba tháng thực hiện em đã hoàn thành luận văn tốt nghiệp với đề tài
“Thiết kế bộ điều khiển thiết bị điện từ xa thông qua mạng Internet trên phần mềm
điện thoại thông minh”. Để hoàn thành nhiệm vụ được giao, ngoài sự học tập, nghiên
cứu của bản thân còn có sự hướng dẫn tận tình của thầy cô. Đặc biệt, em xin chân
thành cảm ơn thầy Th.s Đỗ Chí Tâm người đã hướng dẫn, chỉ bảo cho em trong suốt
thời gian qua, để em có thể hoàn thành tốt được bài luận văn.
Thầy đã định hướng, giúp đỡ cho em để em có thể hoàn thành tốt nhiệm vụ. Một lần
nữa em xin chân thành cảm ơn thầy và chúc thầy dồi dào sức khoẻ. Tuy nhiên, vì kiến
thức chuyên môn còn hạn chế và bản thân còn thiếu nhiều kinh nghiệm thực tiễn nên
nội dung của luận văn không tránh khỏi những thiếu xót, nên em rất mong nhận được
sự góp ý, chỉ bảo thêm của quý thầy cô để luận văn này được hoàn thiện hơn.
Một lần nữa em xin gửi đến quý thầy lời cảm ơn chân thành và sâu sắc nhất.
Cần Thơ, ngày 25 tháng 5 năm 2019
Sinh viên thực hiện
Trần Võ Bão
i
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
MỤC LỤC
TÓM TẮT ............................................................................................................................... 1
PHẦN MỞ ĐẦU ..................................................................................................................... 2
1. Lý do chọn đề tài ............................................................................................................. 2
2. Tình hình nghiên cứu ngoài nước liên quan tới đề tài...................................................... 2
3. Tình hình nghiên cứu trong nước liên quan tới đề tài ...................................................... 4
4. Tính cấp thiết của đề tài .................................................................................................. 5
5. Mục tiêu nghiên cứu ........................................................................................................ 6
6. Nhiệm vụ nghiên cứu....................................................................................................... 6
7. Nội dung nghiên cứu ....................................................................................................... 6
8. Phương pháp nghiên cứu ................................................................................................ 7
8.1. Phương pháp nghiên cứu tài liệu ............................................................................... 7
8.2. Phương pháp nghiên cứu thực tiễn ............................................................................ 7
9. Đối tượng nghiên cứu...................................................................................................... 7
10. Phạm vi nghiên cứu ....................................................................................................... 7
PHẦN NỘI DUNG .................................................................................................................. 8
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ......................................................................................... 8
GIỚI THIỆU CÁC LINH KIỆN, MODULE ĐƯỢC SỬ DỤNG ................................................. 8
1.1. Sơ lược về vi điều khiển. .............................................................................................. 8
1.2. Vi điều khiển dùng trong đề tài: ESP8266. .................................................................... 9
1.2.1. Giới thiệu ................................................................................................................. 9
1.2.2. Tổng quan về ESP8266 .......................................................................................... 9
1.3. Nguồn xung AC - DC 5VDC - 2A ................................................................................ 17
1.3.1. Mô tả ..................................................................................................................... 17
1.3.2. Thông số kỹ thuật .................................................................................................. 17
1.3.3. Ứng dụng .............................................................................................................. 17
1.3.4. Hình ảnh thực tế.................................................................................................... 17
1.4. Module cảm biến nhiệt độ, độ ẩm DHT11 ................................................................... 18
1.4.1. Mô tả ..................................................................................................................... 18
1.4.2. Thông số kỹ thuật .................................................................................................. 18
1.4.3. Tính năng và ứng dụng ......................................................................................... 18
1.4.4. Hình ảnh................................................................................................................ 18
1.5. Module RF 315 MHz .................................................................................................. 19
1.5.1. Mô tả phần phát .................................................................................................... 19
1.5.2. Thông số kỹ thuật .................................................................................................. 19
1.5.3. Tính năng và ứng dụng ......................................................................................... 19
1.5.4. Hình ảnh................................................................................................................ 19
1.5.5. Mô tả phần thu ...................................................................................................... 20
1.5.6. Thông số kỹ thuật .................................................................................................. 20
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
3.1. Sơ đồ giải thuật chương trình chính cho bộ điều khiển ............................................... 41
3.2. Sơ đồ giải thuật và chức năng của từng phần ............................................................ 41
3.2.1. Khởi tạo chức năng chân ...................................................................................... 41
3.2.2. Khởi tạo EEPROM ................................................................................................ 42
3.2.3. Đọc SSID, PASS, Auth từ EEPROM ..................................................................... 42
3.2.4. Kiểm tra chế độ ..................................................................................................... 43
3.2.5. Kết nối với máy chủ Blynk ..................................................................................... 44
3.2.6. Đọc dữ liệu từ máy chủ Blynk ................................................................................ 44
3.2.7. Thực thi điều khiển thiết bị..................................................................................... 44
3.3. Phần mềm trên thiết bị thông minh ............................................................................. 45
3.4. Giao diện phần mềm .................................................................................................. 46
PHẦN KẾT LUẬN ................................................................................................................ 47
1. Kết quả nghiên cứu ....................................................................................................... 47
2. Những hạn chế trong quá trình nghiên cứu ................................................................... 47
3. Hướng phát triển ........................................................................................................... 47
4. Kết luận ......................................................................................................................... 48
TÀI LIỆU KHAM KHẢO ........................................................................................................ 49
1. Sách, giáo trình ............................................................................................................. 49
2. Tài liệu tham khảo từ web ............................................................................................. 49
PHỤ LỤC ............................................................................................................................. 50
Phụ lục 0.1. Chương trình nạp cho vi điều khiển ESP8266 ............................................... 50
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
TÓM TẮT
Hiện nay, với sự bùng nổ mạnh mẽ của cuộc cách mạng lần thứ 4 công nghệ 4.0 ra
đời hoạt động mạnh mẽ trên nhiều lĩnh vực. Với sự phát triển mới này, cách mạng 4.0
mang đến cho con ngừời nhiều tiện ích, hệ thống tự động thông minh hơn ứng dụng
trong rất nhiều hệ thống có thể giúp đảm bảo an toàn và nâng cao hiệu suất và chất
lượng làm việc. Các hệ thống điều khiển thiết bị và quản lý từ xa có thể giúp cho
người quản lý và vận hành từ xa không giới hạn khoảng cách địa lý.
Chính vì thế, để theo kịp công nghệ hiện tại thì việc nghiên cứu cách thức hoạt động
nguyên lý, đưa vào vận hành và ứng dụng trong thực tế để đem lại hiệu quả trong sản
xuất là vô cùng cần thiết. Trên thị trường hiện nay có rất nhiều thiết bị, phần mềm cho
phép người dùng có thể điều khiển, quản lý được các thiết bị điện trong gia đình giúp
chúng trở nên thuận tiện và thông minh hơn. Tuy nhiên, các thiết bị có giá thành rẻ thì
có khá ít chức năng, giao diện điều khiển phức tạp và nhiều hạn chế riêng. Các thiết bị
thông minh, tối ưu thuận tiện cho người sử dụng thì thường có giá thành khá cao
không phù hợp với nhiều đối tượng người dùng.
Vì vậy, trong đề tài luận văn này em tập trung nghiên cứu để tạo ra một thiết bị
thông minh có thể giúp người dùng điều khiển, quản lý những thiết bị trong gia đình từ
xa thông qua mạng không dây. Thiết bị sẽ có các tính năng cơ bản dùng cho việc điều
khiển, quản lý và có một giao diện điều khiển thân thiện với người sử dụng. Thiết bị
có thể hoạt động ổn định, độ bền cao và giá thành phù hợp với nhiều người dùng hơn
các thiết bị tương tự trên thị trường.
Trang 1
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
PHẦN MỞ ĐẦU
1. Lý do chọn đề tài
Hiện nay, nhu cầu về sự tiện nghi của con người càng tăng cao, trong đó có sự quan
tâm về các thiết bị thông minh, bộ điều khiển thông minh. Ví dụ: Bộ điều khiển bật tắt
các thiết bị điện như: đèn, máy quạt, máy lạnh, TV…, thông qua điều khiển từ xa, qua
Internet, giúp cho việc điều khiển thiết bị trong nhà thông minh hơn, an toàn hơn, và
hơn hết chúng cũng sẽ giúp những người hay quên, người quá bận rộn với công việc,
quản lý và điều khiển các thiết bị điện trong nhà một cách đơn giản. Do bộ điều khiển
được kết nối với Internet, nên người dùng có thể bật, tắt và xem trạng thái thiết bị đang
trong tình trạng đã bật hay tắt, hẹn giờ bật tắt thiết bị qua phần mềm hỗ trợ trên điện
thoại thông minh. Bộ điều khiển còn cho phép người dùng điều khiển thiết bị từ xa
thông qua Remote mà không cần đến điện thoại, điều này khá thuận tiện trong trường
hợp không có điện thoại ở bên, điện thoại hết pin hay những thành viên trong gia đình
hạn chế về sử dụng các thiết bị công nghệ vẫn có thể sử dụng được một cách dễ dàng.
Qua phần mềm một hay nhiều người dùng trong gia đình có thể xem các thiết bị nào
mình đã quên tắt khi đi ra ngoài, giải quyết được vấn đề họ không nhớ mình đã tắt đèn
hay chưa? Máy điều hòa tắt chưa? Hay trước khi về họ muốn bật thiết bị trước để khi
về không cần phải chờ đợi.
Thấy được sự tiện ích của thiết bị này và phối hợp với khả năng nghiên cứu của em,
đồng thời dựa trên nền tảng của đề tài trước cho phép em phát triển lên đề tài: “THIẾT
KẾ BỘ ĐIỀU KHIỂN THIẾT BỊ ĐIỆN TỪ XA THÔNG QUA MẠNG INTERNET
TRÊN PHẦN MỀM ĐIỆN THOẠI THÔNG MINH”. Đây cũng là thiết bị trong các
dự án cho nhà thông minh.
2. Tình hình nghiên cứu ngoài nước liên quan tới đề tài
Thế giới đang chuyển mình mạnh mẽ trước xu thế "Internet of Things" (IoT). Tới
năm 2021, dự kiến sẽ có 28 tỉ thiết bị kết nối trong đó có 15 tỉ thiết bị kết nối IoT.
Theo báo cáo Ericsson Mobility Report, tới năm 2021, dự kiến sẽ có 28 tỉ thiết bị kết
nối trong đó có 15 tỉ thiết bị kết nối IoT bao gồm thiết bị M2M (machine-to machine)
như đồng hồ đo thông minh, cảm biến trên đường, địa điểm bán lẻ, các thiết bị điện tử
tiêu dùng như ti vi, đầu DVR, thiết bị đeo. 13 tỉ còn lại là điện thoại di động, máy tính
xách tay PC, máy tính bảng. IDC dự kiến năm 2019, tòan cầu sẽ chi 1.300 tỉ đô la Mỹ
cho IoT. Tới năm 2020, theo dự đoán của Gartner thì giá trị gia tăng do IoT mang lại
Trang 2
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
sẽ là 1.900 tỉ đô la Mỹ. Và theo McKinsey, tới năm 2025 IoT sẽ đóng góp vào nền
kinh tế toàn cầu là 11.000 tỉ đô la Mỹ. Tới năm 2021, dự kiến số thuê bao sẽ lên tới 9,1
tỉ. Số thuê bao này cao hơn số dân bởi mỗi người có thể sở hữu nhiều thiết bị.Trong
các kết nối IoT.
Như vậy, sẽ có bao gồm cả những có đăng ký thuê bao SIM/eSIM được gắn ngay
trong thiết bị và cả những thiết bị như điện tử tiêu dùng không cần dùng SIM (Non-
SIM). IoT đang diễn ra một cách mạnh mẽ. 50% doanh nghiệp đã bắt đầu triển khai
những dự án về IoT. IoT mang lại một cơ hội doanh thu cho rất nhiều ngành và những
giải pháp đó bắt đầu thương mại hóa với tốc độ rất nhanh. Ngành dịch vụ tiện ích, giao
thông, tòa nhà thông minh và các ngành bán lẻ là những ngành đi đầu trong việc ứng
dụng IoT.
Tháng 2 vừa qua IBM giới thiệu một công cụ phát triển mã nguồn mở mới được gọi
là Quarks. Công cụ này được cho là sẽ giúp các nhà sản xuất và nhà lập trình phát triển
ứng dụng của mình hiệu quả hơn, dựa trên dữ liệu từ các cảm biến của thiết bị Internet
of Things (IoT).
Ứng dụng của Quarks: Thực chất, Quarks dựa trên nền tảng các sản phẩm của IBM
Streams, một công cụ doanh nghiệp giúp xử lý lượng lớn các dữ liệu trực tiếp. Nhưng
Quarks khác biệt ở chỗ, nó được thiết kế từ đầu để cung cấp cho các nhà sản xuất và
nhà lập trình một công cụ mã nguồn mở, cho việc xây dựng các ứng dụng dựa trên các
thiết bị kết nối. Ý tưởng này là một biện pháp để họ tận dụng lợi thế để xử lý dữ liệu
trực tiếp từ các thiết bị IoT theo cách đơn giản và hiệu quả.
Đại diện Ericsson cho biết, ngay từ đầu năm 2016, hãng này đã giới thiệu giải pháp
Connected Water với nhiệm vụ giám sát chất lượng nước dựa trên kết nối 4G/LTE và
Internet of Things tại triển lãm CES (Mỹ). Ericsson và nhà mạng AT&T hợp tác triển
khai giải pháp giúp tổ chức bảo vệ sông Chattahoochee ở Atlanta kiểm soát nước sông
và cảnh báo kịp thời về sự ô nhiễm. Lưu vực sông này được sử dụng để cung cấp
nguồn nước sinh hoạt cho hơn 4.000 người dân. Các thiết bị cảm biến đầu tiên được
đặt ở khu vực đầu nguồn con sông tại Proctor Creek. Dòng chảy của con sông này ảnh
hưởng tới hơn 60.000 người dân sinh sống ở các khu công nghiệp, khu dân cư, công
viên, trường học quanh đó. Connected Water đặt những cảm biến giá thành rất thấp
vào dòng nước trong hệ thống sông hồ. Chúng có vai trò đo và ghi nhận thời gian thực
Trang 3
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
các thông số quan trọng về chất lượng nước như độ sạch, lượng kim loại nặng và liên
tục chuyển thông số này qua đám mây và mạng di động thông qua công nghệ LTE
Low Power Wide Area (LSWA). Các thiết bị này có tuổi thọ pin rất lâu đảm bảo tính
hiệu quả lâu dài, giúp chính quyền địa phương giám sát hiệu quả và có hành động kịp
thời, nhanh chóng đối với các vấn đề ô nhiễm nếu xảy ra.
Trên thế giới đã và đang nghiên cứu một số hệ thống, thiết bị đo nhiệt độ trong tất
cả các lĩnh vực có thể kể đến như :
- Nhà chế tạo chip vi điều khiển hàng đầu thế giới – Atmel đã cho ra mắt dòng chip
đo nhiệt độ có tên gọi AT30TS750, truyền thông theo giao thức số với bộ nhớ
EEPROM tích hợp.
- Alfredo Milani Comparetti đã cho ra đời phần mềm Speedfan theo dõi điện áp, tốc
độ quạt và nhiệt độ trong máy tính với màn hình phần cứng chip.
- Tại Úc các nhà vật lý học thuộc Đại học Adelaide tuyên bố đã chế tạo thành công
nhiệt kế chính xác nhất thế giới.
- Hãng Cypress Micro System đã cho ra đời công nghệ PSOC (Programmable
System On Chip) để có thể phát triển các thiết bị đo nhiệt độ dựa trên công nghệ
này.
3. Tình hình nghiên cứu trong nước liên quan tới đề tài
Hiện nay các công trình nghiên cứu về các thiết bị, bộ điều khiển từ xa thông qua
mạng Internet ngày một phổ biến. Hầu hết các đề tài đều là mô hình chung, chưa cụ
thể hóa 1 thiết bị nào đó. Trình ứng dụng điều khiển chưa tối ưu, chưa tương tác được
bằng giọng nói, thường không sử dụng mạng LAN cục bộ.
Đối với đề tài này, em đã tập trung nghiên cứu ra bộ điều khiển cụ thể, được tối ưu
hóa tính năng. Trình ứng dụng điều khiển được thiết kết dành cho Smartphone dể dàng
quản lý, tương tác, cài đặt các thông số. Bộ điều khiển sử dụng mạng Wifi, mạng
không dây thông dụng nhất hiện nay.
Các công trình nghiên cứu tại Việt Nam như:
Ứng dụng Inernet Of Things xây dựng ngôi nhà thông minh của Đại học Hàng
hải Việt Nam.
Ứng dụng hệ thống Inernet Of Things xây dựng hệ thống đèn chiếu sáng thông
minh của Đại học Duy Tân.
Trang 4
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Nghiên cứu ứng dụng công nghệ iot cho giám sát môi trường của Đại học Quốc
gia Hà Nội.
Khả năng và định hướng về sự phát triển internet kết nối vạn vật (internet of
things - iot) trên thế giới của Viện Chiến lược và Chính sách KH&CN.
Danh mục các công trình đã công bố thuộc lĩnh vực của đề tài của chủ nhiệm và
những thành viên tham gia nghiên cứu:
Ứng dụng Inernet Of Things xây dựng ngôi nhà thông minh của Đại học Hàng
hải Việt Nam. Tác giả: Nguyễn Văn Thắng, Pham Trung Minh, Nguyễn Cảnh
Toàn, Nguyễn Trọng Đức. Bài báo: Tạp chí khoa học Hàng hải.
Ứng dụng hệ thống Inernet Of Things xây dựng hệ thống đèn chiếu sáng thông
minh của Đại học Duy Tân. Tác giả: Lê Minh Hải, Phan Vũ Đình Nguyên,
Trương Quốc Dũng.
Nghiên cứu thiết kế và chế tạo hệ thống đo giám sát nhiệt, ẩm cho các kho nông
lâm sản có môi trường khắc nghiệt của Phạm Minh Tuấn, Phạm Thượng Cát,
Trần Đức Minh, Viện Công nghệ Thông Tin, Viện Khoa học và Công nghệ Việt
Nam.
4. Tính cấp thiết của đề tài
Hạn chế các công trình đã có:
Các công trình nghiên cứu trước, bộ điều khiển không cho phép người dùng điều
khiển từ xa ngoài mạng cục bộ.
Trình điều khiển chưa thông minh, hổ trợ ít thiết bị điện.
Chưa gửi được thông tin trạng thái thiết bị (bật hay tắt) lên ứng dụng của người
dùng.
Sự cần thiết của đề tài là phát triển một bộ điều khiển thông minh hơn, có thể
điều khiển và xem trạng thái hoạt động của thiết bị điện trong nhà một cách dể dàng
ở bất cứ nơi đâu có Internet, hỗ trợ nhiều thiết bị Smartphone truy cập điều khiển
cùng lúc.
Vì lý do trên, nên mục tiêu của đề tài này là nghiên cứu, phát triển thành công bộ
điều khiển có khả năng điều khiển và xem trạng thái hoạt động của thiết bị điện trong
nhà một cách dể dàng ở bất cứ nơi đâu có Internet.
Trang 5
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 6
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Vẽ sơ đồ nguyên lý, mạch PCB, thi công ráp mạch cho bộ điều khiển.
Kiểm nghiệm hoạt động của bộ điều khiển ngoài thực tế.
8. Phương pháp nghiên cứu
8.1. Phương pháp nghiên cứu tài liệu
Nghiên cứu các tài liệu liên quan đến đề tài như:
Các giáo trình lý thuyết như: Mạch điện tử, Điện tử công nghiệp, Kỹ thuật vi xử
lý…
Các sơ đồ nguyên lý có liên quan đến đề tài.
Tham khảo các đề tài trên web, sách, tài liệu liên quan chuyên ngành.
8.2. Phương pháp nghiên cứu thực tiễn
Tham khảo các ý kiến của các thầy cô giáo chuyên ngành.
Học hỏi các kinh nghiệm của những người đi trước.
Lấy kinh nghiệm trong suốt quá trình học tại trường.
9. Đối tượng nghiên cứu
Module Wifi ESP8266.
Module RF 2272 M4.
Remote RF 2262.
Màn hình LCD 16x2.
Cảm biến nhiệt độ, độ ẩm DHT11.
Cảm biến ánh sáng.
Các chương trình: Arduino IDE, Blynk, Sever Blynk.
10. Phạm vi nghiên cứu
Bộ điều khiển cho phép:
Điều khiển 3 thiết bị điện như: quạt, đèn, …
Hiển thị nhiệt độ, độ ẩm trên ứng dụng và màn hình LCD.
Điều khiển đèn nền LCD tự động theo ánh sáng môi trường hoặc Remote.
Cho phép nhiều người dùng tương tác điều khiển cùng 1 bộ điều khiển, cùng một
thời điểm với nhiều phương thức điều khiển đồng bộ với nhau.
Bộ điều khiển cho phép điều khiển thiết bị điện, xem trạng thái các thiết bị, cài
đặt thời gian bật tắt thiết bị ở bất cứ nơi nào có Internet và có điện cho bộ điều
khiển.
Trang 7
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 8
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
ngoài. ESP8266EX được tích hợp 32-bit Tensilica MCU, các ngoại vi cơ bản,
antenna switches, RF balun, khuếch đại công suất, khuếch đại nhận nhiễu thấp (low
noise), bộ lọc và các modules quản lý nguồn.
32-bit Tensilica MCU
ESP8266EX tích hợp vi xửa lý Tensilica L106 32-bit (MCU) là dòng chip low-
power, 16-bit RSIC, tốc độ clock cao nhất là 160 MHz. Nếu hệ thống hoạt động với
Real Time Operation System (RTOS) và Wi-Fi stack thì ta có khoảng 80% khả
năng xử lý cho ứng dụng người dùng.
Low Power Management
Với những ứng dụng cho mobile, thiết bị điện tử cẩm tay và Internet of Things
(IoT), ESP8266EX hoạt động với mức tiệu thụ năng lượng rất thấp với nhưng công
nghệ độc quyền. Tính năng tiết kiệm năng lượng với 3 chế độ hoạt động – active
mode, sleep mode và deep sleep mode, vì vậy cho phép hiện thực những thiết bị với
thời lượng Pin rất lớn.
Là thiết kế bền vững
Hoạt động với dãi nhiệt khá rộng -40°C to +125°C (trong công nghiệp),
ESP8266EX có thể hoạt động tốt trong môi trường công nghiệp. Với sự tích hợp
cao, dòng chip này hoạt động với rất ít linh kiện ngoài làm tăng độ tin cậy, chặt chẽ
và ổn định cao.
Module ESP8266
Là mạch được thiết kế với các components khác (flash memory, antenna,
LEDs…). Dựa trên kích thước và số lượng chân ra, có nhiều phiên bản cho Module
này: ESP-01, ESP-02, ESP-03… Phổ biến nhất là ESP-12.
Trang 10
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 11
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 13
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 14
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Sau đó vào Tools > Board và mở Boards Manager. Tìm ESP8266 (ESP8266
community) và Install nó.
Hình 10: Chọn board tương ứng để lập trình và nạp chương trình
Trang 15
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Bây giờ đã sẵn sàng để upload chương trình đầu tiên. Chọn một chương trình đơn
giản (ví dụ Blink) từ File > Examples và upload để chắc chắn rằng đã thiết lập mọi
thứ hoàn toàn.
Hình 12: Quá trình nạp chương trình của phần mềm Arduino IDE
Trang 16
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 17
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 18
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 19
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 20
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 21
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 22
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
1.7. LCD 16 x 2
1.7.1. Mô tả
LCD ( Liquid Crystal Display ) được sử dụng trong rất nhiều các ứng dụng của
Vi Điều Khiển. LCD có rất nhiều ưu điểm so với các dạng hiển thị khác. Nó có khả
năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễ dàng đưa vào
mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn rất ít tài nguyên hệ
thống và giá thành rẻ…
1.7.3. Thông số
Sơ đồ thứ tự chân cơ bản của màn hình LCD 16x2:
Trang 23
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Chức năng của từng chân cơ bản sẽ được trình bày cụ thể theo bảng sau:
Trang 24
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 25
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 26
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
1.10. Relay
1.10.1. Mô tả
Relay là loại linh kiện đóng ngắt điện cơ đơn giản. Nó gồm 2 phần chính là cuộn
hút và các tiếp điểm.
Cuộn hút:
- Tạo ra năng lượng từ trường để hút tiếp điểm về phía mình.
- Tùy vào điện áp làm việc người ta chia Relay ra DC: 5V, 12V, 24V - AC:
110V, 220V.
Cặp tiếp điểm:
- Khi không có từ trường ( ko cấp điện cho cuộn dây). Tiếp điểm 1 được tiếp xúc
với 2 nhờ lực của lò xo. Tiếp điểm thường đóng.
- Khi có năng lượng từ trường thì tiếp điểm 1 bị hút chuyển sang 3.
- Trong Relay có thể có 1 cặp tiếp điểm, 2 cặp tiếp điểm hoặc nhiều hơn.
Trang 27
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 28
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Đối với thiết bị dân dụng thường sử dụng nguồn điện xoay chiều 220V, với điện thế
cao và tiêu thụ dòng lớn, thường các vi điều khiển không đáp ứng được vì mỗi chân
I/O chỉ xuất ra điện áp 3.3V đến 5V, dòng khoảng vài chục mili amper. Khi đó, nếu
nối trực tiếp thiết bị vào vi điều khiển thì mạch sẽ bị hỏng. Do đó để điều khiển được
thiết bị, chân điều khiển của vi điều khiển phải qua các tầng đệm điện áp và tầng đóng
ngắt chịu dòng và điện áp lớn. Để cho vi điều khiển cách li hoàn toàn với nguồn điện
220VAC khi điều khiển các thiết bị điện, bộ điều khiển đã sử dụng Relay thay vì điều
khiển trực tiếp vào chân của thiết bị.
Trang 29
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 30
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
- Cảm biến nhiệt độ, độ ẩm: là loại cảm biến DHT 11 ghi nhận nhiệt độ, độ ẩm
của môi trường rồi trả về giá trị cho vi điều khiển.
- Điều khiển RF từ xa: là module nhận RF PT2272 – M4 có 4 kênh có nhiệm vụ
nhận tín hiệu điều khiển từ Remote đưa vào vi xử lý để xử lý tín hiệu.
- Chọn chế độ hoạt động: là một công tắc 2 cực, khi nối lên VCC sẽ chuyển sang
chế độ nhập WiFi mới và khi nối với GND sẽ hoạt động trên WiFi sẵn có.
- Nút nhấn: là các nút nhấn vật lý có vai trò tạo ra tín hiệu điều khiển đưa vào vi
xử lý dùng để bật tắt thiết bị và reset thiết bị.
- Quang trở: đo cường độ ánh sáng của môi trường và trả về tín hiệu có dạng
analog 0 VDC – 5 VDC tương ứng, được dùng để điều khiển đèn nền bật/tắt tự
động theo ánh sáng của môi trường.
2.2.3. Khối OUTPUT
Bao gồm: Màn hình LCD và mạch điều khiển thiết bị.
- Màn hình LCD: là màn hình LCD 16x2 được kết nối với module I2C. Tín hiệu
đã được xử lý sẽ được truyền đến module I2C và được giải mã để hiển thị các
thông số trên màn hình LCD.
- Mạch điều khiển thiết bị: là mạch điều khiển đệm tín hiệu từ vi xử lý để tín hiệu
đủ lớn có thể điều khiển đóng cắt Relay bật tắt thiết bị.
Trang 31
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 32
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Khối vi xử lý:
Với vi xử lý chính là Node MCU ESP8266 có vai trò tiếp nhận – xử lý – trả về
tín hiệu điều khiển phù hợp với yêu cầu sử dụng.
Pin
Kết nối Chức năng
ESP8266
Output Pin này có chức năng đọc giá trị từ công tắc để chọn chế độ
A0 khối chọn hoạt động cho mạch.
chế độ Thêm mạng mới 1 / 0 kết nối với mạng sẵn có.
Output của Cấp nguồn cho vi điều khiển hoạt động.
Vin
khối nguồn Điện áp cấp vào pin này là 5VDC.
Pin điện áp ngõ ra 3.3VDC của Node MCU sau khi hạ áp từ
Khối chọn
3.3V nguồn vào 5VDC.
chế độ
Có vai trò tạo mức điện thế cao cho khối chọn chế độ.
GND toàn GND được nối chung với GND ngõ ra của khối nguồn và
GND
mạch GND của các khối khác.
D0 Input khối
D1 điều khiển Pin xuất tín hiệu I/O để điều khiển bật tắt thiết bị
D2 thiết bị
D3 SDA I2C Tín hiệu xuất ra màn hình LCD
D4 DHT 11 Đọc giá trị của cảm biến nhiệt độ, độ ẩm DHT 11
D5 SCL I2C Tín hiệu xuất ra màn hình LCD
D6 Đọc giá trị từ nút nhấn trả về để điều khiển bật tắt thiết bị.
Khối nút
D7 Được kéo xuống GND với điện trở 10k để giảm nhiễu, tăng
nhấn
RX độ nhạy cho các nút nhấn.
Nút nhấn
RST Thực hiện chức năng khởi động lại cho khối xử lý.
reset
Còn lại Bỏ trống Các chân này được bỏ trống.
Trang 33
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Khối nguồn:
Điện áp 220 VAC được cấp vào domino DO1 sau đó được chuyển đổi hạ áp qua
mạch nguồn để đầu ra ta có được 5 VDC – 2 A để cung cấp cho toàn mạch. Tụ C6
có vai trò là tụ lọc nguồn để đảm bảo nguồn được ổn định.
Khối cảm biến nhiệt độ:
Cảm biến được sử dụng là cảm biến nhiệt độ, độ ẩm DHT 11. Cảm biến sẽ được
cấp nguồn 5 VDC. Tín hiệu output sẽ được đưa vào chân D4 của Node MCU và
được giải mã để hiển thị trên LCD và trên thiết bị thông minh.
Khối điều khiển RF:
Trang 34
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Tín hiệu được phát từ remote sẽ được nhận tại module RF315 PT2272-M4 và
được giải mã cho ra 4 đường tín hiệu tại các chân D0 D1 D2 D3. Các tín hiệu này sẽ
được đưa qua diode 1N4007 để ngăn dòng điện đi ngược lại module PT2272 – M4 (
khi ấn nút nhấn ) và hạn dòng qua trở 1k để có mức điện áp phù hợp với ngõ vào
của Node MCU. Chân VT có chức năng báo hiệu khi nhận được tín hiệu, khi nhận
được tín hiệu chân này sẽ lên mức cao 5 VDC sẽ làm cho đèn D10 sáng báo hiệu đã
nhận được tín hiệu từ remote.
Khối chọn chế độ:
Trang 35
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
VCC sẽ được hạn dòng qua trở 100 ohm và được nối vào một đầu của các nút
nhấn. Đầu còn lại của các nút nhấn sẽ được nối vào jack J3 để kết nối với jack J1
của khối xử lý. Khi nhấn nút nhấn, các trạng thái của các chân 2 3 4 ( Jack J3 ) sẽ
chuyển trạng thái từ mức thấp lên mức cao, các tín hiệu này sẽ được đưa về khối xử
lý để bật tắt thiết bị. Khi không nhấn nút nhấn, trạng thái các chân 2 3 4 ( Jack J3 )
sẽ trở về mức thấp, chờ cho lần nhấn nút nhấn tiếp theo.
Khối reset:
Trang 36
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
tượng nhấp nháy đèn nền khi có ánh sáng chớp ở môi trường tác động lên mạch.
R14 R13 có vai trò là trở phân cực cho mạch đệm.
+ Khi cường độ ánh sáng mạnh, giá trị quang trở giảm, áp tại chân B ( Q8 ) tăng sẽ
kích dẫn transistor Q8 và Q7 làm cho áp tại C ( Q7 ) giảm làm LED sáng.
+ Khi cường độ ánh sáng yếu, giá trị quang trở tăng, áp tại B ( Q8 ) giảm làm cho
transistor Q8 và Q7 không dẫn làm cho áp tại C ( Q7 ) tăng làm LED tắt.
+ Khi D3 ( PT2272 – M4 ) lên mức cao do nhận được tín hiệu từ remote sẽ làm cho
áp tại chân B ( Q7 ) tăng làm cho áp tại C ( Q7 ) giảm làm LED sáng.
+ Khi D3 ( PT22272 – M4 ) không nhận được tín hiệu thì áp tại B ( Q7 ) sẽ phụ
thuộc vào tầng kích phía sau.
2.4.3. Khối OUTPUT
Bao gồm các khối chức năng:
- Khối hiển thị LCD.
- Khối điều khiển thiết bị.
- Khối tạo trễ.
Khối hiển thị LCD.
Trang 37
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 38
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
LCD 16x2 được kết nối với module I2C. Việc truyền và nhận dữ liệu hiển thị lên
LCD thông qua module I2C. Các chân SDA, SCL được nối với chân D3, D5 của
Node MCU để truyền và nhận dữ liệu. Riêng hai chân Anot ( A ), Katot ( K ) của
đèn nền LCD sẽ được nối với A, K của khối điều khiển đèn nền.
Khối delay:
Trang 39
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
2.5. Sơ đồ mạch in
Trang 40
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Bắt đầu
Khởi tạo
EEPROM
Đọc SSID,
PASS và Auth
từ EEPROM
S
Kiểm tra
Khởi tạo AP
chế độ
Đ
Đợi kết nối với
người dùng Kết nối vói máy
chủ Blynk
Nhận dữ liệu
SSID, PASSvà
Auth Blynk
Đ Đ Đ
Hình 44. Sơ đồ giải thuật chương trình chính cho bộ điều khiển
3.2. Sơ đồ giải thuật và chức năng của từng phần
3.2.1. Khởi tạo chức năng chân
Trong vi xử lý, mỗi chân có thể chứa nhiều chức năng khác nhau và Node MCU
cũng không ngoại lệ. Việc nhiều chức năng như vậy sẽ gây rối loạn trong quá trình
hoạt động của vi xử lý khiến các tín hiệu ngõ ra bị sai lệch. Việc khai báo chân sẽ
nằm trong phần cài đặt void setup() và được chạy duy nhất một lần khi khởi động.
Trang 41
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Tại phần này chúng ta sẽ khai báo các ngõ vào ra, chân cảm biến, các giá trị ban
đầu của biến, …
Trang 42
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 43
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Đ Đ Đ
Trang 44
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Khi nút nhấn trên thiết bị thông minh được nhấn, các chân ảo (V0, V1, V2) sẽ
thay đổ trạng thái, các trạng thái này sẽ được sử dụng để thay đổi trạng thái của các
biến điều khiển ngõ ra điều khiển thiết bị. Khi có nút nhấn bằng tay, hay từ Remote
các tín hiệu này tác động vào các ngõ vào và các ngõ vào sẽ chuyển dổi trạng thái
của các biến điều khiển ngõ ra. Từ trạng thái 0/1 của các biến mà các ngõ ra tương
ứng với các mức High/Low để điều khiển bật/tắt thiết bị. Sau khi trạng thái của thiết
bị đã được thay đổi, trạng thái hiện tại sẽ được gửi lên Sever để đồng bộ trạng thái
phần cứng và phần mềm giống nhau. Khi gửi trạng thái, giá trị nhiệt độ độ ẩm cũng
sẽ được gửi lên Sever Blynk theo chu kỳ đã lập trình và được lưu trữ lại phục vụ
cho quá trình truy xuất dữ liệu sau này.
3.3. Phần mềm trên thiết bị thông minh
Giao diện
Xử lý
Vi điều khiển
Hình 47. Sơ đồ giải thuật phần mềm trên thiết bị thông minh
Khối giao diện có nhiệm vụ tạo nên sự thuận tiện cho việc điều khiển của người
dùng. Thay vi phải cài đặt các ngõ vào điều khiển thay đổi trạng thái thì giao dện sẽ
đơn giản hóa vấn đề hơn với nút nhấn và hiển thị bằng hình ảnh, màu sắc trực quan
sinh động dễ dàng hơn cho việc điều khiển. Các tin hiệu điều khiển sẽ được gửi về
khối xử lý để xử lý tín hiệu.
Khối xử lý có nhiệm vụ tiếp nhận và xử lý thông tin từ các nút nhấn, bộ hẹn giờ, …
gửi dữ liệu này đến bộ điều khiển qua máy chủ Blynk. Đồng thời cũng nhận tín hiệu
phản hồi từ bộ điều khiển để hiển thị cập nhật trạng thái lên giao diện điều khiển.
Máy chủ Blynk có vai trò trung gian giữa bộ điều khiển và phàn mềm trên thiết bị
thông minh. Máy chủ Blynk sẽ là nơi tiếp nhận, phản hồi, lưu trữ, cho phép phần cứng,
Trang 45
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
phần mềm truy cập thông tin trong cơ sỡ dữ liệu đã lưu trữ, giúp cho việc điều khiển
được mượt mà hơn.
Khối vi điều khiển có vai trò tiêp nhận dữ liệu dạng thô sau đó xử lý chúng để có
thể truyền, lưu trữ trên máy chủ Blynk và nhận dữ liệu giữa các thiết bị với nhau.
Trang 46
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Bộ điều khiển điều khiển được ba thiết bị điện, hẹn giờ bật tắt thiết bị theo thời
gian cài đặt trước.
Bộ điều khiển có màn hình LCD hiển thị được nhiệt độ - độ ẩm, trạng thái của
thiết bị.
Bộ điều khiển thiết bị thông qua nhiều hình thức: nút nhấn, remote từ xa, phần
mềm trên thiết bị thông minh.
Đọc và hiển thị giá trị nhiệt độ - độ ẩm của môi trường xum quanh.
Điều khiển đèn nền màn hình LCD tự động theo ánh sáng của môi trường.
Dễ dàng tải và cài đặt phần mềm cho thiết bị thông minh trên Android và IOS.
Cho phép nhiều người dùng điều khiển thiết bị đồng thời với nhau.
2. Những hạn chế trong quá trình nghiên cứu
Do thời gian làm đề tài hạn chế và tài liệu tham khảo liên quan đến đề tài không
nhiều, chủ yếu tự nghiên cứu, thử nghiệm và chỉnh sửa nên đã mất nhiều thời gian.
Mạch được thiết kế và gia công thủ công nên mạch còn to, độ bền của đường mạch
không cao dễ bị ô-xi hóa.
Hiện tại bộ điều khiển chỉ có thể điều khiển ba thiết bị, chưa có thể diều khiển được
nhiều hơn.
Trang 47
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
4. Kết luận
Phần đề tài này đã tạo cho sinh viên hiểu rõ một phần nào đó về sản phẩm thuộc dự
án nhà thông minh. Nâng cao sự hiểu biết về cách thức hoạt động của thiết bị thông
minh và hưởng ứng làn gió của cuộc cách mạng công nghiệp 4.0 ở Việt Nam.
Hiện tại bộ điều khiển đã đáp ứng gần đầy đủ chức năng cơ bản của một bộ điều
khiển thường lắp đặt cho các dự án nhà thông minh, nhưng vì lý do kiến thức về lĩnh
vực mới này của người nghiên cứu chưa đủ rộng, thời gian hạn chế, nên việc gặp
những lỗi trong bộ điều khiển và thiếu tính năng là không thể thiếu. Mong quý thầy cô
thông cảm và đóng góp ý kiến để ngày càng hoàn thiện hơn.
Trang 48
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 49
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
PHỤ LỤC
Phụ lục 0.1. Chương trình nạp cho vi điều khiển ESP8266
// So do dau day
// Node MCU ESP 8266
//
// A0 A0 ----- Selec Mode
// D0 16 ----- Relay 1
// D1 5 ----- Relay 2
// D2 4 ----- Relay 3
// D3 0 ----- SDA
// D4 2 ----- DTH 11
// D5 14 ----- SCL
// D6 12 ----- Button 1
// D7 13 ----- Button 2
// D8 15 ----- Button 3
// RX 3 -----
// TX 1 -----
// S2 9 -----
// S3 10 -----
Trang 50
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
const char* ssid = "XSwitch"; // Ten Wifi dung cho viec dang nhap
const char* passphrase = "000000000"; // Mat khau Wifi dung cho viec dang nhap
const int out_relay1 = 4; // gan cac chan GPIO thanh cac relay cho viec de goi ten
const int out_relay2 = 5;
const int out_relay3 = 16;
const int button1 = 12; // gan cac chan GPIO thanh cac nut nhan de de cho viec goi ten
const int button2 = 13;
const int button3 = 15;
const int selec_mode = A0; // gan chan A0 de chon mode
int relay_state1 = 0, relay_state_last1=0; // khai bao cac bien dung de dao trang thai relay
int relay_state2 = 0, relay_state_last2=0;
int relay_state3 = 0, relay_state_last3=0;
float temper = 0; // khai bao bien nhiet do
float humi = 0; // khai bao bien do am
int nhiet_do = 30;
int do_am = 40;
char gt_ht1=0, /* button_blynk1=0, */ gt_trc1=0; // khai bao cac bien nut nhan Blynk
char gt_ht2=0, /* button_blynk2=0, */ gt_trc2=0; // gia tri 1
char gt_ht3=0, /* button_blynk3=0, */ gt_trc3=0;
String st; // khai bao chuoi nhan gia tri Auth
String content;
int statusCode;
BlynkTimer timer;
DHT dht(DHTPIN, DHTTYPE);
BLYNK_CONNECTED()
{
Blynk.syncVirtual(V0);
Blynk.syncVirtual(V1);
Blynk.syncVirtual(V2);
}
BLYNK_WRITE(V0) // nhan gia tri tu AP Blynk Button 1
{
if(param.asInt()==0)
{
Trang 51
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
digitalWrite(out_relay1,0);
}
else{
digitalWrite(out_relay1,1);
}
}
BLYNK_WRITE(V1) // nhan gia tri tu AP Blynk Button 2
{
if(param.asInt()==0)
{
digitalWrite(out_relay2,0);
}
else
{
digitalWrite(out_relay2,1);
}
}
BLYNK_WRITE(V2) // nhan gia tri tu AP Blynk Button 2
{
if(param.asInt()==0)
{
digitalWrite(out_relay3,0);
}
else
{
digitalWrite(out_relay3,1);
}
}
BLYNK_READ(V4)
{
Blynk.virtualWrite(V4, temper);
}
BLYNK_READ(V5)
Trang 52
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
{
Blynk.virtualWrite(V5, humi);
}
void setup()
{
Serial.begin(115200); // Mo Serial Monitor
dht.begin();
// SDA / SCL // DTH
Wire.begin(0,14); // LCD
lcd.init(); // LCD
lcd.noBacklight(); // LCD co sua doi
timer.setInterval(50L, nutnhan1); // Timer
timer.setInterval(50L, nutnhan2); // Timer
timer.setInterval(50L, nutnhan3); // Timer
timer.setInterval(1000L, nhietdo_doam); // Timer
timer.setInterval(2000L, hien_thi_nhietdo_doam); // Timer
timer.setInterval(4000L, hien_thi_trang_thai); // Timer
// Serial.print("Server started"); // setup cac ngo vao ra trang thai ban dau
lcd.setCursor(0,0); // cot 0 dong 0
lcd.print(" Khoa luan ");
lcd.setCursor(0,1); // cot 0 dong 1
lcd.print("Tran Vo Bao DT10 ");
delay(1000);
lcd.setCursor(0,0);
lcd.print("DKTB qua Internet");
lcd.setCursor(0,1);
lcd.print(" Server start ");
delay(1000);
pinMode(out_relay1,OUTPUT);
pinMode(button1,INPUT);
digitalWrite(out_relay1,0);
pinMode(button1,0);
pinMode(out_relay2,OUTPUT);
pinMode(button2,INPUT);
Trang 53
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
digitalWrite(out_relay2,0);
pinMode(button2,0);
pinMode(out_relay3,OUTPUT);
pinMode(button3,INPUT);
digitalWrite(out_relay3,0);
pinMode(button3,0);
pinMode(A0, INPUT); // 0 co san / 1 them moi
analogWrite(A0, 100);
// for (int i = 1; i < 3; i++)
// {
// digitalWrite(2, HIGH); // nhap nhay led blink bao hieu
delay(500);
// digitalWrite(2, LOW);
// delay(500);
// digitalWrite(2, HIGH);
// }
EEPROM.begin(512); // chay EEPROM lay ssid pass auth de dang nhap vao Wifi tao
duong truyen du lieu
delay(10);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Bat dau ");
lcd.setCursor(0,1);
lcd.print(" Doc EEPROM ");
// Serial.println("Startup");
// Serial.println("Reading EEPROM ssid");
String esid; // lay gia tri ssid tu EEPROM
for (int i = 0; i < 32; ++i)
{
esid += char(EEPROM.read(i));
}
// Serial.print("SSID: ");
// Serial.println(esid.c_str());
esid.trim();
Trang 54
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 55
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
}
bool testWifi(void)
{
int c = 0;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Xin vui long doi");
lcd.setCursor(0,1);
lcd.print(" ket noi WiFi ");
// Serial.println("Xin vui long doi ket noi WIFI");
while ( c < 3 ) // Kiem tra dieu kien 3 lan
{
if (analogRead(A0)<100)
{
lcd.clear();
lcd.setCursor(0,0); // cot 0 dong 0
lcd.print("Kiet noi vao mang");
lcd.setCursor(0,1); // cot 0 dong 1
lcd.print(" WiFi co san ");
delay(1000);
return true;
}
else
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Login: SXwitch ");
lcd.setCursor(0,1);
lcd.print("Pass: 000000000 ");
delay(1000);
lcd.setCursor(0,0);
lcd.print("Bang Smart Phone");
lcd.setCursor(0,1);
lcd.print(" Dien thong tin ");
Trang 56
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
delay(1000);
lcd.setCursor(0,0);
lcd.print("Sau do nhan gui ");
lcd.setCursor(0,1);
lcd.print(" Nhan nut Reset ");
delay(1000);
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Please wait ... ");
delay(500);
// Serial.print(WiFi.status());
c++;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Dang nhap mang ");
lcd.setCursor(0,1);
lcd.print(" WiFi moi ");
// Serial.println("");
// Serial.println("Thoi gian ket noi cham, Mo AP");
return false;
}
void launchWeb(int webtype)
{
lcd.clear();
lcd.setCursor(0,0); // cot 0 dong 0
lcd.print(" WiFi ket noi ");
lcd.setCursor(0,1); // cot 0 dong 1
lcd.print("IP:");
lcd.setCursor(4,1);
lcd.print(WiFi.localIP());
// Serial.println("");
// Serial.println("WiFi ket noi");
Trang 57
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
Trang 58
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
lcd.print("mang");
lcd.setCursor(0,1); // cot 0 dong 1
lcd.print(" WiFi co san ");
// Serial.print(n);
// Serial.println("Tim thay mang");
for (int i = 0; i < n; ++i)
{
// Print SSID and RSSI for each network found
// Serial.print(i + 1);
// Serial.print(": ");
// Serial.print(WiFi.SSID(i));
// Serial.print(" (");
// Serial.print(WiFi.RSSI(i));
// Serial.print(")");
// Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " " : "*");
delay(10);
}
}
//Serial.println("");
st = "<ol>";
for (int i = 0; i < n; ++i)
{
// Print SSID and RSSI for each network found
st += "<li>";
st += WiFi.SSID(i);
st += " (";
st += WiFi.RSSI(i);
st += ")";
st += (WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " " : "*";
st += "</li>";
}
st += "</ol>";
delay(100);
// Serial.println("softap");
Trang 59
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
// Serial.println(ssid);
// Serial.println(passphrase);
WiFi.softAP(ssid, passphrase, 6);
launchWeb(1);
// Serial.println("over");
}
void createWebServer(int webtype)
{
if ( webtype == 1 )
{
server.on("/", []()
{
IPAddress ip = WiFi.softAPIP();
String ipStr = String(ip[0]) + '.' + String(ip[1]) + '.' + String(ip[2]) + '.' + String(ip[3]);
content = "<!DOCTYPE HTML>\r\n<html><h2>XSwitch</h2>";
//content += ipStr;
//content += "<form method='get' action='setting'><table width='100%'
border='1'><tr><td width=\"30%\"><label>Wifi</label></td><td width=\"70%\><input
name='ssid' length=32
width='500'></td></tr><tr><td><label>Password</label></td><td><input name='pass'
length=64 width='500'></td></tr><tr><td><label>Blynk</label></td><td><input name='blynk'
length=32 width='500'></td></tr><tr><td></td><td><input
type='submit'></tr></tr></table></form>";
content += "<form method=\"get\" action=\"setting\">";
content += "<div>Wifi</div>";
content += "<div><input name=\"ssid\" size=\"40\"></div>";
content += "<div>Mat Khau</div>";
content += "<div><input name=\"pass\" size=\"40\"></div>";
content += "<div>Blynk</div>";
content += "<div><input name=\"blynk\" size=\"40\"></div>";
content += "<div><input type='submit'></div>";
content += "<p>";
content += st;
content += "</p>";
content += "</html>";
server.send(200, "text/html", content);
Trang 60
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
});
server.on("/setting", []()
{
String qsid = server.arg("ssid");
String qpass = server.arg("pass");
String qblynk = server.arg("blynk");
if (qsid.length() > 0 && qpass.length() > 0)
{
EEPROM.begin(512);
// Serial.println("clearing eeprom");
for (int i = 0; i < 128; ++i)
{
EEPROM.write(i, 0);
}
EEPROM.commit();
// Serial.println(qsid);
// Serial.println("");
// Serial.println(qpass);
// Serial.println("");
// Serial.println(qblynk);
// Serial.println("");
// Serial.println("writing eeprom ssid:");
for (int i = 0; i < qsid.length(); ++i)
{
EEPROM.write(i, qsid[i]);
// Serial.print("Wrote: ");
// Serial.println(qsid[i]);
}
// Serial.println("writing eeprom pass:");
for (int i = 0; i < qpass.length(); ++i)
{
EEPROM.write(32 + i, qpass[i]);
// Serial.print("Wrote: ");
// Serial.println(qpass[i]);
Trang 61
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
}
// Serial.println("writing eeprom blynk:");
for (int i = 0; i < qblynk.length(); ++i)
{
EEPROM.write(96 + i, qblynk[i]);
// Serial.print("Wrote: ");
// Serial.println(qblynk[i]);
}
EEPROM.commit();
EEPROM.end();
pinMode(2, OUTPUT); //Chop den xanh sau khu lam xong
digitalWrite(2, HIGH);
digitalWrite(2, LOW);
delay(500);
digitalWrite(13, HIGH);
content = "{\"Success\":\"Luu vao he thong. Khoi dong lai ten wifi moi\"}";
statusCode = 200;
}
else
{
content = "{\"Error\":\"404 not found\"}";
statusCode = 404;
lcd.clear();
lcd.setCursor(0,0); // cot 0 dong 0
lcd.print(" Loi ket noi 404 ");
// Serial.println("Sending 404");
}
server.send(statusCode, "application/json", content);
});
}
else if (webtype == 0)
{
server.on("/", []()
{
Trang 62
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
IPAddress ip = WiFi.localIP();
String ipStr = String(ip[0]) + '.' + String(ip[1]) + '.' + String(ip[2]) + '.' + String(ip[3]);
server.send(200, "application/json", "{\"IP\":\"" + ipStr + "\"}");
});
server.on("/cleareeprom", []()
{
content = "<!DOCTYPE HTML>\r\n<html>";
content += "<h2>XSwitch</h2><p>Clearing the EEPROM</p></html>";
server.send(200, "text/html", content);
// Serial.println("clearing eeprom");
for (int i = 0; i < 128; ++i)
{
EEPROM.write(i, 0);
}
// pinMode(2, OUTPUT); //Chop den xanh sau khu lam xong
// digitalWrite(2, HIGH);
// digitalWrite(2, LOW);
delay(500);
// digitalWrite(2, HIGH);
EEPROM.commit();
});
}
}
void loop()
{
server.handleClient();
Blynk.run(); // chay blynk
timer.run(); // Initiates BlynkTimer
}
void nhietdo_doam()
{
temper = dht.readTemperature();
humi = dht.readHumidity();
Trang 63
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
if (isnan(humi) || isnan(temper))
{
// Serial.println("Failed to read from DHT sensor!");
// Thong bao neu khong ket noi duoc voi DHT 11
delay(1000);
return;
}
else
{
nhiet_do = temper;
do_am = humi;
// Serial.print("Temperature: ");
// Serial.println(nhiet_do);
// Serial.print(" *C\t");
// Serial.print("Humidity: ");
// Serial.print(do_am);
// Serial.print(" %\t");
Blynk.virtualWrite(V6, nhiet_do);
Blynk.virtualWrite(V7, do_am);
}
}
void hien_thi_nhietdo_doam()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Nhiet do: ");
lcd.print(nhiet_do);
lcd.setCursor(13,0);
lcd.print("*C ");
lcd.setCursor(0,1);
lcd.print(" Do am: ");
lcd.print(do_am);
lcd.setCursor(10,1);
lcd.print("% ");
Trang 64
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
}
void hien_thi_trang_thai()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("TB1:");
lcd.setCursor(4,0);
if(relay_state1==1)
{
lcd.print("ON ");
}
else
{
lcd.print("OFF");
}
lcd.setCursor(9,0);
lcd.print("TB2:");
lcd.setCursor(13,0);
if(relay_state2==1)
{
lcd.print("ON ");
}
else
{
lcd.print("OFF");
}
lcd.setCursor(0,1);
lcd.print(" TB3:");
lcd.setCursor(8,1);
if(relay_state3==1)
{
lcd.print("ON ");
}
else
Trang 65
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
{
lcd.print("OFF");
}
}
void nutnhan1() // ham con cho nut nhan thu 1
{
if(gt_ht1==0 && gt_trc1==1)
{
delay(50);
if(digitalRead(button1)==0)
{
relay_state1= !relay_state1;
digitalWrite(out_relay1,relay_state1);
gt_trc1= 0;
// Serial.print(digitalRead(out_relay1)); // in ra trangj thai cua relay 1
// Serial.print(digitalRead(button1)); // in ra trang thai cua nut nhan 1
// Serial.print("ok");
Blynk.virtualWrite(V0, relay_state1); // gui gia tri den AP Blynk
}
}
gt_ht1= digitalRead(button1);
if(gt_ht1) gt_trc1= 1;
relay_state1= digitalRead(out_relay1);
}
void nutnhan2()
{
if(gt_ht2==0 && gt_trc2==1) // nut nhan
{
delay(50);
if(digitalRead(button2)==0)
{
relay_state2= !relay_state2;
digitalWrite(out_relay2,relay_state2);
gt_trc2= 0;
Trang 66
LUẬN VĂN TỐT NGHIỆP GVHD: Th.s ĐỖ CHÍ TÂM
// Serial.print(digitalRead(out_relay2));
// Serial.print(digitalRead(button2));
// Serial.print("ok");
Blynk.virtualWrite(V1, relay_state2); // gui gia tri den AP Blynk
}
}
gt_ht2= digitalRead(button2);
if(gt_ht2) gt_trc2= 1;
relay_state2= digitalRead(out_relay2);
}
void nutnhan3()
{
if(gt_ht3==0 && gt_trc3==1) // nut nhan
{
delay(50);
if(digitalRead(button3)==0)
{
relay_state3= !relay_state3;
digitalWrite(out_relay3,relay_state3);
gt_trc3= 0;
// Serial.print(digitalRead(out_relay3));
// Serial.print(digitalRead(button3));
// Serial.print("ok");
Blynk.virtualWrite(V2, relay_state3); // gui gia tri den AP Blynk
}
}
gt_ht3= digitalRead(button3);
if(gt_ht3) gt_trc3= 1;
relay_state3= digitalRead(out_relay3);
}
Trang 67