國產物聯網平臺(IotSharp+IoTGateway+Influxdb)快速上手

VinciYan發表於2024-12-09

環境說明:

  • 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中資料

相關文章