Professional Documents
Culture Documents
Luận văn tốt nghiệp Kỹ thuật điện - Hệ thống điều khiển nhà thông minh (download tai tailieutuoi.com)
Luận văn tốt nghiệp Kỹ thuật điện - Hệ thống điều khiển nhà thông minh (download tai tailieutuoi.com)
ĐỒ ÁN TỐT NGHIỆP
Lê Văn Hiếu
MỤC LỤC
Chương 1. GIỚI THIỆU ĐỀ TÀI .................................................................................................3
2.2. Các thành phần cơ bản trong nhà thông minh: ........................................................6
2.2.8. Hệ thống các công tắc điều khiển trạng thái: ...............................................8
2.2.9. Hệ thống xử lý trung tâm, điều khiển, giám sát từ xa: .............................8
2.4. Phân tích, lựa chọn phương án thực hiện đề tài: .................................................. 10
3.1.2. Các khối chức năng chính được sử dụng trong luận văn: .................... 15
3.3.4. Cảm biến thân nhiệt chuyển động PIR HC – SR501: ............................ 23
3.5.3. Mạch chuyển giao tiếp LCD 1602 và LCD 2004 sang I2C: ............... 27
Chương 4. THIẾT KẾ, THI CÔNG BỘ ĐIỀU KHIỂN VÀ MÔ HÌNH NGÔI NHÀ ..... 37
4.3.1. Thiết kế, thi công mạch điều khiển trung tâm:......................................... 40
4.3.3. Bộ điều khiển trung tâm sau khi tích hợp: ................................................. 43
5.1. Các tính năng của hệ thống điều khiển nhà thông minh: .................................. 44
5.3. Lập trình cập nhật thời gian thực từ NTP sever: ............................................ 51
5.4.1. Lập trình cho kit STM32F407 và module ESP 8266 NodeMCU: .... 52
5.4.3. Thiết lập, tạo giao diện trên ứng dụng IoT OnOff:................................. 56
Chương 6. KẾT QUẢ, HẠN CHẾ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI ........................ 58
Luận văn được trình bày thành 6 chương với những nội dung cơ bản sau:
Chương 1. Giới thiệu đề tài: Ở chương này, em trình bày lý do chọn đề tài, mục
tiêu, đối tượng phạm vi nghiên cứu cũng như ý nghĩa của đề tài.
Chương 2. Tổng quan: Đề cập đến khái niệm nhà thông minh, những thành
phần cơ bản nhất của một hệ thống nhà thông minh. Ngoài ra còn trình bày tình hình
phát triển của lĩnh vực nhà thông minh trong và ngoài nước. Cuối cùng dựa trên
những kiến thức đó phân tích, lựa chọn phương pháp thực hiện đề tài.
Chương 3. Tìm hiểu phần cứng và phần mềm: Ở chương này trình bày phần
cứng, phần mềm, và những kiến thức liên quan. Cụ thể phần cứng gồm: kit
STM32F407 Discovery, ESP8266 NodeMCU, các loại cảm biến: nhiệt độ, mưa, ánh
sáng,…Phần mềm gồm: Arduino IDE, Keil uVision 5, STM32CubeMX. Một số kiến
thức liên quan như giao thức MQTT, NTP server.
Chương 4. Thiết kế, thi công bộ điều khiển và mô hình ngôi nhà: Trình bày
trình tự thiết kế và thi công phần cứng.
Chương 5. Giải thuật điều khiển: Trong chương này trình bày những thuật toán
điều khiển gồm: thuật toán điều khiển đóng mở cửa dùng thẻ RFID, thuật toán điều
khiển theo kịch bản, thuật toán điều khiển và giám sát từ xa,…
Chương 6: Kết quả, hạn chế và hướng phát triển của đề tài: Kết quả đạt được
của đề tài, những hạn chế và hướng phát triển của hệ thống trong tương lai.
1
MỞ ĐẦU
Nếu như trước đây, nhà thông minh chỉ toàn nằm trong trí tưởng tượng cũng
như trên phim ảnh mà thôi, thì hiện nay nhà thông minh đã rất phát triển và trở nên
phổ biến. Ở nước ta, thuật ngữ này đã không còn quá xa lạ với người dân. Hàng loạt
các công ty nghiên cứu, cung cấp giải pháp nhà thông minh ra đời, nhiều căn hộ cao
cấp được lắp đặt và sử dụng công nghệ này. Tuy nhiên để sở hữu một căn nhà với
những chức năng hiện đại như điều khiển chiếu sáng, điều khiển rèm cửa, hệ thống
an ninh báo trộm, báo cháy... hay gần đây là công nghệ trợ lý ảo thì người dùng phải
bỏ ra một số tiền không hề nhỏ, mà không phải ai cũng đủ khả năng chi trả. Với mục
đích vận dụng những kiến thức đã được học để tạo ra bộ thiết bị điều khiển cho chính
ngôi nhà của mình với những tính năng cơ bản, giá phải chăng, em đã chọn đề tài “Hệ
thống điều khiển nhà thông minh”. Đề tài tập trung xây dựng bộ điều khiển on/off
các thiết bị trong nhà, hoạt động theo các kịch bản, đọc và hiển thị cảm biến, chống
trộm, điều khiển giám sát ngôi nhà từ xa thông qua mạng Internet.
2
Chương 1. GIỚI THIỆU ĐỀ TÀI
Em chọn “Hệ thống điều khiển nhà thông minh” làm đề tài luận văn tốt nghiệp vì
những lý do sau đây:
Thứ nhất, nhà thông minh đang là xu hướng phổ biến trên thế giới khi hỗ trợ
tiết kiệm thời gian và công sức nhờ áp dụng công nghệ hiện đại. Tại Việt
Nam, công nghệ này cũng ngày càng được lòng người dùng và trở thành lựa
chọn ưu tiên.
Thứ hai, em có thể áp dụng được nhiều kiến thức đã được học vào đề tài như
kiến thức lập trình vi điều khiển, kiến thức về các cảm biến nhiệt độ, độ ẩm,
ánh sáng,.. hoặc kiến thức về giao tiếp giữa 2 vi điều khiển,…Đây cũng là cơ
hội để em tìm hiểu thêm kiến thức mới, rèn luyện tính tự chủ và tinh thần
trách nhiệm trong công việc.
Thứ ba, dưới sự phổ biến của công nghệ nhà thông minh hiện nay, thì nhu cầu
tìm hiểu và phát triển càng trở nên cấp thiết.
Cuối cùng, với mục đích tạo ra được một bộ điều khiển với những tính năng
cơ bản, áp dụng được cho chính ngôi nhà của mình đã tạo thêm động lực thúc
đẩy cho em thực hiện đề tài này.
1.2. Mục tiêu của đề tài:
Hiểu rõ đặc điểm, tính năng và cấu trúc của ngôi nhà thông minh. Nắm vững
những tính năng của hệ thống chiếu sáng, hệ thống báo cháy, báo trộm... trong nhà
thông minh.
Thiết kế và gia công bộ điều khiển ngôi nhà với những tính năng cơ bản sau:
Có khả năng bật, tắt các thiết bị trong nhà bằng tay hoặc tự động theo các
kịch bản.
Đọc và xử lý tín hiệu từ các cảm biến.
Đóng mở cửa bán tự động sử dụng thẻ RFID.
Báo trộm, rò khí gas.
Cập nhật thời gian thực, hẹn giờ báo thức.
Có thể điều khiển, giám sát từ xa bằng điện thoại kết nối mạng Internet.
Xây dựng mô hình ngôi nhà để có thể vận hành thử nghiệm bộ điều khiển trên.
3
1.3. Đối tượng và phạm vi nghiên cứu:
Phạm vi của nhà thông minh rất rộng, từ cơ sở hạ tầng cho đến các chức năng,
chế độ hoạt động.
Trong luân văn tập trung nghiên cứu thiết kế hệ thống bật tắt các thiết bị trong
nhà theo kịch bản, báo trộm, báo rò khí gas, hẹn giờ báo thức. Điều khiển, giám sát
từ xa thông qua Internet.
Là tài liệu hữu ích cho những ai mới bắt đầu tìm hiểu về hệ thống nhà thông
minh. Đặc biệt là tài liệu tham khảo cho những ai muốn tự thiết kế, chế tạo một bộ
điều khiển ngôi nhà với những tính năng cơ bản.
4
Chương 2. TỔNG QUAN
Nhà thông minh hay hệ thống nhà thông minh là một ngôi nhà/căn hộ được trang
bị các hệ thống tự động thông minh cùng với cách bố trí hợp lý, các hệ thống này có
khả năng tự điều phối các hoạt động trong ngôi nhà theo thói quen sinh hoạt và nhu
cầu cá nhân của gia chủ. Chúng ta cũng có thể hiểu ngôi nhà thông minh là một hệ
thống chỉnh thể mà trong đó, tất cả các thiết bị điện tử gia dụng đều được liên kết với
thiết bị điều khiển trung tâm và có thế phối hợp với nhau để cùng thực hiện một chức
năng. Các thiết bị này có thể tự đưa ra cách xử lý tình huống được lập trình trước,
hoặc là được điều khiển và giám sát từ xa nhằm mục đích làm cho cuộc sống ngày
càng tiện nghi, an toàn và góp phần sử dụng hợp lý các nguồn tài nguyên.
Một trong những ví dụ cơ bản nhất của nhà thông minh là một hệ thống
kiểm soát mức độ chiếu sáng của hệ thống đèn giúp tiết kiệm điện và phù hợp với
khung cảnh, chẳng hạn như cài đặt đèn ánh sáng nhẹ cho các bữa tiệc tối. Hệ thống
cũng có thể điều chỉnh rèm cửa theo yêu cầu, kiểm soát nhiệt độ, hệ thống camera
giám sát, hệ thống khóa cửa tự động, hệ thống phòng ngừa trộm.
Nhà thông minh ngoài ra còn có một số ứng dụng sáng tạo hơn, gồm hệ
thống điều khiển giải trí tại gia – loa công suất khác nhau, hệ thống điện thoại, liên
lạc nội bộ, hệ thống tưới nước...
Các chức năng này có thể được thực hiện nhờ các thiết bị trong nhà được kết
nối với nhau để hệ thống máy tính trung tâm có thể theo dõi các trạng thái và ra các
quyết định điều khiển phù hợp.
Nhà thông minh đã được hình dung trong các tác phẩm khoa học viễn tưởng
từ nhiều năm nhưng nó chỉ trở thành hiện thực kể từ thế kỷ 20 sau sự phát triển rộng
rãi của điện và những tiến bộ nhanh chóng của công nghệ thông tin. Công nghệ nhà
thông minh là hiện thực và nó ngày càng trở nên tinh vi. Các tín hiệu được mã hóa
được gửi đi qua hệ thống dây dẫn, mạng không dây đến các bộ chuyển mạch, ổ điện
được lập trình sẵn để vận hành các đồ gia dụng và thiết bị điện tử ở trong ngôi nhà.
5
Sự tự động hóa của ngôi nhà đặc biệt có ích cho người lớn tuổi và người tàn tật, những
người muốn sống tự lập.
Việc lắp đặt các sản phẩm thông minh đem lại cho ngôi nhà và chủ nhân của nó
rất nhiều lợi ích – tương tự như những lợi ích mà công nghệ và máy tính cá
nhân đã đem lại cho chúng ta nhiều năm qua - bao gồm: sự tiện nghi, tiết kiệm thời
gian, tiền bạc và năng lượng.
Các thiết bị chiếu sáng như bóng đèn sợi đốt, đèn neon, đèn ngủ, trang
trí…được sử dụng rất nhiều. Vì vậy nếu phối hợp chiếu sáng không hợp lý sẽ dẫn
tới bị “ô nhiễm” ánh sáng. Ngoài ra, việc chiếu sáng như vậy còn gây lãng phí điện,
giảm tuổi thọ thiết bị. Bên cạnh đó số lượng đèn dùng để chiếu sáng là khá lớn, gia
chủ sẽ gặp những bất tiện nhỏ trong việc bật tắt, điều chỉnh độ sáng cho phù hợp.
Hệ thống chiếu sáng sẽ được tích hợp chung với các hệ thống khác hoặc sẽ
được tách riêng ra để điều khiển độc lập. Các giải pháp đều nhằm tối ưu hóa hệ
thống và giúp gia chủ điều khiển dễ dàng hơn. Các giải pháp kết hợp sẽ được tính
đến để tự động hóa tới mức tối đa.
Khi gia chủ đi vắng, việc kiểm soát các hệ thống vào ra trong ngôi nhà là rất
quan trọng, giúp đề phòng trộm v.v… Ngôi nhà thông minh cung cấp hệ thống
kiểm soát vào ra cho phép chủ nhà quản lý và cấp quyền “đăng nhập” cho các thành
viên trong gia đình và người thân.
Hệ thống cửa ra vào sẽ được lắp đặt các khóa vân tay hoặc thẻ từ… nhằm nhận
dạng người trong nhà hoặc khách để cấp quyền “đăng nhập”. Ngoài ra, còn có thể
dùng hệ thống nhận diện khuôn mặt hay giọng nói.
Mỗi khi có sự kiện mới, hệ thống kiểm soát ra vào này cũng sẽ kích hoạt các
hệ thống khác để lưu giữ các thay đổi do người dùng tạo ra.
6
2.2.3. Hệ thống quan sát, thông tin liên lạc:
Một ngôi nhà bình thường sẽ có từ 4 đến 5 phòng kín, và do vậy sẽ có một vài
vấn đề khó khăn khi giao tiếp từ phòng này sang phòng khác. Một hệ thống thông
tin liên lạc nội bộ có thể giúp giải quyết vấn đề này.
Hệ thống liên lạc nội bộ đơn giản có thể là các điện thoại cố định. Ngoài chức
năng liên lạc trong nhà, hệ thống này cần được kết nối với mạng điện thoại để tiện
cho việc giao tiếp và công việc hơn, để làm việc này cần đến một bộ chuyển kênh.
Hệ thống quan sát sẽ giúp việc kiểm soát an ninh, người vào/ra ngôi nhà…giúp
cho gia chủ nhận diện khách nhanh chóng thông qua camera.
Ngôi nhà là nơi sinh hoạt của một gia đình có thể gồm nhiều thế hệ và mỗi thế
hệ lại có nhu cầu giải trí khác nhau. Do đó, một hệ thống giải trí đa phương tiện sẽ
cung cấp cho các thành viên những hoạt động giải trí phù hợp…
Đối với một ngôi nhà bình thường thì việc cung cấp và đo lường các chỉ số
điện nước đều phải thông qua các cơ quan nhà nước.
Ngôi nhà thông minh cung cấp giải pháp nhằm đo lường và báo lại các thông
số điện, nước thường xuyên, kết hợp với bộ xử lý trung tâm và các hệ thống khác
để tiết kiệm năng lượng.
Hệ thống các cảm biến là thành phần quan trọng trong bất kì hệ thống nào của
ngôi nhà, các cảm biến có nhiệm vụ gửi các thông số đo được về cho bộ xử lý trung
tâm để có giải pháp phù hợp với từng gói dữ liệu và xử lý từng tình huống tương
ứng.
Các cảm biến cơ bản như cảm biến nhiệt độ, độ ẩm, cảm biến gas, cảm biến
áp suất, cảm biến hồng ngoại…
7
2.2.7. Hệ thống kiểm soát môi trường:
Môi trường sống là nhân tố rất quan trong trong cuộc sống. Nó ảnh hưởng trực
tiếp đến sức khỏe của mỗi thành viên trong gia đình. Trong thời đại công nghiệp
hóa thì độ ô nhiễm môi trường ngày càng cao. Vì vậy việc bảo vệ môi trường sống
được các nhà khoa học rất chú trọng.
Hệ thống kiểm soát môi trường sẽ đảm bảo môi trường trong nhà luôn ở tình
trạng tốt nhất cho con người. Hệ thống kiểm soát môi trường có thể gồm các thiết
bị như: máy điều hòa, hệ thống quạt thông gió...
Hệ thống các công tắc và bảng hiển thị sẽ cung cấp thông tin cũng như nhận
lệnh điều khiển từ gia chủ. Đảm bảo sự tương tác hai chiều giữa các thành viên và
hệ thống tự động. Hệ thống bao gồm: các điều khiển từ xa, các công tắc gắn tường,
các bảng điều khiển tương tác HMI, điện thoại thông minh…
Ngôi nhà thông minh được đánh giá cao và khác hẳn những ngôi nhà bình
thường là do nó được trang bị một hệ thống điều khiển và toàn bộ các thay đổi và
điều khiển tự động trong ngôi nhà được xử lý đồng nhất thông qua hệ thống xử lý
trung tâm. Nó có vai trò quan trọng, làm nhiệm vụ liên kết các hệ thống khác trong
ngôi nhà lại với nhau, điều phối của hệ thống chấp hành một cách nhịp nhàng theo
các điều kiện tác động được lập trình từ trước. Chúng ta gọi đó là các kịch bản –
hay là các điều kiện môi trường trong ngôi nhà. Gần đây với sự phát triển của trí
tuệ nhân tạo (AI) thì quá trình điều khiển ngôi nhà càng trở nên tinh vi hơn. Một
vài sự kết hợp tiêu biểu:
Hệ thống chiếu sáng với Hệ thống xử lý trung tâm có thể học và thực hiện
theo thói quen của người sử dụng. Hay các thiết bị chiếu sáng sẽ hoạt động
theo chu trình thời gian đặt trước.
Hệ thống chiếu sáng kết hợp với Hệ thống cảm biến cung cấp khả năng tự
động điều khiển ánh sáng như: đèn tự động tắt khi không có người trong
phòng...
8
Hệ thống cảnh báo kết hợp với hệ thống chiếu sáng: khi có vấn đề xảy ra
như cháy nổ, phát hiện ăn trộm…các bóng đèn sẽ chớp sáng liên tục, đồng
thời sẽ có tiếng còi báo hiệu.
Hệ thống cảm biến kết hợp với hệ thống xử lý trung tâm báo cáo tình trạng
lưu trữ điện trong các UPS, báo cáo mực nước trong bồn chứa…nhằm đảm
bảo nguồn cung cho nhu cầu sinh hoạt hằng ngày.
Hệ thống giải trí đa phương tiện kết hợp với hệ thống chiếu sáng nhằm đem
lại những giây phút thư giãn cho thành viên trong gia đình.
2.3. Tình hình phát triển trong và ngoài nước:
Trên phạm vi toàn cầu, nhà thông minh được xem là một lĩnh vực có dư địa
phát triển rất lớn. Các đại gia công nghệ như Microsoft, Apple, Google,
Samsung...tỏ ra sốt sắng với xu hướng này thông qua hàng loạt những dự án liên
quan. Google mua lại Nest (hãng sản xuất bộ điều khiển nhiệt độ thông minh và
thiết bị báo khói), Samsung ra mắt hệ thống nhà thông minh khép kín trong các
thiết bị của hãng, Apple giới thiệu nền tảng phát triển ứng dụng nhà thông minh
HomeKit [1].
Ngoài ra, nhắc đến những thương hiệu nhà thông minh đến từ nước ngoài,
không thể không kể đến: hãng Schneider của Pháp, Smartg4 của Mỹ, Gamma của
Đức,... Các sản phẩm thiết bị nhà thông minh đến từ nước ngoài đều mang trong
mình những ưu điểm vượt trội về thiết kế, tính năng với những giải pháp tiên tiến
và hiện đại.
Các doanh nghiệp Việt Nam vẫn không ngừng bám đuổi công nghệ trên thế
giới, không ngừng nghiên cứu về nhà thông minh. Thực tế, đã có nhiều doanh
nghiệp của chúng ta cho ra mắt sản phẩm nhà thông minh “Made in Vietnam”.
Ta có thể kể tới:
9
- BKAV SmartHome kết nối tất cả các thiết bị điện trong ngôi nhà thành một
hệ thống mạng, để có thể điều khiển chúng theo các kịch bản thông minh,
bao gồm: hệ thống đèn chiếu sáng, rèm cửa, điều hoà nhiệt độ, tivi, âm
thanh, khoá cửa, bình nóng lạnh, quạt thông gió, camera an ninh, chuông
cửa có hình, hệ thống bơm tưới nước tiểu cảnh, bể cá.
- Các thiết bị thông minh của BKAV SmartHome được đầu tư và chăm chút
khá tỉ mỉ về vật liệu, thiết kế với mức giá tương đương với các nhà cung
cấp nước ngoài như Seimens và Schneider. Chi phí cho hệ thống nhà thông
minh của BKAV được coi là khá đắt so với mặt bằng chung do hướng tới
thị trường cao cấp. Cụ thể BKAV SmartHome thế hệ 2 được chào bán với
mức giá từ 30 – 50 triệu đồng, BKAV Smarthome Luxury khoảng từ 200
- 300 triệu đồng.
- Về tính năng, nhà thông minh của BKAV có thể điều khiển trực tiếp thông
qua thiết bị gắn trên tường hoặc dùng smartphone, máy tính bảng, có chức
năng điều khiển bằng giọng nói, tích hợp các kịch bản ngữ cảnh thông minh
và sử dụng hệ điều hành SmartHome OS do BKAV phát triển.
- Ngoài ra mới đây BKAV vừa cho ra mắt bộ thiết bị an ninh cao cấp BKAV
SmartHome Security, bảo vệ ngôi nhà theo nhiều lớp, từ tường rào, sân
vườn, các cửa tới từng khu vực, phòng ốc. Khác với các thiết bị hiện có
trên thị trường, BKAV SmartHome Security tích hợp trí tuệ nhân tạo (công
nghệ AI) giúp phát hiện thông minh, loại bỏ các hiện tượng cảnh báo sai,
nhầm các xâm nhập ngoài mong muốn đối với ngôi nhà.
Nhà thông minh Lumi:
- Lumi tập trung vào cung cấp các giải pháp chiếu sang thông minh, điều
hòa, rèm cửa, bình nóng lạnh điều khiển tự động, âm thanh đa vùng, hệ
thống an ninh, kiểm soát môi trường cho nhà ở…
- Lumi SmartHome được hết nối và điều khiển qua các thiết bị điện thông
minh như công tắc cảm ứng, chiết áp cảm ứng, cảm biến, bộ điều khiển
hồng ngoại... Người sử dụng có thể điều khiển giám sát bằng smartphone/
máy tính bảng, điều khiển bằng giọng nói.
Nhìn chung, các hệ thống này đã đáp ứng được phần lớn nhu cầu của người
sử dụng. Tuy nhiên giá thành của chúng còn khá cao, những người có thu nhập vừa
và thấp thì khó có khả năng sở hữu được một hệ thống như vậy. Vì vậy, yêu cầu
đặt ra là phải giảm được giá thành sản phẩm để nhà thông minh ngày càng được
phổ biến hơn.
2.4. Phân tích, lựa chọn phương án thực hiện đề tài:
Căn cứ vào những hiểu biết về hệ thống nhà thông minh đã tìm hiểu và trình
bày ở trên, luận văn sẽ xây dựng nhà thông minh gồm các thành phần sau đây:
10
Khối chiếu sáng: gồm các đèn led, và hệ thống cửa sổ có thể đóng mở nhờ
động cơ.
Khối kiểm soát vào ra, báo động: Sử dụng thẻ từ RFID để kiểm soát người
ra vào, kết hợp với hệ thống cửa bán tự động. Báo động bằng còi điện.
Khối cảm biến: Sử dụng các cảm biến nhiệt độ, độ ẩm, mưa, ánh sáng, thân
nhiệt chuyển động, gas để cung cấp thông tin cho bộ điều khiển.
Khối điều hòa không khí: gồm quạt thông gió, cửa sổ.
Khối xử lý trung tâm: Sử dụng kit STM32F407 Discovery làm bộ xử lý
trung tâm, bên cạnh đó còn sử dụng thêm module Wifi ESP8266 NodeMCU
để kết nối mạng Internet đưa dữ liệu lên CloudMQTT và cập nhật thời gian
thực. Ngoài ra để điều khiển được các thiết bị điện gia dụng thì cần tích hợp
thêm hệ thống relay, phím bấm và LCD cũng được trang bị để dễ dàng điều
khiển trực tiếp.
Khối điều
Khối kiểm soát ra
hòa không
vào
khí
Relay
Khối xử lý trung tâm
Với giới hạn đề tài là xây dựng mô hình nhà thông minh, nên các thiết bị quạt,
đèn thực tế sẽ được thay thế bằng đèn led và quạt tản nhiệt 12V. Tuy nhiên các
thiết bị vẫn sẽ được điều khiển thông qua relay để đảm bảo tính ứng dụng thực tế
của đề tài.
11
2.4.2. Phân tích phương án đã chọn:
Để đảm bảo cho nhu cầu sử dụng của người dùng và hệ thống hoạt động tốt,
ổn định thì việc lựa chọn vi điều khiển thích hợp cho bộ điều khiển trung tâm đóng
vai trò rất quan trọng. Vi điều khiển được dùng trong đề tài phải có những yêu cầu
bắt buộc sau:
Căn cứ vào những yêu cầu trên em quyết định chọn kit STM32F407 Discovery
làm bộ xử lý trung tâm.
Bên cạnh việc sử dụng kit STM32F407 Discovery cho đề tài , em còn sử dung
ESP8266 NodeMCU để truyền nhận dữ liệu giữa hệ thống và Cloud. Một vài ưu
điểm của nó như trang bị chip nạp và giao tiếp UART mới và ổn định là CP2102,
nhờ vậy mà có thể lập trình và nạp chương trình trực tiếp từ IDE của Arduino, điều
này khiến việc lập trình ứng dụng trở nên đơn giản hơn. Ngoài ra giá thành của nó
không quá cao.
Hiện nay có nhiều giao thức giúp điều khiển thiết bị qua Internet mỗi giao thức
có ưu nhược điểm riêng. Trong luận văn em đã sử dụng giao thức MQTT, một số
ưu điểm nổi bật của nó như: băng thông thấp, độ tin cậy cao và có thể sử dụng ngay
cả khi hệ thống mạng không ổn định, tốn rất ít byte cho việc kết nối với server và
connection có thể giữ trạng thái open xuyên suốt, có thể kết nối nhiều thiết bị
(MQTT client) thông qua một MQTT server (broker). Bởi vì giao thức này sử dụng
12
băng thông thấp trong môi trường có độ trễ cao nên nó là một giao thức lý tưởng
cho các ứng dụng IoT.
Để thực hiện giao thức MQTT ta cần có một MQTT server (hay broker), có 2
cách để có được một broker MQTT đó là:
Tự tạo broker MQTT trên máy tính, raspberry, ...cách này tốn kém thêm
chi phí, phức tạp.
Sử dụng các dịch vụ MQTT broker có sẵn.
Do khả năng còn hạn chế nên em quyết định chọn cách thứ hai là sử dụng
MQTT broker có sẵn. Ở đây em dùng broker được cung cấp bởi CloudMQTT
(https://www.cloudmqtt.com/).
Ngoài ra, để cập nhật thời gian thực cho hệ thống em sử dụng ESP8266
NodeMCU kết nối Internet để đồng bộ thời gian từ server NTP ( Network Time
Protocol). Phương pháp này có thể giúp tiết kiệm phần cứng khi không cần phải
dùng những module thời gian thực như thông thường.
13
Chương 3. TÌM HIỂU VỀ PHẦN CỨNG VÀ PHẦN MỀM
Bộ kit STM32F4 Discovery cho phép người dùng dễ dàng phát triển các ứng
dụng với vi điều khiển có hiệu suất cao STM32F407VG. Kit được tích hợp sẵn công
cụ ST-LINK giúp nạp chương trình, kiểm tra lỗi nhanh chóng.
14
3 kênh 12-bit ADC.
2 kênh 12-bit DAC.
2 kênh mạng chuẩn CAN.
4 UART, 3SPI, 3 I2C.
Camera 8-14 bits giao diện lên đến 54Mbytes/s.
16 kênh DMA.
Board có ST-LINK/V2 trên STM32F4-DISCOVERY giúp nạp chương
trình, gỡ lỗi.
Board cấp nguồn: thông qua cổng USB hoặc nguồn 5V bên ngoài.
Cảm biến chuyển động LIS302DL, ST MEMS 3 trục gia tốc.
Cảm biến âm thanh MP45DT02 ST-MEMS, mic cảm biến âm thanh vô
hướng kỹ thuật số.
Bộ chuyển đổi DAC âm thanh CS43L22.
8 đèn led:
- LD1: led báo cho giao tiếp USB.
- LD2: led nguồn 3.3V.
- 4 LED màu: LD3 (màu cam), LD4 (màu xanh lá), LD5 (màu đỏ),
LD6 (màu xanh dương).
- 2 USB OTG LEDs LD7 (green) VBUS and LD8 (red) báo quá
dòng.
2 nút nhấn (reset và user)
USB OTG FS với cổng kết nối micro-AB.
Header mở rộng cho tất cả các I/O LQFP100 để kết nối với board.
Phần mềm miễn phí toàn diện bao gồm nhiều ví dụ, một phần của STM32
CubeF4 gói hoặc STSW-STM32068 cho việc sử dụng thư viện chuẩn.
3.1.2. Các khối chức năng chính được sử dụng trong luận văn:
15
Hinh 3.2: Cấu trúc cơ bản của một chân I/O đa chức năng [3]
16
Hình 3.3: Sơ đồ cấu trúc khối giao tiếp USART [3]
I2C (inter-integrated circuit) là chuẩn truyền thông nối tiếp 2 dây gồm 1 dây
xung clock(SCL) và 1 dây dữ liệu (SDA). Các chip chủ - tớ được nối chung với
nhau trên hai đường dây này và được nối với điện trở treo.
Kit hỗ trợ tối đa 3 đường I2C có thể hoạt động ở chế độ multimater và slave.
Ở chế độ chuẩn hỗ trợ lên tới 100KHz và chế độ nhanh lên đến 400KHz. Chúng hỗ
trợ chế độ địa chỉ 7/10 bit và chế độ địa chỉ kép 7 bit.
17
Hình sau thể hiện cấu trúc của 1 chân I2C:
Kit RF thu phát Wifi ESP8266 NodeMCU Lua 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 ESP8266 trở nên rất đơn giản.
18
Đượ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.
Hình 3.6: Các chân của Module Wifi 8266 NodeMCU [4]
19
3.3. Các cảm biến được sử dụng:
Cảm biến độ ẩm và nhiệt độ 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 dây
truyền dữ liệu duy nhất). Bộ tiền xử lý tín hiệu tích hợp trong cảm biến giúp bạn
có được dữ liệu chính xác mà không phải qua bất kỳ tính toán nào.
MCU gửi tín hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại.
20
Hình 3.8: Tín hiệu start từ MCU và phản hồi của DHT11 [5]
Sau khi giao tiếp được DHT11 sẽ trả về giá trị nhiệt độ, độ ẩm dưới dạng 5
byte:
21
Hình 3.10: Bit 1 [5]
Cảm biến ánh sáng quang trở có tích hợp sẵn opamp và biến trở so sánh mức
tín hiệu giúp cho việc nhận biết tín hiệu trở nên dễ dàng, sử dụng để nhận biết hay
bật tắt thiết bị theo cường độ ánh sáng môi trường.
Thông số kỹ thuật:
22
3.3.3. Cảm biến mưa:
Thông số kỹ thuật:
Hình 3.13: Cảm biến thân nhiệt chuyển động PIR HC – SR501
23
Cảm biến thân nhiệt chuyển động PIR (Passive infrared sensor) HC-SR501
được sử dụng để phát hiện chuyển động của các vật thể phát ra bức xạ hồng
ngoại (con người, con vật, các vật phát nhiệt,...), cảm biến có thể chỉnh được độ
nhạy để giới hạn khoảng cách bắt xa gần cũng như cường độ bức xạ của vật thể
mong muốn, ngoài ra cảm biến còn có thể điều chỉnh thời gian kích trễ (giữ tín
hiệu bao lâu sau khi kích hoạt) qua biến trở tích hợp sẵn.
Thông số kỹ thuật [6]:
24
MQ-2 sử dụng phần tử SnO2 có độ dẫn điện thấp hơn trong không khí sạch,
khi khí dễ cháy tồn tại, cảm biến có độ dẫn điện cao hơn, nồng độ chất dễ cháy
càng cao thì độ dẫn điện của SnO2 sẽ càng cao và được tương ứng chuyển đổi thành
mức tín hiệu điện. MQ-2 là cảm biến khí có độ nhạy cao với LPG, Propane và
Hydrogen, mê-tan (CH4) và hơi dễ bắt lửa khác, phù hợp cho các ứng dụng khác
nhau.
Thông số kỹ thuật:
Module RFID RC522 sử dụng IC MFRC522 của Phillip dùng để đọc và ghi dữ
liệu cho thẻ NFC tần số 13.56mhz, với mức giá rẻ thiết kế nhỏ gọn, module này là sự
lựa chọn hàng đầu cho các ứng dụng về ghi đọc thẻ RFID.
25
Tần số sóng mang: 13.56MHz.
Khoảng cách hoạt động: 0 - 60mm (mifare1 card).
Giao tiếp: SPI.
Tốc độ truyền dữ liệu: tối đa 10Mbit/s.
Các loại card RFID hỗ trợ: mifare1 S50, mifare1 S70, mifare UltraLight,
mifare Pro, mifare Desfire.
Kích thước: 40mm × 60mm.
3.5. Màn hình hiển thị LCD:
Màn hình text LCD1602 xanh dương sử dụng driver HD44780, có khả năng
hiển thị 2 dòng với mỗi dòng 16 ký tự, màn hình có độ bền cao, rất phổ biến.
Thông số kỹ thuật:
26
3.5.2. LCD text 2004 xanh dương:
Màn hình text LCD2004 xanh dương sử dụng driver HD44780, có khả năng
hiển thị 4 dòng với mỗi dòng 20 ký tự, màn hình có độ bền cao, rất phổ biến.
Thông số kỹ thuật:
3.5.3. Mạch chuyển giao tiếp LCD 1602 và LCD 2004 sang I2C:
Hinh 3.18: Mạch chuyển giao tiếp LCD 1602 và LCD 2004 sang I2C
27
Để sử dụng các loại LCD có driver là HD44780 (LCD 1602, LCD 2004, ...)
cần có ít nhất 6 chân của MCU kết nối với các chân RS, EN, D7, D6, D5 và D4 để
có thể giao tiếp với LCD. Nhưng với module chuyển giao tiếp LCD sang I2C, các
bạn chỉ cần 2 chân (SDA và SCL) của MCU kết nối với 2 chân (SDA và SCL) của
module là đã có thể hiển thị thông tin lên LCD. Ngoài ra có thể điều chỉnh được độ
tương phản bởi biến trở gắn trên module.
Module 8 relay thích hợp cho các ứng dụng đóng ngắt điện thế cao AC hoặc
DC, các thiết bị tiêu thụ dòng lớn, module thiết kế nhỏ gọn, có opto và transistor cách
ly, kích đóng bằng mức thấp (0V) phù hợp với mọi loại MCU và thiết kế có thể sử
dụng nguồn ngoài giúp cho việc sử dụng trở nên thật linh động và dễ dàng.
28
Thông số kỹ thuật:
Để đảm bảo kích thước cho mô hình ngôi nhà, thay vì sử dụng các thiết bị điện
220VAC em đã sử dụng đèn led và quạt tản nhiệt DC thay thế. Tuy nhiên các thiết
bị này vẫn được điều khiển thông qua relay để đáp ứng tính ứng dụng của đề tài.
Hình 3.20: Đèn hắt sang trắng 3 bóng Hình 3.21: Quạt tản nhiệt 4x4x1cm
Động cơ RC Servo 9G có kích thước nhỏ, là loại được sử dụng nhiều nhất để
làm các mô hình nhỏ hoặc các cơ cấu kéo không cần đến lực nặng. Động cơ RC
Servo 9G có tốc độ phản ứng nhanh, động cơ RC Servo 9G có tích hợp sẵn Driver
điều khiển động cơ bên trong nên có thể dễ dàng điều khiển góc quay bằng phương
pháp điều độ rộng xung PWM.
29
Hình 3.22: Động cơ RC Servo 9G
30
Cảm ứng 1 chạm điện dung TTP223B mini có kích thước nhỏ gọn và giá thành
rẻ, thường được sử dụng trong các ứng dụng cảm ứng điện dung: bàn phím, công
tắc cảm ứng,...
Thông số kỹ thuật:
IC chính: TTP223B.
Điện áp làm việc: 3 - 5VDC.
Dòng điện tiêu thụ: 0.025mA.
Cảm ứng xuyên qua các phi kim như kính, nhựa, acrylic, ...
Trong luận văn Arduino IDE được sử dụng kèm với những thư viện
PubSubClient, NTPClient, ESP8266WiFi,…để lập trình cho module Wifi
ESP8266 NodeMCU.
Keil uVision5 là một phần mềm hỗ trợ cho người dùng trong việc lập trình
cho vi điều khiển các dòng khác nhau (Atmel, AVR,…). Phần mềm giúp người
soạn thảo và biên dịch chương trình C thành ngôn ngữ máy để nạp vào vi điều
khiển giúp chúng ta tương tác giữa vi điều khiển và người lập trình.
31
STM32CubeMX là công cụ giúp cấu hình ngoại vi, cũng như tạo project dựa
trên các cấu hình đó. Một số ưu điểm khi sử dụng STM32CubeMX như:
Giúp cấu hình ngoại vi dễ dàng. Chọn các pin trên chip và chọn các tính
năng mong muốn gắn với nó.
STM32CubeMX tự động download các driver mới nhất của ST dành cho
các dòng chip của mình.
Tự động tạo project dựa trên cấu hình đã thiết lập.
Trong luận văn đã sử dụng kết hợp hai phần mềm trên để lập trình cho kit
STM32F407 Discovery.
MQTT (Message Queuing Telemetry Transport) là một giao thức gởi dạng
publish/subscribe sử dụng cho các thiết bị Internet of Things với băng thông thấp,
độ tin cậy cao và khả năng được sử dụng trong mạng lưới không ổn định. Bởi vì
giao thức này sử dụng băng thông thấp trong môi trường có độ trễ cao nên nó là
một giao thức lý tưởng cho các ứng dụng M2M (machine to machine) hay IoT.
MQTT cũng là giao thức sử dụng trong Facebook Messager hay Youtube.
HTTP phù hợp cho việc truyền dữ liệu lớn (website chẳng hạn) nhưng nó thì
rõ ràng là không hiệu quả nhất khi muốn gởi một vài byte dữ liệu - dữ liệu cảm
biến. Thêm nữa là nó không nhanh vì vậy MQTT là hợp lý nhất trong trường hợp
này.
MQTT thì nhẹ nhàng hơn và nhanh hơn. Nó mất rất ít byte cho việc kết nối
với server và connection có thể giữ trạng thái open xuyên suốt. Ưu điểm là giao
tiếp sẽ mất ít dữ liệu và thời gian hơn HTTP Protocol. Đó là lý do đề tại chọn giao
thức MQTT thay vì sử dụng những giao thức khác.
Trong một hệ thống sử dụng giao thức MQTT, nhiều node trạm (gọi là mqtt
client - gọi tắt là client) kết nối tới một MQTT server (gọi là broker). Mỗi client sẽ
đăng ký một vài kênh (topic), ví dụ như "/client1/channel1", "/client1/channel2".
32
Quá trình đăng ký này gọi là "subscribe", giống như chúng ta đăng ký nhận tin trên
một kênh Youtube vậy. Mỗi client sẽ nhận được dữ liệu khi bất kỳ trạm nào khác
gởi dữ liệu và kênh đã đăng ký. Khi một client gởi dữ liệu tới kênh đó, gọi
là "publish".
QoS0: Broker/client sẽ gởi dữ liệu đúng 1 lần, quá trình gởi được xác nhận
bởi chỉ giao thức TCP/IP.
QoS1: Broker/client sẽ gởi dữ liệu với ít nhất 1 lần xác nhận từ đầu kia,
nghĩa là có thể có nhiều hơn 1 lần xác nhận đã nhận được dữ liệu.
QoS2: Broker/client đảm bảm khi gởi dữ liệu thì phía nhận chỉ nhận được
đúng 1 lần, không trùng lặp, không thất lạc.
QoS2 có độ tin cậy cao nhất.
Một gói tin có thể được gởi ở bất kỳ QoS nào, và các client cũng có thể
subscribe với bất kỳ yêu cầu QoS nào. Có nghĩa là client sẽ lựa chọn QoS tối đa
mà nó có để nhận tin. Ví dụ, nếu 1 gói dữ liệu được publish với QoS2, và client
subscribe với QoS0, thì gói dữ liệu được nhận về client này sẽ được broker gởi
với QoS0, và 1 client khác đăng ký cùng kênh này với QoS2, thì nó sẽ được
Broker gởi dữ liệu với QoS2.
33
Một ví dụ khác, nếu 1 client subscribe với QoS2 và gói dữ liệu gởi vào kênh
đó publish với QoS0 thì client đó sẽ được Broker gởi dữ liệu với QoS0. QoS
càng cao thì càng đáng tin cậy, đồng thời độ trễ và băng thông đòi hỏi cũng cao
hơn.
Retain:
Nếu retain được set bằng 1, khi gói tin được publish từ Client,
Broker phải lưu trữ lại gói tin với QoS, và nó sẽ được gởi đến bất kỳ Client nào
subscribe cùng kênh trong tương lai. Khi một Client kết nối tới Broker và
subscribe, nó sẽ nhận được gói tin cuối cùng có retain = 1 với bất kỳ topic nào
mà nó đăng ký trùng. Tuy nhiên, nếu Broker nhận được gói tin mà có QoS = 0
và retain = 1, nó sẽ huỷ tất cả các gói tin có retain = 1 trước đó. Và phải lưu gói
tin này lại, nhưng hoàn toàn có thể huỷ bất kỳ lúc nào.
Khi publish một gói dữ liệu đến Client, Broker phải sẽ retain = 1 nếu gói
được gởi như là kết quả của việc subscribe mới của Client (giống như tin nhắn
ACK báo subscribe thành công). Retain phải bằng 0 nếu không quan tâm tới kết
quả của việc subscribe.
Bảo mật:
MQTT được thiết kế một cách nhẹ và linh hoạt nhất có thể. Do đó nó chỉ có
1 lớp bảo mật ở tầng ứng dụng: bảo mật bằng xác thực (xác thực các client được
quyền truy cập tới broker).
Tuy vậy, MQTT vẫn có thể được cài đặt kết hợp với các giải pháp bảo mật
đa tầng khác như kết hợp với VPN ở tầng mạng hoặc SSL/TLS ở tầng transport.
Cloud MQTT là một MQTT server dựa trên công nghệ điện toán đám mây.
CloudMQTT được quản lý bởi máy chủ Mosquitto. Mosquitto thực hiện giao thức
MQ Telemetry Transport, cung cấp các giải pháp đơn giản để gởi tin nhắn bằng
cách sử dụng các lệnh publish/subscribe.
34
Cloud MQTT là một giải pháp thay thế cho việc tạo Broker server khi mà
chúng ta vẫn còn thiếu kinh nghiệm về lập trình server.
Để điều khiển và giám sát hệ thống trên smartphone ta cần có một ứng dụng
để giao tiếp với MQTT Broker.
Do còn hạn chế về khả năng lập trình ứng dụng trên Android cũng như IOS
nên trong đề tài em quyết định sử dụng ứng dụng IoT OnOff được cung cấp bởi
Kris Van Hoye, ứng dụng có thể tải trực tiếp trên Google Play hoặc App Store.
Có trên cả hai hệ điều hành cho smartphone phổ biến nhất hiện nay là
Android và IOS.
Thao tác thiết lập đơn giản.
Giao diện đẹp, cho phép tùy biến cao.
Giao tiếp được với tất cả MQTT Broker có hỗ trợ WebSoket.
Tự động kết nối lại với Broker khi mất kết nối.
Hoạt động ổn định.
35
3.10. Cập nhật thời gian thực từ NTP server:
Network Time Protocol (NTP) là một thuật toán phần mềm giữ cho các máy tính
và các thiết bị công nghệ khác nhau có thể đồng bộ hóa thời gian với nhau.
NTP server là một thiết bị được sử dụng để nhận biết yêu cầu đồng bộ thời gian
và phân phối tín hiệu thông tin thời gian bằng thuật toán NTP. Các tín hiệu thời gian
được sử dụng bởi hầu hết các mấy chủ NTP là nguồn thời gian UTC (Coordinated
Universal Time: thời gian toàn cầu dựa trên thời gian đồng hồ nguyên tử). Các tín
hiệu thời gian có thể được truyền thông qua mạng Internet toàn cầu giữa các NTP
server hoặc giữa NTP server với các NTP client (thiết bị cần cập nhật thời gian).
Public NTP server là một NTP server trên Internet mà ai cũng có thể truy cập và
nhận thông tin thời gian miễn phí. Chúng ta có thể tìm thấy danh sách các Public NTP
server tại trang web http://www.pool.ntp.org/.
Trong luận văn em sử dụng thư viện “NTPClient” để lập trình cho module
ESP8266 NodeMCU truy cập và nhận thông tin thời gian từ một Public NTP server.
36
Chương 4. THIẾT KẾ, THI CÔNG BỘ ĐIỀU KHIỂN VÀ MÔ HÌNH
NGÔI NHÀ
Internet
Smartphone
CloudMQTT
Internet ESP8266
NodeMCU
LCD
Nút nhấn
UART
SPI
Thiết bị:
Cảm biến RFID
quạt, đèn...
Các cảm biến, thiết bị điện (đèn, quạt..) và module đọc thẻ RFID sẽ được lắp đặt
trên mô hình ngôi nhà.
Các thành phần của bộ điều khiển trung tâm: Kit STM32F407, ESP8266
NodeMCU, LCD, nút nhấn cùng với relay sẽ được tích hợp thành một thiết bị. Thiết
bị này sẽ có ngõ vào là tín hiệu từ các cảm biến và ngõ ra là các tiếp điểm của relay
để điều khiển thiết bị.
37
4.2. Mô hình ngôi nhà:
Mô hình ngôi nhà sẽ gồm: 1 phòng khách, 2 phòng ngủ, 1 phòng bếp và 1
phòng vệ sinh, với các thiết bị và cảm biến được bố trí như bảng dưới.
38
4.3. Bộ điều khiển trung tâm:
Căn cứ vào số lượng cảm biến và thiết bị như trên ta có thể chọn kết nối các chân
vi điều khiển như sau:
39
PD9 Đèn phòng ngủ 1
PD10 Quạt phòng ngủ 2
PD11 Đèn phòng ngủ 2
PD12 Đèn phòng bếp
PD13 Đèn phòng vệ sinh
PD14 Còi
PC0 GPIO EXTI0 Nút nhấn: Menu/Select
PC1 GPIO EXTI1 Nút nhấn: Back
PC2 GPIO EXTI2 Nút nhấn: Down
PC3 GPIO EXTI3 Nút nhấn: Up
PC4 GPIO Input Cảm ứng điện dung một chạm mở/đóng cửa
Bảng 4.2: Các chân vi điều khiển sử dụng
4.3.1. Thiết kế, thi công mạch điều khiển trung tâm:
Sơ đồ nguyên lý:
40
Mạch in:
Hình 4.5: Kêt quả thi công mạch điều khiển trung tâm
41
4.3.2. Thiết kế, thi công mạch nút nhấn:
Sơ đồ nguyên lý:
Mạch in:
42
Kết quả thi công mạch nút nhấn:
43
Chương 5. LẬP TRÌNH HỆ THỐNG ĐIỀU KHIỂN
5.1. Các tính năng của hệ thống điều khiển nhà thông minh:
Sau khi nghiên cứu và thiết kế, đề tài sẽ tích hợp được các chức năng sau đây:
Đọc và hiển thị giá trị của cảm biến nhiệt độ, độ ẩm, cảm biến mưa, cảm biến
ánh sáng, cảm biến thân nhiệt chuyển động, cảm biến khí gas.
Đóng mở cửa sử dụng thẻ RFID.
Điều khiển trực tiếp sử dụng hệ thống nút nhấn và LCD tích hợp trên bộ điều
khiển trung tâm.
Điều khiển, giám sát từ xa qua internet bằng smartphone.
Hệ thống có thể hoạt động ở 1 trong 2 chế độ Auto/Manual.
Ở chế độ Auto có thể hoạt động theo 1 trong 4 kịch bản sau:
o Kịch bản 1: Cơ bản
Có người vào phòng vệ sinh và trời tối thì bật đèn.
Có mưa nếu các cửa sổ đang mở thì tự động đóng.
Phát hiện rò khí gas thì còi kêu, chớp tắt đèn, mở tất cả các cửa.
o Kịch bản 2: Tiếp khách
Có người trong phòng khách thì tự động mở đèn nếu trời tối, bật
quạt mở cửa sổ nếu nhiệt độ trong phòng lớn hơn nhiệt độ cài đặt.
Tất cả những tính năng còn lại giống kịch bản 1.
o Kịch bản 3: Ra khỏi nhà
Tắt tất cả các thiết bị, đóng tất cả các cửa.
Bật chế độ chống trộm: cảm biến phát hiện có người thì còi kêu,
chớp đèn.
Phát hiện rò khí gas thì còi kêu, chớp tắt đèn.
o Kịch bản 4: Đi ngủ
Tự động bật quạt phòng ngủ nếu nhiệt độ trong phòng lớn hơn nhiệt
độ cài đặt, đóng tất cả các cửa.
Bật chế độ chống trộm: cảm biến phát hiện có người thì còi kêu,
chớp đèn.
Phát hiện rò khí gas thì còi kêu, chớp tắt đèn.
Có thể hẹn giờ báo thức, đến giờ hẹn đèn trong phòng ngủ sẽ được
bật, cửa sổ tự động mở, tắt quạt.
Có người vào phòng vệ sinh và trời tối thì bật đèn.
Có mưa nếu các cửa sổ đang mở thì tự động đóng.
44
5.2. Giải thuật điều khiển:
Một thẻ từ sẽ được sử dụng làm master, thẻ này có khả năng cấp hoặc xóa
quyền truy cập của các thẻ khác.
Sơ đồ giải thuật:
Bắt đầu
Sai
Phát hiện thẻ
Ghi/xóa thẻ = 1
Đúng
Xóa thẻ
Đúng Là thẻ master Ghi/xóa thẻ = 0
Sai
Sai
Mở cửa
Ghi/xóa thẻ = 1 Đúng Là thẻ mới
Đúng
Sai Đúng
Ghi thẻ
Cửa đóng Đúng Là thẻ đã lưu Ghi/xóa thẻ = 0
Sai Sai
45
5.2.2. Hoạt động theo các kịch bản:
Bắt đầu
Trời tối
Sai
và có người
Đúng
Bật đèn
Bắt đầu
Sai
Đọc cảm biến
Rò khí gas
Đúng
Sai
Báo động
46
Bắt đầu
Sai
Có mưa
Đúng Đúng
Cửa sổ mở
47
Kịch bản 2 – Tiếp khách:
Bắt đầu
Sai
Đọc cảm biến
Có người
Sai
Đúng
Đúng
Bật đèn Sai Trời sáng
Đúng
Bật quạt
Có mưa
Sai
Mở cửa sổ
Hình 5.5: Sơ đồ giải thuật điều khiển đèn, quạt ở Kịch bản 2 - Tiếp khách
Các chức năng khác ở kịch bản này giống như kịch bản 1 nên được lập trình
theo giải thuật như trong kịch bản 1 đã nêu ở trên.
48
Kich bản 3 - Ra khỏi nhà:
Bắt đầu
Sai
Đọc cảm biến
Có người
Đúng
Sai
Báo động
Chức năng báo động rò rỉ gas lập trình như giải thuật ở kịch bản 1.
49
Kịch bản 4 – Đi ngủ:
Bắt đầu
Đúng
Bật quạt
Hình 5.7: Sơ đồ giải thuật điều khiển quạt Kịch bản 4 - Đi ngủ
Bắt đầu
Sai
Đọc cảm biến
Có người
phòng khách
Đúng
Sai
Báo động
50
Bắt đầu
Sai
Đọc thời gian thực
Đúng
Các chức năng báo động rò rỉ khí gas và điều khiển đèn phòng vệ sinh lập
trình giống như trong kịch bản 1, đã trình bày ở trên.
5.3. Lập trình cập nhật thời gian thực từ NTP sever:
Để lấy thời gian từ NTP sever ta cần biến ESP9266 thành 1 NTP client. Để làm
điều đo em sử dụng thư viện “NTPClient”. Một số lệnh cơ bản như sau:
51
5.4. Lập trình điều khiển, giám sát từ xa:
5.4.1. Lập trình cho kit STM32F407 và module ESP 8266 NodeMCU:
CloudMQTT
Wifi Internet
Internet
ESP8266 NodeMCU và smartphone lúc này đều đóng vai trò là các client
kết nối tới broker MQTT được tạo trên CloudMQTT. ESP8266 sẽ publish trạng
thái các thiết bị lên các topic trạng thái, đồng thời subscribe topic điều khiển để
nhận lệnh điều khiển. Ngược lại, ứng dụng smartphone sẽ publish lệnh điều khiển
lên topic điều khiển đồng thời subscribe các topic trạng thái để cập nhận trạng
thái thiết bị, cảm biến rồi hiển thị trên ứng dụng.
ESP8266 nhận được lệnh điều khiển thì sẽ truyền cho STM32F407 thông
qua chuẩn UART, đồng thời STM32 cũng sẽ liên tục gửi các trạng thái thiết bị,
cảm biến cho ESP8266.
52
Bắt đầu
Đúng
Hình 5.11: Sơ đồ giải thuật lập tình STM32F407 giao tiếp ESP8266
53
Bắt đầu
Kết nối
CloudMQTT
Subscribe topic
điều khiển
Để ESP8266 có thể kết nối với CloudMQTT em sử dụng thư viện “PubSubClient”.
Để tạo broker MQTT trên CloudMQTT trước hết ta phải tạo 1 tài khoản trên
trang web cloudmqtt.com. Cloud MQTT cung cấp nhiều gói dịch vụ khác nhau
tùy nhu cầu người dùng, từ miễn phí đến tính phí.
54
Trong luận văn em sử dụng gói “Humble Hedgehog” với phí 5$ mỗi tháng
để đảm bảo tốc độ và số lượng topic cần thiết.
Khi đã có tài khoản CloudMQTT ta tiến hành tạo broker sau đó tạo các topic
của broker theo bản sau:
55
script_2 Nhận và truyền trạng thái thực hiện kịch bản 2
script_3 Nhận và truyền trạng thái thực hiện kịch bản 3
script_4 Nhận và truyền trạng thái thực hiện kịch bản 4
alarm Nhận và truyền trạng thái báo động
Bảng 5.1: Các topic phải tạo
ESP8266 sẽ subscribe topic “control” để nhận lệnh điều khiển và publish các
topic còn lại để gửi trạng thái các thiết bị lên. Ngược lại smartphone sẽ publish
topic “control” và subscribe các topic còn lại.
Ví dụ: Để điều khiển bật quạt phòng khách, smartphone sẽ publish lên topic
“control” tin nhắn với nội dung “B1”, ESP8266 vì đã subscribe topic “control” nên
nhận được tin nhắn sau đó truyền tin nhắn đến kit STM32 để điều khiển bật đèn,
sau đó STM32 bật quạt rồi truyền cho ESP8266 tin nhắn với nội dung “B1” có
nghĩa là đã bật quạt phòng khách, khi nhận được ESP8266 sẽ publish nội dung
“B1” lên topic “fan_lr” để thông tin cho smartphone.
5.4.3. Thiết lập, tạo giao diện trên ứng dụng IoT OnOff:
Đầu tiên ta cần tải ứng dụng từ Google Play hoặc App Store. Sau đó mở ứng
dụng lên vào phần Settings => Configuration => Broker rồi điền toàn bộ thông
tin của broker đã tạo trên CloudMQTT.
Hình 5.14: Cung cấp thông tin broker cho ứng dụng IoT OnOff
56
Khi cung cấp đúng thông tin thì ứng dụng sẽ tự động kết nối broker.
Sau khi đã kết nối ta tiếng hành tạo giao diện bằng cách thêm các widget (nút
nhấn, đèn hiển thị, hay biểu đồ,…). Cuối cùng ta thiết lập các topic subscribe hay
publish cho các widget.
Hình 5.16: Giao diện điều khiển được tạo trên ứng dụng IoT OnOff
57
Chương 6. KẾT QUẢ, HẠN CHẾ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI
Sau 15 tuần thực hiện, luận văn cũng đã cơ bản hoàn thành được những yêu
cầu đặt ra ban đầu:
Thiết kế và gia công bộ điều khiển ngôi nhà với những tính năng cơ bản sau:
Có khả năng bật, tắt các thiết bị trong nhà bằng tay hoặc tự động theo
các kịch bản.
Đọc và xử lý tín hiệu từ các cảm biến.
Đóng mở cửa bán tự động sử dụng thẻ RFID.
Báo trộm, rò khí gas.
Hẹn giờ báo thức.
Có thể điều khiển, giám sát bằng điện thoại kết nối mạng Internet.
Xây dựng mô hình ngôi nhà để có thể vận hành thử nghiệm bộ điều khiển trên.
Hình 6.1: Bộ điều khiển và mô hình ngôi nhà sau khi hoàn thành
58
6.1.2. Hạn chế:
Do còn kiến thức còn hạn chế, nên đề tài không tránh khỏi những thiếu sót
và những vấn đề chưa khắc phục được. Có thể nêu ra một số điểm như sau:
Chưa thể tự lập trình một ứng dụng riêng để điều khiển mà sử dụng ứng
dụng có sẵn.
Chỉ dừng lại ở việc điều khiển on/off các thiết bị.
Tính năng còn rất cơ bản, cần bổ sung thêm nhiều tính năng mới để ngôi
nhà được thông minh hơn.
Bộ điều khiển nhận tín hiệu từ cảm biến bằng dây nên để sử dụng được ngoài
thực tế cần phải tính toán lại điện trở dây và áp dụng các biện pháp chống
nhiễu cho cảm biến.
6.2. Hướng phát triển đề tài:
Mô hình nhà thông minh với những tính năng cơ bản như trên là nền tảng để phát
triển thành mô hình với những yêu cầu và tính năng cao hơn.
Không chỉ dừng lại ở việc điều khiển on/off thiết bị, mô hình có thể phát triển để
điều khiển analog, với sức mạnh của vi điều khiển STM32F407 thì điều này không
quá khó khăn.
Ngoài ra có thể phát triển thêm các tính năng mới như: nhận diện mặt chủ nhà
thông qua camera, điều khiển bằng giọng nói,...
59
TÀI LIỆU THAM KHẢO
[1] “Thị trường công nghệ nhà thông minh tại Việt Nam hiện nay”. Internet:
https://tinhte.vn/threads/thi-truong-cong-nghe-nha-thong-minh-tai-viet-nam-
hien-nay.2676688/
http://www.st.com/content/ccc/resource/technical/document/user_manual/70/f
e/4a/3f/e7/e1/4f/7d/DM00039084.pdf/files/DM00039084.pdf/jcr:content/trans
lations/en.DM00039084.pdf
https://www.st.com/content/ccc/resource/technical/document/reference_manu
al/3d/6d/5a/66/b4/99/40/d4/DM00031020.pdf/files/DM00031020.pdf/jcr:cont
ent/translations/en.DM00031020.pdf
https://www.mouser.com/ds/2/758/DHT11-Technical-Data-Sheet-Translated-
Version-1143054.pdf
https://www.mpja.com/download/31227sc.pdf
http://www.ee.ic.ac.uk/pcheung/teaching/DE1_EE/stores/sg90_datasheet.pdf
60