一些 开源物联网(IoT)平台,它们广泛应用于设备管理、数据采集、远程监控和边缘计算等场景:


🌟 主流开源物联网平台

平台描述技术栈许可证
ThingsBoard功能丰富,支持设备管理、遥测数据收集、规则引擎、告警等Java, Spring, Akka, Cassandra / PostgreSQLApache 2.0
EMQX高性能 MQTT 消息服务器,支持百万级连接Erlang/OTPApache 2.0
Kaa IoT模块化设计,支持设备管理、数据分析、设备集群Java, SpringApache 2.0
Mainflux现代、可扩展的平台,支持 MQTT, HTTP, CoAPGo, NATS, PostgreSQL, RedisApache 2.0
Thingspeak适合快速原型和数据可视化(尤其是科研和教育)MATLAB, PHPGPLv3
OpenHAB专注智能家居物联网的集成与自动化Java, OSGiEPL-1.0
Node-RED可视化编程工具,适合边缘节点和轻量级 IoT 集成Node.jsApache 2.0

🚀 选择建议

应用场景推荐平台
工业物联网、大规模部署ThingsBoard / Kaa / Mainflux
消息中间件、高并发EMQX
智能家居OpenHAB / Home Assistant
教育、科研、快速实验Thingspeak / Node-RED

🌐 关键特性对比

特性ThingsBoardEMQXKaaMainfluxNode-RED
设备管理⚠️ (需集成)
数据持久化⚠️ (需外部DB)⚠️ (外部集成)
可视化仪表盘⚠️ (部分)⚠️ (需开发)
高并发消息⚠️⚠️⚠️
多协议支持MQTT, CoAP, HTTPMQTT, WebSocketMQTT, CoAP, HTTPMQTT, CoAP, HTTPMQTT, HTTP, WebSocket
规则引擎⚠️ (简单规则)⚠️⚠️⚠️ (需编排)

ThingsBoard 部署

好的!下面是一个基于 TimescaleDBThingsBoarddocker-compose.yml 示例文件,适合在支持 x86_64 架构的笔记本或服务器上运行。这个示例包含了:

  • ThingsBoard 物联网平台(连接 postgresql)

services:postgres:restart: alwaysimage: "postgres:16"ports:- "5432"environment:POSTGRES_DB: thingsboardPOSTGRES_PASSWORD: postgresvolumes:- postgres-data:/var/lib/postgresql/datathingsboard-ce:restart: alwaysimage: "thingsboard/tb-node:4.0.1.1"ports:- "8080:8080"- "7070:7070"- "1883:1883"- "8883:8883"- "5683-5688:5683-5688/udp"logging:driver: "json-file"options:max-size: "100m"max-file: "10"environment:TB_SERVICE_ID: tb-ce-nodeSPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/thingsboarddepends_on:- postgresvolumes:postgres-data:name: tb-postgres-datadriver: local

说明

  • thingsboard

    • 使用 ThingsBoard 官方 PostgreSQL 版本镜像(默认连接 PostgreSQL)
    • 环境变量配置数据库连接信息
    • 映射 8080 端口用于 Web 访问
    • 依赖 timescaledb 服务,保证先启动数据库

使用步骤

  1. 将上面内容保存为 docker-compose.yml 文件。
  2. 修改密码环境变量 your_password 为你自己的安全密码。
  3. 在目录终端执行:
docker-compose up -d
  1. 等待容器启动,浏览器访问 http://localhost:8080 即可看到 ThingsBoard 界面。

  2. 第一次运行前,需要先初始化数据库,

docker compose run --rm -e INSTALL_TB=true -e LOAD_DEMO=true thingsboard-ce
  1. demo默认登陆用户名和密码
  • System Administrator: sysadmin@thingsboard.org / sysadmin
  • Tenant Administrator: tenant@thingsboard.org / tenant
  • Customer User: customer@thingsboard.org / customer

后续可以写更复杂的配置(比如加密、备份、日志管理)

如果出现错误,使用下面的命令查看

docker logs timescaledb | grep -i "error"

示例 docker-compose 配置

  • timescaledb 版本

    • 使用官方 TimescaleDB 镜像(基于 PostgreSQL 14)
    • 创建数据库 thingsboard,用户密码都设为 thingsboardyour_password(你可以修改)
    • 端口映射到宿主机的 5432
    • 数据卷持久化数据库数据
version: '3.8'services:timescaledb:image: timescale/timescaledb:2.11.0-pg14container_name: timescaledbenvironment:POSTGRES_USER: thingsboardPOSTGRES_PASSWORD: 1234POSTGRES_DB: thingsboardports:- "5432:5432"volumes:- ./timescaledb-data:/var/lib/postgresql/datarestart: unless-stoppedtb-redis:image: redis:7-alpinecontainer_name: tb-redisports:- "6379:6379"restart: unless-stoppedthingsboard:image: thingsboard/tb-node:4.0.1.1container_name: thingsboarddepends_on:- timescaledb- tb-redisenvironment:SPRING_DATASOURCE_URL: jdbc:postgresql://timescaledb:5432/thingsboardSPRING_DATASOURCE_USERNAME: thingsboardSPRING_DATASOURCE_PASSWORD: 1234#      TB_QUEUE_TYPE: redis
#      TB_QUEUE_REDIS_HOST: tb-redis
#      TB_QUEUE_REDIS_PORT: 6379ports:- "8081:8080"- "1883:1883"- "8883:8883"restart: unless-stopped

支持 Redis 队列

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/909954.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/909954.shtml
英文地址,请注明出处:http://en.pswp.cn/news/909954.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

插值与模板字符串

背景。表单渲染需要获取对象中属性进行赋值操作。 插值错误使用。以下方举例。其中的placeholder不能被正确渲染。因为Vue 不会解析 {{ }} 在属性中的内容;如果这样写编译会出问题,而且比较难找出是哪的问题 模板字符串。正确做法时使用。模板字符串用…

Luckfox Pico Pi RV1106学习<4>:RV1106的帧率问题

Luckfox Pico Pi RV1106学习<4>:RV1106的帧率问题 1. 背景2. 问题 1. 背景 接上篇。我在应用中创建3个线程: CAM线程,使用V4L2驱动,从 /dev/video11 获取图像。ENC线程,使用硬件编码器&#x…

内测分发平台应用的异地容灾和负载均衡处理和实现思路?

在软件开发过程中,内测分发平台扮演着至关重要的角色。它不仅帮助开发者将应用程序传播给内部测试人员,还负责收集反馈、跟踪错误并改进产品。然而,为了确保一个平稳、连贯的内测过程,对内测分发平台实施异地容灾和负载均衡机制是…

国内用户如何高效升级npm:使用阿里云镜像加速指南

文章目录 引言为什么需要升级npm?环境检查使用阿里云镜像安装nvm配置阿里云镜像加速npm使用nvm安装最新Node.js验证安装结果升级npm到最新版本解决常见问题1. 权限问题2. 镜像源验证3. 项目创建失败创建测试项目总结引言 作为前端开发者,npm(Node Package Manager)是我们日…

LeetCode--34.在排序数组中查找元素的第一个和最后一个位置

解题思路: 1.获取信息: 给定一个非递减顺序的整数数组,要求找出给定元素在该数组中从左往右第一次出现的位置和最后一个出现的位置,即:最右边的位置和最左边的位置 如果不存在该元素,则返回{ -1 , -1 } 限制…

低秩分解的本质是通过基矩阵和系数矩阵的线性组合,以最小的存储和计算代价近似表示复杂矩阵

低秩分解的本质是通过基矩阵和系数矩阵的线性组合,以最小的存储和计算代价近似表示复杂矩阵 flyfish 一、最基础起点:数字与数组 数字与标量(Scalar) 单独的数,如 1 , 2.5 , − 3 1, 2.5, -3 1,2.5,−3,…

SVN本地使用--管理个人仓库

1.SVN官网下载链接 Download – TortoiseGit – Windows Shell Interface to Git 一路安装即可,安装后在桌面空白处右键菜单可以看到选项即安装成功。 2.建立个人SVN数据库 选择一个磁盘新建一个文件夹,在文件夹中右键创建数据库。 3.上传文件到SVN…

Cloud Automation-Resource optimization, cleanup and dashboard

如何使用Automation Account Run Book实现自动化 1. 什么是 Runbook? Azure Automation Account 中的 Runbook 是一套自动化脚本,用于在云中或混合环境中执行常规任务。Runbook 支持多种脚本语言,包括 PowerShell、Python、Graphical、Powe…

leetcode_3583 统计特殊三元组

1. 题意 求给定数组中下标 ( i , j , k ) (i,j,k) (i,j,k)的对数&#xff0c; 且满足 i < j < k , 2 a [ j ] a [ i ] a [ k ] i < j <k,2 a[j]a[i]a[k] i<j<k,2a[j]a[i]a[k] 2. 题解 2.1 枚举中间 三个数枚举中间那个数&#xff0c;再存前缀和后缀个数…

Sentinel(一):Sentinel 介绍和安装

一、Sentinel 介绍 1、什么是 Sentinel&#xff1f; 一句话来说&#xff0c;Sentinel就是&#xff1a;分布式系统的流量卫兵&#xff08;官网&#xff09;。 随着微服务的普及&#xff0c;服务调用的稳定性变得越来越重要。Sentinel以“流量”为切入点&#xff0c;在流量 控制…

pyspark 初试

1、安装jdk sudo apt-get install openjdk-17-jdk 2、安装spark curl -o spark.tgz https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-4.0.0/spark-4.0.0-bin-hadoop3.tgz tar -xvf spark.tgz mv spark-4.0.0-bin-hadoop3 /opt/spark修改 /etc/profile 添加 exp…

深入解析select模型:FD_SET机制与1024限制的终极指南

在Linux网络编程中&#xff0c;select函数是最经典的I/O多路复用技术之一&#xff0c;但其核心机制FD_SET的1024限制常成为高并发系统的瓶颈。本文将深入剖析FD_SET实现原理&#xff0c;并提供突破限制的实战方案。 一、FD_SET底层结构解析 FD_SET本质是固定长度的位图数组&am…

C函数基础.go

前言&#xff1a; 在Go语言中&#xff0c;函数是构成程序的基本模块&#xff0c;它封装了一段具有特定功能的代码&#xff0c;使得代码更易读&#xff0c;更易维护和重用。熟练掌握函数的定义、调用以及相关特性是成为Go语言开发者的必经之路。 目录 函数定义&#xff1a;给代…

什么是池化

池化是深度学习中用于降低数据维度、提取核心特征的一种操作&#xff0c;主要应用于卷积神经网络&#xff08;CNN&#xff09;。其核心思想是通过对局部区域进行聚合统计&#xff08;如取最大值、平均值&#xff09;&#xff0c;保留关键信息的同时减少计算量。 池化的作用 降维…

C++ 性能分析工具:Valgrind 与 perf

在 C 开发中&#xff0c;性能优化是提升软件质量的关键环节。内存泄漏和 CPU 资源消耗是最常见的性能瓶颈&#xff0c;而 Valgrind 和 perf 作为专业的性能分析工具&#xff0c;能帮助开发者精准定位这些问题。下面将从工具原理、使用方法、实战案例等方面进行详细介绍。 一、…

ABP VNext + MongoDB 数据存储:多模型支持与 NoSQL 扩展

&#x1f680; ABP VNext MongoDB 数据存储&#xff1a;多模型支持与 NoSQL 扩展&#xff08;生产级实践&#xff09; 目录 &#x1f680; ABP VNext MongoDB 数据存储&#xff1a;多模型支持与 NoSQL 扩展&#xff08;生产级实践&#xff09;&#x1f3af; 引言&#x1f9f0…

Cursor Rules 的核心定位与作用 DevOps是

Cursor Rules 是 AI 编程工具 Cursor IDE 中的核心功能&#xff0c;用于约束 AI 生成代码的行为&#xff0c;确保其符合项目规范、编码风格或特定技术需求。它本质上是一套持久化、可复用的指令集&#xff0c;会动态插入到 AI 模型的上下文提示中&#xff0c;指导其生成代码的逻…

Qt事件处理机制

事件的概念 在Qt中&#xff0c;以事件驱动UI工具集&#xff0c;包括信号和槽都依赖于Qt的事件处理机制。通常事件是由窗口系统或Qt自身产生的&#xff0c;用以响应所发生的各类事情。如&#xff1a;用户按下并释放键盘或鼠标、窗口缩放后重绘、定时器到时等。如下图&#xff1…

【慧游鲁博】【11】小程序端·游览画卷修改·支持图片url格式·结合图床上传和加载·数据对接

文章目录 需求修改细节前端主要修改点说明&#xff1a;前端传递格式 后端ArtifactItem 类&#xff1a;ScrollServiceImpl 类&#xff1a;修改 InfoPanel 结构重构 ScrollHorizontalRollComposer修改后的 ScrollHorizontalRollComposer移除冗余代码修改总结 数据流图片格式兼容性…

攻克SQL审核“最后堡垒”!PawSQL首发T-SQL存储过程深度优化引擎

为什么存储过程审核那么难&#xff1f; 存储过程将数据操作逻辑固化在数据库层&#xff0c;一次编译、多次执行&#xff0c;既能大幅提升性能&#xff0c;也能通过权限隔离增强安全。然而&#xff0c;正因其逻辑复杂、分支众多&#xff0c;存储过程内部的 SQL 审核与优化常常成…