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ả

LÀM MỘT BỘ SMS GATEWAY IOT, BẠN THỬ CHƯA?

Module nhắn tin,gọi điện thoại qua sim thì có lẽ đã quá quen thuộc với bạn rồi. Vậy có bao giờ các bạn nghĩ đến ngày chúng ta sẽ làm một cái giao diện web nhỏ để nhắn tin, gọi điện thoại ở bất cứ đâu mà không cần phải mang theo cái module sim chưa? Lấy một ví dụ cụ thể hơn nha, bạn làm một dự án lớn và sử dụng module sim để nhắn tin báo cáo về điện thoại của bạn, nhưng bạn chỉ biết được trong sim đó còn bao nhiêu tiền nếu bạn ở gần nó, vậy nếu bạn đi Hà Nôi du lịch mà dự án của bạn lại ở Bình Dương thì sao nhỉ? 

Hôm nay, mình sẽ hướng dẫn cho bạn cách làm một bộ SMS GateWay IOT với iNut cảm biến nha. Nhờ dự án nhỏ này, bạn có thể biết được tiền hiện tại trong tài khoản của mình, nạp tiền điện thoại hay nhắn tin từ xa thông qua internet mà không cần phải ở cạnh Board sim. Cùng bắt tay vô làm thôi.

lên
2 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 Với Module RFID MFRC-522 Và Servo Qua Internet Và Thẻ RFID RMD8800.

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

iNut cảm biết sẽ giải quyết tất cả việc này giúp bạn. Hôm nay tụi mình sẽ cùng bạn làm một dự án nhỏ để ứng dụng trong việc đóng mở cửa qua internet và thẻ RFID nha, lần này mình sẽ làm bản V1 là sử dụng Servo trong ứng dụng đóng-mở cửa, lần sau mình sẽ làm bản V2 bằng khóa chốt điện DC12V (hoặc DC24V) LY-03 nha

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