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模块传输数据,解决远距离设备通信问题。物联网项目就是这样,开始觉得简单,越深入越发现学问太多。下次准备研究用机器学习预测设备故障,有同样兴趣的朋友欢迎交流。

相关推荐
物联通信量讯说5 小时前
企业级物联网卡服务商怎么选?——主流服务商类型对比与选型框架
物联网·信息与通信·iot·物联网卡·企业级物联网服务商
taxunjishu5 小时前
MODBUS TCP转Profinet 化工安全管控物联网网关实战案例
网络·物联网·自动化
jkyy20145 小时前
健康有益健康监测座舱:以科技之力,定义出行健康新标杆
大数据·人工智能·物联网·健康医疗
taxunjishu5 小时前
MODBUS TCP转Profinet 家纺织造塔讯物联网网关应用实操案例
物联网·网络协议·tcp/ip
华奥系科技21 小时前
智慧经济新格局:解码社区、园区与城市一体化建设逻辑
大数据·人工智能·科技·物联网·安全
TDengine (老段)21 小时前
TDengine IDMP 组态面板 —— 画布
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
蓝奥声科技1 天前
扩展式智能插座,破解多国标准与定制需求的新思路
物联网·智能用电计量插座·lpiot 低功耗物联网·外贸插座
Zevalin爱灰灰1 天前
零基础入门学用物联网(ESP8266) 第一部分 基础知识篇(三)
单片机·物联网·嵌入式·esp8266
我爱我家8821 天前
亚洲艺术电影节携澳门文化亮相深圳
人工智能·物联网·算法·区块链·爬山算法
物联通信量讯说1 天前
从5G迈向未来通信时代,量讯物联深耕连接基础能力
物联网·5g·信息与通信·iot·通信·6g·量讯物联