环境说明:
- Visual Studio 2022 Community
- IotSharp代码:https://github.com/IoTSharp/IoTSharp.git
- IoTGateway版本:v2.1.1
- Node版本:v20.18.1
- Influxdb版本:v2.7.11
安装Node
官网下载并安装,npm使用淘宝镜像
用于编译IotSharp前端Vue项目使用
编译和启动IotSharp
后端环境需要安装.NET 8.0
拉取最新IotSharp项目代码,使用VS 2022打开,设置如下
先使用数据库Sqlite进行快速演示,这时遥测将存储在Sqlite数据库中,后面可以换成其他时序数据库,使用配置文件为"appsettings.Sqlite.json"
c#
{
"DataBase": "Sqlite",
"ConnectionStrings": {
"IoTSharp": "Data Source=.data/IoTSharp.db",
"TelemetryStorage": "Data Source=.data/TelemetryStorage.db"
},
"EventBusStore": "InMemory",
"EventBusMQ": "InMemory",
"TelemetryStorage": "Sharding",
"RootKey": "kissme",
"EventBus": "Shashlik"
}
启动项目,浏览器输入"http://localhost:8888/"打开前端页面,注册用户并登录
【设备管理】新增网关"IoTGateway"
复制Token值"e07c389fae774f07a810dc87b6466761"和Id值"b6e643f0-4403-4437-b406-1ec84d677e68"
IoTGateway配置,接入IotSharp
部署IoTGateway
下载Releases · iioter/iotgateway
下载并解压iotgateway-2.1.1-win-x64.zip
,启动
plaintext
IoTGateway.exe
浏览器访问 http://localhost:518/
用户名: admin
密码: iotgateway.net
接入IotSharp
为方便演示,设置【变量配置】,只勾选并上传"用电量"
设置【传输配置】接入IotSharp
MqttServer的IP地址填写IotSharp的服务IP,Id和用户名分别填写IotSharp设备管理中网关的Id和Token值
提交后,回到IotSharp前端页面,活动状态变为"活动"
有实时的遥测数据
遥测历史可以查询历史数据
使用Influxdb
部署influxdb
Releases · influxdata/influxdb
下载influxdb2-2.7.11-windows.zip
并解压
启动
plaintext
influxd.exe
启动后浏览器打开http://localhost:8086/
,设置好用户名和密码等信息,并记录下API Token值"rMJtiyyXgUlhztRAgooCXRlkDi55hHcvRJAUUijKkDvBajr0YI-T5CK75uT1JC9zSXyMey1i6lRQUBXLyJmjHA=="
修改项目配置
修改配置"appsettings.InfluxDB.json"
c#
{
"Logging": {
"LogLevel": {
"Default": "Information"
}
},
"DataBase": "Sqlite",
"ConnectionStrings": {
"IoTSharp": "Data Source=.data/IoTSharp.db",
"TelemetryStorage": "http://192.168.1.212:8086/?org=vinciyan.com&bucket=vinci_bucket&token=rMJtiyyXgUlhztRAgooCXRlkDi55hHcvRJAUUijKkDvBajr0YI-T5CK75uT1JC9zSXyMey1i6lRQUBXLyJmjHA=="
},
"JwtKey": "kissmekissmekissmekissmekissmekissmekissmekissmekissmekissmekissmekissmekissmekissmekissmekissme",
"JwtExpireHours": 24,
"JwtIssuer": "IoTSharp.Net",
"JwtAudience": "IoTSharp.Net",
"EventBusStore": "InMemory",
"EventBusMQ": "InMemory",
"TelemetryStorage": "InfluxDB",
"EventBus": "Shashlik"
}
更改项目启动方式
此时后端日志输出如下,表示数据已经写入Influxdb
c#
IoTSharp.EventBus.EventBusSubscriber: Information: 更新IoTGateway(b6e643f0-4403-4437-b406-1ec84d677e68)属性数据结果2
IoTSharp.EventBus.EventBusSubscriber: Information: 更新IoTGateway(b6e643f0-4403-4437-b406-1ec84d677e68)属性数据结果2
IoTSharp.EventBus.EventBusSubscriber: Information: 更新IoTGateway(b6e643f0-4403-4437-b406-1ec84d677e68)属性数据结果2
IoTSharp.Storage.InfluxDBStorage: Information: 数据入库完成,共数据1条
查询Influxdb中数据