Một trong những ứng dụng đó là kỹ thuậtđiều khiển thiết bị chiếu sáng, với tự động hóa hoàn toàn hoặc bán tự độngtrong việc quản lý, điều khiển.. Hệ thống điện tử này giao tiếp với chủ n
Trang 1THÔNG MINH QUA WIFI TRONG NHÀ
Giáo viên hướng dẫn : PSG.TS.Nguyễn Thanh Bình
Sinh viên thực hiện : Trần Ngọc Thắng 18IT5
Cao Bá Vũ 18IT3
Đà nẵng, tháng 8 năm 2020
Trang 3MỞ ĐẦU
Ngày nay trên thế giới với sự bùng nổ của các ngành công nghệthông tin, điện tử, nhúng v.v Đã làm cho đời sống của chúng ta ngày cànghoàn thiện, tiến bộ hơn Các thiết bị tự động hóa đã ngày càng được sửdụng rộng rãi đưa vào trong sản xuất và thậm chí là vào cuộc sống sinhhoạt hằng ngày Nhà thông minh là một ví dụ điển hình Các thiết bị giámsát, tự động, điều khiển từ xa v.v với đặc điểm nổi bật như sự chính xáccao, tốc độ nhanh, gọn nhẹ là những điều rất cần thiết cho cuộc sống củachúng ta ngày một tiến bộ hơn Một trong những ứng dụng đó là kỹ thuậtđiều khiển thiết bị chiếu sáng, với tự động hóa hoàn toàn hoặc bán tự độngtrong việc quản lý, điều khiển Hệ thống điện tử này giao tiếp với chủ nhàthông qua phần mềm trên di động, máy tính bảng, hoặc một giao diện web.Thông qua đó, ta có thể bật tắt tất cả thiết bị chiếu sáng trong nhà, hẹn giờhay lập lịch trình tự động qua ứng dụng di động (Android) Thiết kế nhàthông minh mặc dù đều dựa trên nền tảng IoT, tuy nhiên có rất nhiều cáchtiếp cận khác nhau trong việc thiết kế các mô hình nhà thông minh Một sốcách có thể kể đến là sử dụng các máy tính nhúng như Raspberry PI3,Orange Pi One, PIC hoặc Arduino Ở đây nhóm đã sử dụng NodeMCU-ESP12E tương tự Arduino, và xây dựng đề tài nghiên cứu với mục tiêuđiều khiển các thiết bị chiếu sáng qua internet (wifi)
Trang 4LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn đến thầy Nguyễn Thanh Bình đã trựctiếp hướng dẫn, góp ý, chia sẻ nhiều kinh nghiệm quý báu, tận tình giúp
đỡ và tạo điều kiện để chúng em hoàn thành tốt đề tài
Xin chân thành cảm ơn!
Trang 5NHẬN XÉT (Của giáo viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Chữ ký
Trang 6MỤC LỤC
Trang
MỞ ĐẦU 1
Chương 1 TỔNG QUAN 10
1.1 ĐẶT VẤN ĐỀ 10
1.2 MỤC TIÊU 10
1.3 NỘI DUNG NGHIÊN CỨU 11
1.4 GIỚI HẠN 11
1.5 CẤU TRÚC ĐỒ ÁN 11
Chương 2 CƠ SỞ LÝ THUYẾT 13
2.1 GIỚI THIỆU 13
2.2 GIỚI THIỆU PHẦN CỨNG 13
2.2.1 Bộ điều khiển trung tâm NodeMCU ESP-12E 13
2.2.2 Rơ le 4 kênh 16
2.2.3 Điện trở 18
2.2.4 Đèn chiếu sáng 19
2.2.5 Module cảm biến ánh sáng 19
2.2.6 Nút nhấn 2 chân 20
2.3 GIỚI THIỆU CÔNG CỤ LẬP TRÌNH 22
2.3.1 Arduino IDE 22
2.3.2 Visual Studio Code 28
2.3.3 Android Studio 30
2.3.4 Google Assistant – IFTTT 34
Chương 3 PHÂN TÍCH & THIẾT KẾ HỆ THỐNG 38
3.1 GIỚI THIỆU 38
3.2 THIẾT KẾ SƠ ĐỒ KHỐI 38
3.2.1 Khối cảm biến ánh sáng 39
3.2.2 Khối nút nhấn điều khiển 40
3.2.3 Khối bật tắt các thiết bị 40
3.2.4 Khối xử lý trung toàn mạch 41
3.3 NGUYÊN LÝ HOẠT ĐỘNG 42
3.4 LƯU ĐỒ THUẬT TOÁN 43
3.4.1 Lưu đồ lấy trạng thái của các đèn và cảm biến từ Web server 43
3.4.2 Lưu đồ điều khiển các bóng đèn bởi rơ le 44
3.4.3 Lưu đồ điều khiển các bóng đền bởi công tắc 45
3.4.4 Lưu đồ điều khiển đèn bởi cảm biến ánh sáng 46
Chương 4 TRIỂN KHAI THỰC HIỆN 47
4.1 LẮP RÁP PHẦN CỨNG 47
4.2 THIẾT KẾ PHẦN MỀM 47
4.2.1 Chương trình cho NodeMCU 47
4.2.2 Xây dựng Web Server 47
4.2.3 Ứng dụng di động Android 49
4.2.4 Google Assistant 49
Chương 5 KẾT QUẢ ĐẠT ĐƯỢC 50
5.1 MÔ HÌNH NHÀ THÔNG MINH 50
5.2 WEB SERVER 50
5.3 ỨNG DỤNG DI ĐỘNG 51
Trang 75.4 GOOGLE ASSISTANT 52
Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 53
6.1 KẾT LUẬN 53
6.2 HẠN CHẾ 53
6.3 HƯỚNG PHÁT TRIỂN 53
DANH MỤC TÀI LIỆU THAM KHẢO 54
Trang 8DANH MỤC HÌNH
Trang
Hình 2.1 Bộ điều khiển trung tâm – NodeMCU ESP-12E 12
Hình 2.2 Sơ đồ chân NodeMCU ESP-12E 13
Hình 2.3 Ứng dụng NodeMCU trong học tập 14
Hình 2.4 Ứng dụng NodeMCU trong công nghiệp 15
Hình 2.5 Ứng dụng NodeMCU trong dân dụng 15
Hình 2.6 Rơ le 4 kênh 16
Hình 2.7 Sơ đồ chân Rơ le 16
Hình 2.8 Điện trở 17
Hình 2.9 Giá trị của điện trở 18
Hình 2.10 Đèn chiếu sáng 18
Hình 2.11 Module cảm biến ánh sáng 19
Hình 2.12 Nút nhân 2 chân 20
Hình 2.13 Mạch nút nhấn 2 chân 20
Hình 2.14 Giao diện Code Arduino IDE 21
Hình 2.15 Các phiên bản JRE 22
Hình 2.16 Tải xuống Arduino IDE 23
Hình 2.17 Cài đặt Driver cho Arduino IDE 24
Hình 2.18 Vùng lệnh cơ bản trong Arduino IDE 25
Hình 2.19 Vùng thông báo trong Arduino IDE 26
Hình 2.20 Chọn cổng COM cho arduino 27
Hình 2.21 Giao diện Code Visual Studio Code 28
Hình 2.22 Cài đặt Visual Studio Code 28
Hình 2.23 Cài các extension cơ bản 29
Hình 2.24 Giao diện màn hình đầu của Android Studio 29
Hình 2.25 Một project bình thường thì có dạng như thế này 30
Hình 2.26 Cài đặt Android Studio 30
Hình 2.27 Cài máy ảo trong Android Studio 32
Hình 2.28 Google Assistant - IFTTT 34
Hình 2.29 Các bước cấu hình IFTTT trên điện thoại 35
Hình 3.1 Sơ đồ khối hệ thống 37
Hình 3.2 Khối cảm biến ánh sáng 38
Hình 3.3 Khối nút nhấn điều khiển 39
Hình 3.4 Khối bật tắt các thiết bị 39
Hình 3.5 Khối xử lý trung tâm toàn mạch 40
Hình 3.6 Sơ đồ nguyên lý hoạt động 41
Hình 3.7 Lưu đồ lấy trạng thái của các đèn và cảm biến từ Web server 42
Hình 3.8 Lưu đồ điều khiển các bóng đèn bởi rơ le 43
Hình 3.9 Lưu đồ điều khiển các bóng đèn bởi công tắc 44
Hình 3.10 Lưu đồ điều khiển đèn bởi cảm biến ánh sáng 45
Hình 4.1 Chương trình cho NodeMCU 46
Hình 4.2 Xây dựng Web Server 46
Hình 4.3 Phần mềm điều khiển sử dụng Android Studio 48
Trang 9Chương 1 TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Thường ngày để điều khiển chiếu sáng trong nhà, bạn phải di chuyển và bậttắt lắm công tắc Tuy nhiên, với ngôi nhà thông minh thì các kịch bản chiếu sángđược thiết lập sẵn cho từng hoạt cảnh chi tiết, chỉ một chạm là bạn được điềukhiển khung chiếu sáng theo ý muốn
Với những người mất khả năng đi lại, thì giải pháp này là lựa chọn tốt nhất.Qua bảng điều khiển trên úng dụng, bạn có thể biết được đèn nào đang bật hay đãtắt và bạn 100% bật hoặc tắt thiết bị đó ngay trên điện thoại hay Website khikhông cần thiết
Nếu bạn là người hay quên, đãng trí thì chức năng hẹn giờ bật tắt đèn là giảipháp hiệu quả trong việc tiết kiệm điện, ví dụ như đèn ở ngoài trời tự động bật tắtvào ban ngày hoặc ban đêm nhờ cảm biến ánh sáng, hay hẹn giờ lập thời gianbiểu cho các thiết bị trong nhà có thể tự động bật tắt theo giờ, theo ngày, hay cảtuần
1.2 MỤC TIÊU
- Điều khiển hệ thống chiếu sáng trong gia đình qua các thiết bị có internetbất cứ ở đâu
- Bật tắt tự động qua thiết lập thời gian biểu cho các thiết bị
- Thay đổi tùy thuộc vào ánh sáng môi trường và điều chỉnh cho phù hợp
- Xây dựng phần mềm quản lý trên nhiều nền tảng: Android, Website, IOS(sau này), v.v
- Giao diện quản lý thân thiện, đơn giản và dễ sử dụng
=> Tiết kiệm năng lượng, hiệu quả sử dụng cao, an toàn, dễ sử dụng, tiện nghi vàthông minh, đem lại sự hiện đại, sang trọng
Trang 101.3 NỘI DUNG NGHIÊN CỨU
- Xác định mục tiêu và giới hạn nghiên cứu
- Tìm hiểu cơ sở lý thuyết
- Thiết kế khối cảm biến, khối khối điều khiển qua rơ le và khối nút nhấn thủ công và khối hoàn chỉnh
- Xây dựng WebServer
- Viết code cho NodeMCU ESP-12E
- Xây dựng ứng dụng di đông (Android App)
- Thiết kế mô hình nhà và lắp ráp các board mạch
- Chạy thử và kiểm tra, sửa chữa lỗi
1.4 GIỚI HẠN
- Hệ thống chỉ ở mức độ điều khiển đơn giản
- Chỉ hoạt động khi có WIFI trong nhà
- App chỉ có trên nền tảng Android
- Domain cho WebServer miễn phí nên khó tránh rủi ro tốc độ và lâu dài
1.5 CẤU TRÚC ĐỒ ÁN
Với đề tài "THIẾT KẾ MÔ HÌNH ĐIỀU KHIỂN THIẾT BỊ CHIẾU SÁNG SỬDỤNG ĐIỆN THOẠI THÔNG MINH QUA WIFI TRONG NHÀ" thì bố cục đồ
án như sau:
Chương 2: Cơ sở lý thuyết
Chương này trình bày giới thiệu phần cứng của hệ thống điều khiển, cáccông cụ hỗ trợ cho việc xây dựng phần mềm hệ thống
Chương 3: Phân tích và thiết kế hệ thống
Chương này trình bày về sơ đồ khối, sơ đồ nguyên lý, sơ đồ hoạt động củacác board mạch của hệ thống, lưu đồ thuật toán Quy trình xây dựng WebServer
và App Android và các chức năng liên quan
Chương 4: Triển khai thực hiện
Chương này trình bày quy trình lắp ráp các board mạch và thiết kế môhình nhà Hoàn thiện WebServer và ứng dụng di động Android Bên cạnh đó làhình ảnh thực tế, cũng như kết quả
Trang 11Chương 5: Kết quả đạt được
Chương này giới thiệu về sản phẩm thực hiện, mô hình, ứng dụng di động
và web server
Chương 6: Kết luận và hướng phát triển
Chương này trình bày quy trình kết quả mà đề tài đạt được, đồng thời đưa rahướng phát triển để có được một đề tài hoàn thiện và đáp ứng được nhu cầu chocuộc sống hiện đại như ngày nay
Trang 12Chương 2 CƠ SỞ LÝ THUYẾT
- Thiết bị đầu ra: module rơ le, các đèn
- Thiết bị vửa là đầu vào và đầu ra: NodeMCU ESP-12E
- Thiết bị điều khiển: di động Android, máy tính, laptop có kết nối internet
- Chuẩn giao thức mạng internet: HTTP (GET METHOD)
2.2.1 Bộ điều khiển trung tâm NodeMCU ESP-12E
Chương 3 Giới thiệu về NodeMCU v1.0 Lua – ESP8266
ESP12E
NodeMcu là một mạch phát triển nền tảng IoT (Internet of Thing), sử dụng môđun ESP-12 (Wifi ESP8266 SoC).
Hình 2.1 Bộ điều khiển trung tâm – NodeMCU ESP-12E
NodeMcu có một số ưu điểm như sau:
- Thiết kế theo cách tương tự Arduino
- Hỗ trợ In/Out, PWM, ADC, I2C, UART
- Sử dụng ESP8266 cho khả năng kết nối Wifi
Trang 13- Có sẵn cổng giao tiếp với máy tinh (COM ảo) tương tự Arduino
- Có thể lập trình bằng nhiều công cụ, trong đó có Arduino IDE
- Sử dụng NodeMcu, với chíp wifi ESP8266, có thể triển khai các dự
án, đề tài điện tử, cơ - điện tử, sử dụng giao tiếp không dây wifimột cách dễ dàng và tiết kiệm chi phí
Hiện nay có 2 phiên bản NodeMcu là 0.9 và 1.0 (do MME cung cấp)nhỏ gọn, tiện dụng cho mạch test (mạch cắm lỗ) đồng thời sử dụngchíp giao tiếp máy tính CP2102
a) Sơ đồ chân
Hình 2.2 Sơ đồ chân NodeMCU ESP-12E
b) Thông số
Các thông số điển hình:
- Wi-Fi 2.4 GHz, hỗ trợ WPA/WPA2, 802.11 b/g/n protocol
- 1 kênh ADC 10 bit, 10 chân In/Out, PWM, truyền nhận SPI,
UART, I2C
- Tốc độ hoạt động 80Mhz,
- Tích hợp giao thức TCP/IP (ipv4)
- Dòng tiêu thụ thấp
- Tích hợp vi điều khiển 32-bit tiêu thụ điện năng thấp
- Điện áp nguồn (qua cổng USB) 5V Điện áp các chân In/Out: 3.3V
- Tích hợp cổng giao tiếp (COM ảo) Có thể lập trình bằng Arduino
Trang 14c) Một số ứng dụng cơ bản
a Trong học tập
Sử dụng ESP8266 hiển thị lên led ma trận
Một cách đơn giản để bạn tạo một chiếc đồng hồ, hay một khungled để biểu thị các đoạn văn bản mà bạn muốn Có thể áp dụng ứngdụng ESP8266 web server để áp dụng vào ứng dụng này, bạn sẽ sửdụng trình duyệt web hoặc điện thoại để gửi đoạn văn bản đến led
ma trận
Hình 2.3 Ứng dụng NodeMCU trong học tập
b Trong công nghiệp
Robot: Arduino được ứng dụng trong các thiết kế về Robot, cụthể như điều khiển motor, nhận biết và xử lý thông qua cảm biến Máy CNC mini sử dụng cho điêu khắc sử dụng laser hoặc spindletốc độ cao
Trang 15Hình 2.4 Ứng dụng NodeMCU trong công nghiệp
c Trong dân dụng
Nhà thông minh sử dụng các thiết bị kết nối Internet để có thểquản lý và giám sát các thiết bị và hệ thống từ xa như ánh sáng vànhiệt độ
Hình 2.5 Ứng dụng NodeMCU trong dân dụng
3.1.1 Rơ le 4 kênh
a) Giới thiệu rơ le 4 kênh và tính năng
Rơ-le là một loại linh kiện điện tử thụ động rất hay gặp trong cácứng dụng thực tế
Module 4 relay thích hợp cho các ứng dụng đóng ngắt điện thế cao AChoặ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
Trang 16MCU 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!
Rơ-le là một công tắc (khóa K) Nhưng khác với công tắc ở một chỗ cơbản, rơ-le được kích hoạt bằng điện thay vì dùng tay người
Hình 2.6 Rơ le 4 kênh
b) Sơ đồ chân
Hình 2.7 Sơ đồ chân Rơ le
NO = Normally Open : chân thường mở
COM = Common Pin : chân chung
NC = Normally Closed : chân thường đóng
GND = Ground (-) : chân đất, mass – (DC-)
VCC = 5V (+) : chân nguồn dương + (DC+)SIG = SIGNAL : chân tín hiệu
Relay switch indicator = HIGH or LOW : chế độ ban đầu cao hoặc thấpRelay : tải đóng ngắt (cuộn cảm
Trang 17c) Thông số
- Sử dụng điện áp nuôi 5VDC
- 4 Relay đóng ngắt ở điện thế kích bằng 0V nên có thể sử dụng cho
cả tín hiệu 5V hay 3v3 (cần cấp nguồn ngoài), mỗi Relay tiêu thụ dòng khoảng 80mA
- Điện thế đóng ngắt tối đa: AC250V - 10A hoặc DC30V - 10A
- Có thể kích mức 0 hoặc mức 1 thông qua Jupmer
- Có đèn báo đóng ngắt trên mỗi Relay
3.1.2 Điện trở
a) Giới thiệu và tính năng
Điện trở hay Resistor là một linh kiện điện tử thụ động gồm 2 tiếpđiểm kết nối, thường được dùng để hạn chế cường độ dòng điện chảytrong mạch, điều chỉnh mức độ tín hiệu, dùng để chia điện áp, kích hoạtcác linh kiện điện tử chủ động như transistor, tiếp điểm cuối trong đườngtruyền điện và có trong rất nhiều ứng dụng khác
Hình 2.8 Điện trở
b) Thông số
Trang 18Hình 2.9 Giá trị của điện trở
3.1.3 Đèn chiếu sáng
Dùng để chiếu sáng, trong sản phẩm thực hiện dùng đèn AC 220V
Hình 2.10 Đèn chiếu sáng
3.1.4 Module cảm biến ánh sáng
a) Giới thiệu về module cảm biến ánh sáng và tính năng
Module Cảm Biến Ánh Sáng dùng quang trở có ưu điểm:
Trang 19Hình 2.11 Module cảm biến ánh sáng
Tính năng:
- Cảm biến ánh sáng ban ngày và ban đêm
- Sử dụng ánh sáng điều khiển thiết bị điện
- Đèn sáng tự động khi trời tối
3.1.5 Nút nhấn 2 chân
a) Giới thiệu và tính năng
- Đóng ngắt trong thời gian nhất định
- Dùng trong các mạch điện tử
- Đóng ngắt cho thiết bị
Trang 213.2 GIỚI THIỆU CÔNG CỤ LẬP TRÌNH
3.2.1 Arduino IDE
IDE viết tắt của cụm từ Integrated Development Environment là phầnmềm cung cấp cho các lập trình viên một môi trường tích hợp bao gồm nhiềucông cụ khác nhau như chương trình viết mã lệnh hay code editor, chương trìnhsửa lỗi hay debugger, chương trình mô phỏng ứng dụng khi chạy thực tế haysimulator… Nói cách khác thì IDE là một phần mềm bao gồm những gói phầnmềm khác nhau giúp phát triển ứng dụng phần mềm
a) Giao diện IDE
Arduino IDE là một trình soạn thảo văn bản, giúp bạn viết code đểnạp vào bo mach Arduino
Một chương trình viết bởi Arduino IDE được gọi là sketch được lưu dướidạng ino
Môi trường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình C hoặc C++quen thuộc với người làm kỹ thuật Số lượng thư viện code viết sẵn vàchia sẻ bởi cộng đồng nguồn mở cực kỳ lớn
Hình 2.14 Giao diện Code Arduino IDE
Trang 22b) Cài đặt Arduino IDE
a Cài đặt Java Runtime Environment (JRE)
Vì Arduino IDE được viết trên Java nên bạn cần phải cài đặtJRE trước Arduino IDE
Link tải: downloads.html
b Cài đặt Arduino IDE
Bước 1: Truy cập địa chỉ http://arduino.cc/en/Main/Software.Đây là nơi lưu trữ cũng như cập nhật các bản IDE của Arduino.Bấm vào mục Windows ZIPfile for non admin install
Trang 23Hình 2.16 Tải xuống Arduino IDE
Bước 2: Sau khi download xong, các bạn bấm chuột phải vào filevừa download arduino-1.8.13-windows.zip và chọn “Extract here”
để giải nén
Bước 3: Copy thư mục arduino-1.8.13 vừa giải nén đến nơi lưu trữ.Bước 4: Chạy file trong thư mục arduino-1.8.13\ để khởi độngArduino IDE
Xem hướng dẫn thực hiện tại bài viết Disabling Driver Signature
on Windows 8 của SparkFun
Trang 24Đầu tiên, các bạn chạy file x86.exe (Windows x86) hoặc arduino-1.6.4\drivers\dpinst-amd64.exe (Windows x64) Cửa sổ “Device DriverInstallation Wizard” hiện ra, các bạn chọn Next để tiếp tục.
arduino-1.6.4\drivers\dpinst-Hình 2.17 Cài đặt Driver cho Arduino IDE
Khi có yêu cầu xác nhận cài đặt driver, chọn “Install”
Trang 25Đợi khoảng 10 giây trong lúc quá trình cài đặt diễn ra …
c) Các chức năng cơ bản trong Arduino IDE
a Vùng lệnh
Bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help).Phía dưới là các icon cho phép sử dụng nhanh các chức năngthường dùng của IDE được miêu tả như sau:
Hình 2.18 Vùng lệnh cơ bản trong Arduino IDE
Trang 26b Vùng viết chương trình
Bạn sẽ viết các đoạn mã của mình tại đây Tên chương trìnhcủa bạn được hiển thị ngay dưới dãy các Icon, ở đây nó tên là
“Blink” Để ý rằng phía sau tên chương trình có một dấu “§”.
Điều đó có nghĩa là đoạn chương trình của bạn chưa được lưulại
c Vùng thông báo
Những thông báo từ IDE sẽ được hiển thị tại đây Để ý rằnggóc dưới cùng bên phải hiển thị loại board Arduino và cổngCOM được sử dụng Luôn chú ý tới mục này bởi nếu chọn sailoại board hoặc cổng COM, bạn sẽ không thể upload đượccode của mình
Hình 2.19 Vùng thông báo trong Arduino IDE
d) Một số lưu ý
Khi lập trình, các bạn cần chọn port (cổng kết nối khi gắn board vào)
và board (tên board mà bạn sử dụng) Giả sử, bạn đang dùng mạchArduino Uno, và khi gắn board này vào máy tính bằng cáp USB nóđược nhận là COM4 thì bạn chỉnh như thế này là có thể lập trìnhđươc nhé