【STM32MP135F-DK】7-搭建MQTT服务器
<div class='showpostmsg'><div>在这次测评中要用到MQTT的服务,需要在开发板上创建MQTT服务器,在开发板的终端里输入下面命令搜索mqtt相关的包:</div><div>
<pre>
<code>apt-cache search mqtt</code></pre>
<p> </p>
</div>
<div>搜索结果如下,其中mosquitto是MQTT的服务。</div>
<div></div>
<div>mosquitto默认已经安装到开发板上了,不过mosquitto-clients没有安装,使用如下命令安装mosquitto-clients。</div>
<div>
<pre>
<code>apt-get install mosquitto-clients</code></pre>
<p> </p>
</div>
<div>通过下面的命令查看mosquitto服务是否启动</div>
<div>
<pre>
<code>systemctl status mosquitto</code></pre>
<p> </p>
</div>
<div></div>
<div>从图中可以看到服务已经启用了。</div>
<div>接下来测试一下mosquitto服务。MQTT服务是基于“订阅-发布”机制的,因此先订阅一个主题,这里使用后台运行的方式去订阅一个主题,这样就不需要打开一个新的终端了。订阅命令如下:</div>
<div>
<pre>
<code>mosquitto_sub -h localhost -t "mqtt/manhuami" &</code></pre>
<p> </p>
</div>
<div>然后使用如下命令向主题”mqtt/manhuami”发布一个消息”hello manhuami”</div>
<div>
<pre>
<code>mosquitto_pub -h localhost -t "mqtt/manhuami" -m "hello manhuami"</code></pre>
<p> </p>
</div>
<div>在发送之后,就能够在终端收到发送的消息。</div>
<div>也可以尝试局域网内的发送,比如在笔记本电脑上使用MQTTX软件向开发板上的MQTT服务发送消息。</div>
<div>在发送消息之前,需要先设置开发板上的mosquitto服务,使其能够被其它设备访问。使用vi打开文件</div>
<div>
<pre>
<code>vi /etc/mosquitto/mosquitto.conf</code></pre>
<p> </p>
</div>
<div>在第234行修改为</div>
<div></div>
<div>在第532行,修改为</div>
<div></div>
<div>修改之后重启mosquitto服务</div>
<div>
<pre>
<code>systemctl restart mosquitto</code></pre>
<p> </p>
</div>
<div>这时在电脑上使用mqttx软件就可以连接开发板,并发布消息了</div>
<div></div>
<div>在开发板上就能收到</div>
<div></div>
<div><span style="font-size:16px;"><strong>使用python作为客户端</strong></span></div>
<div>首先安装paho包</div>
<div>
<pre>
<code>apt-get install python3-paho</code></pre>
<p> </p>
</div>
<div>编写代码
<pre>
<code>import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("192.168.137.78", 1883, 60) #开发板的IP地址
client.subscribe(topic="mqtt/manhuami")
client.loop_forever()</code></pre>
<p> </p>
</div>
<div>这时就能够通过python代码订阅mqtt的消息了。</div>
<div></div>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>服务器搭好,成功了百分之九十九,大佬的作品看来快完工啦!</p>
<p>可以做个封包,看着更高看一点,写一些解析协议 </p>
<p>有屏幕没,有屏幕的话建议做一个界面方便操作</p><br/>
页:
[1]