Mục lục:

MQTT trên Bảng Armtronix: 3 bước
MQTT trên Bảng Armtronix: 3 bước

Video: MQTT trên Bảng Armtronix: 3 bước

Video: MQTT trên Bảng Armtronix: 3 bước
Video: ESP8266 PWM LED Dimmer - 12v Solar Shed 2024, Tháng bảy
Anonim
MQTT trên Armtronix Boards
MQTT trên Armtronix Boards

Trong hướng dẫn này, ban đầu chúng tôi muốn chỉ cho bạn cách bạn có thể sử dụng hệ thống dựa trên Linux (Debian hoặc Ubuntu) và cài đặt Mosquitto (Mqtt Broker) trên đó, cũng chỉ cho bạn cách sử dụng ứng dụng khách Mqtt trên Điện thoại (Android) / Dựa trên Linux hệ thống, gửi và nhận tin nhắn qua Mqtt. Sau khi làm quen với điều này, chúng tôi muốn chỉ cho bạn cách bạn có thể định cấu hình và kết nối bảng của chúng tôi với nhà môi giới Mqtt đã được cài đặt này. Cũng muốn chỉ cho bạn cách bạn có thể thêm xác thực vào nhà môi giới Mqtt và một số mẹo và thủ thuật cơ bản để gỡ lỗi. Vậy hãy bắt đầu ………..

Bước 1: Cài đặt Mqtt Broker:

Cài đặt Mqtt Broker
Cài đặt Mqtt Broker
Cài đặt Mqtt Broker
Cài đặt Mqtt Broker
Cài đặt Mqtt Broker
Cài đặt Mqtt Broker
Cài đặt Mqtt Broker
Cài đặt Mqtt Broker

Có nhiều nhà môi giới Mqtt mà bạn có thể cài đặt. Một số cái đã biết như được đề cập bên dưới. Một số trong số đó là các dịch vụ dựa trên đám mây.

  • HiveMQ
  • MosquittoCloud
  • MQTT
  • Adafruit.io

Chúng tôi sẽ hướng dẫn bạn cách cài đặt Mosquitto trên hệ thống dựa trên Linux (Ubuntu 18.04). Để thực hiện việc này, đầu tiên hãy thêm Mosquitto vào danh sách nguồn ubuntu. Khi Mosquitto có sẵn trong kho lưu trữ Ubuntu, bạn sẽ có thể cài đặt nó bằng apt-get.

Chỉ cần mở một thiết bị đầu cuối. Để mở một Thiết bị đầu cuối, hãy chuyển đến góc dưới cùng bên trái của Màn hình Ubuntu, Nhấp vào Hiển thị ứng dụng (Lưới 3X3 được chú thích). Cửa sổ sẽ mở ra. Ở đó bạn tìm kiếm Terminal. Nhấp vào thiết bị đầu cuối, bạn sẽ có thể thấy một cửa sổ mở ra như hiển thị trong các hình ảnh sau đây.

  • Hiển thị ứng dụng (Hình ảnh 1).
  • Tìm kiếm thiết bị đầu cuối (Hình 2).
  • Cửa sổ đầu cuối (Hình 3).

Nhập các lệnh sau sau khi bạn mở Terminal

sudo apt-add-repository ppa: mosquitto-dev / mosquitto-ppa

sudo apt-get cập nhật

sudo apt-get install mosquitto

Bạn cũng có thể cài đặt ứng dụng khách Mqtt. Lệnh để làm điều đó sẽ là

sudo apt-get install mosquitto-client

Một số hình ảnh để bạn tham khảo

  • Thêm ppa (Hình 4).
  • Đang cập nhật repo (Hình 5).
  • Cài đặt Mosquitto (Hình 6).
  • Cài đặt Mosquitto Client (Hình 7).

Bước 2: Kiểm tra MQTT (Mosquitto)

Kiểm tra MQTT (Mosquitto)
Kiểm tra MQTT (Mosquitto)
Kiểm tra MQTT (Mosquitto)
Kiểm tra MQTT (Mosquitto)
Thử nghiệm MQTT (Mosquitto)
Thử nghiệm MQTT (Mosquitto)

Để kiểm tra mqtt qua ubuntu (cùng một hệ thống hoặc hệ thống khác), bạn cần cài đặt ứng dụng khách mqtt đã được cài đặt trước đó bằng lệnh sudo apt-get install mosquitto-client. Trong trường hợp bạn muốn kiểm tra nó bằng điện thoại di động (android), bạn có thể cài đặt ứng dụng MyMqtt từ Play Store.

Mqtt hoạt động trên một thứ gọi là Chủ đề. Để dễ hiểu, hãy coi các chủ đề này như một thư mục trên ổ cứng máy tính. Chúng ta hãy coi máy tính này như một máy chủ máy tính (trong thế giới mqtt là Mqtt Broker). Trong máy chủ này, chúng ta hãy xem xét có một thư mục.

Tên thư mục: / Folder_one /

Bây giờ chúng ta hãy xem xét hai người từ hai hệ thống khác nhau (PC / Máy tính xách tay) truy cập vào máy chủ này để đọc tệp hoặc để gửi / kết xuất tệp hoặc để thực hiện cả hai thao tác.

Chúng tôi sẽ đặt tên cho hai người / hệ thống là Hệ thống X, Hệ thống Y (Đây là những Khách hàng Mqtt trong Thế giới Mqtt).

Bây giờ, giả sử Hệ thống X gửi / Kết xuất một số tệp (tên tệp: nhiệt độ) vào thư mục “/ Folder_one /”, điều này trong thế giới mqtt, chúng ta có thể gọi là xuất bản (chúng tôi gửi một số tin nhắn / tải trọng thay vì tệp).

Bây giờ, giả sử Hệ thống Y muốn lấy / đọc tệp này hoặc bất kỳ tệp mới nào hoặc cập nhật trong thư mục này, điều đầu tiên nó cần là biết tên và đường dẫn thư mục, trong trường hợp của chúng ta là “/ Folder_one /”. Vì vậy, bây giờ nó sẽ đi đến thư mục này và đọc / nhận tệp đó (tên tệp: nhiệt độ). Biết đường dẫn / Chủ đề và kiểm tra các thay đổi trong tệp / tệp mới trong thế giới Mqtt là đăng ký chủ đề đó.

Xem xét ví dụ trên, Hệ thống X đang xuất bản lên “/ Folder_one” và Hệ thống Y đã đăng ký “/ Folder_one”

Cũng lưu ý rằng Hệ thống X cũng có thể đăng ký “/ Folder_one” và Hệ thống Y cũng có thể Xuất bản lên “/ Folder_one”. Giống như khôn ngoan, ngay cả hệ thống Máy chủ (Nhà môi giới Mqtt) có thể xuất bản / đăng ký “/ Folder_one” bằng cách cài đặt ứng dụng khách Mqtt trên đó giống như chúng tôi đã làm hiện tại. Điều khác cần nhớ là xuất bản hoặc đăng ký một chủ đề bạn sẽ cần biết địa chỉ IP của Mqtt Broker.

Đầu tiên, chúng tôi sẽ kiểm tra nó thông qua ứng dụng khách ubuntu được cài đặt trên cùng hệ thống với nhà môi giới. Chúng tôi sẽ mở hai cửa sổ đầu cuối, một trong số đó sẽ xuất bản và cửa sổ kia sẽ đăng ký. Ví dụ, chúng tôi sẽ sử dụng / Folder_one làm chủ đề. Trước khi pub / sub vào một chủ đề, bạn sẽ cần tìm địa chỉ IP của ubuntu. Để thực hiện thao tác này, hãy nhấp chuột vào góc trên bên tay phải của màn hình, chọn cài đặt wifi, từ đó bạn sẽ có thể tìm thấy địa chỉ IP của hệ thống ubuntu (hiện tại là IP của nhà môi giới). Ảnh chụp màn hình được chia sẻ để tham khảo (Hình 8).

Hoặc để tìm địa chỉ IP của nhà môi giới, bạn có thể tìm địa chỉ IP bằng cách cài đặt các công cụ mạng bằng lệnh sau trong thiết bị đầu cuối

sudo apt cài đặt net-tools

Cài đặt net-tools (Hình 9). Sau đó chỉ cần gõ lệnh ipconfig bạn sẽ nhận được danh sách giao diện mạng với mac và địa chỉ IP

sudo ipconfig

Địa chỉ IP của hệ thống của tôi là 192.168.1.67 (Hình ảnh 10)

Xuất bản

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m pub_to_folderone

Ở đây, mosquitto_pub là lệnh, theo sau là phần tử định danh tham số -h là địa chỉ IP của máy chủ / nhà môi giới (Trong trường hợp của chúng tôi là 192.168.1.67), theo sau là -t là tên chủ đề của nhà xuất bản (Trong trường hợp của chúng tôi là / Folder_one), tiếp theo là -m có nghĩa là tin nhắn / tải trọng sẽ được gửi (Trong trường hợp của chúng tôi là pub_to_folderone).

Đăng ký

mosquitto_sub -h 192.168.1.67 -t / Folder_one

Thông báo được gửi bởi nhà xuất bản: pub_to_folderone

Ví dụ về xuất bản

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m “hi test mqtt”

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m “mqtt đang làm việc”

Ví dụ về phản hồi nhận được khi đăng ký chủ đề

mosquitto_sub -h 192.168.1.67 -t / Folder_one

Tin nhắn do nhà xuất bản gửi:

  • pub_to_folderone
  • xin chào mqtt
  • mqtt đang làm việc

Pub Sub trong hai cửa sổ đầu cuối riêng biệt cạnh nhau (Hình 11)

Thử nghiệm Mqtt trên Android (mqtt của tôi)

Cài đặt ứng dụng mymqtt từ cửa hàng Play trên điện thoại Android của bạn (Hình 12)

Mở ứng dụng và nhấp vào góc trên bên trái (Hình 13, Hình 14).

Nhấp vào Cài đặt và nhập địa chỉ IP của nhà môi giới, cổng theo mặc định sẽ là 1883. Hiện tại chúng tôi không sử dụng nhà môi giới mqtt đã xác thực nên tên người dùng và mật khẩu sẽ trống. Chỉ cần lưu nó và nhấp lại vào góc trên cùng bên trái của ứng dụng (<Cài đặt), ngăn kéo sẽ mở lại (Hình 15).

Trên đầu ngăn kéo, nó sẽ hiển thị cho bạn địa chỉ IP của nhà môi giới và cổng mà ứng dụng được kết nối với (Hình 16).

Bây giờ thêm chủ đề bạn muốn đăng ký bằng cách nhấp vào Đăng ký. Ở đây chúng ta sẽ thêm chủ đề là / Folder_one (Hình 17, Hình 18).

Sau khi thực hiện việc này, từ hệ thống ubuntu bằng cách sử dụng thiết bị đầu cuối, chúng tôi sẽ xuất bản chủ đề. Khi xuất bản, bạn sẽ nhận được tải trọng / thông báo được xuất bản trên ứng dụng di động này. Ví dụ: xuất bản tải trọng dưới dạng “ARM -Automation Robotics & Mechatronics”. Lệnh như đã đề cập trước đó.

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m “ARM -Automation Robotics & Mechatronics”

xuất bản từ hệ thống ubuntu (Hình 19).

Đã nhận được thông báo đã xuất bản trên bảng điều khiển (Hình 20).

Bây giờ hãy để chúng tôi xuất bản từ điện thoại Android (mqtt của tôi) và đăng ký trên hệ thống ubuntu. Đối với ví dụ này, chúng tôi đang sử dụng chủ đề “/ mymqtt_to_pub”.

Để thực hiện việc này, trước tiên hãy mở một thiết bị đầu cuối từ hệ thống ubuntu của bạn và đăng ký chủ đề “/ mymqtt_to_pub” bằng lệnh sau (Hình ảnh 21)

mosquitto_sub -h 192.168.1.67 -t / mymqtt_to_pub

Bây giờ, hãy chuyển đến ngăn kéo của ứng dụng mymqtt và nhấp vào xuất bản. Thêm chủ đề xuất bản (Trong trường hợp của chúng tôi là “/ mymqtt_to_pub”) và gửi một số thông báo như chúng tôi sẽ gửi “chào Ubuntu”, nhấn nút gửi (Hình 22, Hình 23).

Thông báo sẽ xuất hiện trên cửa sổ đầu cuối của hệ thống ubuntu của bạn (Hình 24).

Lưu ý rằng cả hệ thống ubuntu và điện thoại Android phải ở trên cùng một mạng hoặc cổng 1883 phải được hiển thị và bạn nên biết địa chỉ IP của bộ định tuyến / cổng của bạn để mqtt hoạt động. Nếu bạn muốn thêm xác thực vào nhà môi giới mqtt của mình, bạn có thể thực hiện bằng cách truy cập vào liên kết blog được đề cập bên dưới https://medium.com/@eranda/setting-up-authenticat… Thực hiện theo từ bước hai của blog này. Chúng tôi đã cho phép xác thực nhà môi giới của mình và sẽ sử dụng nhà môi giới đã xác thực cho các hội đồng của chúng tôi.

Bước 3: Làm việc với Armtronix Board & Mqtt

Làm việc với Armtronix Board & Mqtt
Làm việc với Armtronix Board & Mqtt
Làm việc với Armtronix Board & Mqtt
Làm việc với Armtronix Board & Mqtt
Làm việc với Armtronix Board & Mqtt
Làm việc với Armtronix Board & Mqtt

Hiện tại đối với hướng dẫn này, chúng tôi đang sử dụng Bảng điều khiển giảm sáng đơn Wi-Fi sử dụng Triac để cắt sóng sin và lần lượt làm mờ bóng đèn hoặc điều khiển tốc độ của quạt. Ngoài ra, chúng tôi đã kết nối nó thông qua loại xác thực mqtt.

Ban đầu chúng tôi đã cấu hình bảng. Các bước để cấu hình nó như được đề cập bên dưới.

Bật nguồn trên bo mạch, nó sẽ bắt đầu lưu trữ một Điểm truy cập Wifi.

Sử dụng điện thoại hoặc máy tính xách tay Android kết nối với AP này (Hình 25).

Sau khi kết nối với AP này, hãy nhập 192.168.4.1 bằng cách mở trình duyệt (chrome / firefox) từ hệ thống / Điện thoại được kết nối AP. Đảm bảo rằng bạn không sử dụng kết nối dữ liệu của mình (3G / 4G).

Khi nhập IP, một trang web sẽ mở ra nơi bạn phải nhập thông tin theo dõi (Hình 26).

  • SSID: Tên AP Wifi.
  • Mật khẩu: Mật khẩu SSID.
  • Chế độ IoT Mqtt hoặc Http (Chọn Mqtt).
  • Mqtt Broker IP (Trong trường hợp của chúng tôi là 192.168.1.67).
  • Tên người dùng và mật khẩu Mqtt, vì chúng tôi đang sử dụng loại xác thực, chúng tôi đã sử dụng Naren, xxxx
  • Chủ đề xuất bản Mqtt: Đây cũng sẽ là chủ đề mà hội đồng quản trị xuất bản, chúng tôi đã sử dụng / testpub.
  • Chủ đề đăng ký Mqtt: Đây sẽ là chủ đề mà hội đồng quản trị lắng nghe các lệnh để kích hoạt triac, chúng tôi đã sử dụng / testsub.
  • Tên thiết bị: Đó là tên bạn gọi alexa để kích hoạt bảng, chúng tôi đã sử dụng corvi.

Sau khi nhập thông tin chi tiết, Nhấn nút gửi, khi thực hiện thao tác này, bạn sẽ nhận được màn hình như trong Hình 27, hãy đợi một lúc cho đến khi hội đồng quản trị ngừng lưu trữ AP.

Xin lưu ý rằng chúng tôi đã kết nối bo mạch của mình qua Uart với màn hình nối tiếp của Arduino IDE. Vì vậy, ở phía bên tay trái, bạn sẽ thấy các thông báo gỡ lỗi mà nó in qua Uart (đây chỉ là để bạn tham khảo).

Sau khi hoàn tất, bạn có thể xem màn hình gỡ lỗi. Hầu hết các chi tiết sẽ được hiển thị ở đó. Sau đó, nó sẽ kết nối thành công với nhà môi giới trên màn hình gỡ lỗi (nối tiếp) mà bạn có thể thấy điều này.

Đã kết nối với nhà môi giới MQTT có xác thực. Đã đăng ký chủ đề 1.

Sau khi nó in ra, bây giờ bạn có thể bắt đầu gửi lệnh qua mqtt về chủ đề nó đã đăng ký, tức là / testsub /

Đối với bảng lệnh này là:

  • R13_ON: Để bật triac lên 100%.
  • R13_OFF: Để tắt triac về 0%.
  • Dimmer: xx: Trong đó, xx là giá trị làm mờ và có thể thay đổi từ 0 đến 99.
  • Đặt lại: Để xóa cấu hình của bo mạch.
  • Trạng thái: In tình trạng mờ của bảng về chủ đề xuất bản của bảng.

Để gửi lệnh này từ một hệ thống dựa trên ubuntu, nơi ứng dụng khách mqtt được cài đặt, chỉ cần nhập nó như hiển thị bên dưới. Hai tham số bổ sung được thêm vào đây vì xác thực - tức là -u là tên người dùng và -P là mật khẩu, xin lưu ý rằng những tham số này có phân biệt chữ hoa chữ thường.

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m R13_OFF

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m Dimmer: 50

Lưu ý: 50 là giá trị mờ hơn

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m Trạng thái

Đối với trạng thái mới nhất, trạng thái được in về chủ đề xuất bản của bảng mà trong trường hợp của chúng tôi là / testpub. Trên bảng của chúng tôi, bất kỳ thay đổi nào trong thiết bị đều được in về chủ đề xuất bản của bảng. Ví dụ: nếu chúng ta vượt qua Dimmer: 50 trên chủ đề đã đăng ký trên bảng so với khi thực hiện điều này về mặt vật lý, bảng sẽ gửi một thông báo cho biết mức độ mờ của chủ đề xuất bản. Ví dụ được hiển thị bên dưới, Để đăng ký từ hệ thống ubuntu của bạn vào chủ đề xuất bản của hội đồng quản trị, hãy nhập lệnh sau

mosquitto_sub -h 192.168.1.67 -u Naren -P xxxx -t / testpub

thông điệp chúng tôi nhận được là

DimmerIS50

bên dưới có một vài màn hình ngắn giống nhau (Hình 28, Hình 29)

Đề xuất: