IoT数据采集全链路
工地上有一台塔机起重机上面装了一个传感器盒子每隔几秒钟就把当前的高度、重量、风速、倾斜角度等数据发出来。问题是——这些数据怎么从工地上的铁疙瘩最终变成网页上能看到的图表这就是 IoT 数据采集链路要干的事。链路图第一步设备发数据工地上的塔机和升降机上面装了传感器和通信模块。设备每隔几秒钟就把当前的状态数据高度、重量、风速、倾斜角度等通过 4G 网络发出去。这些数据发到哪呢发到一个叫EMQX的消息中转站。第二步EMQX 消息中转站EMQX 是一个开源的 MQTT 服务器可以理解成一个快递分拣中心。所有设备发来的数据都先到这里然后按照主题分类。主题长这样crane/rt/equip/厂商/项目/用户/设备编号crane/开头 塔机数据lift/开头 升降机数据rt/equip/ 实时运行数据st/equip/ 静态参数设备型号之类的rt/operator/ 操作人员信息代码里用通配符crane/////订阅所有塔机主题意思是不管哪台塔机、哪个工地的只要是 crane 开头的我都收。第三步消息回调——按主题分发项目启动时会连接 EMQX并注册一个回调函数MqttPushCallback。每当有新消息到达EMQX 就会自动调用这个回调函数的messageArrived方法。回调函数做的事情很简单看主题里含什么关键词就调哪个处理方法。主题含 crane/rt/equip/ → 处理塔机实时数据 主题含 lift/rt/equip/ → 处理升降机实时数据 主题含 st/equip/ → 更新设备静态参数 主题含 rt/operator/ → 更新操作人员信息如果处理出错了还有个错误重推机制把失败的消息重新塞回去再试一次。第四步协议解析——把乱码变成结构化数据这里有个现实问题不同厂家的设备发出来的数据格式完全不一样。比如嘉联厂家的塔机字段叫serialNumber、height、loadWeight建安厂家的塔机同样的信息字段叫devsn、height还要乘以 10、weight还要乘以 1000因为单位不同。所以写了AnalysisTerminalDataUtil针对嘉联和建安两个厂商各写了一套解析方法。不管原始格式怎么乱解析完都统一成同一个TerminalTowerData对象。最巧妙的是报警状态的解析。嘉联升降机用一个systemStatus字段存了 16 种报警状态每一位代表一种第1位 1 → 重量预警 第2位 1 → 重量报警 第3位 1 → 高度预警 第4位 1 → 高度报警 ...代码用state 1、state 4这种位运算从一个数字里拆出 16 种报警。一个字段当好几个字段用非常省空间。第五步缓冲队列——攒够一批再入库最亮的设计这是整个链路最聪明的地方。塔机每几秒发一条数据如果每来一条就往数据库写一次假设 1000 台设备同时在线每秒就是几百条 INSERT数据库扛不住。正确的做法是数据先扔进一个队列ArrayBlockingQueue攒着攒够 limitNumber 条配置的批量大小一次性批量写入数据库。数据来了 → 放进队列 → 队列满了吗 ├ 没满 → 继续等 └ 满了 → 一次性批量写入但还有个问题如果数据量小队列一直不满数据岂不是一直卡在队列里所以加了个定时兜底每 10 分钟强制把队列里剩余的数据刷进数据库不管满没满。这样保证了数据最多延迟 10 分钟入库不会丢。第六步Redis 在线检测——不用查数据库就知道设备在不在线传统做法是定时去数据库查每个设备最后上报数据的时间超过一定时间没上报就标记为离线。设备多了这个查询很慢。更聪明的做法是每收到一条数据就在 Redis 里刷新一个 key设 600 秒过期。设备一直在发数据 → key 一直被刷新 → 一直不过期 → 在线设备坏了不发数据了 → key 600 秒后自动过期 → 离线不用写任何定时任务去轮询Redis 自己的过期机制就帮你搞定了。而且 key 过期前如果设备恢复发数据还能自动改回在线状态。第七步双数据库存储数据最终存到两个地方MySQL存实时数据 业务数据设备信息、项目信息等TDengine专门存历史运行数据为什么要用两个数据库MySQL 查最近一条数据没问题但如果你要查过去一个月某台塔机每分钟的高度变化那是几十万条记录MySQL 查起来很慢。TDengine 是专门为时序数据设计的查这种历史趋势又快又省空间。代码里用DS(tdengine)注解一行代码就能切换到 TDengine 数据源查询。

相关新闻

Flutter RTL布局适配:circular_bottom_navigation右到左界面实现指南

Flutter RTL布局适配:circular_bottom_navigation右到左界面实现指南

Flutter RTL布局适配:circular_bottom_navigation右到左界面实现指南 【免费下载链接】circular_bottom_navigation Circular bottom navigation is a bottom navigation library for flutter with circular indicator and cool animations. 项目地址: https://gi…

2026/8/4 20:36:12 阅读更多 →
阿里巴巴Dragonwell17 JDK架构深度解析:企业级Java运行环境的性能突破

阿里巴巴Dragonwell17 JDK架构深度解析:企业级Java运行环境的性能突破

阿里巴巴Dragonwell17 JDK架构深度解析:企业级Java运行环境的性能突破 【免费下载链接】dragonwell17 Alibaba Dragonwell17 JDK 项目地址: https://gitcode.com/gh_mirrors/dr/dragonwell17 阿里巴巴Dragonwell17作为基于OpenJDK深度优化的企业级Java运行环…

2026/8/4 20:36:12 阅读更多 →
EMANet核心突破:期望最大化注意力机制(EMA)如何超越传统自注意力?

EMANet核心突破:期望最大化注意力机制(EMA)如何超越传统自注意力?

EMANet核心突破:期望最大化注意力机制(EMA)如何超越传统自注意力? 【免费下载链接】EMANet The code for Expectation-Maximization Attention Networks for Semantic Segmentation (ICCV2019 Oral) 项目地址: https://gitcode.…

2026/8/4 20:36:12 阅读更多 →

最新新闻

2026免费无广告视频播放器推荐

2026免费无广告视频播放器推荐

能够流畅导入外部字幕(如 SRT/ASS)且支持 AI 字幕翻译的免费播放器,目前最值得关注的有 网易爆米花https://bmh.163.com/windows/https://bmh.163.com/mac/、PotPlayer、VLC、MX Player 和 nPlayer,它们分别适合不同场景。下文将逐…

2026/8/4 21:17:31 阅读更多 →
AI 视频爆发时代,程序员是否需要掌握视频压缩技术?

AI 视频爆发时代,程序员是否需要掌握视频压缩技术?

# AI 视频爆发时代,程序员为什么也需要掌握视频压缩技术?随着 ChatGPT、Sora、Runway 等 AI 视频工具快速发展,视频内容生产成本正在快速下降。以前制作一个宣传视频,需要:- 摄影团队 - 剪辑软件 - 后期制作现在&#…

2026/8/4 21:17:31 阅读更多 →
linux C++无锁RingBuffer实现

linux C++无锁RingBuffer实现

C++ 无锁环形缓冲区实现详解 引言 本文详细展示了一个完整的C++ 无锁环形缓冲区实现,包含日志模块、环形缓冲区核心实现以及测试程序。该实现支持单生产者单消费者(SPSC)和多生产者单消费者(MPSC)两种模式,并提供了阻塞式(满时等待)和覆盖式(满时覆盖旧数据)两种缓…

2026/8/4 21:17:31 阅读更多 →
洛谷 P5908:猫猫和企鹅 ← dfs 求树的深度

洛谷 P5908:猫猫和企鹅 ← dfs 求树的深度

【题目来源】 https://www.luogu.com.cn/problem/P5908 【题目描述】 王国里有 n 个居住区,它们之间有 n−1 条道路相连,并且保证从每个居住区出发都可以到达任何一个居住区,并且每条道路的长度都为 1。 除 1 号居住区外,每个居住…

2026/8/4 21:17:31 阅读更多 →
国家中小学智慧教育平台电子课本解析工具:一键获取官方教材的终极解决方案

国家中小学智慧教育平台电子课本解析工具:一键获取官方教材的终极解决方案

国家中小学智慧教育平台电子课本解析工具:一键获取官方教材的终极解决方案 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课…

2026/8/4 21:16:31 阅读更多 →
论文格式总是调不对,有哪些专业的AI论文工具推荐?

论文格式总是调不对,有哪些专业的AI论文工具推荐?

每到毕业季,不少同学一打开开题报告就犯难:选题定不下来、研究背景和意义分不清、文献综述无从下手、研究方法和技术路线逻辑混乱,盯着空白文档熬上几周也写不出完整框架。尤其是零基础、在职读研、跨专业的学生,对高校开题规范完…

2026/8/4 21:16:31 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →