
欢迎来到预见猿份,本站项目均为站长原创,学习中有问题可直接提交给站长老苗解决(微信:mrt_0607)。
苗润土老师,20余年一线项目经验,2014年加入黑马,星辰wms、云岚到家、学成在线项目作者,历任高级讲师、教学主管及课程研究员。 b站老苗
IOT环境搭建
1 MQTT Broker
下载Broker:
5.3.2有windwos版本,这里下载此版本:
https://www.emqx.com/zh/downloads/broker/v5.3.2
下载:emqx-5.3.2-windows-amd64.zip
或从课程资料下软件包目录获取。
解压emqx-5.3.2-windows-amd64.zip
进入安装目录下bin目录:
cmd运行:emqx console
运行成功如下图:

http://127.0.0.1:18083/#/login?to=/dashboard/overview
默认账号:admin,密码:public
初次需要修改密码:

可直接跳过

忘记密码可重置密码(https://docs.emqx.com/zh/emqx/v5.3/admin/cli.html#admins)
emqx ctl admins passwd admin mqtt@admin
新密码:mqtt@admin
2 MQTT Client
2.1 安装
下载地址 https://mqttx.app/zh/downloads
下载:

客户端安装成功:

2.2 测试
创建链接


连接成功

客户端1新建一个订阅sensor/+/temperature
MQTT 主题支持以下两种通配符:
+和#。
+:表示单层通配符,例如a/+匹配a/x或a/y。#:表示多层通配符,例如a/#匹配a/x、a/b/c/d。


此时客户端1订阅成功 sensor/+/temperature 主题
通过Broker查询订阅客户端:

下边再创建客户端2,连接Broker成功,向sensor/1/temperature发送消息

客户端1收到一条消息

客户端2也可以订阅主题,假设订阅“sensor/1/temperature” 主题
如果客户端2向“sensor/2/temperature” 主题 发送消息谁可以收到?
如果客户端2向“sensor/1/temperature” 主题 发送消息谁可以收到?
2.3 认证方式
为了保证通信安全,Broker可以设置客户端认证
客户端认证设置,增加安全性


设置认证方式
注意:这里设置的账号类型是 clientId(客户端ID)

创建成功

点击“用户管理”添加客户端

设置密码:

在Broker设置了密码那么在客户端连接时需要指定密码

3 InfluxDB
3.1 安装
安装文档:https://docs.influxdata.com/influxdb/v2/install/
安装包:https://docs.influxdata.com/influxdb/v2/install/?t=Windows
下载:influxdb2-2.7.12-windows.zip,从共享目录下的软件包中找到influxdb2-2.7.12-windows.zip
解压并修改配置文件:config.yaml

内容如下:
# 绑定IP端口
http-bind-address: :8086
#存储engine
engine-path: D:\soft\influxdb2-2.7.12-windows\data
# 用户数据和元数据存储地址(元数据不单独配置则使用此项)
bolt-path: D:\soft\influxdb2-2.7.12-windows\influx.bolt
#证书地址
vault-capath: D:\soft\influxdb2-2.7.12-windows\certs
#http相关配置
http-idle-timeout: 3m0s
http-read-header-timeout: 90s
http-read-timeout: 90s
http-write-timeout: 180s
#最大桶数
influxql-max-select-buckets: 0
#最大数据数量
influxql-max-select-point: 0
#最大字段数
influxql-max-select-series: 0
#日志相关
log-level: info
# 无需评测数据
pprof-disabled: true
#查询并发数
query-concurrency: 512
# 查询最大内存数 5G
query-max-memory-bytes: 5368709120
# 查询队列
query-queue-size: 1024
#会话超时 min
session-length: 60
#多大内存写一次,内存大则可开大些
storage-cache-snapshot-memory-size: 26214400
#写文件的最大线程数 高写操作,建议限制为机器的总核数
storage-max-concurrent-compactions: 4
#过期检查频率
storage-retention-check-interval: 1d0h0m0s
#写并发数
storage-wal-max-concurrent-writes: 03.2 运行
进入cmd(以管理员模式运行),执行influxd.exe启动

访问:http://localhost:8086,初次访问需要设置账号、密码、桶(数据库):
账号:root
密码:influxdb
组织:mrt
桶(数据库):influxdb_test_01

复制token(访问数据库时使用):
uaxLJK_ZO8nxFFsjxcQoA4X-L8friFuJIKl-1d6-6dmaL3M7yhja_OUPuiPmvoGxFgvDW040TNghTldqFBa35g==
点击“快速开始”

查看桶:

创建桶:

输入桶名,设置数据的保留策略,不建议设置过多且随意切换,通常设置30天。

创建成功

下面的一些链接可用于直接查看数据库信息:
查看配置:http://localhost:8086/api/v2/config
查看 Token:http://localhost:8086/api/v2/authorizations
查看用户:http://localhost:8086/api/v2/users
查看数据库:http://localhost:8086/api/v2/buckets
自定义token:

FUhQY-3IDyUawHaa924dxGd5uO4tIjCgHoZzyTzq05M6zOa8uXCQnLFJNH2yFzH8kHPGIyhTc2V87viaNeeSPg==退出重新登录:

创建桶:

