EMQX的安装与使用
文章目录
一、安装篇
系统配置
ubuntu 20.04
链接:https://docs.emqx.cn/broker/v4.2/getting-started/install.html
二、使用篇
2.1 配置文件路径
描述 | 使用 ZIP 压缩包安装 | 使用二进制包安装 |
---|---|---|
可执行文件目录 | ./bin | /usr/lib/emqx/bin |
数据文件 | ./data | /var/lib/emqx/data |
Erlang 虚拟机文件 | ./erts-* | /usr/lib/emqx/erts-* |
配置文件目录 | ./etc | /etc/emqx/etc |
依赖项目录 | ./lib | /usr/lib/emqx/lib |
日志文件 | ./log | /var/log/emqx |
启动相关的脚本、schema 文件 | ./releases | /usr/lib/emqx/releases |
2.2 安全性设置
2.2.1. 非匿名登录
路径: /etc/emqx/emqx.conf
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2SeoSdEm-1616941149877)(C:\Users\孔方\AppData\Roaming\Typora\typora-user-images\image-20210328220202314.png)]
2.2.2. 设置用户与密码
路径:/etc/emqx/plugins/emqx_auth_username.conf
auth.user.1.username = test
auth.user.1.password = test
auth.user.2.username = lot
auth.user.2.password = lot
2.2.3 在Dashboard中开启服务
2.3 测试应用
需要下载MQTTX 链接:https://mqttx.app/cn/
2.4 Python模拟生成流数据发布到EMQX
# 测试读取csv文件 转变为流消息
import csv
import json
import time
import paho.mqtt.client as mqtt
# Configuration Parameters.
CSV_FILE_NAME = "D:\platform\mqtt_python\data\energy.csv"
MQTT_TOPIC = "/sensor/data"
MQTT_PORT = 1883
MQTT_BROKER = "192.168.218.130"
username = "lot"
password = "lot"
# Global variables.
data_value = {}
key_values = []
key_value_count = 0
# On connect MQTT Callback.
def on_connect(client, userdata, flags, rc):
print("Connected with result code : "+str(rc))
if rc == 0:
print("Connected to MQTT Broker!")
else:
print("Failed to connect, return code %d\n", rc)
# on publish MQTT Callback.
def on_publish(client, userdata, mid):
print("Message Published.")
# Reading the csv file to extract the data.
with open(CSV_FILE_NAME, mode='r') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
line_count = 0
for row in csv_reader:
if line_count == 0:
key_values = row
key_value_count = len(key_values)
line_count +=1
else:
temp_val = {}
data_val = row
count = 0
for value in key_values:
temp_val[value] = data_val[count]
count +=1
data_value[line_count] = temp_val
line_count +=1
# Connecting to MQTT for publishing.
client = mqtt.Client()
client.username_pw_set(username, password)
client.on_connect = on_connect # On Connect Callback.
client.on_publish = on_publish # On Publish Callback.
client.connect(MQTT_BROKER, MQTT_PORT, 60) # Connecting to the MQTT Broker.
while 1:
for value in data_value:
temp_data_val = str(data_value[value]).replace("'", '"')
try:
client.publish(MQTT_TOPIC, temp_data_val)
time.sleep(5)
except:
print("Publish Failed.")
运行样例: