Hướng Dẫn Cách Setup MQTT-Broker Trên Raspbery-Pi

<!--break-->

MQTT (Message Queuing Telemetry Transport) là một giao thức gửi dạng publish/subcribe sử dụng cho các thiết bị IOT (Internet Of Things) với băng thông thấp, độ tin cậy cao và khả năng được sử dụng trong các hệ thống mạng không ổn định. MQTT được định nghĩa rất nhiều, rất chi tiết trên google, chỉ cần lên google và search với từ khóa: MQTT, what is MQTT, MQTT mosquitto, v.v...

Ở bài viết này, mình sẽ không giải thích về MQTT vì nó có rất nhiều trên google, thay vào đó mình sẽ hướng dẫn các bạn cách setup 1 MQTT server tại nhà trên Raspberry để làm các dự án về Internet Of Things. Nó tồn tại hơn một thập kỷ nhưng nó thực sự được đông đảo người dùng biết đến khi có sự ra đời của M2M (máy truyền thông máy) và IOT (internet of things) thì giao thức này được sử dụng rộng rãi và phổ biến hơn.

Một số thuật ngữ:

Client: Bất kỳ nhà xuất bản hoặc người đăng ký nào kết nối với nhà môi giới tập trung qua mạng đều được coi là khách hàng. Điều quan trọng cần lưu ý là có các máy chủ và máy khách trong MQTT. Cả nhà xuất bản và người đăng ký đều được gọi là khách hàng vì họ kết nối với dịch vụ tập trung, khách hàng có thể liên tục hoặc tạm thời. Khách hàng liên tục duy trì một phiên với nhà môi giới trong khi khách hàng tạm thời không được nhà môi giới theo dõi. Khách hàng thường kết nối với nhà môi giới thông qua thư viện và SDK. Có hơn một tá thư viện có sẵn cho C, C ++, Go, Java, C #, PHP, Python, Node.js và Arduino.

Broker: Người môi giới là phần mềm nhận tất cả các tin nhắn từ các khách hàng xuất bản và gửi chúng đến các khách hàng đăng ký. Nó giữ kết nối với các khách hàng liên tục. Tùy thuộc vào người triển khai để quyết định cách tạo lớp môi giới có thể mở rộng. Một số triển khai thương mại của các nhà môi giới MQTT bao gồm HiveMQ, Xively, AWS IoT và Loop.

Topic: Một chủ đề trong MQTT là điểm cuối mà khách hàng kết nối. Nó hoạt động như nơi phân phối trung tâm để xuất bản và đăng ký tin nhắn. Trong MQTT, một chủ đề là một vị trí nổi tiếng cho nhà xuất bản và người đăng ký. Nó được tạo ra khi chúng ta thiết lập kết nối với nhà môi giới. Chủ đề là các chuỗi phân cấp đơn giản, được mã hóa bằng UTF-8, được phân cách bằng dấu gạch chéo. Người đăng ký có thể chọn đăng ký một chủ đề cụ thể hoặc tất cả các chủ đề phụ thông qua các ký tự đại diện.

Connection: MQTT có thể được sử dụng bởi các máy khách dựa trên TCP/IP. Cổng tiêu chuẩn được giới thiệu bởi các công ty môi giới năm 1883, không phải là một cổng an toàn. Những nhà môi giới hỗ trợ TLS / SSL thường sử dụng cổng 8883. Để liên lạc an toàn, khách hàng và nhà môi giới dựa vào chứng chỉ kỹ thuật số. AWS IoT là một trong những triển khai an toàn của MQTT, yêu cầu khách hàng sử dụng chứng chỉ X.509.

Nhiêu đó là quá nhiều rồi, bắt tay vào làm thôi.

I. Chuẩn Bị

  • Máy tính (tất nhiên rồi)
  • Mạng wifi đủ ổn định
  • Raspbery - Pi (mình xài model 3+)
  • Dây nguồn đầy đủ cho Pi

II. Bắt Đầu Setup

Bước 1: Đầu tiên bạn phải truy cập vào Pi, có thể truy cập từ xa bằng teamviewer hoặc remote connection hoặc bạn làm trực tiếp trên con Pi luôn, cái nào cũng được, ở đây mình sẽ remote con Pi thông qua mạng nội bộ.

Nhập tài khoản - mật khẩu, cái này mình setup từ đầu nên giờ cứ vô là mình nhập thôi, các bạn tìm trên mạng để chọn ra 1 cách truy cập phù hợp với bạn nha.

Giao diện khi mình truy cập vô thành công, mình xài hệ điều hành Raspbian.

Bước 2: bạn copy lệnh dưới đây và paste vào Terminal (nhớ mở Terminal lên trước nhé, update và upgrade nếu cần)

sudo apt-get install mosquitto -y
sudo apt-get install mosquitto-clients

tới như hình thì enter tiếp cho nó chạy nha.

Bước 3: copy tiếp đoạn này paste vào terminal và ấn enter để truy cập.

sudo nano /etc/mosquitto/mosquitto.conf

sau khi enter truy cập vào sẽ hiện thị như bên dưới, xóa hết nó đi 

đúng vậy, xóa hết trên màn hình đi và paste cái đoạn dưới này vô nè

# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
 
pid_file /var/run/mosquitto.pid
 
persistence true
persistence_location /var/lib/mosquitto/
 
log_dest file /var/log/mosquitto/mosquitto.log
 
allow_anonymous false
password_file /etc/mosquitto/pwfile
listener 1883

paste xong các bạn bấm tổ hợp Ctrl + X để lưu lại, sau đó ấn Y trên bàn phím (chọn Yes), sau đó enter lần nữa để quay trở lại màn hình terminal ban đầu.

Bước 4: copy tiếp đoạn này và paste vào sau khi đã ra lại màn hình terminal

sudo mosquitto_passwd -c /etc/mosquitto/pwfile TYPE_YOUR_USERNAME_HERE

ở phần TYPE_YOUR_USERNAME_HERE các bạn lưu ý đâu là password truy cập vào broker của bạn, bạn phải đặt 1 cái mật khẩu nào bạn luôn nhớ nha, không thì phải setup lại từ đầu mất công lắm đó.

nhập mật khẩu xong, Terminal hiện nhập lại mật khẩu thì bạn nhập mật khẩu ban đầu bạn tạo vào nhé

Bước 5: đến bước khởi động, copy đoạn này và sửa lại như hình nha

mosquitto_sub -d -u MOSQUITTO_USERNAME -P MOSQUITTO_PASSWORD -t dev/test

 

enter và xem broker khởi động

Như thế này là thành công rồi nhé. Nếu xem bài viết bạn thấy khó khăn thì hãy xem video này nhé

Ở bài sau mình sẽ hướng dẫn các bạn cách test broker hoạt động thế nào.

III. Lời Kết

Thật đơn giản phải không nào, đây sẽ là khởi đầu đầy thú vị cho những bạn đam mê về Internet Of Things, hãy khám phá thế giới IOT trên Cộng Đồng Arduino Việt Nam nhé. Chúc bạn thành công, đừng quên chia sẻ kiến thức bổ ích đến tất cả bạn bè của bạn nhé.

lên
5 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

HƯỚNG DẪN SỬ DỤNG INUT CẢM BIẾN VỚI MODULE 1 RELAY, MFRC522 VÀ KHÓA ĐIÊN DY_03 (bản V2)

Để điều khiển và đồng bộ dữ liệu cho các thiết bị qua internet bạn cần làm gì?

INut cảm biến sẽ cùng bạn thực hiện các dự án IOT từ nhỏ đến lớn. Ở bài viết trước,mình đã hướng dẫn bạn cách sử dụng INut cảm biến và module MFRC522 để điều khiển Servo thông qua internet và thẻ từ. Lần này mình sẽ cùng các bạn làm bản V2 với khóa điện DY_03.

lên
0 thành viên đã đánh giá bài viết này hữu ích.

HƯỚNG DẪN SỬ DỤNG INUT CẢM BIẾN ĐỂ ĐIỀU KHIỂN 8 RELAY QUA INTERNET (KHÔNG CẦN INUT NODE - RED IDE)

Để điều khiển 8 relay qua internet với iNut cảm biến, trước giờ muốn thực hiện được việc này các bạn cần phải sử dụng iNut Node - RED IDE để điều khiển nó, đôi khi cũng bất tiện cho một số bạn newbie vì phải thực hiện qua quá nhiều bước vừa trên máy tính vừa trên điện thoại. Hoặc nhưng bạn master thì sẽ sử dụng bộ API có sẵn của iNut Platform để tự làm app riêng cho mình. Hôm nay, mình sẽ hướng dẫn bạn cách sử dụng APP INUT để điều khiển 8 relay từ xa qua internet mà không cần iNut Node - RED IDE.

lên
15 thành viên đã đánh giá bài viết này hữu ích.