跳到主要内容
C# Node.js SaaS
IoTSharp 开源物联网基础平台功能与部署详解 IoTSharp 是基于 .NET 8.0 的开源物联网平台,支持设备管理、遥测数据监测、RPC 远程控制及规则链引擎。提供数字孪生与资产管理功能,兼容多种数据库(如 PostgreSQL、InfluxDB)和消息中间件。支持跨平台部署,包含仪表盘、多租户管理及安全配置。核心功能模块、技术架构优势及基于 Node.js 和 InfluxDB 的部署流程。
RustyLab 发布于 2026/3/28 更新于 2026/10/24 104 浏览IoTSharp 开源物联网基础平台
IoTSharp 是一个基于 .NET 8.0 的开源物联网基础平台,采用 Apache-2.0 许可证,集设备管理、数据收集、处理、可视化与远程控制于一体,遵循数字孪生理念将物理设备映射到数字世界。
一、核心功能模块
1. 设备管理
设备全生命周期管理 :支持设备注册、配置、监控、删除等操作,提供设备 ID、型号、固件版本等基本信息管理
网关配置器 :支持网关设备的管理与配置
设备属性管理 :允许自定义设备属性字段(如温度阈值、湿度范围),自动收集并存储数据,提供可视化图表展示
多类型设备支持 :区分普通设备与网关设备,提供差异化管理能力
2. 遥测数据监测
多参数采集 :支持温度、湿度、压力等多种遥测数据的实时采集
高效数据传输 :自动收集设备端数据并传输至云端服务器进行处理和存储
可视化展示 :提供实时图表、历史曲线图等丰富的数据展示工具
异常触发机制 :内置规则链设计引擎,支持设置异常值报警条件和自动化响应动作
3. RPC 多模式远程控制
跨网络控制 :通过网络连接实现远程设备操作,支持指令编码、传输、解码及执行结果反馈的完整闭环
多访问途径 :支持 Web 界面、移动应用程序、API 接口等多种控制方式
安全机制 :所有通信过程加密传输,提供详尽日志记录功能,便于故障排查与审计
灵活操作 :Web 端提供直观操作面板,移动端优化小屏幕体验,API 支持第三方定制化集成
4. 规则链设计引擎
可视化规则配置 :通过拖拽方式创建数据处理流程
灵活触发逻辑 :支持基于设备数据、时间、事件等多维度触发条件
自动化响应 :可联动告警、设备控制、数据转发等动作
模块化处理 :通过 FlowRuleProcessor 负责规则链的执行
5. 告警与通知系统
多源监控 :监控设备、网关和资产的异常状态
灵活规则配置 :支持自定义告警触发条件和阈值
多通道通知 :可通过邮件、短信、Webhook 等多种方式通知相关人员
状态管理 :支持告警确认、清除、查询及多租户数据隔离
二、技术架构支持
1. 协议支持
标准协议 :HTTP、MQTT、CoAp
协议扩展 :支持非标协议的转换与接入
SDK 支持 :提供 HTTP 和 MQTT 协议的客户端 SDK
2. 数据库支持
类型 支持的数据库 关系型数据库 PostgreSQL、MySQL、Oracle、SQL Server、SQLite(均支持分表) 时序数据库 InfluxDB、IoTDB、TDengine、TimescaleDB、PinusDB 消息存储 PostgreSQL、MongoDB、LiteDB、MySQL、SQL Server、InMemory
3. 消息中间件 支持 RabbitMQ、Kafka、ZeroMQ、NATS、Pulsar、Redis Streams、Amazon SQS、Azure Service Bus、InMemory 等多种消息队列
4. 事件总线
发布 - 订阅模式 :提供松耦合的异步通信机制
核心组件 :EventBusPublisher(事件发布)和 EventBusSubscriber(事件订阅与处理)
高扩展性 :支持多种消息队列后端,确保系统弹性
三、数字孪生与资产管理
1. 数字孪生实现
物理设备映射 :将可见与不可见的物理设备统一孪生到数字世界
实时同步 :设备状态、属性、遥测数据实时同步至数字孪生体
虚拟化运营 :支持在数字环境中模拟设备行为与系统配置变更
2. 资产管理
资产列表管理 :对物联网资产进行统一管理
产品化理念 :结合资产管理与产品化发展,适应复杂应用场景
多租户隔离 :租户数据完全隔离,确保安全性
四、平台管理功能
1. 仪表盘
全局概览 :展示设备数量、在线设备、最新遥测、报警事件等关键指标
实时状态 :可视化呈现系统运行状态与设备健康状况
2. 多租户管理
租户列表 :支持多租户环境的租户信息管理
权限分级 :区分系统管理员与租户管理员权限,实现精细化管理
独立配置 :各租户可独立配置设备、规则与告警策略
3. 用户与客户管理
用户列表 :平台用户账户管理
客户列表 :客户信息管理
国际化配置 :支持多语言与本地化设置
4. 系统设置
字典设置 :配置系统参数与业务字典
证书管理 :管理设备接入证书与安全凭证
安全配置 :身份认证、访问控制、数据加密等安全机制
五、部署与生态
1. 安装 Node 用于编译 IotSharp 前端 Vue 项目使用
2. 编译和启动 IotSharp
拉取最新 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"
}
复制 Token 值'e07c389fae774f07a810dc87b6466761'和 Id 值'b6e643f0-4403-4437-b406-1ec84d677e68'
3. IoTGateway 配置,接入 IotSharp
1)部署 IoTGateway 下载并解压 iotgateway-2.1.1-win-x64.zip,启动
浏览器访问 http://localhost:518/
用户名:admin 密码:iotgateway.net
2)接入 IotSharp 为方便演示,设置【变量配置】,只勾选并上传'用电量'
MqttServer 的 IP 地址填写 IotSharp 的服务 IP,Id 和用户名分别填写 IotSharp 设备管理中网关的 Id 和 Token 值
提交后,回到 IotSharp 前端页面,活动状态变为'活动'
4. 使用 Influxdb
1)部署 influxdb 下载 influxdb2-2.7.11-windows.zip 并解压
启动后浏览器打开 http://localhost:8086/,设置好用户名和密码等信息,并记录下 API Token 值'rMJtiyyXgUlhztRAgooCXRlkDi55hHcvRJAUUijKkDvBajr0YI-T5CK75uT1JC9zSXyMey1i6lRQUBXLyJmjHA=='
2)修改项目配置 修改配置'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 条
3)查询 Influxdb 中数据
六、技术架构优势
跨平台兼容 :基于 .NET 8.0,支持 Windows、Linux、macOS
插件化设计 :时序数据存储采用插件化架构,支持动态切换存储后端
高性能 :支持数据库分表、异步消息处理、高效规则引擎
安全可靠 :内置身份认证、数据加密、访问控制与日志审计机制
相关免费在线工具 Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
Markdown转HTML 将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
HTML转Markdown 将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
JSON 压缩 通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
JSON美化和格式化 将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online