Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Go每日一库之185:SagooIOT(轻量级物联网平台)

Go每日一库之185:SagooIOT(轻量级物联网平台)

作者头像
luckpunk
发布于 2025-01-18 06:36:41
发布于 2025-01-18 06:36:41
16000
代码可运行
举报
运行总次数:0
代码可运行

一、开源项目简介

Sagoo IOT

SagooIOT是一个基于golang开发的轻量级的物联网平台。支持跨平台的物联网接入及管理方案,平台实现了物联网开发相关的基础功能,基于该功能可以快速的搭建起一整套的IOT相关的业务系统。

二、开源协议

使用Apache-2.0开源协议

三、界面展示

演示图

四、功能概述

- SagooIOT 系统优势 -

SagooIOT提供了支持私有化或容器化形式的部署,用户可以将其轻松部署在单机、集群或容器服务环境中,并且支持横向扩展,以满足不同规模的业务需求。使用SagooIOT能够获得出色的性能表现,提供优异的IOT服务能力。

百万级

数据并发

系统可分布式部署,支持百万级数据并发。

千万级

设备接入

设备网关水平扩容,支持千万级设备接入。

亿万级

数据采集

TDengine时序数据库,支持上亿数据采集点

低延迟

数据通讯

高性能网络组件,非阻塞网络编程,具有极低的通讯延迟。

特征

  • 高生产率:几分钟即可搭建一个后台管理系统
  • 模块化:单应用多系统的模式,将一个完整的应用拆分为多个系统,后续扩展更加便捷,增加代码复用性。
  • 认证机制:采用gtoken的用户状态认证及casbin的权限认证
  • 路由模式:得利于goframe2.0提供了规范化的路由注册方式,无需注解自动生成api文档
  • 面向接口开发
  • 支持物模型,多产品、多设备接入管理。
  • 屏蔽网络协议的复杂性,适配多种接入协议(TCP,MQTT,UDP,CoAP,HTTP,GRPC,RPC等),灵活接入不同厂家的不同设备。
  • 支持跨平台运行,可快速实现边缘计算功能,实现离线自动预警,自动执行等相关功能。
  • 支持跨终端展示,可以通过PC,手机,平板等进行设备状态的监控和数据展示
  • 独特的插件系统,支持跨语言接入,可以通过C/C++,Python编写的插件进行快速接入。
  • 插件系统支持热插拔,支持Modbus tcp,modbus rtu,modbus ascii,iec61850,opc等数据采集协议

内置功能

  • 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
  • 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
  • 岗位管理:配置系统用户所属担任职务。
  • 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
  • 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  • 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  • 参数管理:对系统动态配置常用参数。
  • 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  • 登录日志:系统登录日志记录查询包含登录异常。
  • 在线用户:当前系统中活跃用户状态监控。
  • 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
  • 代码生成:前后端代码的生成。
  • 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
  • 文件上传,缓存标签等。
  • 产品管理:对设备类产品进行统一管理
  • 设备管理:对设备进行接入与数据配置管理
  • 数据中心:对第三方api或是数据库及内部数据进行数据新建模管理,支持规则定义。

五、技术选型

系统架构

SagooIOT是一个基于golang开发的开源的企业级物联网基础开发平台。负责设备管理和协议数据管理,支持跨平台的物联网接入及管理方案,平台实现了物联网开发相关的基础功能,基于该功能可以快速的搭建起一整套的IOT相关的业务系统。旨在通过可复用的组件,减少开发工作,简化和加速物联网开发交付。适配多种接入协议(TCP,MQTT,UDP,CoAP,HTTP,GRPC,RPC等)。

  • 基于全新Go Frame 2.0+Vue3+Element Plus开发的全栈前后端分离的管理系统
  • 前端采用vue-next-admin 、Vue、Element UI

技术栈

  • GoFrame
  • Vue3
  • Swagger
  • Jwt
  • Element plus
  • MySql
  • Redis
  • TDengine

基础环境安装

  • Redis 7.0.4
  • TDengine 3.0.1.5
  • EMQX 5.0.9-el8
  • Nginx 1.22.0
  • rule-engine

详细安装过程,请查看开源项目官网文档。

部署说明

该程序可以独立部署,直接执行使用,也可以与nginx或是apache联合使用。

硬件要求

最低配置

CPU

1核心

内存

1GB

硬盘

40G

推荐配置

CPU

2核+

内存

4GB+

硬盘

40GB+

支持平台

SagooIOT采用Golang开发,拥有良好的跨平台特性。支持的平台如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
aix/ppc64
android/386
android/amd64
android/arm
android/arm64
darwin/amd64
darwin/arm64
dragonfly/amd64
freebsd/386
freebsd/amd64
freebsd/arm
freebsd/arm64
illumos/amd64
js/wasm
linux/386
linux/amd64
linux/arm
linux/arm64
linux/mips
linux/mips64
linux/mips64le
linux/mipsle
linux/ppc64
linux/ppc64le
linux/riscv64
linux/s390x
netbsd/386
netbsd/amd64
netbsd/arm
netbsd/arm64
openbsd/386
openbsd/amd64
openbsd/arm
openbsd/arm64
plan9/386
plan9/amd64
plan9/arm
solaris/amd64
windows/386
windows/amd64
windows/arm

设备接入协议

设备成功连网后,还需要采用特定协议与云平台进行数据交互。下面简要介绍几种常用的设备接入协议,以及选用时的注意事项。

MQTT

MQTT是一种轻量级的发布订阅式消息协议,工作在TCP协议上。它需要设备与云平台建立持久TCP连接,并完成身份验证后,可以进行数据通信。

MQTT协议具有以下显著优势:

支持实时控制

MQTT通过与云平台的长连接,可以实现实时的命令下发和控制。设备可以即时收到控制指令,实现智能家居、农业监控等场景的实时控制。

便于监测设备状态

长连接也便于监测设备在线状态。虽然由于网络问题,设备连接可能会出现断开,但MQTT本身的心跳机制可以很好地检测状态。

安全级别灵活

MQTT支持不同的安全认证机制。对于资源受限的设备,可以使用简单的用户名密码加密。对安全要求高的场景,可以使用TLS证书机制,保证数据安全

数据流量小

MQTT使用二进制格式,相比文本协议,可以大幅减少无效负载。这对诸如NB-IoT等低带宽网络来说非常有利。MQTT是一个高效、灵活、安全的物联网消息协议。它非常适合需要实时控制和监测的场景,是物联网的首选接入协议。

HTTP

HTTP 协议运行在TCP之上,对开发者非常友好。设备可以通过HTTP向云平台发送数据。

HTTP方式简单实用,如果设备资源允许,可以使用HTTPs实现安全传输。但HTTP不如MQTT实时,无法进行命令控制。单纯的数据采集场景可以选择HTTP。

CoAP

CoAP是一种精简的REST风格协议,运行在UDP上,更适合低功耗设备使用。

CoAP除了更轻量之外,与HTTP使用方式高度相似。如果设备资源有限,可以考虑使用CoAP。

TCP

SagooIOT也支持基于TCP的自定义协议接入。比如很多DTU设备采用TCP透传方式。

TCP方式可以高度定制,但需要自主开发通信格式解析。也可以在云平台进行格式转换,以适应不同设备。

设备可根据资源情况、实时性需求、安全需求等,选择MQTT、HTTP、CoAP或TCP接入协议。

无论采用何种协议,都需要进行格式解析、身份验证等处理。SagooIOT提供不同协议的接入方式,以及后端的数据处理与转换功能。

来源:https://www.toutiao.com/article/7267933751366271529/?log_from=625c16f9d653c_1692669199455

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Go语言交叉编译工具gox
交叉编译是为了在不同平台编译出其他平台的程序,比如在Linux编译出Windows程序,在Windows能编译出Linux程序,32位系统下编译出64位程序,今天介绍的gox就是其中一款交叉编译工具。
平也
2020/04/03
1.7K0
Golang - 从源码到二进制:探索在国产CPU架构上交叉编译Minio的方法
交叉编译是指在一台主机上为另一种不同架构或操作系统的目标平台生成可执行程序或库。在C++中,交叉编译通常用于在开发机器上编译目标平台的程序,例如在使用x86架构的开发机器上编译ARM架构的程序。
小小工匠
2024/05/26
7250
Golang - 从源码到二进制:探索在国产CPU架构上交叉编译Minio的方法
Go每日一库之185:SagooIOT(轻量级物联网平台)
SagooIOT是一个基于golang开发的轻量级的物联网平台。支持跨平台的物联网接入及管理方案,平台实现了物联网开发相关的基础功能,基于该功能可以快速的搭建起一整套的IOT相关的业务系统。
luckpunk
2025/01/03
1970
物联网开发平台解决方案
物联网开发平台通常采用云原生架构,确保高可用性、弹性和安全性。平台层提供数据存储、处理和分析功能,支持设备管理和应用开发。此外,平台还具备可扩展性,能够轻松应对业务增长和变化。
用户10637139
2024/04/27
1981
提升物联网开发效率必看的 6 个开源项目 | 码云周刊第 47 期
码云推荐 有数据显示,目前物联网端口数量预计在200亿个左右。到2035年,这个数字会扩大到1万亿,平均每个人会拥有超过100台端口设备,它们将涉及穿戴、家居、交通、教育、通信等人类生活的各个领域。 毫无疑问,这个万亿级市场对于物联网工程师有着强烈的需求,那普通的程序员如何快速转向物联网开发?或许直接阅读业内优秀的物联网开源项目代码,会成为一个不错的选择。那么,今天推荐 6 款可以快速提升物联网开发效率的开源项目,希望能够对大家带来收获。 当然,如果大家有好的物联网开源项目,也可以托管到码云上,我们会及
码云Gitee
2018/03/29
1.2K0
看看这个物联网系统,那叫一个优雅!
物联网(Internet of Things,简称IOT)是指通过各种信息传感器、红外感应器等各种装置与技术,实时采集任何需要监控、 连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。
永恒君
2022/12/07
7830
看看这个物联网系统,那叫一个优雅!
云上视频业务基于边缘容器的技术实践
作者刘腾飞,后台开发,目前从事腾讯云微瓴平台、边缘网关、大数据融合等相关研发工作。 ‍视频网关是视频云系统下的一个边缘容器设备,它起着将视频数据承上启下的功能。 视频云 说到边缘视频网关就不得不提到云计算中的视频云,它是各领域的视频系统比如安防监控等向着智能化、物联网、上云发展的产物。 在云平台上通过云服务器和边缘视频设备将采集的视频输出编码后经过网络实时传输给终端,终端进行实时解码后显示输出。终端同时可以进行操作,经过网络将操作控制信息实时传送给云端应用后台对边缘视频设备进行控制。 视频云一般框架
腾讯云原生
2020/12/31
1.2K0
开源物联网平台 FastBee 项目推荐
在如今越来越内卷的互联网行业无论是PC端还是移动端方向的需求已经越来越少,这也是为什么互联网行业的程序员发现找工作会越来越难的原因,很多互联网行业的程序员发现失去工作或收入出现断崖式的下降,想通过副业弥补在主业收入上的锐减发现也非常困难。人到中年想要转行做自己完全没有基础的行业也没那么容易,常言道转行要做好穷三年的准备。即便要转行,我们也尽可能在我们熟悉又有一定基础的行业里转型。
用户3587585
2024/05/10
9260
开源物联网平台 FastBee 项目推荐
【IoT迷你赛】基于TencentOS tiny 物联网案例 ——智慧生活
本人有幸参加了TencentOS内测活动,感受到了物联网操作系统方便,因为它提供了丰富的连接云平台的模板,只需要进行二次开发,就可以很快设计出自己的使用案例。对于TencentOS的各个功能的使用都有详细的测试代码,这对只会写任务而对操作系统却只是一知半解的我很有帮助。让我可以深入理解了操作系统的运行机制,知道如何让多个任务和谐共处,而不至于跑着跑着就死机了。
极速紫韵
2019/08/26
1.8K1
【IoT迷你赛】基于TencentOS tiny 物联网案例 ——智慧生活
【IoT迷你赛】物联网与小程序的邂逅
伴随着数字化经济大潮的推进,物联网行业近些年发展非常迅猛,呈现出百花齐放的姿态,是产业互联网的排头兵。小米以产品矩阵的方式介入物联网,华为以芯片入局、芯云结合打造全链条的物联网,腾讯云则以云平台为中心,构建开放的物联网开发平台。本文以TencentOS物联网Iot迷你赛的机会,以开发者的视角深入探讨腾讯云物联网开发模式。
WX-有雨
2019/08/21
2.1K0
【IoT迷你赛】物联网与小程序的邂逅
9个顶级开发IoT项目的开源物联网平台
物联网(IoT)是帮助人工智能(AI)以更好的方式控制和理解事物的未来技术。我们收集了一些最有名的物联网平台,帮助您以受控方式开发物联网项目。
PM吃瓜
2019/08/12
17.5K0
9个顶级开发IoT项目的开源物联网平台
腾讯物联网操作系统正式开源,最小体积仅1.8 KB
9月18日,腾讯宣布将开源自主研发的轻量级物联网实时操作系统TencentOS tiny。相比市场上其它系统,腾讯TencentOS tiny在资源占用、设备成本、功耗管理以及安全稳定等层面极具竞争力。该系统的开源可大幅降低物联网应用开发成本,提升开发效率,同时支持一键上云,对接云端海量资源。 近年来,腾讯在开源上的步伐不断加快,截至9月,腾讯自主开源项目已达84个,Star数超过24万。在物联网领域,腾讯不仅通过开源和开放持续构建良性的物联网生态体系,在产品易用性和开发效率上,腾讯物联网团队也都做了
腾讯技术工程官方号
2019/09/20
2.5K0
腾讯物联网操作系统正式开源,最小体积仅1.8 KB
物联网常用协议:MQTT、CoAP、LwM2M、HTTP、LoRaWAN和NB-IoT
物联网,即物的互联网,属于互联网的一部分。物联网将互联网的基础设施作为信息传递的载体,即现代的物联网产品一定是“物”通过某种方式接入了互联网,而“物”通过互联网上传/下载数据,以及与人进行交互。
不脱发的程序猿
2021/01/20
11.6K0
golang预定义的系统名称
Golang syslist Golang预定义的OS列表 aix android darwin dragonfly freebsd hurd js linux nacl netbsd openbsd plan9 solaris windows zos Golang预定义的Arch(架构)列表 386 amd64 amd64p32 arm armbe arm64 arm64be ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le p
老高的技术博客
2022/12/28
8170
MQTT 和 CoAP 哪个最可能成为未来物联网通信标准协议?
近日,腾讯无线网络与物联网技术负责人李秋香与高校科研教授、产业链、运营商等各行业的嘉宾一起参与了知乎「 科技共振之 5G+ 」活动,除了专业的5G探讨,也聊了不少和开发者们息息相关的问题。基于此,云加社区联手知乎科技,从知乎超过 10000 条 5G 相关问答中精选内容落地社区专题「 共探 5G 」。
腾讯云开发者社区
2019/12/06
2.5K0
物联网协议比较 MQTT CoAP RESTful/HTTP XMPP
物联网协议 Protocol CoAP XMPP RESTful HTTP MQTT Transport UDP TCP TCP TCP Messaging Request/Response Publish/Subscribe Request/Response Request/Response Publish/Subscribe Request/Response 2G, 3G, 4G Suitability (1000s nodes) Excellent Excellent Excellent Excell
音视频牛哥
2019/09/24
1.7K0
12个用于构建物联网项目的物联网平台
物联网是增长最快的行业之一。我们周围都有连接设备 - 智能家居,汽车,可穿戴设备等。Gartner预测,95%的电子产品将包括物联网功能。在接近物联网项目时,我们必须面对几个挑战。
February
2018/11/27
3.2K0
物联网操作系统的现状与未来
2018 年全球人口 75 亿,智能手机保有量大约是 30亿部。爱立信公司的物联网研究报告指出,2018年物联网设备的数量首次超过智能手机,到 2021 年物联网设备将超过 290 亿台。在全球物联网设备无线连接方法中,蜂窝物联网装置依然遥遥领先。最近两年 ,低功耗广域 (LPWA) 的物联网装置出货量增长迅速,如NB-IoT 和 LoRa。物联网应用繁花似锦,此消彼长。从最初智能硬件、共享单车到今天智慧城市、智能制造和新零售,万物互联已经无处不在。面对增长迅速、应用碎片化的物联网系统,业界一直在思考一个问题:PC 时代Windows 操作系统、移动互联网时代有安卓(Android)和 iOS 操作系统,为什么物联网时代没有应用范围广的物联网操作系统呢?物 联 网 操 作 系 统(Operating System forInternet of Things,IoT OS),是一种在嵌入式实时操作系统基础上发展出来的、面向物联网技术架构和应用场景的软件平台。IoT OS 目前没有严格的定义,体系架构和功能各有不同,种类也比较多。例如,ARM Mbed 在微控制器 (MCU) 运行,Android Things在嵌入式处理器上运行,ThreadX 的 X-WARE 由传统的 RTOS 改进而成。
跋扈洋
2022/03/29
2.3K0
物联网名词解释
固件 固件是指设备内部保存的设备“驱动程序”,是一个系统最基础最底层工作的软件。 项目 项目指物联网平台的资源空间。开发者在基于开发者门户进行物联网开发时,需要根据行业属性创建独立的项目,并在该项目空间内建设物联网产品和应用。 产品 某一类具有相同能力或特征的设备的集合称为一款产品。除了设备实体,产品还包含该类设备在物联网能力建设中产生的产品信息、产品模型(Profile)、插件、测试报告等资源。 产品模型 产品模型(也称Profile)用于描述设备具备的能力和特性。开发者通过定义Profile,在物联网平
PM吃瓜
2019/08/20
1.6K0
go 编译执行文件分发
今天咱们不说go的语法知识,为什么不说语法了呢?因为咱们做了这么就的go东西全是在编辑器中运行的,大家是不是很想知道怎么在编辑器之外去执行go程序呢?(win的.exe文件 linux ./xx)…
大话swift
2019/07/19
1.6K0
推荐阅读
相关推荐
Go语言交叉编译工具gox
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验