IoTSharp 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
IoTSharp 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
IoTSharp 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
IoTSharp 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
IoTSharp 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

IOTSharp LOGO

IoTSharp是一个用于数据收集通过规则引擎流转数据最后通过数据可视化管理数据结果,以及租户结构的资产管理。可用于实现自主可控的、自有机房、无需支付高额租赁费用的自有物联网平台, 支持分布式, 这意味着你可以通过多台服务器共同处理数据,遥测数据进行分开存储,单表方式、 分表、时序数据库等。 主要功能如下:

  1. 支持基于MQTT、CoAP、HTTP协议的数据采集协议
  2. 支持X509加密验证和用户名密码 以及批量token认证
  3. 提供STM32 基于 rt-thread 的采集sdk
  4. 提供树莓派中基于C#的采集sdk 
  5. 提供常规其他linux中采集sdk
  6. 支持数字孪生概念, 因此数据区分为属性和遥测数据, 遥测数据存储在时序数据中
  7. 通过EFCore.Sharding支持了分表存储, 默认是按月存储,根据数据量, 你可以修改为按日, 按时 。
  8. 通过Maikebing.Data.Taos 我们支持了涛思数据的时序数据库 TDengine , Maikebing.Data.Taos 是目前.Net 生态中唯一最完整的TDengine 支持组件。
  9. 内置了 ZeroMQ 服务, 用于支持基于ZeroMQ的分布式消息处理。
  10. 通过CAP实现了EventBus 消息总线, 通过CAP.Extensions 支持了ZeroMQ的消息总线支持, 可以做到纯粹.Net 生态。
  11. 通过CAP实现了 消息数据 能在 MongoDB LiteDB PostgreSql中存储。
  12. 通过CAP实现了消息可以通过RabbitMQ Kafka ZeroMQ 进行生产和消费。 当多台服务器时, 一台可以作为主服务器, 其他可以作为辅助服务器用以处理所有采集数据。

在此新版本发布之时 , 我们在生产环境已经使用,本月数据已经达到三千多万,两千台设备, 五万多个检测项。

如何安装 ?

 mkdir iotsharp
cd iotsharp 
wget https://raw.githubusercontent.com/IoTSharp/IoTSharp/master/docker-compose.yml
docker-compose up -d  

演示版本:

http://139.9.232.10:2927

我们的docker镜像

  • docker pull iotsharp/iotsharp

如何安装为Linux服务 ?

  • mkdir /var/lib/iotsharp/
  • cp ./* /var/lib/iotsharp/
  • chmod 777 /var/lib/iotsharp/IoTSharp
  • cp iotsharp.service /etc/systemd/system/iotsharp.service
  • sudo systemctl enable /etc/systemd/system/iotsharp.service
  • sudo systemctl start iotsharp.service
  • sudo journalctl -fu iotsharp.service

关联项目

IoTSharp.SDKs

IoTSharp.SDKs 包含了 IoTSharp.Sdk.MQTT IoTSharp.Sdk.Http 用于采集端或者边缘部分进行数据采集通过sdk发送给IoTSharp。 https://github.com/IoTSharp/IoTSharp.SDKs

IoTSharp-C-Client-Sdk

IoTSharp-C-client-Sdk  是一个mqtt客户端, 针对iotsharp封装了协议 

https://github.com/IoTSharp/IoTSharp-C-Client-Sdk

paho.mqtt.c's demo

 也是一个mqtt的协议实现,演示了如何使用 paho.mqtt.c  对接IoTSharp https://github.com/IoTSharp/IoTSharp.Edge.paho.mqtt.c

IoTSharp.Edge.nanoFramework

IoTSharp.Edge.nanoFramework  是一个nanoFramework 下实现的mqtt客户端, 意味着你可以用C#在STM32上对接IoTSharp 

https://github.com/IoTSharp/IoTSharp.Edge.nanoFramework

 更多信息请阅读 

https://www.cnblogs.com/MysticBoy/p/13159648.html 

https://www.nanoframework.net/

IoTSharp.Edge.RT-Thread

IoTSharp.Edge.RT-Thread (STM32L4 + Wi-Fi, sensor, lcd, audio etc) 是一个在RT-Thread 上进行对接的演示, 如果您项目中采集设备使用了RTT, 这个演示将是个好的开头。 

https://github.com/IoTSharp/IoTSharp.Edge.RT-Thread

   
20190615010003.jpg 20190615010115.jpg

IoTSharp依赖生态

IoTSharp的依赖生态是为了实现IoTSharp而改进或者创建的项目。 这些项目是组成IoTSharp的关键部分。 与此同时, 针对其他项目也有一定需求。

  • MaiKeBing.CAP.ZeroMQ MaiKeBing.CAP.ZeroMQ

    ZeroMQ(也称为 ØMQ,0MQ 或 zmq)是一个可嵌入的网络通讯库(对 Socket 进行了封装)。 它提供了携带跨越多种传输协议(如:进程内,进程间,TCP 和多播)的原子消息的 sockets 。 有了ZeroMQ,我们可以通过发布-订阅、任务分发、和请求-回复等模式来建立 N-N 的 socket 连接。 ZeroMQ 的异步 I / O 模型为我们提供可扩展的基于异步消息处理任务的多核应用程序。当前组件使用了NetMQ 为CAP提供了 发布-订阅, 推送-拉取两种消息模式。 示例请参见Sample.ZeroMQ.InMemory, 当测试 推送-拉取 消息模式时 , 可以启动 Sample.ConsoleApp 可以测试负载均衡。

  • MaiKeBing.CAP.LiteDB MaiKeBing.CAP.LiteDB

    LiteDB是一个小型的.NET平台开源的NoSQL类型的轻量级文件数据库。特点是小和快,dll文件只有200K大小,而且支持LINQ和命令行操作,数据库是一个单一文件,类似Sqlite。为CAP存储了本地文件的NoSQL存储方式, 示例请参见 Sample.LiteDB.InMemory

  • MaiKeBing.HostedService.ZeroMQ MaiKeBing.HostedService.ZeroMQ

    将ZeroMQ作为HostedService 运行, 通过配置可以实现Pub-Sub、Push-Pull 两种分发模式

  • IoTSharp.X509Extensions IoTSharp.X509Extensions

    是一个自签名证书组件, 用于支持IoTSharp的X509加密部分

    https://github.com/IoTSharp/IoTSharp.X509Extensions

  • MQTTnet.AspNetCoreEx MQTTnet.AspNetCoreEx

 是一个用于支持mqttnet 认证的独立组件! https://github.com/maikebing/MQTTnet.AspNetCoreEx

  • Silkier Silkier

    Silkier 是一个常用函数集合的组件

  • Silkier.EFCore Silkier.EFCore

    Silkier.EFCore用来支持一些sql语句的执行, 以及一些转换等等。  
    https://github.com/maikebing/Silkier

  • SilkierQuartz SilkierQuartz

    SilkierQuartz 是一个改造了的Quartz的中间件 

https://github.com/maikebing/SilkierQuartz

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (7)

加载中
打分: 很差
使用感知不好
2020/11/03 20:39
回复
举报
支持,就因为为了让未来C#生态圈更繁荣
2020/10/30 09:04
回复
举报
打分: 力荐
支持
2020/10/30 00:58
回复
举报
打了个卡
2020/10/28 19:31
回复
举报
打分: 力荐
知易前来支持
2020/10/28 15:51
回复
举报
可否支持freertos
2020/10/26 15:38
回复
举报
麦壳饼软件作者
目前没做适配
2020/10/26 22:55
回复
举报
更多评论
发表了资讯
02/16 12:19

IoTSharp v1.6.0 发布,增加多种数据库支持

首先恭祝所有关注IoTSharp的朋友新春快乐。 在此新年之际 , 我们发布了v1.6.0 , 这次版本发布的最大变化是 我们开始支持多种数据库了, 而不再局限于PostgreSQL . 下面是我们支持的数据库: PostgreSql 测试环境是 PostgreSQL 11.3这是一直以来都支持的数据库。 MySql 测试环境是MySQL 8.0.17 Oracle 测试环境是 Oracle Standard Edition 12c Release 2, 如果你手头没有测试环境, 可以参考 https://github.com/MaksymBilenko...

0
9
发表于硬件 & IoT专区
2020/10/23 11:43

IoTSharp V1.5 发布

很高兴的宣布新版本的发布, 这次更新我们带来了大量新特性, 最值得关注的是, 我们逐步开始支持分布式, 这意味着你可以通过多台服务器共同处理数据, 而不是原来的单机处理, 我们也将遥测数据进行分开存储, 原来的单表方式也支持的同时, 增加了分表、时序数据库等。更新主要功能如下: 通过EFCore.Sharding支持了分表存储, 默认是按月存储,根据数据量, 你可以修改为按日, 按时 。 通过Maikebing.Data.Taos 我们支持了...

4
13
发表了资讯
2020/07/10 17:51

IoTSharp 0.2 发布,已成功对接 STM32、树莓派等多种设备

IoTSharp 是一个基于.Net Core 3.1 的跨平台物联网平台, 目前最新版本实现如下功能! 服务端支持方面: 一、支持HTTP的遥测数据、属性数据上传和获取。 二、支持完整的HTTP Api进行设备以及多租户设备管理 三、支持MQTT协议遥测数据的上传和订阅 四、RPC支持mqtt和http, coap晚些时候支持。 五、支持coap的属性上传和遥测上传 六、通过kimbus 内置ModBus 服务端。 七、通过MQTTnet 内置MQTT Broker 并能通过IoTSharp.X509Exte...

2
32
发表了资讯
2019/07/01 10:06

物联网平台 IoTSharpV0.1.107 新增支持 ModBus 以及大波改进

很高兴的宣布又一个新版本发布, 此次版本有了大量多改进和变化, 虽然依然无法在生产环境中使用, 但大量更新是无可置疑的。 1、加入了MQTT 相关的WebApi by 阿峰(masterchen) 2、初步增加了MQTT 的Topic管理和消息数量、订阅的管理 by 阿峰(masterchen) 3、前端初步增加了设备管理、遥测和对应属性的显示 by 阿峰(masterchen) 4、用户根据租户注册用户现在已经可用。 by 阿峰(masterchen) 5、前端中初步增加了遥测数据和属性数...

4
40
发表了资讯
2019/06/12 14:36

IoTSharp v0.1.19 发布,物联网基础平台

IoTSharp 是一个 基于.Net Core 开源的物联网基础平台, 支持 HTTP、MQTT 、CoAP 协议, 属性数据和遥测数据协议简单类型丰富,是一个用于数据收集、处理、可视化与设备管理的 IoT 平台。 加入CoAP协议 , 现在开始支持CoAp协议的遥测数据和属性数据上传 加入CoAP客户端示例、MQTT 的C#客户端示例、加入纯C语言客户端示例 合并基于vue-element-admin 的前端跟主版本库到一起。 前端客户端实现了注册、登录、设备管理等基本界面,...

2
38
发表了资讯
2019/05/20 12:46

IoTSharp v0.1-alpha 发布,基于.Net Core 的物联网平台

IoTSharp 是一个 基于.Net Core 开源的物联网基础平台, 支持 HTTP、MQTT 协议, 属性数据和遥测数据协议简单类型丰富,是一个用于数据收集、处理、可视化与设备管理的 IoT 平台。 这是第一个alpha 版本发布, 目前已经具备基本的数据收集和功能和处理功能,发布内容大致如下: 支持 HTTP 和 MQTT 协议的遥测数据上传和属性数据上传,数据类型除了Json能表示的类型外, 我们还有XML和 二进制数据类型的支持。 基于HTTP的RPC调用,...

4
31
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于硬件 & IoT专区
2019/06/25 16:15

如何从源码启动和编译IoTSharp

IoTSharp 项目是一个开源物联网平台,数据库使用PostgreSQL , 后端使用 Asp.Net Core 2.2 ,前端使用 vue-element-admin , 下面我们介绍如何启动项目。 1、安装数据库, 根据你的系统,前往 https://www.postgresql.org/download 下载并安装数据库, 2、从https://gitee.com/IoTSharp/IoTSharp 用git clone 代码 3、前往 https://docs.microsoft.com/zh-cn/dotnet/core/macos-prerequisites?tabs=netcore2x 下载并安装.Net 2....

2
0
发表于硬件 & IoT专区
2019/05/23 23:03

IoTSharp 编译项目参考 by 华中WSN

1.通过Git拉取全部的子模块。 2.VS2017打开工程,社区版本就可以了。 3.需要安装DevExpress, 试用版就可以。 4.安装新版本 Node.js 5.安装PostgreSQL数据库,密码是appsetting.json里面的。如果你的数据库账号不能创建数据库, 则要先建好IotSharp数据库 6.先运行服务器,出现登录界面即可。 7.运行客户端,一定要先显示服务器准备就绪。如果数据库为空。点登录会出现安装界面。其他默认。但是最重要的是密码规则很复杂,一定需...

0
0
发表于软件架构专区
2020/08/23 07:50

如何在龙芯3B4000上部署基于.Net Core 开发的物联网平台IoTSharp

今天很开心的拿到了龙芯的测试服务器账号, 先上图show一下, 双核, 8G内存, 50G硬盘。 架构 mips64el 登录后, 显示为 uos 及其网址信息: 接下来, 二话不说, 我们开始下载龙芯版的.Net Core , 龙芯版.Net Core 近期刚移植完成, 前期国内其他公众号和开源中国均有报道, 现在, 相关工具链已完成,完全已经达到了开箱即用, 并且已经是.Net Core 3.1.7 是最新版本,相关下载链接如下: .NET Core 3.1.7 MIPS64 Port Earl...

0
0
发表了博客
2020/08/21 23:10

如何在龙芯3B4000上部署基于.Net Core 开发的物联网平台IoTSharp

今天很开心的拿到了龙芯的测试服务器账号, 先上图show一下, 双核, 8G内存, 50G硬盘。 架构 mips64el 登录后, 显示为 uos 及其网址信息: 接下来, 二话不说, 我们开始下载龙芯版的.Net Core , 龙芯版.Net Core 近期刚移植完成, 前期国内其他公众号和开源中国均有报道, 现在, 相关工具链已完成,完全已经达到了开箱即用, 并且已经是.Net Core 3.1.7 是最新版本,相关下载链接如下: .NET Core 3.1.7 MIPS64 Port Earl...

0
0
发表于开发技能专区
2020/06/20 07:45

使用C#编写STM32对接物联网平台IoTSharp发送遥测数据

在之前的文章中, 我们阐述了如何用C#在STM32上写第一个Hello world , 有朋友抱怨国内介绍文章, 都是一个 Hello world , 然后再也没有音讯, 写到这里我想提一下我的初心, 那就是告诉所有人C#无所不能, C#可以写单片机, 也可以写Web应用, 也可以写移动应用, 也可以写桌面应用, 又有人提到 nanoFramework 的性能问题, 这点我认为跟MicroPython 等解释型STM32应用一致的, 跟C写的 代码我认为是无法匹敌的!工作中长期使...

0
0
发表于硬件 & IoT专区
2019/07/01 10:15

物联网平台 IoTSharpV0.1.107 多图展示

很高兴的宣布又一个新版本发布, 此次版本有了大量多改进和变化, 虽然依然无法在生产环境中使用, 但大量更新是无可置疑的。 1、加入了MQTT 相关的WebApi by 阿峰(masterchen) 2、初步增加了MQTT 的Topic管理和消息数量、订阅的管理 by 阿峰(masterchen) 3、前端初步增加了设备管理、遥测和对应属性的显示 by 阿峰(masterchen) 4、用户根据租户注册用户现在已经可用。 by 阿峰(masterchen) 5、前端中初步增加了遥测数据和属性数...

0
3
发表于数据库专区
2020/11/04 08:00

InfluxDB 2.0 之Flux语法篇

由于项目 IoTSharp 需要支持 InfluxDB , 因此进行了初步尝试, 虽然 Flux 语法初次学习, 但查询语句却似曾相识, 如果改一下 标点符号, 你会完全认为他是 C#的拉姆达表达式, 首先看一下写入数据: using (var writeApi = influxDBClient.GetWriteApi()) { // // Write by Point // var point = PointData.Measurement("temperature") ...

0
0
发表了博客
2020/11/06 15:07

InfluxDB 2.0 之Flux语法篇

由于项目 IoTSharp 需要支持 InfluxDB , 因此进行了初步尝试, 虽然 Flux 语法初次学习, 但查询语句却似曾相识, 如果改一下 标点符号, 你会完全认为他是 C#的拉姆达表达式, 首先看一下写入数据: using (var writeApi = influxDBClient.GetWriteApi()) { // // Write by Point // var point = PointData.Measurement("temperature") ...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
7 评论
336 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部