Với mong muốn lắp đặt các thiết bị điện, điện tử có thể được điều khiển hoặc tựđộng hoá hoặc bán tự động, thay thế con người trong thực hiện một hoặc một số thaotác quản lý, điều khiển..
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN HỌC THIẾT KẾ HỆ THỐNG NHÚNG
Đề tài:
XÂY DỰNG NHÀ THÔNG MINH BÁN TỰ ĐỘNG
SỬ DỤNG HỆ THỐNG INTERNET OF THINGS
Giảng viên hướng dẫn: PGS TS Phạm Văn Hưởng
Sinh viên thực hiện: Trần Trung Hiếu
Đặng Quốc Ân
Hà Huy Trường Nguyễn Quang Huy
CT050319 CT050301 CT050351 CT050325
Hà Nội, 12-2023
Trang 2LỜI NÓI ĐẦU
Thế giới quanh ta hiện nay đang chuyển mình bước vào kỷ nguyên của cuộcCách mạng Công nghiệp 4.0 – Kỷ nguyên của thời đại số, tự động hóa, liên kết vạn vậtthông qua Internet, Wifi Và chúng ta có thể thấy càng ngày càng có nhiều công nghệmới như Dữ liệu đám mây, Block Chain, trí tuệ nhân tạo AI, kết nối vạn vật IoT,…được ra đời và phát triển để phục vụ cho đời sống sinh hoạt, làm việc và giải trí củacon người
Là những sinh viên của ngành Công nghệ thông tin, chúng em nhận thấy là bảnthân mình phải luôn luôn cố gắng cập nhật, tiếp thu và học hỏi những điều mới để cóthể bắt kịp với con sóng chuyển mình của thời đại Và thông qua Đề tài của môn họcThiết kế hệ thống nhúng kì này, nhóm chúng em đã có cơ hội để được học hỏi và tiếpcận nhiều kiến thức hơn nữa
Sau một thời gian thảo luận, nhóm em đã quyết định đăng kí đề tài “Xây dựng nhà thông minh bán tự động sử dụng hệ thống Internet of Things” Lý do nhóm
chọn đề này vì đây là đề tài chúng em cảm thấy gần nhất trong đời sống của conngười, có tính thực tiễn rất cao, và trong giới hạn thời gian của phạm vi môn học,nhóm tự tin có thể hoàn thành được trọn vẹn nhất khoảng 90 - 95% mô hình này
Nhóm em xin được gửi lời cảm ơn đến thầy Phạm Văn Hưởng, giảng viên bộmôn Thiết kế hệ thống nhúng, đang giảng dạy và hỗ trợ trực tiếp bọn em môn học này.Chắc chắn là mô hình của bọn em vẫn sẽ còn có những thiếu xót, những lỗi sai, nhữngchỗ chưa hợp lý, chúng em mong nhận được góp ý và chỉnh sửa của thầy ạ !
Chúng em xin chân thành cảm ơn!
Trang 3MỤC LỤC
DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT i
DANH MỤC HÌNH VẼ ii
DANH MỤC BẢNG BIỂU iv
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 1
1.1 Mục đích tài liệu 1
1.2 Phạm vi tài liệu 1
1.3 Các linh kiện và chức năng 1
1.3.1 Arduino Uno R3 2
1.3.2 NodeMCU Esp8266 6
1.3.3 Module cảm biến ánh sáng 7
1.3.4 Module Relay 5V DC 9
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ 10
2.1 Phát biểu bài toán 10
2.2 Mục tiêu 10
2.3 Mô hình ca sử dụng 11
2.3.1 Biểu đồ ca sử dụng của hệ thống 11
2.3.2 Đặc tả các ca sử dụng 11
2.4 Phân tích kiến trúc 13
2.5 Phân tích các ca sử dụng 17
2.6 Thiết kế phần cứng 20
2.7 Thiết kế phần mềm 21
2.7.1 Phần mềm mô phỏng 21
2.7.2 Phần mềm lâp trình 22
2.7.3 Phần mềm hệ thống 23
2.8 Thiết kế code 28
2.8.1 Code Arduino Uno 28
2.8.2 Code ESP8266 31
Trang 4CHƯƠNG 3: THỰC NGHIỆM 35
3.1 Kết quả thực nghiệm 35
3.1.1 Lắp đặt hệ thống thực tế 35
3.1.2 Thực nghiệm các chức năng 37
3.2 Đánh giá kết quả 41
3.3 Kết luận chung 41
DANH MỤC THAM KHẢO 42
Trang 5DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Arduino Uno R3 Bảng vi điều khiển nguồn mở dựa trên microchip
Atmega328P
Node MCU Esp8266 Firmware dựa trên mã nguồn mở LUA, được phát triển
cho chip wifi Esp8266
Wifi Viết tắt của Wireless Fidelity là hệ thống truy cập internet
không dây
Module cảm biến ánh
sáng Module trả về giá trị của cường độ ánh sáng.
Web Server (Server)
Máy chủ web được dùng để chỉ phần mềm máy chủ, hoặc phần cứng dành riêng để chạy các phần mềm hoặc trang web trên máy chủ, cung cấp các dịch vụ World Wide Web,
xử lí các yêu cầu thông qua các giao thức
Client Máy trạm, máy khách giao tiếp với người dùng, nhận yêu
cầu và là nơi gửi yêu cầu đến server
Internet Of Things(IoT) Internet vạn vật, mạng lưới vạn vật kết nối Internet
Proteus Phần mềm vẽ mạch điện tử được phát triển bởi công ty
Lancenter Electronics
Arduino IDE
Phần mềm soạn thảo văn bản chính hãng, giúp viết code
để nạp vào bo mạch Arduino một cách nhanh chóng, dễ dàng và hoàn toàn miễn phí
MQTT MQTT (Message Queuing Telemetry Transport) là giao
thức truyền thông điệp (message) theo mô hình
Trang 6publish/subscribe (cung cấp / thuê bao),
Trang 7DANH MỤC HÌNH VẼ
Hình 1.1 Arduino Uno R3 2
Hình 1.2 Sơ đồ đấu chân Uno R3 3
Hình 1.3 NodeMCU Esp8266 6
Hình 1.4 Sơ đồ đấu chân NodeMCU Esp8266 7
Hình 1.5 Module cảm biến ánh sáng 7
Hình 1.6 Module relay 5V DC 9
Hình 2.1 Biểu đồ ca sử dụng của hệ thống 11
Hình 2.2 Kiến trúc tổng quan của hệ thống 13
Hình 2.3 đồ đấu chân kết nối giữa Uno và Esp 14
Hình 2.4 Luồng hoạt động của hệ thống 14
Hình 2.5 Luồng điều khiển qua Website 16
Hình 2.6 Luồng điều khiển qua Google Assistant 16
Hình 2.7 Luồng điều khiển qua ứng dụng Android 17
Hình 2.8 Biểu đồ tuần tự ca sử dụng điều khiển thiết bị bằng cảm biến 17
Hình 2.9 Biểu đồ tuần tự ca sử dụng điều khiển bằng Nút bấm 18
Hình 2.10 Biểu đồ tuần tự ca sử dụng điều khiển bằng Website 18
Hình 2.11 Biểu đồ tuần tự ca sử dụng điều khiển bằng ứng dụng Android 19
Hình 2.12 Biểu đồ tuần tự ca sử dụng điều khiển băng Giọng nói 19
Hình 2.13 Mô phỏng lắp đặt trên Proteus 20
Hình 2.14 Proteus 21
Hình 2.15 Arduino IDE 22
Hình 2.16 Giao tiếp UART 23
Hình 2.17 WebSocket 25
Hình 2.18 React Native lập trình ứng dụng di động 26
Hình 2.19 Diaflow và Google Assistant điều khiển thiết bị 27
Hình 3.1 Lắp đặt mô hình thực tế 35
Hình 3.2 Giao diện Website điều khiển 36
Hình 3.3 Giao diện ứng dụng điện thoại 37
Trang 8Hình 3.5 Điều khiển Thiết bị 1 qua Cảm biến ánh sáng 37
Hình 3.6 Điều khiển Thiết bị 1 qua Nút bấm 38
Hình 3.7 Điều khiển thiết bị qua Website 38
Hình 3.8 Điều khiển thiết bị kết hợp cảm biến 39
Hình 3.9 khiển thiết bị trên App Mobile 39
Hình 3.10 Điều khiển thiết bị bằng giọng nói qua Google Assistant 40
Hình 3.11 Đồng bộ giữa các thiết bị điều khiển 40
Trang 9DANH MỤC BẢNG BIỂU
Bảng 1.1 Linh kiện sử dụng 8
Bảng 2.1 Ca sử dụng bật thiết bị 18
Bảng 2.2 Đặc tả cả sử dụng tắt thiết bị 19
Bảng 2.3 Đặc tả ca sử dụng hiển thị trạng thái 19
Trang 10CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
1.1 Khái quát đề tài
1.1.1 Khởi tạo dự án
Trong thời đại công nghệ 4.0, xu hướng sử dụng, lắp đặt nhà thông minh ở ViệtNam đang ngày càng phổ biến Nhu cầu sở hữu một ngôi nhà trang bị đầy đủ thiết bịsmarthome là điều mà ai cũng mong muốn Nhà thông minh không chỉ đem lại sự tiệnnghi mà còn mang đến sự tinh tế và hiện đại Bởi vậy, nhóm chúng em đã lên ý tưởngtạo ra dự án Nhà thông minh để đáp ứng nhu cầu này của tất cả mọi người
Với mong muốn lắp đặt các thiết bị điện, điện tử có thể được điều khiển hoặc tựđộng hoá hoặc bán tự động, thay thế con người trong thực hiện một hoặc một số thaotác quản lý, điều khiển. Hệ thống điện tử này giao tiếp với người dùng thông qua bảngđiện tử đặt trong nhà, ứng dụng trên điện thoại di động, máy tính bảng hoặc một giaodiện web
1.1.2 Phân tích tính khả thi
Tính khả thi về mặt kỹ thuật: Áp dụng hệ thống nhúng IoT để tích hợp cả phần cứng
và phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực tự động hoá điềukhiển, quan trắc và truyền tin
Tính khả thi về mặt kinh tế: Như đã nói trên, sản phẩm được phát triển trên hệ thốngnhúng IoT nên thời gian thực hiện ngắn và đảm bảo được hiệu quả sử dụng, ứng dụngcao Tuy nhiên, theo thời gian sẽ mất chi phí bảo trì, giá thành khá cao
Tính khả thi về mặt tổ chức: Sản phẩm sau khi được hoàn thành sẽ đáp ứng đượcmong muốn và nhu cầu của các cá nhân trong gia đình, giúp cho cuộc sống dễ dànghơn, tiết kiệm và an toàn hơn Sản phẩm mới vẫn có thể đáp ứng các yêu cầu đặt ramong muốn khi được mở rộng trong tương lai
1.1.3 Tổng quan dự án
Sau khi đã trải qua các bước tìm hiểu cũng như phân tích về mọi mặt như trên,chúng em đã tìm ra các ưu, nhược điểm của dự án Mặc dù vẫn còn nhiều trở ngạitrong quá trình tạo ra sản phẩm, tuy nhiên xét về các kết quả đạt được sau khi hoànthành dự án, nhóm chúng em quyết định sẽ nghiên cứu và hoàn thành mô hình Nhàthông minh đầy đủ tiện ích hơn, tiết kiệm thời gian cũng như giảm thiểu khó khăntrong việc sử dụng các thiết bị, để mỗi gia đình có được cuộc sống thoải mái nhất
Trang 111.2 Mục đích tài liệu
Trong thời đại công nghiệp hóa hiện đại hóa đất nước, việc chú trọng phát triểncác ngành công nghiệp cũng như các ngành dịch vụ đang dần dần được coi trọng Vànhư một nhu cầu thiết yếu, việc phát triển ra các hệ thống nhúng để đưa vào hỗ trợtrong ngành công nghiệp, dịch vụ sẽ đem lại khoản lợi nhuận vô cùng lớn khi mà vớicùng bằng một sức lao động như nhau, người sử dụng các hệ thống nhúng tạo ra đượcnhiều giá trị sức lao động hơn
Tài liệu này được tạo ra với mục đích phân tích, thiết kế ra một hệ thống nhúng
có tên là “Xây dựng nhà thông minh bán tự động sử dụng hệ thống Internet of Things” Tài liệu là tổng hợp kiến thức của nhóm, theo hướng xây dựng hệ thống sử
dụng Arduino và ESP8266 để quản lý các thiết bị trong căn nhà của mình Nhằm bỏqua sự tác động của con người, con người sẽ không phải bận tâm quá nhiều tới việcquản lý các thiết bị, mang lại một cuộc sống thoải mái và tiện ích hơn
1.3 Phạm vi tài liệu
Tài liệu này được giới hạn trong phạm vi môn học thiết kế hệ thống nhúng vàcác môn học liên quan khác Tài liệu sử dụng bao gồm các ca sử dụng, các đặc tả ca sửdụng, biểu đồ hoạt động,… , các tài liệu, mô tả liên quan đến các thiết bị nhúng nhưbảng mạch Arduino, các hình mô tả cách nối mạch và các chương trình nhúng,…
1.4 Khái niệm về hệ thống nhúng
Hệ thống nhúng là một thuật ngữ để chỉ một hệ thống có khả năng tự trị đượcnhúng vào trong một môi trường hay hệ thống mẹ Đó là các hệ thống tích hợp cả phầncứng và phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực côngnghiệp, tự động hoá điều khiển, quan trắc và truyền tin Đặc điểm của các hệ thốngnhúng là hoạt động ổn định và có tính năng tự động hoá cao
Hệ thống nhúng thường được thiết kế để thực hiện một chức năng chuyên biệt nào
đó Khác với các máy tính đa chức năng, chẳng hạn như máy tính cá nhân, một hệthống nhúng chỉ thực hiện một hoặc một vài chức năng nhất định, thường đi kèm vớinhững yêu cầu cụ thể và bao gồm một số thiết bị máy móc và phần cứng chuyên dụng
mà ta không tìm thấy trong một máy tính đa năng nói chung Vì hệ thống chỉ được xâydựng cho một số nhiệm vụ nhất định nên các nhà thiết kế có thể tối ưu hóa nó nhằmgiảm thiểu kích thước và chi phí sản xuất Các hệ thống nhúng thường được sản xuấthàng loạt với số lượng lớn Hệ thống nhúng rất đa dạng, phong phú về chủng loại Đó
có thể là những thiết bị cầm tay nhỏ gọn như đồng hồ kỹ thuật số và máy chơi nhạcMP3, hoặc những sản phẩm lớn như đèn giao thông, bộ kiểm soát trong nhà máy hoặc
hệ thống kiểm soát các máy năng lượng hạt nhân Xét về độ phức tạp, hệ thống nhúng
có thể rất đơn giản với một vi điều khiển hoặc rất phức tạp với nhiều đơn vị, các thiết
bị ngoại vi và mạng lưới được nằm gọn trong một lớp vỏ máy lớn
Trang 121.5 Khái niệm về IoT
IoT là từ viết tắt của Internet of Things – “Internet vạn vật” hay “Mạng lưới vạnvật kết nối” IoT định hướng kết nối những thiết bị, công cụ, đồ vật trong đời sốnghàng ngày với internet để con người có thể giao tiếp, truy cập, điều khiển, thu thậpđược thông tin và quản trị các thiết bị đó nhằm làm tăng hiệu suất, hiệu quả sử dụng IoT là một kịch bản của thế giới, khi mà mỗi đồ vật, con người được cung cấp mộtđịnh danh của riêng mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệuqua một mạng lưới duy nhất mà không cần đến sự tương tác trực tiếp giữa người vớingười, hay người với máy tính IoT đã phát triển từ sự hội tụ của công nghệ khôngdây, công nghệ vi cơ điện tử và Internet Nói đơn giản là một tập hợp các thiết bị cókhả năng kết nối với nhau, với Internet và với thế giới bên ngoài để thực hiện mộtcông việc nào đó
1.6 Các linh kiện và chức năng
Bảng 1.1 Linh kiện sử dụng STT Tên thiết bị, linh kiện SL Mô tả chức năng
1 Arduino Uno R3 1 Nhận tín hiệu từ các cảm biến, chuyển
dữ liệu sang Esp
2 NodeMCU Esp8266 CH340 1 Nhận dữ liệu từ Uno, gửi lên server,
nhận yêu cầu từ server , kích hoạt relay
3 Relay 5VDC 2 Dùng điện áp 5V để kích hoạt dòng điện
thiết bị cần điều khiển
4 Đèn Led 10 Phát sáng, giúp dễ nhận biết trạng thái
5 Breadboard nhỏ 1 Kết nối các thiết bị và linh kiện
6 Dây cắm đực-cái, đực-đực 20 Dẫn điện và kết nối các linh kiện, thiết
bị
7 Module cảm biến ánh sáng 1 Trả về giá trị của âm thanh
8 Trở 100 ôm 10 Bảo vệ các thiết bị, ổn định dòng
Trang 131.6.1 Arduino Uno R3
Hình 1.1 Arduino Uno R3
Arduino gồm 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168,ATmega328 Các vi điều khiển này có thể xử lí những tác vụ đơn giản như điều khiểnled nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ - độ
ẩm và hiển thị trên màn hình LCD,… hay nhiều ứng dụng khác nữa Arduino Uno R3
là thế hệ thứ 3 được phát triển
Thông số của Arduino Uno R3:
Vi điều khiển: ATmega328 họ 8 bit
Điện áp hoạt động: 5V DC ( chỉ được cấp qu cổng USB)
Tần số hoạt động: 16MHz
Dòng tiêu thụ: khoảng 30mA
Điện áp vào khuyên dùng: 7-12V DC
Số chân Digital I/O: 14 (6 chân hardware PWM)
Số chân Analog: 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O: 30mA
Dòng ra tối đa (3.3V/5V): 50mA/500mA
Bộ nhớ flash: 32KB(ATmega328) với 0.5KB dùng bởi bootloader
SRAM: 2KB
Trang 14Hình 1.2 Sơ đồ đấu chân Uno R3
Năng lượng
- Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồnngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V Thường thìcấp nguồn bằng pin vuông 9V là hợp lí nhất nếu không có sẵn nguồn từ cổngUSB Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, sẽ làm hỏng ArduinoUNO
Các chân năng lượng
- GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi dùng cácthiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nốivới nhau
- 5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA
- 3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA
- Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, nối cực dương củanguồn với chân này và cực âm của nguồn với chân GND
Trang 15- IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo
ở chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy không được lấy nguồn 5V từchân này để sử dụng bởi chức năng của nó không phải là cấp nguồn
- RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương vớiviệc chân RESET được nối với GND qua 1 điện trở 10KΩ
Lưu ý:
Arduino UNO không có bảo vệ cắm ngược nguồn vào Do đó phải cẩn thận,kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino UNO Việclàm chập mạch nguồn vào của Arduino UNO sẽ biến nó thành một miếng nhựachặn giấy nên dùng nguồn từ cổng USB nếu có thể
Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho cácthiết bị khác, không phải là các chân cấp nguồn vào Việc cấp nguồn sai vị trí cóthể làm hỏng board Điều này không được nhà sản xuất khuyến khích
Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V
phải mắc một điện trở hạn dòng
Bộ nhớ
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
32KB bộ nhớ Flash: những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớFlash của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này sẽ đượcdùng cho bootloader nhưng hiếm khi nào cần quá 20KB bộ nhớ này đâu
2KB cho SRAM (Static Random Access Memory): giá trị các biến khai báo khilập trình sẽ lưu ở đây
khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM Tuy vậy, thực sự thìcũng hiếm khi nào bộ nhớ RAM lại trở thành thứ mà phải bận tâm Khi mấtđiện, dữ liệu trên SRAM sẽ bị mất
Trang 16 1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory):đây giống như một chiếc ổ cứng mini – nơi có thể đọc và ghi dữ liệu của mìnhvào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM.[1]
Các cổng vào/ra
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có 2 mứcđiện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều cócác điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thìcác điện trở này không được kết nối)
Một số chân digital có các chức năng đặc biệt như sau:
2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive– RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thôngqua 2 chân này Kết nối bluetooth thường thấy chính là kết nối Serial khôngdây Nếu không cần giao tiếp Serial, không nên sử dụng 2 chân này nếu khôngcần thiết
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép xuất ra xung PWM với độ phângiải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite().Nói một cách đơn giản, có thể điều chỉnh được điện áp ra ở chân này từ mức 0Vđến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác
Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài cácchức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giaothức SPI với các thiết bị khác
LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nútReset, sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khichân này được người dùng sử dụng, LED sẽ sáng
Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 →
210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trên board, có thể
để đưa vào điện áp tham chiếu khi sử dụng các chân analog Tức là nếu cấp điện áp2.5V vào chân này thì có thể dùng các chân analog để đo điện áp trong khoảng từ 0V
→ 2.5V với độ phân giải vẫn là 10bit
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWIvới các thiết bị khác.[2]
Trang 171.6.2 NodeMCU Esp8266
Hình 1.3 NodeMCU Esp8266
- Module nodeMCU Esp8266 là một mạch vi điều khiển có thể giúp điều khiển cácthiết bị điện tử, sử dụng IC nạp là CH340 từ Lolin với bộ xử lí trung tâm là là modulewifi SoC Esp8266 Được dùng cho các ứng dụng cần kết nối, thu thập dữ liệu và điềukhiển thông qua sóng wifi, đặc biệt là các ứng dụng liên quan đến IoT
Thông số kỹ thuật của NodeMCU Esp8266
Điện áp sử dụng: 3.3V DC
Tích hợp sẵn anten
Chuẩn kết nối không dây 802.11
Wifi: 2.4GHz, hỗ trợ bảo mật WPA/WPA2
Hỗ trợ 3 chế độ hoạt động STA/AP/STA+AP
Công suất đầu vào: 4.5V-9V
Dòng: ~70mA, tiêu chuẩn <200mA
Tốc độ truyền: 110-460800bps
Hỗ trợ giao tiếp dữ liệu UART/GPIO
Kích thước bộ nhớ: 4MB
Trang 18Hình 1.4 Sơ đồ đấu chân NodeMCU Esp8266
1 với cường độ ánh sáng phù hợp
Trang 19Thông số kỹ thuật của Module cảm biến ánh sáng:
DO: Đầu ra tín hiệu số (0 và 1)
AO: Đầu ra Analog (tín hiệu tương tự)
Khi không có ánh sáng chiếu vào, nội trở của chất bán dẫn tăng dần lên đến vôcùng (nếu có nối vào mạch điện thì sẽ hở mạch)
Ứng dụng của Module cảm biến ánh sáng:
- Module cảm biến áng sáng được sử dụng cho việc đọc giá trị của cường độ ánhsáng Module còn áp dụng cho việc theo dõi an ninh của các toà nhà, thiết bịcảnh báo an toàn như lắp đặt vào thiết bị chống trộm, báo động khi có người
mở của nhà
- Trên các thiết bị điện tử như điện thoại thông minh, máy tính xách tay, máy tínhbảng… cũng sử dụng cảm biến ánh sáng để điều khiển độ sáng màn hình, giúphạn chế độ sáng màn hình, tiết kiệm năng lượng và bảo vệ mắt cho người dùng
- Thường thấy nữa là các thiết bị bật tắt đèn tự động dựa vào ánh sáng ngoài trời.[3]
Trang 201.6.4 Module Relay 5V DC
Hình 1.6 Module relay 5V DC
- Module relay bản chất là dùng relay để điều khiển đóng mở, dùng điện áp nhỏ đểkích mở điện áp lớn Module relay 5VDC có kích thước nhỏ gọn, tiện lợi và dễ sửdụng nên được dùng rộng rãi như một công tắc điện, điều khiển các thiết bị công suấtlớn như đèn, động cơ,…
- Có nhiều loại relay khác nhau, với module relay 5V DC có đầu vào là DC+, DC-, IN
và đầu ra là NC, COM, NO
- Với 2 chế độ kích là LOW và HIGH tương ứng kích mức thấp và kích mức cao đượcđiều chỉnh qua 3 chân cắm trigger
- Module relay 5V DC này còn có thêm Opto quang, giúp bảo vệ mạch, chống xungngược dòng từ đầu ra sang đầu vào, nhằm bảo vệ thiết bị cũng như người sử dụng
Thông Số Kỹ Thuật Của Module Relay:
Nguồn đầu vào : 5 VDC
Chân IN: kích mở relay
Jump H/L level trigger: thiết lập mức điều khiển relay Có 2 mức : HIGH /LOW
Trang 21CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ
2.1 Phát biểu bài toán
Ngay từ thời kỳ sơ khai của Internet, khi các nhà phát minh mong muốn kết nốitất cả mọi thứ qua một mạng lưới đồng nhất để có thể điều khiển chúng phục vụ mụcđích con người, đây được xem như một dạng biểu hiện của IoT
Theo định nghĩa từ Wikipedia: Internet of Things (IoT) là mạng lưới thiết bị
kết nối Internet, một liên mạng, trong đó các thiết bị, phương tiện vận tải, phòng ốc và các trang thiết bị khác được nhúng với các bộ phận điện tử, phần mềm, cảm biến, cơ cấu chấp hành cùng với khả năng kết nối mạng máy tính giúp cho các thiết bị này có thể thu thập và truyền tải dữ liệu.
Cùng với sự phát triển của cuộc cách mạng công nghiệp lần thứ 4, IoT cũngđang được mở rộng và áp dụng rộng rãi Tuy nhiên nhiều người vẫn chưa nắm rõhoặc hình dung ra cụ thể IoT là gì Chính vì vậy cần triển khai hệ thống IoT tới gầnhơn trong cuộc sống con người, giúp mọi người hiểu rõ và áp dụng IoT vào ngaychính căn nhà của mình Nhà thông minh hay còn gọi là smarthome là kiểu nhà đượclắp đặt các thiết bị điện, điện tử có tác dụng tự động hoá hoàn toàn hoặc bán tự động,thay thế con người trong thực hiện một hoặc một số thao tác quản lý, điều khiển Hệthống điện tử này giao tiếp với chủ nhân nhà thông qua bảng điện tử đặt trong nhà,phần mềm điện thoại di động, máy tính bảng hoặc một giao diện web
Hình 2.1: Công nghệ nhà thông minh
Trang 222.2 Mục tiêu
Mô hình “Xây dựng nhà thông minh bán tự động sử dụng hệ thống Internet
of Things” giúp giải quyết bài toán đưa IoT tiếp cận tới gần hơn với mọi người, ngay
chính trong căn nhà của mình bằng việc điều khiển các thiết bị trong gia đình từ xa quaInternet
Kết hợp thêm đó là sử dụng các thiết bị cảm biến để tự động điều khiển cácthiết bị giúp tăng hiệu quả việc điều khiển các thiết bị
Tạo ra mô hình đáp ứng được các yêu cầu về tính năng, giao diện sử dụng, giáthành và chất lượng tốt
Đem lại sự hiện đại, sang trọng cho ngôi nhà của bạn: Với nhiều mẫu mã đadạng, thiết kế sang trọng, những thiết bị trong hệ thống chắc chắn sẽ trở thành nhữngvật dụng sang trí vô cùng lý tưởng, tạo nên một nét hiện đại mà đầy tinh tế bên trongngôi nhà Không những thế độ sáng và màu sắc còn được điều chỉnh theo ánh sángmôi trường xung quanh hay theo sở thích của bạn
Làm cho cuộc sống con người cũng như công việc không còn tốn nhiều sức lực
và thời gian, dễ dàng kiểm soát, tăng năng suất lao động và học tập
2.3 Mô hình ca sử dụng
2.3.1 Biểu đồ ca sử dụng của hệ thống
Hình 2.2 Biểu đồ ca sử dụng của hệ thống
Trang 23điều khiển trực tiếp và tự động Thiết bị 1 nhờ vào ánh sáng Còn Người dùng có thểđiều khiển trực tiếp Thiết bị 1 thông qua Nút bấm, và điều khiển cả 4 thiết bị thôngqua Website, App Mobile, Google Assistance có kết nối đến Server.
2.3.2 Đặc tả các ca sử dụng
Bảng 2.1 Đặc tả ca sử dụng bật đèn
Mô tả Kích hoạt thiết bị hoạt động
Điều kiện trước Người dùng truy cập được vào trang điều khiển, ứng dụng
Mô tả Tắt thiết bị đang hoạt động
Điều kiện trước Người dùng truy cập được vào trang điều khiển, ứng dụng
Trang 24Bảng 3.3 Đặc tả ca sử dụng bật quạt
Mô tả Kích hoạt thiết bị hoạt động
Điều kiện trước Người dùng truy cập được vào trang điều khiển, ứng dụng
Mô tả Tắt thiết bị đang hoạt động
Điều kiện trước Người dùng truy cập được vào trang điều khiển, ứng dụng
Trang 252 Độ sáng của đèn được thay đổi.
Luồng sự kiện phụ Hệ thống mất kết nối sẽ hiện thông báo người dùng
Bảng 2.6 Đặc tả ca sử dụng điều chỉnh tốc độ quay của quạt
Ca sử dụng Điều chỉnh tốc độ quay của quạt
Mô tả Điều chỉnh tốc độ quay của quạt
Điều kiện trước Người dùng truy cập được vào trang điều khiển, ứng dụng
2 Tốc độ quay của quạt được thay đổi
Luồng sự kiện phụ Hệ thống mất kết nối sẽ thông báo người dùng
Bảng 2.7 Đặc tả ca sử dụng hiển thị trạng thái
Ca sử dụng Hiển thị trạng thái
Tác nhân Server, Cảm biến khí gas, Cảm biết nhiệt độ
Mô tả Hiển thị trạng thái của hệ thống
Điều kiện trước Server kết nối được tới Esp để nhận thông tin
Luồng sự kiện
chính
1 Esp8266 gửi trạng thái của các thiết bị lên server
2 Server nhận giá trị trạng thái các thiết bị
3 Server hiển thị ra cho người dùng trạng thái các thiếtbi
Luồng sự kiện phụ Hiển thị thông báo nếu mất kết nối tới Esp để nhận thông tin
Trang 262.4 Phân tích kiến trúc
Kiến trúc của mô hình điều khiển thiết bị được chia làm 2 phân chính: phầnmềm và phần cứng
Hình 2.7 Kiến trúc tổng quan của hệ thống
Về phần cứng bao gồm 1 Arduino Uno và 1 Esp8266 được kết nối với nhau quacác chân RX và TX theo chuẩn UART Các chân này dùng để truyền và nhận dữ liệugiữa 2 thiết bị qua cổng serial
Trang 27Về phần mềm hệ thống sử dụng Websocket để giao tiếp realtime giữa Server vàEsp8266 Một website client để điều khiển các thiết bị thông qua internet.
Hình 2.9 Luồng hoạt động của hệ thống
Mô tả sơ đồ:
- Thiết bị 1 sẽ được điều khiển bằng 3 luồng:
Luồng thứ nhất là luồng từ cảm biến ánh sáng
Luồng thứ hai là từ Server do người dùng điều khiển thông qua Website, AppMobile, Google Assistance
Luồng thứ ba là từ Nút bấm được kết nối với Uno
Trang 28+ Luồng thứ nhất:
Cảm biến sẽ liên tục gửi các giá trị digital tương ứng với điều kiện ánh sáng lúc
đó (0 – có ánh sáng, 1 – không có ánh sáng) về cho Uno
Uno sau khi nhận được giá trị cảm biến ánh sáng sẽ gửi lệnh bật hoặc tắt thiết bịsang cho ESP
Nếu giá trị bằng 0, Uno sẽ gửi lệnh tắt thiết bị Nếu giá trị bằng 1, Uno sẽ gửilệnh bật thiết bị ESP sẽ dựa vào lệnh đó mà bật tắt thiết bị
+ Luồng thứ hai:
Người dùng sẽ thao tác bật tắt thiết bị thông qua việc điều khiển Nút bấm đượcthiết kế trên giao diện Website, App Mobile, hoặc qua việc điều khiển bằnggiọng nói nhờ Google Assistance
Khi có yêu cầu gửi về Server, Server xử lý yêu cầu đó và gửi lệnh về cho ESPbật tắt thiết bị
- Do Cảm biến ánh sáng và Server là 2 luồng xử lý độc lập và song song với nhau,nhưng yêu cầu đặt ra là việc bật tắt thiết bị bằng Cảm biến ánh sáng không được phépghi đè việc bật tắt thiết bị bằng Server
Giải pháp : ta phải có một biến trung gian để xử lý vấn đề này, và biến đó được tạm đặt tên tạm thời là biến Troi, khởi tạo giá trị ban đầu bằng -1.
- Giả sử ở lần chạy đầu tiên, Troi vẫn bằng -1, Uno vẫn sẽ nhận giá trị từ cảm biến ánh
sáng và gửi lệnh sang ESP như bình thường, nhưng sẽ khác là trước khi gửi lệnh, ta
sẽ gán lại biến Troi bằng giá trị của cảm biến ánh sáng hiện tại.
- Ở các lần chạy tiếp theo, khi cảm biến ánh sáng gửi giá trị về Uno, thì trước khi Uno
xử lý và gửi lệnh sang cho ESP, Uno sẽ lấy giá trị cảm biến đó so sánh với biến Troi, nếu giá trị cảm biến ánh sáng bằng giá trị của biến Troi (ánh sáng không thay đổi),
thì Uno sẽ không gửi lệnh cho ESP nữa
Ngược lại, nếu giá trị cảm biến ánh sáng khác biến Troi (ánh sáng có thay đổi), Uno
sẽ xử lý và gửi lệnh sang cho ESP dựa theo giá trị cảm biến ánh sáng mới