|
本帖最后由 avr-arm 于 2016-9-9 07:20 编辑
关于MQTT的废话我就不多说了,嵌入式里极其使用的远程推送,方便两个板子隔空“喊话”。
MQTT是什么?
很火的物联网协议,通俗的讲,这里边有订阅者(接收消息),还有发布者(发出消息),还有服务器。发布者和订阅者唯一的关系纽带就是TOPIC(理解为频道)。只有订阅者和发布者处于同一频道,消息才能被推送过去。
以上是我最浅显的理解。如需详细了解请google或bing之。
MQTT订阅地址:widora.org或widora.io
比如,有个人买了一个LM75A测温模块挂到widora上的I2C接口上, 通过MQTT发布后, 可以用 mosquitto_sub -h widora.org -t midas 命令来订阅.IPhone手机端可以用MQTTool工具,安卓端采用myMQTT。嵌入式Linux里用mosquitto_sub.
作者用python写了几句代码,就是调用i2cget命令和mosquitto_pub命令,然后循环发布温度,写得不严谨,纯粹觉得好玩而已。
!/usr/bin/env python
import os
import time
import subprocess
while(1):
fos=os.popen('i2cget -y 0 0x48 0x00 w')
strTemp=fos.readlines()
fos.close()
strTemp=strTemp[0].strip()
print time.ctime()
strTempL=strTemp[0:4]
strTempH=strTemp[4:6]
TempL=int(strTempL,16)
TempH=int('0x'+strTempH,16)
Temp=TempL/256.0+TempH
print 'Current Temperature: %.2f C'%(Temp)
fm=subprocess.Popen(["mosquitto_pub","-h","widora.org","-t","midas","-l"],stdin=subprocess.PIPE)
fm.communicate('midas.Temp='+str(Temp)+'\n')
time.sleep(6)
在SSH上订阅:
IPhone上订阅:
Android上订阅:
如果打算在Widora上玩,很简单,按照这个步骤即可实现。一路装装装软件。http://bbs.widora.org/t/widora-mqtt/98
可以说,完全可以实现两个板子的远程信息交互。CPU使用率几乎为0。
更多应用场景还是网友自行脑补。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。
如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》
|