当前位置: 首页 > news >正文

物联网开发:MQTT与传感器数据采集

物联网开发MQTT与传感器数据采集大家好我是欧阳瑞Rich Own。今天想和大家聊聊物联网开发这个热门话题。作为一个全栈开发者物联网是连接物理世界和数字世界的关键技术。今天就来分享一下MQTT协议和传感器数据采集的实战经验。什么是物联网物联网IoT是指将物理设备连接到互联网实现数据采集和远程控制。MQTT协议什么是MQTTMQTTMessage Queuing Telemetry Transport是一种轻量级的消息协议专为物联网设计。MQTT特点特点说明轻量级适合资源受限设备低带宽适合网络不稳定环境发布/订阅灵活的消息模式QoS支持保证消息可靠性安装MQTT Broker# 使用Docker安装Mosquitto docker run -d --name mosquitto \ -p 1883:1883 \ -p 9001:9001 \ eclipse-mosquitto发布者代码import paho.mqtt.client as mqtt import time client mqtt.Client() client.connect(localhost, 1883, 60) while True: # 模拟传感器数据 temperature 25 (time.time() % 5) humidity 60 (time.time() % 20) client.publish(sensor/temperature, temperature) client.publish(sensor/humidity, humidity) print(fPublished: temp{temperature:.1f}C, humidity{humidity:.1f}%) time.sleep(1)订阅者代码import paho.mqtt.client as mqtt def on_connect(client, userdata, flags, rc): print(Connected with result code str(rc)) client.subscribe(sensor/#) def on_message(client, userdata, msg): print(f{msg.topic} {msg.payload.decode()}) client mqtt.Client() client.on_connect on_connect client.on_message on_message client.connect(localhost, 1883, 60) client.loop_forever()实战案例智能家居系统# 传感器节点 import paho.mqtt.client as mqtt import RPi.GPIO as GPIO import time client mqtt.Client() client.connect(mqtt.example.com, 1883, 60) # 读取传感器 def read_temperature(): return 25.5 def read_humidity(): return 60.2 def read_motion(): return GPIO.input(4) GPIO.HIGH while True: client.publish(home/bedroom/temperature, read_temperature()) client.publish(home/bedroom/humidity, read_humidity()) client.publish(home/livingroom/motion, read_motion()) time.sleep(5)# 控制节点 import paho.mqtt.client as mqtt def on_message(client, userdata, msg): if msg.topic home/bedroom/light: if msg.payload.decode() on: turn_on_light() else: turn_off_light() client mqtt.Client() client.on_connect lambda client, userdata, flags, rc: client.subscribe(home/#) client.on_message on_message client.connect(mqtt.example.com, 1883, 60) client.loop_forever()QoS级别# QoS 0: 最多一次 client.publish(sensor/data, value, qos0) # QoS 1: 至少一次 client.publish(sensor/data, value, qos1) # QoS 2: 恰好一次 client.publish(sensor/data, value, qos2)安全性# 使用TLS client.tls_set(ca_certsca.crt) client.connect(mqtt.example.com, 8883, 60) # 使用用户名密码 client.username_pw_set(user, password)总结MQTT是物联网开发的基础协议简单高效。通过MQTT可以轻松实现传感器数据采集和设备控制。我的鬃狮蜥Hash对物联网也有自己的理解——它总是能感知周围环境的变化这也许就是自然界的传感器吧如果你对物联网开发感兴趣欢迎留言交流我是欧阳瑞极客之路永无止境技术栈MQTT · 物联网 · 传感器
http://www.zskr.cn/news/1363723.html

相关文章:

  • ESG评分不确定性量化:多重插补与预测区间在金融风险建模中的应用
  • 88、CAN FD在车载网络中的实际优势:带宽、延迟与吞吐量对比
  • 高垛货架全遮挡环境:UWB穿透失效,无感定位视觉穿透精准追踪
  • 边境无人值守智能防控:无感定位重塑边防体系,替代UWB重基建路径
  • 【MATLAB】工业控制参数多目标优化(GA/PSO)
  • 86、CAN FD与传统CAN的兼容性设计:混合网络与仲裁机制
  • 85、CAN FD帧格式深度解析:控制位、CRC与填充规则变化
  • 从样本数据估计费舍尔信息矩阵:MCMC与Lanczos方法在相变探测中的应用
  • 机器学习与模拟退火算法优化TPMS结构材料力学性能
  • 昇腾CANN ops-math LayerNorm:数值稳定性与 Warp Reduce 优化实战
  • 昇腾CANN ops-blas Batched GEMM:多头注意力的小矩阵乘批处理实战
  • Unity Mod Manager底层原理与模组生命周期管理
  • 别再只用chmod了!麒麟KYLINOS文件权限进阶:用ACL实现更精细的访问控制(含setfacl命令详解)
  • 数据增强在软件工程中的评估陷阱:以Flaky测试分类为例
  • 缺失数据下的因果推断:mDR与mEP学习器原理与实战
  • 2024 iOS自动化测试环境搭建:Appium 2.5+适配Xcode 15.3与iOS 17.4
  • lucie:智能加载UCI数据集的Python工具,解决格式兼容难题
  • 全局量子门变分方法:释放硬件原生优势的量子态制备新范式
  • 【考研英语一·翻译专攻】长难句翻译的“分治策略”:从底层拆分到逻辑重构(1997-2010真题高频陷阱与红笔纠偏)
  • 多速率信号处理与图像量化:从奈奎斯特到工程实践
  • Kruskal-Wallis检验在自动驾驶用户信任度研究中的应用与实操
  • 智能AI图像识别之工地积水识别数据集 道路积水数据集 管道泄漏漏水数据集 图像yolov8图像数据集 积水识别yolo第10260期
  • 信念传播算法:从图模型推理到消息传递原理与应用
  • 核能消费对循环经济的影响:基于DYNARDL模型与机器学习的实证研究
  • 基于OCT-H与特征增强的流体多臂老虎机最优控制策略学习
  • ZygiskFrida:安卓逆向的Zygote层动态插桩新范式
  • RISC-V SoC中的DSP加速器设计与边缘计算优化
  • 基于QR分解与肘部法则的稀疏传感器优化布置方法
  • 基于多维度聚类分析的住宅供暖能耗模式识别与节能策略研究
  • [智能体-37]:协同共生:大模型、智能体与专业工具的系统生产力之道