1. Trang chủ
  2. » Luận Văn - Báo Cáo

HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE

39 135 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hệ Thống Iot Điều Khiển Và Giám Sát Nhà Thông Minh, Có Code
Định dạng
Số trang 39
Dung lượng 6,41 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

1.8 MQTT Aedes và Dashboard trong node-redMQTT là một giao thức truyền tin đơn giản được thiết kế cho những thiết bị IoT sửdụng băng thông thấp và ứng dụng thích hợp cho các ứng dụng IoT

Trang 1

ĐIỀU KHIỂN VÀ GIÁM SÁT NHÀ

THÔNG MINH, CÓ CODE

Trang 2

MỤC LỤC

- DANH MỤC CÁC HÌNH VẼ

Trang 3

Hình 4.1: Lưu đồ giải thuật

Trang 4

DANH MỤC CÁC BẢNG BIỂU

Trang 5

DANH MỤC CÁC TỪ VIẾT TẮT

IDE Integrated Development Environment

MQTT Message Queue Telemetry Transport

UART Universal Asynchronous Receiver Transmitter

ESP Electronic Stability Program

V

Volt

Trang 6

CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG IOT ĐIỀU KHIỂN VÀ

GIÁM SÁT NHÀ THÔNG MINH

Hình 1.1: Hình giới thiệu Smart Home

Đề tài này sử dụng những thiết bị điện tử như vi điều khiển, cảm biến nhiệt độ, độẩm, Để điều khiển những thiết bị gia dụng trong ngôi nhà Đồng thời giám sát khôngkhí, nhiệt độ, độ ẩm,… và điều chỉnh chúng sao cho chúng ta cảm thấy thoải mái nhất.1.2 Mục đích nghiên cứu

Đề tài này được nghiên cứu nhằm mục đích mang lại sự thoái mái và tiện ích trongngôi nhà người sử dụng Đồng thời có thể bảo vệ sức khỏe cho gia đình chúng ta, cũngnhư giám sát và điều khiển tình trạng ngôi nhà thông qua những chiếc smartphone.1.3 Đối tượng nghiên cứu

- Giao thức MQTT

- Lập trình node-red

Trang 7

- Mạch thu phát Wifi ESP32

ẩm trên màn hình giao diện dashboard của node-red

Trang 8

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

Hình 2.1: Hình Bo phát triển ESP32 DOIT Devkit V1

ESP32 có chip CP2102 là cầu nối chuyển đổi USB sang UART, có 2 nút nhấn EN

và BOOT để thiết lập trạng thái của ESP32 như nạp chương trình hay reset Môitrường lập trình của ESP32 cũng khá đa dạng như: Arduino IDE, Espressif IDF (IoTDevelopment Framework), Micropython, LUA, JavaScript Trong đề tài này, chủ yếulập trình cho ESP32 là Arduino IDE và bo mạch ESP32 DEVKIT DOIT cùng sử dụngchip ESP-WROOM-32

Trang 9

Bảng 2.1: Thông số kỹ thuật ESP32

Sơ đồ chân ESP32 phiên bản 30 chân:

Hình 2.2: Sơ đồ chân ESP32 Devkit DOIT

1.7 Node-red ?

Chương trình node-red là một chương trình hỗ trợ lập trình kết nối các thiết bị, dịch vụtrực tuyến, APIS lại với nhau theo cách mới lạ và dễ dàng Node-red có một trình soạnthảo giúp kết nối đơn giản hơn với các node trong các palelte chỉ bằng cách kéo và thảchuột

Trang 10

Hình 2.3: Biểu tưởng node-red

Giao diện của trình soạn thảo này chia thành bốn phần: Tiêu đề (Header), Danh sáchcác node (Palette), Không gian lập trình (Workspace), thanh công cụ bên phải(SideBar)

Hình 2.4: Giao diện node-red

Trang 11

1.8 MQTT Aedes và Dashboard trong node-red

MQTT là một giao thức truyền tin đơn giản được thiết kế cho những thiết bị IoT sửdụng băng thông thấp và ứng dụng thích hợp cho các ứng dụng IoT Cho phép các thiết

bị IoT có thể nhận và phát các dữ liệu hoặc gửi các lệnh điều khiển từ các thiết bị IoTthông qua các lệnh Publish/ Subcribe Và để sử dụng được MQTT phải có MQTTBroker (có tác dụng như một server) ở trong node-red có một node tạo được đó làMQTT Aedes, nó có tất cả các chức năng của MQTT và cho phép gửi và nhận tín hiệu

mà không cần kết nối mạng Để phát (Publish) hoặc nhận (Subcribe) phải đảm đảothành phần đó là topic và messages Topic là đóng vai trò như nơi cần gửi và nhận tínhiệu Messages là dữ liệu trao đổi giữa các thiết bị IoT hoặc lệnh điều khiển

Hình 2.5: Cách thức hoạt động của MQTT

Dashboard là một chức năng vô cùng hữu ích của node-red là giao diện được tạo rabởi các node nhằm hiển thị ra các thông số như nhiệt độ, độ ẩm,… hay các nút nhấnhoặc công tắc để điều khiển các thiết IoT trên màn hình web Người lập trình có thểsáng tạo, chỉnh sửa hay thêm bớt để có một giao diện ưng ý nhất Dashboard có thểhiển thị trên các thiết bị như laptop hoặc smartphone

Trang 12

Hình 2.6: Giao diện dashboard của node-red

2.1 Arduino IDE

Phần mềm Arduino IDE là một phần mềm viết và nạp chương trình vào những bomạch Arduino Môi trường này cho phép sử dụng cả ngôn ngữ C và C++ để viếtchương trình Không những thế, phần mềm có nhiều thư viện có sẵn và có khảnăng thêm thư viện một cách dễ dàng Do đó, phần mềm có thể viết và nạp nhiềulại bo mạch khác nhau

Hình 2.7: Giao diện chính phần mềm Arduino IDE

Trang 13

Arduino bao gồm các thành phần chính:

- Verify: kiểm tra chương trình

- Upload: Nạp chương trình vào bo mạch

- Menu bar: thanh gồm các chức file, edit, sketch,…

- Workspace: vùng viết chương trình

1.9 Cảm biến nhiệt độ và độ ẩm DHT11

Cảm biến DHT11 là cảm biến để đo lường nhiệt độ và độ ẩm xung quanh nó và trảgiá trị sang tín hiệu điện Cảm biến này được ứng dụng rất nhiều ở trong thực tế: theodõi tình trạng ngôi nhà, giám sát trạng thái của cây, thời tiết,…

Hình 2.8: Cảm biến nhiệt độ và độ ẩm DHT11

Như chúng ta đã biết, định luật Boyle – Mariotte có nói như sau: một lượng khí lýtưởng n không đổi ở nhiệt độ T không đổi thì tích số giữa áp suất p và thể tích V làmột hằng số (n = const, T = const, pV = const) Ta có phương trình khí lý tưởng: pV =nRT

Thông số kĩ thuật:

- Điện áp hoạt động bình thường: 3.3 ~ 5V

- Thang đo nhiệt độ: 0 – 50oC ( sai số ± 2 oC )

- Thang đo độ ẩm: 20 – 90% RH (sao số 5% RH)

- Tần số: cứ 1 giây đo 1 lần

Trang 14

CHƯƠNG 3 THIẾT KẾ VÀ THI CÔNG

Trang 15

Hình 3.2: Mô hình hoàn chỉnh của đề tài

Hình 3.3: Hình mạch phần cứng

Trang 16

Hình 3.4: Sơ đồ đấu nối dây

1.12 Thiết kế giao diện điều khiển dashboard trên node-red

Để thiết kế giao diện dashboard cần phải tải thư viện các node dashboard Cách tải thưviện: Manage Palette � Mục Install � tìm và cài đặt node-red-dashboard Như vậychúng ta sẽ có đầy đủ các chức năng để thiết kế giao diện dash board theo ý muốn.Trong đề tài này sử dụng chủ yếu là công tắc và thang đo nhiệt độ và độ ẩm

Hình 3.5: Lập trình node-red

Trang 18

1.13 Thiết lập kết nối ESP32

Trước khi tiến hành viết chương trình Chúng ta phải thiết lập thư viện và chức năng nạp code cho ESP32 trên phần mềm Arduino IDE Đầu tiên, vào File

Preferences tại ô Additional Board Manager URLs thêm đường link này vào:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json

Hình 3.7: Chỗ thêm thư viện cho ESP32

Cuối cùng, vào Tools Board Board Manager tìm và

cài đặt esp32

Hình 3.8: cài đặt board để nạp chương trình cho ESP32

Trường hợp khi chạy thử mạch thấy phần mềm không hiện chân COM lên thì vô Device Manager cài thêm driver cho chip tương ứng trên ESP32

Trang 19

Hình 3.9: Cổng COM của ESP32

1.14 Thiết lập MQTT

Để tạo MQTT Broker thì trước hết phải cài đặt thêm vì nó không có sẵn Vô phầnManager Palette mục Install tìm và cài đặt node-red-contrib-

aedes Sau khi hoàn thành xong phần cài đặt thì lấy node Aedes MQTT Broker ra đóngvai trò như một server Lấy MQTT in nếu node-red xuất tín hiệu về ESP32 và MQTTout nếu muốn nhấn tín hiệu từ ESP32 Thiết lập những thông số sau cho MQTT:

Hình 3.10: Thiết lập MQTT

Lưu ý: Mục Server phải lấy địa chỉ IP của mạng đang kết nối Cách để lấy địa chỉ IP là

vô biểu tưởng WIFI Properties và tìm dòng IPv4 Address để lấy địa chỉ IP

Chân mặc định là 1883 Đặt tên topic là tên nơi nhận và phát tín hiệu QoS được thiếtlập như sau hãy chọn 1 trong 3 phù hợp với nhu cầu:

- QoS = 0: dữ liệu truyền nhiều nhất một lần (dễ thất thoát dữ liệu)

- QoS = 1: dữ liệu truyền ít nhất một lần (dễ bị lặp dữ liệu)

Trang 20

- QoS = 2: dữ liệu truyền sẽ chỉ truyền một lần (không gây mất hoặc lặp dữ liệu)

Ba mức QoS trên hãy lựa chọn sao cho phù hợp với nhu cầu đề tài nhất Cuối cùng, đểESP32 có thể hiểu truyền và nhận dữ liệu thông qua MQTT thì phải cài đặt thư việnPubSubClient cho Arduino

Chức năng Publish: Gửi tín hiệu đi

Chức năng Subscribe: Nhận tín hiệu về

Hình 3.11: Chức năng Publish và Subscribe

CHƯƠNG 4 GIẢI THUẬT VÀ ĐIỀU KHIỂN

1.15 Hoạt động của hệ thống

1.1.1 ESP32

Sau khi ESP32 được cấp nguồn khoảng 5V từ cổng USB của laptop ESP32 sẽ tựđộng kết nối WiFi và MQTT Sau khi kết nối thành công cảm biến nhiệt độ và độ ẩmDHT11 sẽ đo lường nhiệt độ và độ ẩm môi trường và xuất tín hiệu điện vào ESP32.ESP32 sẽ gửi dữ liệu mà cảm biến đo được lên node-red thông qua giao thức MQTT.Nút nhấn cũng giống như cảm biến, khi được nhấn sẽ truyền tín hiệu đến ESP32 vàgửi lên node-red

1.1.2 Node-red

Trang 21

Trên Node-red có MQTT Broker đóng vai trò là nơi để truyền dữ liệu, thông tinqua lại với nhau của node-red dashboard với ESP32 Nếu có tín hiệu từ node-reddashboard dữ liệu sẽ được gửi tới ESP32 hoặc ngược lại nếu có tín hiệu từ nút nhấnhay cảm biến của ESP32 thì dữ liệu sẽ được gửi tới node-red và hiển thị trên giao diệnnode-red dashboard.

1.1.3 Node-red Dashboard

Trên Node-red Dashboard, sẽ có các công tắc và thang đo nhiệt độ và độ ẩm củamôi trường xung quanh Nếu sử dụng các công tắc trên node-red Dashboard để điềukhiển đèn và quạt, node-red sẽ gửi tín hiệu cho ESP32 cho thực hiện dữ liệu vừa đượcgửi như bật tắt đèn phòng khách, phòng ăn hoặc bật tắt quạt phòng ăn

1.16 Lưu đồ giải thuật ESP32

Trang 22

Hình 4.1: Lưu đồ giải thuật

CHƯƠNG 5 THỰC NGHIỆM

Trang 23

1.17 Tiến trình thực nghiệm

Tiến hành thực nghiệm:

Bước 1: Sử dụng nguồn laptop để kết nối ESP32

Bước 2: Kiểm tra ESP32 kết nối WiFi Và MQTT

Bước 3: Nhấn nút nhấn K1, kiểm tra đèn led phòng khách có sáng hay không và có gửitín hiệu lên node-red để thay đổi công tắc phòng khách trên dashboard hay không.Bước 4: Nhấn nút nhấn K2, kiểm tra đèn led phòng ngủ có sáng hay không và có gửitín hiệu lên node-red để thay đổi công tắc phòng ngủ trên dashboard hay không

Bước 5: Nhấn nút nhấn K3, kiểm tra đèn led phòng ăn có sáng hay không và có gửi tínhiệu lên node-red để thay đổi công tắc phòng ăn trên dashboard hay không

Bước 6: Nhấn nút nhấn K4, kiểm tra quạt phòng ăn có chạy hay không và có gửi tínhiệu lên node-red để thay đổi công tắc phòng ăn trên dashboard hay không

Bước 7: Giám sát thang độ nhiệt độ và độ ẩm có hoạt động hay không

Bước 8: Bật/tắt các công tắc trên Dashboard để điều khiển đèn led, quạt của cácphòng

Trang 24

1.18 Kết quả thực nghiệm

Bước 1: Sử dụng nguồn laptop để kết nối ESP32

Hình 5.1: ESP32 khi được cấp nguồn

Bước 2: Kiểm tra ESP32 kết nối WiFi Và MQTT

Hình 5.2: ESP32 kết nối WiFi và MQTT thành công

Trang 25

Bước 3: Nhấn nút nhấn K1, kiểm tra đèn led phòng khách có sáng hay không và có gửitín hiệu lên node-red để thay đổi công tắc phòng khách trên dashboard hay không.

Trang 27

Hình 5.7: Thang đo nhiệt độ và độ ẩm phòng ăn

Bước 8: Bật/tắt các công tắc trên Dashboard để điều khiển đèn led, quạt của cácphòng

(Kết quả giống với nút nhấn)

Hình 5.8: Điều khiển đèn các phòng bằng node-red Dashboard

Trang 28

CHƯƠNG 6 KẾT LUẬN

1.19 Ưu điểm

- Sử dụng những thiết bị điều khiển giá thành rẻ

- Không cần đi lại xa những vẫn có thể bật/tắt các thiết bị điện trong gia đình

- Giám sát được nhiệt độ và độ ẩm trong nhà

- Tránh những sự cố trong nhà như cháy, nổ

- Giảm bớt mệt mỏi và không phải bận tâm tới việc bật/tắt các thiết bị trong nhà.1.20 Nhược điểm

- Chỉ sử dụng được trong khu vực xung quanh nhà

- Dây kết nối còn chưa sắp xếp gọn gàng

- Hệ thống còn đơn giản chưa bao quát hết các thiết bị trong ngôi nhà

- Chưa có thiết bị báo cháy hay chống trộm

1.21 Hướng phát triển

- Giao diện dashboard làm đẹp hơn

- Điều khiển được xa hơn không bị giới hạn trong nhà

- Điều khiển được nhiều thiết bị hơn như dàn phơi đồ, cửa thông minh,…

- Có màn hình LCD hiển thị tình trạng ngôi nhà

- Điều khiển bằng giọng nói

Trang 29

- TÀI LIỆU THAM KHẢO

[3] Học ARM, MQTT Client và MQTT Broker, client-va-mqtt-broker/

https://hocarm.org/mqtt-[4] SmartFactory, Giao thức MQTT trong IoT là gì? Những ứng dụng củaMQTT như thế nào?, https://smartfactoryvn.com/technology/internet-of-things/giao-thuc-mqtt-la-gi-nhung-ung-dung-cua-mqtt-nhu-the-nao/

Tiếng Anh:

[5] Surivingwithandroid, ESP32 MQTT client: Publish and Subscribe.HiveMQ and BME280 example, https://www.survivingwithandroid.com/esp32-mqtt-client-publish-and-subscribe/

Techeplanet, What is Node-Red, https://techeplanet.com/what-is-node-red/

Trang 30

const char* password = "05091995";

//khai báo server và port mqtt

const char* mqtt_server = "192.168.88.105";

const unsigned int mqtt_port = 1883;

//trạng thái cái relay

unsigned char relay1_state = 1;

Trang 31

unsigned char relay2_state = 1;

unsigned char relay3_state = 1;

unsigned char relay4_state = 1;

//khai báo subcribe topic

#define sub1 "Living_room/led"

#define sub2 "Bedroom/led"

#define sub3 "Dining_room/led"

#define sub4 "Dining_room/fan"

//khai báo publish topic

#define pub1 "Switch1"

#define pub2 "Switch2"

#define pub3 "Switch3"

#define pub4 "Switch4"

#define pub5 "Humidity"

#define pub6 "Temperature"

// khởi tạo cảm biến nhiệt độ và độ ẩm DHT11

unsigned long previousMillis = 0;

//Hàm thiết lập để esp32 kết nối với wifi

Trang 32

//Kiểm tra trạng thái kết nối wifi

while (WiFi.status() != WL_CONNECTED) {

Trang 35

else if(digitalRead(switch2) == LOW) { delay(20);

if(digitalRead(switch2) == LOW) { if(relay2_state == 1) {

else if(digitalRead(switch3) == LOW) { delay(20);

if(digitalRead(switch3) == LOW) { if(relay3_state == 1) {

Trang 36

else if(digitalRead(switch4) == LOW) { delay(20);

if(digitalRead(switch4) == LOW) { if(relay4_state == 1) {

}

// hàm kết nối lại

void reconnect() {

Trang 38

float hum = dht.readHumidity();

float temp = dht.readTemperature();

float hic = dht.computeHeatIndex(temp,hum,false);

Trang 39

}

Ngày đăng: 16/05/2022, 17:10

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Hình giới thiệu Smart Home - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Hình 1.1 Hình giới thiệu Smart Home (Trang 6)
Hình 2.1: Hình Bo phát triển ESP32 DOIT Devkit V1 - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Hình 2.1 Hình Bo phát triển ESP32 DOIT Devkit V1 (Trang 8)
Bảng 2.1: Thông số kỹ thuật ESP32 - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Bảng 2.1 Thông số kỹ thuật ESP32 (Trang 9)
Hình 2.4: Giao diện node-red - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Hình 2.4 Giao diện node-red (Trang 10)
Hình 2.3: Biểu tưởng node-red - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Hình 2.3 Biểu tưởng node-red (Trang 10)
Hình 2.5: Cách thức hoạt động của MQTT - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Hình 2.5 Cách thức hoạt động của MQTT (Trang 11)
Hình 2.6: Giao diện dashboard của node-red - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Hình 2.6 Giao diện dashboard của node-red (Trang 12)
Hình 2.7: Giao diện chính phần mềm Arduino IDE - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Hình 2.7 Giao diện chính phần mềm Arduino IDE (Trang 12)
Hình 2.8: Cảm biến nhiệt độ và độ ẩm DHT11 - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Hình 2.8 Cảm biến nhiệt độ và độ ẩm DHT11 (Trang 13)
Hình 3.1: Sơ đồ khối - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Hình 3.1 Sơ đồ khối (Trang 14)
Hình 3.2: Mô hình hoàn chỉnh của đề tài - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Hình 3.2 Mô hình hoàn chỉnh của đề tài (Trang 15)
Hình 3.3: Hình mạch phần cứng - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Hình 3.3 Hình mạch phần cứng (Trang 15)
Hình 3.5: Lập trình node-red - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Hình 3.5 Lập trình node-red (Trang 16)
Hình 3.4: Sơ đồ đấu nối dây - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Hình 3.4 Sơ đồ đấu nối dây (Trang 16)
Hình 3.6: Giao diện dashboard - HỆ THỐNG IOT điều KHIỂN NHÀ THÔNG MINH, có CODE
Hình 3.6 Giao diện dashboard (Trang 18)

TỪ KHÓA LIÊN QUAN

w