一款GO语言源码的多元计算物联网平台,快速搭建可交付的物联网应用系统
一、项目简介多元计算物联网平台在企业数字化转型中有大量的应用需要使用物联网技术。物联网技术涉及到了终端、通讯、平台与应用多个层级,技术堆栈复杂。一个开源的面向物联网应用的开发者平台,业务层面上提供了:设备接入与管理、数据存储与转发、告警通知、规则引擎、多租户等核心物联网功能,为应对物联网碎片化的物联网应用市场,技术层面上系统采用的是多元计算模型,包括云计算、边缘计算、容器化和函数服务等技术,可以在多个设备和计算资源上分布式地运行应用程序和服务。 使用Go、vue等常用的技术堆栈,实现了物联网的核心功能,技术完全自主可控,开箱即用。其代码非常简单,模块的设计全部解耦,开发者可以使用自己熟悉的语言(C、C++、Java、Go等)按需修改与扩展自己的模块,降低了物联网开发的门槛,极大的提升了应用开发的效率。 以MIT协议开源,商业用户无需担心版权问题。“姗姗来迟”给您最好的物联网平台。 二、功能概述一款开源的面向物联网应用的开发者平台:技术层采用多元计算模型,可在多个设备和计算资源上分布式的运行服务,并可快速实现多元异构设备的接入管理;应用层提供了设备接入与管理、数据存储与转发、告警通知、规则引擎、多租户等核心物联网能力,满足物联网99%的碎片化需求,基于SANSAN,开发者能快速搭建可交付的物联网应用系统。 功能简介功能 | 简介 | MQTT、HTTP、TCP | 通用协议接入 | Modbus | 工业协议,PLC类协议接入 | Onvif、GB28181 | 视频协议接入 | 设备与产品管理 | 设备导入、分组、实时状态监控、设备快照等 | 告警与通知 | 短信、邮件、微信、钉钉 | 规则引擎 | 规则联动、自定义JS脚本计算等 | 数据转发 | MQTT、WebHook、数据库、Kafka等 | 系统管理 | 自定义LOGO、多租户权限管理等 |
三、技术特点1、 微服务架构:协议接入、设备管理、告警等模块全部解耦,开发者可以按需修改,支持多种硬件平台(x86、arm、mpis); 2、 多语言支持:平台组件扩展可以使用多种语言,业务的二次开发也可以使用多种语言(详情参考二次开发最佳实践); 3、 技术简洁,入门简单:全系统采用了被大量实践过的通用技术,架构一看就会,代码随意修改。 4、 多租户的权限系统,权限粒度可以控制到按钮与单个的终端; 5、 数据安全性高,设计的时候租户的数据可以实现物理隔离; 6、 支持多种数据的存储,存储选项又用户自己定义; 7、 内置 mqtt,modbus,onvif,GB28181 等常见协议的接入解析,并且平台统一了用户自定义协议的接入方法,简单协议几行即可接入到平台; 8、 规则引擎使用了通用的 js 语言,并且系统了扩展了设备快照等系统函数,方便实现对设备的上下文操作与联动控制。
系统架构
一款GO语言源码的多元计算物联网平台,快速搭建可交付的物联网应用系统
成功案例
一款GO语言源码的多元计算物联网平台,快速搭建可交付的物联网应用系统
一款GO语言源码的多元计算物联网平台,快速搭建可交付的物联网应用系统
一款GO语言源码的多元计算物联网平台,快速搭建可交付的物联网应用系统
一款GO语言源码的多元计算物联网平台,快速搭建可交付的物联网应用系统
一款GO语言源码的多元计算物联网平台,快速搭建可交付的物联网应用系统
采用 MIT 协议及附加条款:使用 SANSAN 开发的应用可以商用,但不允许推出类似 SANSAN 及跟 SANSAN 有竞争关系的物联网底座、物联网平台或软件服务
附件源码包括如下: 1. 物联网平台源码
2.物联设备端SDK源码,用于简化终端设备接入平台的开发,该SDK只适用linux环境,该分支适用于单进程实现多业务: common 封装的一些系统api
include 一些需要的头文件
ssiot SDK核心代码
demo 示例代码
config.mk 编译环境配置
rule.mk 编译规则,简化其它makefile文件 使用步骤
调用ssiot_create,传入连接参数,同时注册回调函数
SDK内部会维持连接并完成登录和跳转等操作,并且掉线后会自动重连
重连等待间隔时间会递增,最大30分钟(有需要可以自己修改重连策略)
在上一步注册的回调函数中实现自己的业务
如果需要按协议回复ACK时,设置msg的resp_data,resp_code,resp_msg等
SDK内部会完成组包和发送ACK
使用ssiot_publish或ssiot_send_data发送业务数据
当设备掉线时,发送的数据会缓存
当前缓存大小10MB,由SSIOT_DATA_CACHE_SIZE配置,有需要可以修改
修改LOG接口,控制日志输出(如果有需要)
使用限制
主题最大长度128字节,由MQTT_TOPIC_LEN配置,有需要可以修改
接收最大包长1MB,由RECIVER_MAX_SIZE配置,有需要可以修改
使用TLS加密传输时不校验证书,有需要可以自己增加校验代码
3.软网关使用库源码,可与平台按照物联协议完成登录、登出、网关或子设备的配置下发、获取、配置设置、配置上报、变量上报、变量设置等功能
游客,本帖隐藏的内容需要积分高于 2 才可浏览,您当前积分为 0 提取码下载:
|