Với đề tài này, em muốn sử dụng điện thoại di động và máy tính để điều khiển thiết bị điện dân dụng thông qua mạng internet.. TÓM TẮT Đồ án được nghiên cứu và thực hiện với mục đích áp
Trang 1TRƯỜNG ĐẠI HỌC VINH
VIỆN KỸ THUẬT VÀ CÔNG NGHỆ
Trang 2TRƯỜNG ĐẠI HỌC VINH
VIỆN KỸ THUẬT VÀ CÔNG NGHỆ
Trang 3MỤC LỤC
Trang
MỤC LỤC 2
DANH MỤC HÌNH 4
DANH MỤC BẢNG 6
MỞ ĐẦU 7
TÓM TẮT 8
CHƯƠNG 1 TỔNG QUAN VỀ THIẾT BỊ VÀ HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN 10
1.1 Tổng quan về hệ thống điều khiển thiết bị điện 10
1.2 Một số hệ thống được sử dụng trong nhà thông minh hiện nay 11
1.2.1 Google Assistant 11
1.2.2 Amazon Alexa 12
1.2.3 Apple HomeKit 13
1.3 Giới thiệu chung về Arduino 13
1.4 Giới thiệu về Arduino UNO R3 14
1.5 Module 8 Relay 18
1.6 Cảm biến DHT11 19
1.7 Cảm biến khí Gas MQ2 20
1.8 Cảm biến thân nhiệt chuyển động HC-SR501 21
1.9 Mạch RFID RC522 NFC 13.56Mhz 22
1.10 Mạch giảm áp DC LM2596 3A 24
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT, THIẾT KẾ, LẮP ĐẶT VÀ LẬP TRÌNH CHO HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN 25
2.1 Tổng quan về kit thu phát wifi ESP8266 NODE MCU mini D1 25
2.2 Giới thiệu về Blynk – phần mềm điều khiển thiết bị qua điện thoại 26
2.3 Giao thức MQTT(Message Queue Telemetry Transport) 27
2.4 Máy chủ CloudMQTT 29
2.5 Phần mềm MQTT Buddy trên điện thoại 31
2.6 Công cụ IFFFT(If this then that) 32
Trang 42.8 WebHooks 34
2.9 Thiết kế mạch điều khiển thiết bị sử dụng ESP8266 NODE MCU 36
2.9.1 Bảng nối chân giữa Wifi ESP8266 NODEMCU với cảm biến nhiệt độ, độ ẩm DHT11 và cảm biến thân nhiệt chuyển động PIR HC SR-501 36
2.9.2 Bảng nối chân giữa Wifi ESP8266 NODEMCU với Module Relay 8 kênh 36
2.9.3 Bảng nối chân giữa board Arduino UNO R3 với Module Relay 8 kênh 36 2.9.4 Bảng kết nối Module Relay 8 kênh với các thiết bị sử dụng 37
2.10 Cách tiến hành 37
2.10.1 Thiết bị, vật tư tiêu hao 37
2.10.2 Mô hình thực tế 37
2.10.3 Giao tiếp giữa ESP8266 NODE MCU với CloudMQTT 38
2.10.4 Giao tiếp giữa ESP8266 NODE MCU với phần mềm Blynk để điều khiển thiết bị và hiển thị giá trị cảm biến trên điện thoại 42
2.10.5 Cách sử dụng Google Assistant kết hợp Webhooks trong IFTTT 49
2.10.6 Lập trình cho Wifi ESP8266 NODE MCU đọc giá trị cảm biến DHT11, cảm biến thân nhiệt chuyển động và điều khiển thiết bị 53
2.10.7 Lập trình cho Arduino UNO R3 để điều khiển cửa chính sử dụng thẻ từ RFID 63
KẾT LUẬN 67
TÀI LIỆU THAM KHẢO 68
Trang 5DANH MỤC HÌNH
Trang
Hình 1.1 Google Home 11
Hình 1.2 Amazon Alexa 12
Hình 1.3 Apple HomeKit 13
Hình 1.4 Board Arduino UNO R3 14
Hình 1.5 Vi điều khiển ATmega328 15
Hình 1.6 Sơ đồ cổng vào/ra của Arduino UNO R3 17
Hình 1.7 Module 8 relay 19
Hình 1.8 Cảm biến nhiệt độ, độ ẩm DHT11 19
Hình 1.9 Sơ đồ kết nối vi xử lý của DHT11 20
Hình 1.10 Sơ đồ chân cảm biến MQ2 21
Hình 1.11 Cấu tạo bên trong của MQ2 21
Hình 1.12 Cảm biến thân nhiệt chuyển động HC-SR501 22
Hình 1.13 Mạch RFID 23
Hình 1.14 Mạch giảm áp DC LM2596 3A 24
Hình 2.1 Kit RF thu phát wifi ESP 8266 NodeMCU Mini D1 25
Hình 2.2 Giao diện phần mềm Blynk trên Smartphone 27
Hình 2.3 Giao thức MQTT 27
Hình 2.4 Cấu trúc một giao thức MQTT 28
Hình 2.5 Giao diện CloudMQTT 29
Hình 2.6 Giao thức CloudMQTT 29
Hình 2.7 Ví dụ về giao thức MQTT 30
Hình 2.8 Thông số kết nối với CloudMQTT 30
Hình 2.9 Phần mềm MQTT Buddy trên điện thoại 31
Hình 2.10 Thông số cần điền vào phần mềm 31
Hình 2.11 Giao diện điều khiển 32
Hình 2.12 Một số kênh trên trang IFTTT 33
Hình 2.13 Giao diện trợ lý ảo Google Assistant 34
Hình 2.14 Biểu tượng Webhooks 34
Trang 6Hình 2.16 Phòng khách 38
Hình 2.17 Phòng ngủ 38
Hình 2.18 Chọn Create New Instance 39
Hình 2.19 Tạo Project 40
Hình 2.20 Các thông số cơ bản của Project 40
Hình 2.21 Thao tác để điều khiển thiết bị sử dụng MQTT 40
Hình 2.22 Giao diện phần mềm MQTT Buddy 41
Hình 2.23 Tạo topic để điều khiển thiết bị 41
Hình 2.24 Giao diện phần mềm Blynk trên nền tảng IOS 42
Hình 2.25 Tạo nút bấm ON/OFF 43
Hình 2.26 Giá trị cần thiết của một nút bấm 44
Hình 2.27 Tạo màn hình hiển thị giá trị cảm biến 45
Hình 2.28 Đặt các thông số cần thiết 46
Hình 2.29 Tạo thông báo chống trộm 47
Hình 2.30 Thông số cơ bản của Notifications 48
Hình 2.31 Giao diện IFTTT 49
Hình 2.32 Tạo Applets 49
Hình 2.33 Chọn điều kiện "Nếu có cái này" 49
Hình 2.34 Chọn ứng dụng Google Assistant 50
Hình 2.35 Chọn tab Say a simple phrase 50
Hình 2.36 Thiết lập khẩu lệnh 51
Hình 2.37 Chọn kết quả "thì làm việc này" 51
Hình 2.38 Chọn ứng dụng trung gian Webhooks 52
Hình 2.39 Chọn hành động điều khiển 52
Hình 2.40 Thiết lập thông số cơ bản của Webhooks 53
Hình 2.41 Sơ đồ thuật toán điều khiển thiết bị điện 54
Hình 2.42 Sơ đồ thuật toán điều khiển cửa chính sử dụng RFID 63
Trang 7DANH MỤC BẢNG
Trang
Bảng 1.1 Thông số của Arduino UNO R3 15
Bảng 2.1 Thông tin các chân của ESP8266 NODEMCU Mini D1 26
Bảng 2.2 Bảng nối chân giữa ESP8266 Node MCU với DHT11 và HC SR-501 36
Bảng 2.3 Bảng nối chân giữa ESP8266 NODE MCU với Relay 8 kênh 36
Bảng 2.4 Bảng nối chân giữa Arduino UNO R3 với Relay 8 kênh 36
Bảng 2.5 Bảng kết nối Module Relay 8 kênh với các thiết bị điều khiển 37
Bảng 2.6 Bảng thiết lập topic để điều khiển thiết bị thông qua cloudMQTT 39
Bảng 2.7 Bảng thiết lập topic để hiển thị giá trị từ cảm biến nhiệt độ, độ ẩm DHT11 và cảm biến thân nhiệt chuyển động 39
Trang 8MỞ ĐẦU
“Ngôi nhà thông minh” là một cụm từ không còn xa lạ đối với nền công nghệ phát triển hiện nay Lúc đầu, ý tưởng được thực hiện nhờ vào tia hồng ngoại để điều khiển từ xa, nhưng khoảng cách bị hạn chế Về sau, nhiều nghiên cứu nhằm cải tiến khoảng cách điều khiển mang lại nhiều thành công và có ý nghĩa thực tiễn như điều khiển thông qua mạng internet… Khi công nghệ không dây phát triển, người ta lại nghĩ đến điều khiển qua mạng không dây, điều khiển từ xa dùng máy tính ra đời Không dừng lại ở đó, khi mà các mạng điện thoại đang cạnh tranh gay gắt, chiếc điện thoại trở nên vật dùng không thể thiếu của mỗi cá nhân, người ta lại nghĩ về một chiếc điện thoại tích hợp khả năng điều khiển từ xa
Đi cùng xu hướng phát triển đó, em đã chọn đề tài: “Thiết kế và thi công hệ thống điều khiển thiết bị điện bằng điện thoại di động dùng mạng Internet” Với
đề tài này, em muốn sử dụng điện thoại di động và máy tính để điều khiển thiết bị điện dân dụng thông qua mạng internet
Em hi vọng với đề tài này sẽ làm cơ sở nghiên cứu cho các nhóm khác sau
này có thể mở rộng, phát triển hơn nữa
Trong quá trình hoàn thành đồ án nhóm chúng em xin được gửi lời cám ơn chân thành tới giảng viên hướng dẫn ThS.Phan Văn Dư đã tận tâm, nhiệt tình giúp
đỡ để nhóm chúng em có thể hoàn thành tốt đồ án này Ngoài ra em xin chân thành cám ơn các thầy giáo bộ môn đã giảng dạy giúp cho chúng em có được kiến thức nền tảng góp phần vào sự thành công của đồ án
Trang 9TÓM TẮT
Đồ án được nghiên cứu và thực hiện với mục đích áp dụng những kiến thức
đã được học trong nhà trường để thiết kế ra một hệ thống “Điều khiển và giám sát thiết bị điện bằng điện thoại di động sử dụng mạng Internet” hoàn chỉnh Hệ thống này tích hợp module ESP8266 NodeMCU, module công suất cho các thiết bị trong nhà Sau khi được xử lý, dữ liệu sẽ được gửi về điện thoại của người điều khiển để báo trạng thái của các thiết bị được điều khiển
Hệ thống điều khiển thiết bị điện bằng điện thoại di động sử dụng mạng Internet có các chức năng sau:
• Người sử dụng có thể kiểm tra trạng thái của thiết bị trước khi điều khiển ở bất cử nơi đâu Khi có tín hiệu từ cảm biến chống trộm thì hệ thống sẽ tự thông báo về cho người sử dụng
• Sau khi kiểm tra trạng thái của thiết bị, người sử dụng có thể dùng mạng Internet
để điều khiển Ngoài ra, khi ở nhà thì người sử dụng có thể sử dụng trợ lý ảo Google Assitant để điều khiển tất cả thiết bị ở trong nhà
Hệ thống sau khi nhận tín hiệu điều khiển sẽ báo trạng thái của thiết bị về cho người
sử dụng qua điện thoại hoặc mạng Internet
Trang 10ABSTRACT
The project was researched and implemented to apply such knowledge obtained from university, which was aim to design a complete system “Control and supervise electrical devices by mobile phone through the Internet” This system was integrated with ESP8266Node MCU module and power module for home appliances After processing, data will be sent to a mobile phone of the supervisor
to inform the state of the equipment controlled
The remote control system by cellular phone through the Internet has three functions mentioned below:
• A user can check the state of devices before controlling anywhere When getting signals from an antitheft sensor, the system automatically sends notifications to the supervisor
• After checking the condition of equipment, the user can control it online Additionally, they also make use of Google Assistant to control all home appliances when they are at home
• After the system receives controlling signal, it will inform a user of the status of the devices via phone or the Internet
Trang 11CHƯƠNG 1 TỔNG QUAN VỀ THIẾT BỊ VÀ HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN
1.1 Tổng quan về hệ thống điều khiển thiết bị điện
Với sự phát triển mạnh mẽ của khoa học kỹ thuật, công nghệ kỹ thuật điều khiển tự động hóa đã và đang đóng vai trò tất yếu trong mọi lĩnh vực Hầu như tất
cả công việc mà chúng ta đang thực hiện đều được giúp đỡ của hệ thống tự động hóa hoặc sự điều khiển từ máy tính
Khi công nghệ đang được nâng cấp từng ngày, mọi người đang có xu hướng chuyển những hệ thống thông thường trong gia đình sang một hệ thống thông minh nhằm tiết kiệm được thời gian, công sức và theo đó chất lượng cuộc sống được cải thiện đáng kể, mọi công việc đã được đơn giản hóa để phù hợp với từng cá nhân
…Chính vì lẽ đó, là một sinh viên chuyên ngành Kỹ thuật điều khiển và Tự động hóa chúng ta cần phải nắm bắt và vận dụng nó một cách có hiệu quả nhằm góp phần vào sự phát triển nền khoa học kỹ thuật nước nhà
Như chúng ta đã biết, hầu như các thiết bị tự động ở trong nhà máy, trong đời sống sinh hoạt của các gia đình đều hoạt động độc lập với nhau, mỗi thiết bị đều
có một quy trình sử dụng khác nhau, chúng chưa có một sự liên kết nào với nhau về mặt dữ liệu Còn đối với hệ thống điều khiển thiết bị từ xa thông qua mạng Wifi thì lại khác Ở đây, các thiết bị điều khiển tự động được kết nối với nhau thành một hệ thống hoàn chỉnh thông qua một thiết bị trung tâm và có thể giao tiếp với nhau về mặt giữ liệu
Một hệ thống điều khiển thiết bị từ xa ở trong nhà thông qua tin mạng Wifi gồm có các thiết bị đơn giản như bóng đèn, quạt máy đến các thiết bị phức tạp hơn như tivi, máy giặt, hệ thống cảnh báo… Tất cả sẽ hoạt động như một ngôi nhà thông minh Tức là tất cả các thiết bị này có thế giao tiếp với nhau về mặt dữ liệu thông qua một bộ não trung tâm Nói chính xác hơn là một máy vi tính hoàn chỉnh hoặc có thể là một bộ xử lí đã được lập trình sẵn toàn bộ chương trình điều khiển Các thiết
bị trong nhà có thể được điều khiển từ xa thông qua mạng Wifi Ví dụ như việc tắt quạt, đèn điện, bình nóng lạnh… khi các thành viên trong gia đình quên tắt khi ra
Trang 12có thể bật bình nóng lạnh trước khi về nhà trong một khoảng thời gian nhất định Bên cạnh đó thì hệ thống còn mang tính bảo mật, có nghĩa chỉ có chủ nhà hay người thân mới có thể điều khiển được ngồi nhà này
Với những yêu cầu thực tiễn như trên, những đòi hỏi ngày càng cao của cuộc sống kết hợp với sự phát triển mạnh mẽ của mạng di động nên nhóm chúng em đã chọn đề tài “Thiết kế hệ thống điều khiển và giám sát thiết bị điện bằng điện thoại
Trợ lý Google được định cấu hình trong ứng dụng Google Home, với các tính năng thường được chia thành hai nhóm: quản gia AI và điều khiển nhà thông minh
Trang 13Bạn có thể yêu cầu Trợ lý Google tất cả các loại câu hỏi và làm cho nó hoàn thành các nhiệm vụ khác nhau chỉ bằng cách nói chuyện với nó Bạn có thể thiết lập chương trình Cập nhật tin tức, thời tiết, giao thông và lịch trình của bạn trong ngày
bằng cách hỏi Google Assistant, ví dụ: “Hey Google, what’s my schedule looking
like?”, Cộng với bạn có thể yêu cầu thông tin về thời gian đi làm , thông tin chuyến
bay, dự báo thời tiết, các sự kiện sắp tới, thông tin về các đội thể thao, chuyển đổi đơn vị, bản dịch ngắn, mục từ điển và các sự kiện cũ
1.2.2 Amazon Alexa
Hình 1.2 Amazon Alexa
Alexa là một phần mềm được cài đặt sẵn cho Amazon Echo Giúp cho Echo có khả năng nghe và thực hiện các mệnh lệnh mà bạn đưa ra Khi bạn đưa ra câu hỏi cho Amazon Echo, bạn sẽ có câu trả lời giống trên Siri - đấy chính là nhờ Alexa Với Alexa trên Amazon Echo, chỉ cần nói “Alexa”, bạn có thể yêu cầu cập nhật tin tức, thiết lập danh sách những việc cần làm, cài bộ đếm giờ, báo thức, chơi nhạc và rất nhiều thứ khác nữa Alexa cũng có thể tương tác với rất nhiều thiết bị gia dụng thông minh trong nhà vì thế mà bạn cũng có thể yêu cầu nó tăng nhiệt độ phòng sưởi hay giảm ánh sáng đèn xuống Vô cùng tuyệt với phải không! Alexa sẽ phản ứng với những câu lệnh tự nhiên nhất, vì thế mà bạn không cần phải
Trang 14Ngoài khả năng hẹn giờ, thông báo thời tiết, nhắc nhở công việc….mà mọi người hay dùng trên Siri, Amazon Echo còn đem đến nhiều tính năng như: trả lời các câu hỏi đơn giản Tuy nhiên, khi Siri hỗ trợ nhiều ngôn ngữ trên thế giới thì Alexa hiện tại chỉ hỗ trợ tiếng Anh Vì vậy, khi bạn sở hữu nó, bạn phát âm sai sẽ dẫn tới việc Alexa thực hiện công việc không chuẩn
1.2.3 Apple HomeKit
Hình 1.3 Apple HomeKit
HomeKit là một phần mềm được đưa vào iOS, và ý tưởng rất đơn giản - thay
vì có một loạt các ứng dụng thông minh khác trên điện thoại thông minh của bạn mà không nhất thiết phải đồng bộ với nhau, HomeKit mang tất cả lại với nhau, cung cấp điều khiển và trung tâm trên thiết bị của bạn thông qua Siri
Hệ thống tương tác với các thiết bị 'Hoạt động với HomeKit' của bạn theo
ba cách chính:
Trang chủ: liệt kê tất cả các thiết bị nhà thông minh của bạn, với các mục
ưa thích đã chọn của bạn lên hàng đầu
Phòng: nhóm các thiết bị ở các địa điểm xung quanh nhà bạn
Tự động hóa: cho phép bạn tự động hóa các hành vi nhà thông minh Ví dụ,
bạn có thể tắt đèn, bộ báo thức và hệ thống sưởi được tắt khi bạn rời khỏi nhà
1.3 Giới thiệu chung về Arduino
Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là những người tự chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây, gần giống với những gì Apple đã làm được trên thị trường thiết bị di động
Số lượng người dùng cực lớn và đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học đã làm cho ngay cả những người tạo ra chúng phải ngạc nhiên về mức độ phổ biến
Trang 15Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu
về điện tử và lập trình Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm Chỉ với khoảng $30, người dùng đã có thể sở hữu một board Arduino có 20 ngõ I/O có thể tương tác và điều khiển chừng ấy thiết bị
Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vị vua vào thế kỷ thứ 9 là King Arduin Arduino chính thức được đưa ra giới thiệu vào năm 2005 như là một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một trong những người phát triển Arduino, tại trường Interaction Design Instistute Ivrea (IDII) Mặc dù hầu như không được tiếp thị gì cả, tin tức về Arduino vẫn lan truyền với tốc độ chóng mặt nhờ những lời truyền miệng tốt đẹp của những người dùng đầu tiên Hiện nay Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nơi đã sản sinh ra Arduino
1.4 Giới thiệu về Arduino UNO R3
Nhắc tới dòng mạch Arduino dùng để lập trình, cái đầu tiên mà người ta thường nói tới chính là dòng Arduino UNO Hiện dòng mạch này đã phát triển tới thế hệ thứ 3 (R3) Bạn sẽ bắt đầu đến với Arduino qua thứ này Bạn có thể dùng Arduino Nano cũng được nhưng mình khuyên bạn nên dùng cái này
Hình 1.4 Board Arduino UNO R3
Trang 16Một vài thông số adruino R3
Bảng 1.1 Thông số của Arduino UNO R3
Hình 1.5 Vi điều khiển ATmega328
Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168, ATmega328 Bộ não này có thể xử lí những tác vụ đơn giản như điều
Trang 17khiển đèn LED 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ị lên màn hình LCD…
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ồn ngoà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 bạn không có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, bạn sẽ làm hỏng Arduino UNO
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 bạn dùng các
thiế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ối vớ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, bạn nối cực dương
của nguồn với chân này và cực âm của nguồn với chân GND
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 bạn 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ới việ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 đó bạn phải hết sức 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ệc làm chập mạch nguồn vào của Arduino UNO sẽ biến nó thành một miếng nhựa chặn giấy mình khuyên bạn 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ác thiế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 có thể làm hỏng board
Trang 18Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển ATmega328
Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển
Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO
sẽ làm hỏng vi điều khiển
Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của Arduino UNO vượt quá 40mA sẽ làm hỏng vi điều khiển Do đó nếu không dùng để truyền nhận dữ liệu, bạn 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 bạn 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ẽ được dùng cho bootloader nhưng đừng lo, bạn 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 bạn khai báo
khi lập trình sẽ lưu ở đây Bạn 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à bạn phải bận tâm Khi mất điện, dữ liệu trên SRAM sẽ bị mất
1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory)
đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của mình và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
Các cổng vào/ra (I/O)
Hình 1.6 Sơ đồ cổng vào/ra của Arduino UNO R3
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
Trang 19châ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ông qua 2 chân này Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với
độ phân giả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, bạ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ác
chứ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 giao thứ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út Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi châ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, bạn 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 bạn cấp điện áp 2.5V vào chân này thì bạn 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/TWI với các thiết bị khác
1.5 Module 8 Relay
Module 8 Relay kích H/L (5VDC) sử dụng nguồn 5VDC để nuôi mạch, tín hiệu kích có thể tùy chọn kích mức cao (High - 5VDC) hoặc mức thấp (Low - 0VDC) qua Jumper trên mỗi relay Thích hợp cho các thiết bị sử dụng mức tín hiệu 5VDC như Vi điều khiển…
Trang 20Hình 1.7 Module 8 relay Thông số kỹ thuật:
• Điện áp nuôi mạch: 5VDC
• Dòng tiêu thụ: khoảng 200mA/1Relay
• Tín hiệu kích: High (5VDC) hoặc Low (0VDC) chọn bằng Jumper
• Nguồn: 3 -> 5 VDC
Trang 21• Dòng sử dụng: 2.5mA max (khi truyền dữ liệu)
• Đo tốt ở độ ẩm 2080%RH với sai số 5%
• Đo tốt ở nhiệt độ 0 to 50°C sai số ±2°C
• Tần số lấy mẫu tối đa 1Hz (1 giây 1 lần)
• 4 chân, khoảng cách chân 0.1''
Nguyên lý hoạt động:
- Sơ đồ kết nối vi xử lý
Hình 1.9 Sơ đồ kết nối vi xử lý của DHT11
Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi xử lý cần thực hiện theo
2 bước:
• Gửi tín hiệu muốn đo (Start) với DHT11, sau đó DHT11 xác nhận lại
• Khi đã giao tiếp được với DHT11, cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt
độ đo được
1.7 Cảm biến khí Gas MQ2
MQ2 là cảm biến khí, dùng để phát hiện các khí có thể gây cháy Nó được cấu tạo từ chất bán dẫn SnO2 Chất này có độ nhạy cảm thấp với không khí sạch Nhưng khi trong môi trường có chất gây cháy, độ dẫn của nó thay đổi ngay Chính nhờ đặc điểm này người ta thêm vào mạch đơn giản để biến đổi từ độ nhạy này sang
điện áp
MQ2 hoạt động rất tốt trong môi trường khí hóa lỏng LPG, H2 và các chất khí gây cháy khác Nó được sử dụng rộng rãi trong công nghiệp và dân dụng do
mạch đơn giản và chí phí thấp
Trang 22Hình 1.10 Sơ đồ chân cảm biến MQ2
Hình 1.11 Cấu tạo bên trong của MQ2
Trong đó:
• Chân 1,3 là A
• Chân 2,5 là B
• Chân 4,6 là H
1.8 Cảm biến thân nhiệt chuyển động HC-SR501
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
Trang 23Hình 1.12 Cảm biến thân nhiệt chuyển động HC-SR501 Thông số kỹ thuật:
• Phạm vi phát hiện : góc 360 độ hình nón, độ xa tối đa 6m
• Nhiệt độ hoạt động : 32-122 ° F ( 050 ° C)
• Điện áp hoạt động : DC 3.8V - 5V
• Mức tiêu thụ dòng: ≤ 50 uA
• Thời gian báo: 30 giây có thể tùy chỉnh bằng biến trở
• Độ nhạy có thể điều chỉnh bằng biến trở
• Kích thước: 1,27 x 0,96 x 1.0 ( 32,2 x 24,3 x 25,4 mm)
1.9 Mạch RFID RC522 NFC 13.56Mhz
Công nghệ RFID (Radio Frequency Identification) là công nghệ nhận đang đối tượng bằng sóng vô tuyến, cho phép một thiết bị đọc thông tin chứa trong chip ở khoảng cách xa, không cần tiếp xúc trực tiếp, không thực hiện bất kì giao tiếp vật lý nào giữa hai vật không nhìn thấy Công nghệ này cho ta phương pháp truyền, nhận
dữ liệu từ một điếm đến một điểm khác
Kỹ thuật RFID sử dụng truyền thông không dây trong dải tần sóng vô tuyến
để truyền dữ liệu từ các tag (thẻ) đến các reader (bộ đọc).Tag có thể được đính kèm hoặc gắn vào đối tượng được nhận dạng chẳng hạn sản phầm, hộp hoặc giá kệ (pallct) Bộ đọc quét dữ liệu của thẻ (tag) và gửi thông tin đến cơ sở dữ liệu có lưu trữ dữ liệu của thẻ (tag) Chẳng hạn, các thẻ (tag) có thể được đặt trên kính chắn gió
xe hơi để hệ thống thu phí đường có thể nhanh chóng nhận dạng và thu tiền trên các tuyến đường
Trang 24Hình 1.13 Mạch RFID Thông số kỹ thuật:
• Nguồn: 3.3VDC, 13 - 26mA
• Dòng ở chế độ chờ: 1013mA
• Dòng ở chế độ nghỉ: <80uA
• Tần số sóng mang: 13.56MHz
• 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
Hệ thống RFID gồm những thành phần cơ bản sau:
• Thẻ RFID (RFID Tag, còn được gọi là transponder): là một thẻ gắn chíp + Anten
• Reader hoặc sensor (cái cảm biến): để đọc thông tin từ các thẻ, có thể đặt
Trang 25Dải tần hoạt động của hệ thống RFID
• Khi phải lựa chọn một hệ thống RFID, yêu cầu đầu tiên là chọn dải tần hoạt động của hệ thống
• Tần số thấp - Low frequency 125 KHz: Dải đọc ngắn tốc độ đọc thấp
• Dải tần cao - High frequency 13.56 MHz: Khoảng cách đọc ngắn tốc độ đọc trung bình Phần lớn thẻ Passive sử dụng dải này
• Dải tần cao hơn - High frequency: Dải đọc từ ngắn đến trung bình, tốc độ đọc trung bình đến cao Phần lớn thẻ Active sử dụng tần số này
• Dải siêu cao tần - UHF frequency 860-960 MHz: Dải đọc rộng Tốc độ đọc cao Phần lớn dùng thẻ Active và một số thẻPassive cao tần sử dụng dải này
• Dải vi sóng - Microwave 2.45-5.8 GHz: Dải đọc rộng tốc độ đọc lớn
1.10 Mạch giảm áp DC LM2596 3A
Mạch giảm áp DC nhỏ gọn có khả năng giảm áp từ 30V xuống 1.5V mà vẫn đạt hiệu suất cao (92%) Thích hợp cho các ứng dụng chia nguồn, hạ áp, cấp cho các thiết bị như camera, motor, robot
Hình 1.14 Mạch giảm áp DC LM2596 3A Thông số kỹ thuật:
• Điện áp đầu vào: Từ 3V đến 30V
• Điện áp đầu ra: Điều chỉnh được trong khoảng 1.5V đến 30V
• Dòng đáp ứng tối đa là 3A
• Hiệu suất : 92%
• Công suất : 15W
• Kích thước: 45 (dài) * 20 (rộng) * 14 (cao) mm
Trang 26CHƯƠNG 2
CƠ SỞ LÝ THUYẾT, THIẾT KẾ, LẮP ĐẶT VÀ LẬP TRÌNH
CHO HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN
2.1 Tổng quan về kit thu phát wifi ESP8266 NODE MCU mini D1
Kit RF thu phát wifi ESP 8266 NodeMCU Mini D1 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 đơn giản
Kit RF thu phát wifi ESP 8266 NodeMCU Mini D1 có thiết kế nhỏ gọn,tích hợp sẵn mạch nạp chương trình và giao tiếp UART CH340 , thường được dùng cho các ứng dụng cần kết nối ,thu nhập dữ liệu và điều khiển qua song Wifi ,đặc biệt là các ứng dụng liên quan đến IoT
Hình 2.1 Kit RF thu phát wifi ESP 8266 NodeMCU Mini D1
Thông số kỹ thuật :
• IC chính : ESP8266 wifi SoC phiên bản ESP12
Trang 27• Phiên bản firmware : Node MCU
• Chip nạp và giao tiếp UART : CH430
• GPIO tương thích hoàn toàn với firmware Node MCU
• Cấp nguồn : 5VDC MicroUSB hoặc vào các chân 5V,3V3
• GPIO giao tiếp mức 3.3VDC
• Thiết kế nhỏ gọn có thể cắm trực tiếp vào test board
• Kích thước 34.2 * 25.6 mm
Bảng 2.1 Thông tin các chân của ESP8266 NODEMCU Mini D1
2.2 Giới thiệu về Blynk – phần mềm điều khiển thiết bị qua điện thoại
Phần mềm Blynk là một phần mềm được thiết kế cho Android, iOS cho chúng ta khả năng tự tạo ứng dụng kết nối với các board Arduino, Raspberry và các
bo mạch khác để điểu khiển chúng
Trang 28Blynk giúp bạn điều khiển thiết bị từ xa qua internet, thu thập dữ liệu của
cảm biến, ảo hóa việc giao tiếp và thực hiện nhiều việc khác
Hình 2.2 Giao diện phần mềm Blynk trên Smartphone
Nguyên lý làm việc là khi bạn nhấn nút điều khiển, lệnh sẽ được truyền về server của Blynk, sau đó Blynk gửi lệnh về module điều khiển, module sau khi chạy lệnh sẽ gửi lại kết quả theo quy trình ngược lại nghĩa là từ thiết bị gửi về server rồi
từ server gửi về điện thoại của bạn
Sử dụng Blynk bạn không cần phải biết viết app cho Android, chỉ với thao tác rê và thả các đối tượng trong giao diện và vài thiết lập là xong
2.3 Giao thức MQTT(Message Queue Telemetry Transport)
Hình 2.3 Giao thức MQTT
Đây là một giao thức truyền thông điệp (message) theo mô hình publish/subscribe (xuất bản – theo dõi), sử dụng băng thông thấp, độ tin cậy cao và
có khả năng hoạt động trong điều kiện đường truyền không ổn định
Kiến trúc mức cao (high-level) của MQTT gồm 2 phần chính là Broker và Clients
Trang 29Hình 2.4 Cấu trúc một giao thức MQTT
Trong đó, broker được coi như trung tâm, nó là điểm giao của tất cả các kết nối đến từ client Nhiệm vụ chính của broker là nhận mesage từ publisher, xếp các message theo hàng đợi rồi chuyển chúng tới một địa chỉ cụ thể Nhiệm vụ phụ của broker là nó có thể đảm nhận thêm một vài tính năng liên quan tới quá trình truyền thông như: bảo mật message, lưu trữ message, logs,
Client thì được chia thành 2 nhóm là publisher và subscriber Client là các software components hoạt động tại edge device nên chúng được thiết kế để có thể hoạt động một cách linh hoạt (lightweight) Client chỉ làm ít nhất một trong 2 việc
là publish các message lên một topic cụ thể hoặc subscribe một topic nào đó để nhận message từ topic này
MQTT Clients tương thích với hầu hết các nền tảng hệ điều hành hiện có: MAC OS, Windows, LInux, Androids, iOS
Các khái niệm đáng chú ý trong giao thức MQTT
Trong một hệ thống sử dụng giao thức MQTT, nhiều client kết nối tới một server (Trong MQTT, server được gọi là MQTT Broker).Mỗi client sẽ đăng ký theo dõi các kênh thông tin (topic) hoặc gửi dữ liệu lên kênh thông tin đó Quá trình đăng
ký này gọi là “subscribe” và hành động một client gửi dữ liệu lên kênh thông tin được gọi là “publish” Mỗi khi kênh thông tin đó được cập nhật dữ liệu (dữ liệu này
có thể đến từ các client khác) thì những client nào đã đăng ký theo dõi kênh này sẽ nhận được dữ liệu cập nhật đó
Trang 30Message
Trong giao thức MQTT, message còn được gọi là "message payload", có định dạng mặc định là plain-text (chữ viết người đọc được), tuy nhiên người sử dụng có thể cấu hình thành các định dạng khác
Topic
Topic có thể coi như một "đường truyền" logic giữa 2 điểm là publisher và subscriber Về cơ bản, khi message được publish vào một topic thì tất cả những subscriber của topic đó sẽ nhận được message này
Giao thức MQTT cho phép khai báo các topic kiểu phân cấp
2.4 Máy chủ CloudMQTT
CloudMQTT được quản lý bởi máy chủ Mosquitto trên đám mây Mosquitto thực hiện giao thức truyền tải từ xa MQ, MQTT, cung cấp các phương thức nhẹ để thực hiện gửi tin nhắn bằng cách sử dụng mô hình xếp hàng thông báo xuất bản/đăng ký
Hình 2.5 Giao diện CloudMQTT
Hình 2.6 Giao thức CloudMQTT
Trang 31MQTT là giao thức từ máy đến máy của tương lai Đó là lý tưởng cho thế giới “Internet of Things” của các thiết bị kết nối Thiết kế tối thiểu của nó làm cho
nó hoàn hảo cho các hệ thống tích hợp, điện thoại di động và các ứng dụng bộ nhớ
nhạy cảm và băng thông khác
Tin nhắn chờ cung cấp giao thức truyền thông không đồng bộ, người gửi và người nhận thư không cần tương tác với tin nhắn chờ cùng một lúc Các tin nhắn được đặt vào hàng đợi được lưu trữ cho đến khi người nhận truy xuất chúng hoặc cho đến khi các tin nhắn hết thời gian chờ MQTT và Mosquitto được sử dụng tốt bởi các ứng dụng nhạy cảm băng thông
CloudMQTT cho phép bạn tập trung vào ứng dụng thay vì dành thời gian mở rộng quy mô cho nhà môi giới hoặc vá nền tảng
Hình 2.7 Ví dụ về giao thức MQTT
Các thông số cần thiết để kết nối với CloudMQTT
Hình 2.8 Thông số kết nối với CloudMQTT
Trang 322.5 Phần mềm MQTT Buddy trên điện thoại
MQTT Buddy là một ứng dụng IoT (Internet of Things) miễn phí cho phép bạn kiểm soát tuyệt đối các thiết bị IoT của mình MQTT Buddy hoạt động rất tốt cho Android, iOS và Windows Mobile MQTT Buddy giúp kết nối với MQTT Broker nhanh chóng và dễ dàng Chúng ta có thể đăng ký các chủ đề khác nhau và xuất bản tin nhắn của bạn một cách dễ dàng và tốc độ Ứng dụng IoT này cũng đi kèm với các chức năng cao cấp, chẳng hạn như tự động kết nối, một bộ mở rộng các
biểu tượng tìm kiếm tuyệt vời
Hình 2.9 Phần mềm MQTT Buddy trên điện thoại Cách thức hoạt động của MQTT Buddy:
Từ các thông số cơ bản lấy được từ máy chủ CloudMQTT, chúng ta sẽ điền
vào lần lượt vào phần mềm như dưới
Hình 2.10 Thông số cần điền vào phần mềm
Trang 33Giao diện điều khiển và giám sát thiết bị bằng phần mềm MQTT Buddy
Hình 2.11 Giao diện điều khiển
2.6 Công cụ IFFFT(If this then that)
Đây là một dịch vụ web trung gian Nó đứng giữa hai dịch vụ để thực hiện một tác vụ khi một điều kiện nào đó xảy ra, bởi vậy mới có cái tên If this (nếu điều này xảy ra) then that (thì làm việc kia) Toàn bộ hoạt động của IFTTT dựa hết vào nguyên lý này, và cứ mỗi một lệnh IFTTT thì được gọi là một "công thức", hay recipe Như đã nói ở trên, một recipe ví dụ có thể kể đến là "Nếu một tấm ảnh mới được đăng lên Facebook thì hãy upload nó lên Dropbox”
Người dùng có thể lên website www.ifttt.com để tạo các công thức, sau đó điện thoại của bạn sẽ tự động lấy về và sử dụng Hiện IFTTT hỗ trợ tạo các liên kết giữa 167 Channels (bao gồm các phần mềm và các dịch vụ online) phổ biến như Gmail, Dropbox, Google Drive, Flickr, 500px, Evernote, Instagram, Facebook, Tweeter, Tumblr, Youtube
Trang 34Hình 2.12 Một số kênh trên trang IFTTT
2.7 Trợ lý ảo Google Assistant
Google Assistant là một trợ lý cá nhân ảo được phát triển bởi Google và được giới thiệu tại hội nghị nhà phát triển của hãngvào tháng 5 năm 2016 Không giống như Google Now, Google Assistant có thể tham gia các cuộc trò chuyện hai chiều
Assistant ban đầu được đưa vào ứng dụng nhắn tin Google Allo, và loa thông minh Google Home Sau một thời gian chỉ có mặt trên hai chiếc điện thoại thông minh Pixel và Pixel XL của hãng, Google bắt đầu triển khai Assistant trên các thiết
bị Androidkhác vào tháng 2 năm 2017, bao gồm cả các điện thoại thông minh bên thứ ba và các thiết bị Android Wear, và được phát hành dưới dạng ứng dụng riêng biệt trên iOS vào tháng 5 Cùng với sự ra mắt một bộ phát triển phần mềm vào tháng 4 năm 2017, Assistant đã và đang được tiếp tục mở rộng hỗ trợ cho một lượng lớn thiết bị, bao gồm cả xe hơi và các thiết bị nhà thông minh Các chiéc năng của Assistant cũng có thể được bổ sung bởi các nhà phát triển bên thứ ba
Người dùng chủ yếu có thể tương tác với Google Assistant qua giọng nói tự nhiên, hoặc có thể nhập qua bàn phím Các chức năng cơ bản của nó cũng tương tự như Google Now, như tìm kiếm trên Internet, đặt sự kiện trên lịch và báo thức, điều