Hệ thống nhà thông minh sử dụng giao thức mqtt A. Lý thuyết I. Tổng quan về giao thức MQTT 1.1 Khái niệm Giao thức MQTT (Message Queuing Telemetry Transport) là một giao thức truyền thông dựa trên mô hình Publish/Subscribe cực kỳ nhẹ, lý tưởng để kết nối các thiết bị từ xa với dung lượng mã nhỏ và băng thông mạng tối thiểu. MQTT được xem là lựa chọn lý tưởng cho việc truyền thông giữa các thiết bị IoT với băng thông thấp và mạng lưới không ổn định, với độ tin cậy cao. Giao thức này đã được chuẩn hóa bởi OASIS và ISO. 1.2 Lịch sử hình thành • MQTT được phát minh bởi Andy Stanford - Clark (IBM) và Arlen Nipper (EUROTECH) cuối năm 1999. • Năm 2011, IBM và Eurotech đã trao lại MQTT cho một dự án của Eclipse có tên là Paho • Năm 2013 MQTT đã được đệ trình lên OASIS (Organization for the Advancement of Structured Information Standards) để chuẩn hóa. Hình 1.1: Lịch sử hình thành MQTT 1.3 Vị trí của MQTT trong mô hình IoT Hình 1.2: Vị trí của MQTT trong mô hình IoT 1.4 Tính năng và đặc điểm • Sử dụng TCP/IP là giao thức nền. • Dạng truyền thông điệp theo mô hình Pub/Sub cung cấp việc truyền tin phân tán một chiều, tách biệt với phần ứng dụng. • Việc truyền thông điệp là ngay lập tức, không quan tâm đến nội dung được truyền. • Tồn tại ba mức độ tin cậy cho việc truyền dữ liệu (QoS: Quality of service) • QoS 0: Broker/client sẽ gửi dữ liệu đúng một lần, quá trình gửi được xác nhận bởi chỉ giao thức TCP/IP. • QoS 1: Broker/client sẽ gửi dữ liệu với ít nhất một lần xác nhận từ đầu kia, nghĩa là có thể có nhiều hơn 1 lần xác nhận đã nhận được dữ liệu. • QoS 2: Broker/client đảm bảo khi gửi dữ liệu thì phía nhận chỉ nhận được đúng một lần, quá trình này phải trải qua 4 bước bắt tay. Phần bao bọc dữ liệu truyền nhỏ và được giảm đến mức tối thiểu để giảm tải cho đường truyền. 1.5 Ưu điểm của MQTT Với những tính năng, đặc điểm nổi bật trên, MQTT mang lại nhiều lợi ích nhất là trong hệ thống SCADA (Supervisory Control And Data Acquisition) khi truy cập dữ liệu IoT. • Truyền thông tin hiệu quả hơn. • Tăng khả năng mở rộng. • Giảm đáng kể tiêu thụ băng thông mạng. • Tối đa hóa băng thông có sẵn. • Chi phí thấp. • Rất an toàn, bảo mật. • Giao thức publish/subscribe thu thập nhiều dữ liệu hơn và tốn ít băng thông hơn so với giao thức cũ. II. Mô hình Pub/Sub và Cơ chế hoạt động của MQTT 2.1 Mô hình Pub/Sub Hình 2.1: Mô hình Pub/Sub MQTT có cơ chế hoạt động theo mô hình Pub/Sub, gồm 2 thành phần chính: • Client: Client thì được chia thành hai nhóm: - Publisher ( Nơi gửi thông điệp ) - Subscriber ( Nơi nhận thông điệp ) Client chỉ làm ít nhất một trong 2 việc là publish các thông điệp (message) lên một/nhiều topic cụ thể hoặc subscribe một/nhiều topic nào đó để nhận message từ topic này. • Broker - Máy chủ môi giới 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 (Publisher/Subscriber). Nhiệm vụ chính là nhận thông điệp (message) từ Publisher, xếp vào hàng đợi rồi chuyển đến một địa điểm 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, .... 2.2 Ưu điểm mô hình Pub/Sub Khả năng mở rộng (Scalability): Sự tách biệt giữa các thành phần trong mô hình khiến nó có khả năng mở rộng cao. Mô hình có xử lý lượng lớn Pulisher và Subscriber mà không ảnh hưởng tới hiệu suất. Đáng tin cậy (Reliability): Thông điệp luôn đảm bảo sẽ được chuyển tới Subscriber ngay cả khi người đó không hoạt động trên mạng hoặc đứt kết nối. Loose coupling: Publisher và Subscriber giao tiếp thông qua thành phần trung gian (Topic) giúp chúng hoạt động một cách độc lập và không ảnh hưởng tới nhau. 2.3 Nhược điểm mô hình Pub/Sub Quản lý tài nguyên: Trong mô hình Pub-Sub, Publisher và Subcriber không giao tiếp trực tiếp với nhau. Điều này có thể tạo ra thách thức trong việc quản lý tài nguyên, đặc biệt là khi cần theo dõi và giải phóng tài nguyên đã sử dụng. An toàn dữ liệu: Thông điệp được truyền tải qua mạng có thể dẫn tới mất an toàn thông tin. Điều này đặc biệt quan trọng nếu hệ thống đang làm việc trong môi trường không tin cậy. Phức tạp khi debugging và tracing: Vì thông điệp được truyền tải giữa Publisher và Subscriber qua trung gian là Topic, nên việc theo dõi và gỡ lỗi (debugging) có thể trở nên phức tạp hơn so với các mô hình giao tiếp trực tiếp. III. Cơ chế hoạt động của MQTT theo mô hình Pub/Sub 3.1. Tính chất và những đặc điểm riêng • Tính chất: Space decoupling (Không gian tách biệt) Time decoupling (Thời gian tách biệt) Synchronization decoupling (Sự đồng bộ riêng rẽ) • Đặc điểm riêng: MQTT sử dụng cơ chế lọc thông điệp dựa vào tiêu đề (subject-based) MQTT có một tầng gọi là chất lượng dịch vụ (Quality of Services – QoS). Nó giúp cho dễ dàng nhận biết được là message có được truyền thành công hay không. 3.2 Cơ chế tổng quan Hình 3.1 : Cơ chế tổng quan MQTT hoạt động theo cơ chế client/server, nơi mà mỗi cảm biến là một khách hàng (client) và kết nối đến một máy chủ, có thể hiểu như một Máy chủ môi giới (broker), thông qua giao thức TCP (Transmission Control Protocol). Broker chịu trách nhiệm điều phối tất cả các thông điệp giữa phía gửi đến đúng phía nhận. MQTT là giao thức định hướng bản tin. Mỗi bản tin là một đoạn rời rạc của tín hiệu và broker không thể nhìn thấy. Mỗi bản tin được publish một địa chỉ, có thể hiểu như một kênh (Topic). Client đăng kí vào một vài kênh để nhận/gửi dữ liệu, gọi là subscribe. Client có thể subscribe vào nhiều kênh. Mỗi client sẽ nhận được dữ liệu khi bất kỳ trạm nào khác gửi dữ liệu vào kênh đã đăng ký. Khi một client gửi một bản tin đến một kênh nào đó gọi là publish. 3.3 Cơ chế thành phần Hình 3.2: Cơ chế thành phần Thành phần chính của MQTT là Client (Publisher/Subscriber), Server (Broker), Sessions (tạm dịch là Phiên làm việc), Subscriptions và Topics. o MQTT Client (Publisher/Subscriber): Clients sẽ subscribe một hoặc nhiều topics để gửi và nhận thông điệp từ những topic tương ứng. o MQTT Server (Broker): Broker nhận những thông tin subscribe (Subscriptions) từ client, nhận thông điệp, chuyển những thông điệp đến các Subscriber tương ứng dựa trên Subscriptions từ client. o Topic: Có thể coi Topic là một hàng đợi các thông điệp, và có sẵn khuôn mẫu dành cho Subscriber hoặc Publisher. Một cách logic thì các topic cho phép Client trao đổi thông tin với những ngữ nghĩa đã được định nghĩa sẵn. Ví dụ: Dữ liệu cảm biến nhiệt độ của một tòa nhà. o Session: Một session được định nghĩa là kết nối từ client đến server. Tất cả các giao tiếp giữa client và server đều là 1 phần của session. o Subscription: Không giống như session, subscription về mặt logic là kết nối từ client đến topic. Khi đã subscribe một topic, Client có thể nhận/gửi thông điệp (message) với topic đó. IV. Bảo mật trong MQTT Bảo mật trong MQTT được chia thành nhiều lớp. Mỗi lớp có tác dụng ngăn ngừa các kiểu tấn công khác nhau. Thông thường có 3 lớp bảo mật được sử dụng: o Lớp mạng (Network layer) o Lớp giao vận (Transport layer) o Lớp ứng dụng (Application layer) 4.1 Bảo mật lớp ứng dụng (Application Layer Sercurity) 4.1.1. Xác thực với Username và Pasword: Xác thực (authentication) là một phần của cơ chế bảo mật ở tầng giao vận và tầng ứng dụng được sử dụng trong giao thức MQTT, là hành động nhằm xác nhận sự thật hay nguồn gốc của một thuộc tính của một đơn vị dữ liệu hoặc một thực thể nào đó. Khi nói đến xác thực trong giao thức MQTT, bản thân giao thức cung cấp các trường username (tên người dùng) và password (mật khẩu) trong gói tin CONNECT từ client gửi đến broker. Nghĩa là một client có khả năng gửi một username và password khi kết nối đến MQTT broker. CONNECT message Trường username là một chuỗi có định dạng UTF-8 và trường password là dữ liệu nhị phân với kích thước tối đa là 65535 bytes. Sự bất cập trong phiên
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-BÁO CÁO TIỂU LUẬN KIẾN TRÚC VÀ GIAO THỨC IOT
ĐỀ TÀI
TÌM HIỂU GIAO THỨC MQTT
ỨNG DỤNG MÔ HÌNH NHÀ THÔNG MINH
Giảng viên hướng dẫn Nguyễn Thị Thu Nga
Nhóm thực hiện 05
Thành viên Hoàng Đông Tuấn – B20DCVT334
Khổng Vũ Mạnh – B20DCVT246 Nguyễn Văn Kiên – B20DCVT206 Nguyễn Văn Linh – B20DCVT230
Trang 2MỤC LỤC
A Lý thuyết 2
I Tổng quan về giao thức MQTT 2
1.1 Khái niệm 2
1.2 Lịch sử hình thành 2
1.3 Vị trí của MQTT trong mô hình IoT 2
1.4 Tính năng và đặc điểm 2
1.5 Ưu điểm của MQTT 3
II Mô hình Pub/Sub và Cơ chế hoạt động của MQTT 3
2.1 Mô hình Pub/Sub 3
2.2 Ưu điểm mô hình Pub/Sub 4
2.3 Nhược điểm mô hình Pub/Sub 4
III Cơ chế hoạt động của MQTT theo mô hình Pub/Sub 4
3.1 Tính chất và những đặc điểm riêng 4
3.2 Cơ chế tổng quan 5
3.3 Cơ chế thành phần 5
IV Bảo mật trong MQTT 6
4.1 Bảo mật lớp ứng dụng (Application Layer Sercurity) 6
4.2 Bảo mật lớp giao vận (Transport Layer Sercurity) 8
4.3 Bảo mật lớp mạng (Network layer) 8
B ỨNG DỤNG MÔ HÌNH NHÀ THÔNG MINH 9
1 Xây dựng MQTT broker và MQTT client 9
2 Xây dựng code nhúng vào các thiết bị 16
Trang 3A Lý thuyết
I Tổng quan về giao thức MQTT
1.1 Khái niệm
Giao thức MQTT (Message Queuing Telemetry Transport) là một giao thức truyền thông dựa trên mô hình Publish/Subscribe cực kỳ nhẹ, lý tưởng để kết nối các thiết bị từ xa với dung lượng mã nhỏ và băng thông mạng tối thiểu
MQTT được xem là lựa chọn lý tưởng cho việc truyền thông giữa các thiết bị IoT với băng thông thấp và mạng lưới không ổn định, với độ tin cậy cao Giao thức này đã được chuẩn hóa bởi OASIS và ISO
1.2 Lịch sử hình thành
MQTT được phát minh bởi Andy Stanford - Clark (IBM) và Arlen Nipper (EUROTECH) cuối năm 1999
Năm 2011, IBM và Eurotech đã trao lại MQTT cho một dự án của Eclipse có tên là Paho
Năm 2013 MQTT đã được đệ trình lên OASIS (Organization for the Advancement of Structured Information Standards) để chuẩn hóa
Hình 1.1: Lịch sử hình thành MQTT
1.3 Vị trí của MQTT trong mô hình IoT
Hình 1.2: Vị trí của MQTT trong mô hình IoT
Trang 41.4 Tính năng và đặc điểm
Sử dụng TCP/IP là giao thức nền
Dạng truyền thông điệp theo mô hình Pub/Sub cung cấp việc truyền tin phân tán một chiều, tách biệt với phần ứng dụng
Việc truyền thông điệp là ngay lập tức, không quan tâm đến nội dung được truyền
Tồn tại ba mức độ tin cậy cho việc truyền dữ liệu (QoS: Quality of service)
QoS 0: Broker/client sẽ gửi dữ liệu đúng một lần, quá trình gửi được xác nhận bởi chỉ giao thức TCP/IP
QoS 1: Broker/client sẽ gửi dữ liệu với ít nhất một lần xác nhận từ đầu kia, nghĩa là có thể có nhiều hơn 1 lần xác nhận đã nhận được
dữ liệu
QoS 2: Broker/client đảm bảo khi gửi dữ liệu thì phía nhận chỉ nhận được đúng một lần, quá trình này phải trải qua 4 bước bắt tay Phần bao bọc dữ liệu truyền nhỏ và được giảm đến mức tối thiểu để giảm tải cho đường truyền
1.5 Ưu điểm của MQTT
Với những tính năng, đặc điểm nổi bật trên, MQTT mang lại nhiều lợi ích nhất là trong hệ thống SCADA (Supervisory Control And Data Acquisition) khi truy cập dữ liệu IoT
Truyền thông tin hiệu quả hơn
Tăng khả năng mở rộng
Giảm đáng kể tiêu thụ băng thông mạng
Tối đa hóa băng thông có sẵn
Chi phí thấp
Rất an toàn, bảo mật
Giao thức publish/subscribe thu thập nhiều dữ liệu hơn và tốn ít băng thông hơn so với giao thức cũ
II Mô hình Pub/Sub và Cơ chế hoạt động của MQTT
2.1 Mô hình Pub/Sub
Hình 2.1: Mô hình Pub/Sub MQTT có cơ chế hoạt động theo mô hình Pub/Sub, gồm 2 thành phần chính:
Trang 5 Client: Client thì được chia thành hai nhóm:
- Publisher ( Nơi gửi thông điệp )
- Subscriber ( Nơi nhận thông điệp )
Client chỉ làm ít nhất một trong 2 việc là publish các thông điệp (message) lên một/nhiều topic cụ thể hoặc subscribe một/nhiều topic nào đó để nhận message từ topic này
Broker - Máy chủ môi giới
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 (Publisher/Subscriber) Nhiệm vụ chính là nhận thông điệp (message)
từ Publisher, xếp vào hàng đợi rồi chuyển đến một địa điểm 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,
2.2 Ưu điểm mô hình Pub/Sub
Khả năng mở rộng (Scalability): Sự tách biệt giữa các thành phần trong
mô hình khiến nó có khả năng mở rộng cao Mô hình có xử lý lượng lớn Pulisher và Subscriber mà không ảnh hưởng tới hiệu suất
Đáng tin cậy (Reliability): Thông điệp luôn đảm bảo sẽ được chuyển tới Subscriber ngay cả khi người đó không hoạt động trên mạng hoặc đứt kết nối
Loose coupling: Publisher và Subscriber giao tiếp thông qua thành phần trung gian (Topic) giúp chúng hoạt động một cách độc lập và không ảnh hưởng tới nhau
2.3 Nhược điểm mô hình Pub/Sub
Quản lý tài nguyên: Trong mô hình Pub-Sub, Publisher và Subcriber không giao tiếp trực tiếp với nhau Điều này có thể tạo ra thách thức trong việc quản lý tài nguyên, đặc biệt là khi cần theo dõi và giải phóng tài nguyên
đã sử dụng
An toàn dữ liệu: Thông điệp được truyền tải qua mạng có thể dẫn tới mất
an toàn thông tin Điều này đặc biệt quan trọng nếu hệ thống đang làm việc trong môi trường không tin cậy
Phức tạp khi debugging và tracing: Vì thông điệp được truyền tải giữa Publisher và Subscriber qua trung gian là Topic, nên việc theo dõi và gỡ lỗi (debugging) có thể trở nên phức tạp hơn so với các mô hình giao tiếp trực tiếp
III Cơ chế hoạt động của MQTT theo mô hình Pub/Sub
3.1 Tính chất và những đặc điểm riêng
Tính chất:
Space decoupling (Không gian tách biệt)
Trang 6Time decoupling (Thời gian tách biệt)
Synchronization decoupling (Sự đồng bộ riêng rẽ)
Đặc điểm riêng:
MQTT sử dụng cơ chế lọc thông điệp dựa vào tiêu đề (subject-based)
MQTT có một tầng gọi là chất lượng dịch vụ (Quality of Services – QoS) Nó giúp cho dễ dàng nhận biết được là message có được truyền thành công hay không
3.2 Cơ chế tổng quan
Hình 3.1 : Cơ chế tổng quan MQTT hoạt động theo cơ chế client/server, nơi mà mỗi cảm biến là một khách hàng (client) và kết nối đến một máy chủ, có thể hiểu như một Máy chủ môi giới (broker), thông qua giao thức TCP (Transmission Control Protocol) Broker chịu trách nhiệm điều phối tất cả các thông điệp giữa phía gửi đến đúng phía nhận
MQTT là giao thức định hướng bản tin Mỗi bản tin là một đoạn rời rạc của tín hiệu và broker không thể nhìn thấy Mỗi bản tin được publish một địa chỉ, có thể hiểu như một kênh (Topic) Client đăng kí vào một vài kênh để nhận/gửi dữ liệu, gọi là subscribe Client có thể subscribe vào nhiều kênh Mỗi client sẽ nhận được dữ liệu khi bất kỳ trạm nào khác gửi dữ liệu vào kênh đã đăng ký Khi một client gửi một bản tin đến một kênh nào đó gọi là publish
3.3 Cơ chế thành phần
Hình 3.2: Cơ chế thành phần
Trang 7Thành phần chính của MQTT là Client (Publisher/Subscriber), Server (Broker), Sessions (tạm dịch là Phiên làm việc), Subscriptions và Topics
o MQTT Client (Publisher/Subscriber): Clients sẽ subscribe một hoặc nhiều topics để gửi và nhận thông điệp từ những topic tương ứng
o MQTT Server (Broker): Broker nhận những thông tin subscribe (Subscriptions) từ client, nhận thông điệp, chuyển những thông điệp đến các Subscriber tương ứng dựa trên Subscriptions từ client
o Topic: Có thể coi Topic là một hàng đợi các thông điệp, và có sẵn khuôn mẫu dành cho Subscriber hoặc Publisher Một cách logic thì các topic cho phép Client trao đổi thông tin với những ngữ nghĩa đã được định nghĩa sẵn Ví dụ: Dữ liệu cảm biến nhiệt độ của một tòa nhà
o Session: Một session được định nghĩa là kết nối từ client đến server Tất cả các giao tiếp giữa client và server đều là 1 phần của session
o Subscription: Không giống như session, subscription về mặt logic là kết nối từ client đến topic Khi đã subscribe một topic, Client có thể nhận/gửi thông điệp (message) với topic đó
IV Bảo mật trong MQTT
Bảo mật trong MQTT được chia thành nhiều lớp Mỗi lớp có tác dụng ngăn ngừa các kiểu tấn công khác nhau
Thông thường có 3 lớp bảo mật được sử dụng:
o Lớp mạng (Network layer)
o Lớp giao vận (Transport layer)
o Lớp ứng dụng (Application layer)
4.1 Bảo mật lớp ứng dụng (Application Layer Sercurity)
4.1.1 Xác thực với Username và Pasword:
Xác thực (authentication) là một phần của cơ chế bảo mật ở tầng giao vận và tầng ứng dụng được sử dụng trong giao thức MQTT, là hành động nhằm xác nhận sự thật hay nguồn gốc của một thuộc tính của một đơn vị dữ liệu hoặc một thực thể nào đó Khi nói đến xác thực trong giao thức MQTT, bản thân giao thức cung cấp các trường username (tên người dùng) và password (mật khẩu) trong gói tin CONNECT từ client gửi đến broker Nghĩa là một client
có khả năng gửi một username và password khi kết nối đến MQTT broker
Trang 8CONNECT message
Trường username là một chuỗi có định dạng UTF-8 và trường password là
dữ liệu nhị phân với kích thước tối đa là 65535 bytes Sự bất cập trong phiên bản MQTT v3.1 là sử dụng mật khẩu với 12 ký tự đã được bãi bỏ ở phiên bản MQTT v3.1.1 Ngoài ra phiên bản này cũng định nghĩa rằng: một client
có thể có username mà không cần password nhưng không thể tồn tại trạng thái ngược lại Khi sử dụng xác thực bằng tên người dùng và mật khẩu, MQTT broker sẽ đánh giá thông tin client dựa trên cơ chế xác thực đã được triễn khai và gửi trả về gói tin phản hồi gọi là CONNACK, trong đó bao gồm một mã trạng thái gọi là return code
CONNACK message
Các mã trạng thái được sử dụng để phản hồi về client đối với xác thực bằng username/password là:
Trang 94.1.2 Xác thực với Client Identifier
Mỗi MQTT client đều có một mã nhận dạng duy nhất được gọi là client identifier Tương tự như Username/Password, mã nhận dạng này cũng được cung cấp bởi client khi gửi một gói tin CONNECT đến broker, được cung cấp trong trường clientid Giá trị của trường có thể chứa tối đa 65535 ký tự, trường hợp thường được sử dụng trong thực tế để thể hiện giá trị của trường clientid là sử dụng chuẩn UUID gồm 36 ký tự để tạo ra các giá trị random không trùng nhau hoặc sử dụng địa chỉ MAC của thiết bị Và trong gói tin phản hồi kết nối CONNACK, cũng sẽ bao gồm mã trạng thái, tất cả các trạng thái trả về được cho trong bảng sau:
Trong quá trình xác thực, mã nhận dạng của client thường được sử dụng để xác thực bên cạnh tên người dùng và mật khẩu Mặc dù không phải là cách thức bảo mật tốt khi sử dụng trong thực tiễn tuy nhiên đối với các hệ thống khép kín và ít thiết bị thì loại xác thực này cũng đủ để chúng ta cân nhắc sử dụng
4.2 Bảo mật lớp giao vận (Transport Layer Sercurity)
Thông thường giao thức MQTT dựa vào TCP làm giao thức tầng giao vận, nghĩa là mặc định kết nối giữa broker và client là kết nối không bảo mật Để tăng tính bảo mật và có khả năng mã hóa các kênh giao tiếp, hầu hết các MQTT broker hiện nay như Mosquitto, HiveMQ đều cho phép sử dụng TLS Port 8883 được chuẩn hóa để sử dụng cho kết nối MQTT có bảo mật
Trang 10Minh họa SSL/TLS handshake
4.3 Bảo mật lớp mạng (Network layer)
Sử dụng một mạng bảo mật vật lý hoặc công nghệ VPN (virtual private network) làm nền tảng cho quá trình giao tiếp giữa các Client và Broker nhằm cung cấp một kết nối an toàn và đáng tin cậy
Trang 11B ỨNG DỤNG MÔ HÌNH NHÀ THÔNG MINH
1 Xây dựng MQTT broker và MQTT client
Trong phần này thì nhóm em sử dụng phần mềm cisco packet tracer để thực hiện
mô phỏng và cấu hình MQTT broker và MQTT client
Bắt đầu vào bài lab thì ta thực hiện lấy thiết bị có sẵn trong cisco
Khởi tạo MQTT broker, rồi kết nối với switch và SBC
Triển khai cơ bản các thiết bị như trên hình để tiến hành cấu hình
Tiếp theo là ta sẽ định tuyến địa chỉ IP cho các thiết bị
Đặt địa chỉ MQTT broker là 1.1.1.1
Trang 12Tiếp theo lần lượt là SBC0 và cấp ip động cho các thiết bị truy cập qua wifi theo access point
Trang 13Từ đó ta sẽ thấy smartphone được cấp phát địa chỉ 1.1.1.11 từ DHCP
Trang 14Tiếp theo là truy cập vào programming tạo new rồi tạo MQTT broker và chọn
code python, cisco sẽ hỗ trợ template có sẵn và install desktop rồi run code
Trang 15Tương tự như vậy rồi cài đặt cho các SBC và smartphone tương tự
Trang 16Rồi truy cập vào MQTT broker trong giao diện desktop
Trang 17Tương tự như vậy ta thực hiện với các SBC là client và publisher và subcriber
Trang 18Tiếp tục tạo ra các client bạn muốn và kết nối với broker và code điều khiển thiết bị bạn muốn sử dụng
2 Xây dựng code nhúng vào các thiết bị
Sau khi xây dựng các client và broker thì chúng ta code các hàm lấy dữ liệu từ cảm biến và publish lên MQTT broker
Khởi tạo đầu ra vào dữ liệu cho các chân sensor
Sau khi cấu hình thành công và khởi chạy ta sẽ thu được các topic của nhiệt độ
và độ ẩm, độ ẩm đất
Trang 19Tiếp theo là dùng các điều kiện vào hàm on_message để khởi tạo điều kiện cho các thiết bị chạy tự động
Kết quả cuối cùng ta sẽ thu được 1 hệ thống mô phỏng ngôi nhà thông sử dụng giao thức MQTT với các thiết bị được setup chạy tự động với 1 điều kiện cho trước