環境說明:
- Visual Studio 2022 Community
- IotSharp程式碼:https://github.com/IoTSharp/IoTSharp.git
- IoTGateway版本:v2.1.1
- Node版本:v20.18.1
- Influxdb版本:v2.7.11
安裝Node
Node.js官網
官網下載並安裝,npm使用淘寶映象
用於編譯IotSharp前端Vue專案使用
編譯和啟動IotSharp
後端環境需要安裝.NET 8.0
拉取最新IotSharp專案程式碼,使用VS 2022開啟,設定如下
先使用資料庫Sqlite進行快速演示,這時遙測將儲存在Sqlite資料庫中,後面可以換成其他時序資料庫,使用配置檔案為“appsettings.Sqlite.json”
{
"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
,啟動
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
並解壓
啟動
influxd.exe
啟動後瀏覽器開啟http://localhost:8086/
,設定好使用者名稱和密碼等資訊,並記錄下API Token值“rMJtiyyXgUlhztRAgooCXRlkDi55hHcvRJAUUijKkDvBajr0YI-T5CK75uT1JC9zSXyMey1i6lRQUBXLyJmjHA==”
修改專案配置
修改配置“appsettings.InfluxDB.json”
{
"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
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中資料