Python物联网案例

硬件部分其实不复杂。树莓派GPIO口接上DHT11,注意上拉电阻要接对,不然读数会飘。第一次接线下电偶忘记加消抖,数据跳得跟心电图似的。后来在信号线并了个104电容,立马稳定多了。这里给个接线参考:

注意DHT11读取有延迟,循环里最好加个2秒间隔,不然传感器会发热。我刚开始没注意这个,连续读取导致设备烫手,数据还越来越不准。

数据采集完了要解决传输问题。最开始用requests直连服务器,发现WiFi不稳定时数据会丢失。后来改用MQTT协议,这玩意儿专为物联网设计,支持断线重连和消息持久化。用paho-mqtt库三行代码就能建立连接:

消息格式建议用JSON,后期处理方便。我定义的数据结构长这样:

服务器端用Flask搭了个简单的接收接口,顺便做了个可视化看板。这里有个小技巧:用Chart.js画动态曲线图,数据更新时自动平滑过渡。前端代码就不展开了,主要说个数据处理的关键点------要对异常值做过滤。有次空调出风口正对传感器,温度读数瞬间飙升到40度,差点触发虚假警报。

存储方案选了时序数据库InfluxDB,比MySQL更适合存储传感器数据。写了个批量入库的脚本,每分钟打包一次数据,减少数据库压力:

项目上线后还加了几个实用功能:微信推送报警(用Server酱)、数据导出Excel、设备远程重启。最实用的是增加了设备心跳检测,某个传感器离线超过5分钟就发邮件通知,再也不用手动检查每个节点了。

踩过的坑给大家提个醒:室外设备要做好防水,我的第一个室外传感器淋了场雨就报废了;MQTT的QoS级别要设置正确,重要数据用QoS1保证送达;树莓派长时间运行最好配个看门狗脚本,遇到进程卡死能自动重启。

现在这套系统已经稳定运行三个月,最近正在尝试接入ESP32做子节点,用LoRa模块传输数据,解决远距离设备通信问题。物联网项目就是这样,开始觉得简单,越深入越发现学问太多。下次准备研究用机器学习预测设备故障,有同样兴趣的朋友欢迎交流。

相关推荐
华清远见IT开放实验室2 小时前
实验室建设案例 | 安徽三联学院物联网实验室
stm32·单片机·嵌入式硬件·物联网·华清远见
一只鹿鹿鹿2 小时前
智算算力、AI-芯片与产品解析(PPT文件)
大数据·运维·网络·人工智能·物联网·1024程序员节
海雅达手持终端PDA7 小时前
工业手持终端的“去手机化”演进:看海雅达如何以“同轴扫摄”终结工程妥协,重塑工业PDA新范式
android·物联网·智能手机·硬件工程·能源·制造·iot
电子科技圈8 小时前
芯科科技2026年Tech Talks技术系列讲座再增添全新主题共探无线SoC架构演进与安全合规
科技·嵌入式硬件·mcu·物联网·安全·架构·iot
SZYSK10 小时前
OpenHarmony 上读卡、推理和双屏刷新抢 CPU:核验机与消费机的调度差
物联网·算法·harmonyos·1024程序员节
做萤石二次开发的哈哈11 小时前
双光谱测温相机二次开发:先查通道号再测温,六类形态一套规范接入
物联网·热成像·红外测温·工业测温·蓝海aiot一站式工作台·aiot开发·双光谱
画中有画12 小时前
时序数据库在物联网系统中的应用
数据库·物联网·时序数据库
voipmaker21 小时前
GB28181 对接踩坑实录:注册不上、目录不全、流卡顿,一次说清(附 2022 版变更清单)
物联网·音视频·实时音视频·信息与通信·iot·gb28181·国标gb28181
Chery11401 天前
高速ADC与精密DAC怎么选?DP9230D与DP8532D应用解析
嵌入式硬件·物联网·射频工程
TDengine (老段)1 天前
TDengine IDMP 十大实用功能(3)
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据