【米尔-全志 T527 开发板-试用评测】-第一篇 小试牛刀之MQTT
<div class='showpostmsg'> 本帖最后由 JerryZhen 于 2024-3-17 08:57 编辑<p>米尔开发套件 MYD-LT527由核心板 MYC-LT527 和底板MYB-LT527 组成,核心板与底板采用 LGA贴片焊接方式。随同开发套件 MYIR 提供了软件资源以及文档资料。由于全志科技 T527 系列高性能处理器是一款基于八核 Cortex-A55 + HiFi4 DSP+RISC-V 多核异构工业级处理器,因此性能肯定没得说。笔者很幸运能够在第一时间拿到板子。开发板的硬件参数以及外观可以参考官网,这里不作赘述。放上两张实物照片让大家饱饱眼福,做工很扎实,外观漂亮。</p>
<div style="text-align: center;"></div>
<div style="text-align: center;"></div>
<div style="text-align: center;"></div>
<div style="text-align: center;"></div>
<div> </div>
<div>板子出厂系统是安卓 13,采用 AOSP 版本项目进行构建,包含完整的硬件驱动,常用的系统工具,调试工具等。支持使用 Java 进行应用开发。至于linux系统,官方表示稍后会提供 ubuntu22.04 以及buildroot系统。</div>
<div>
<div style="text-align: center;"></div>
<div style="text-align: center;"></div>
<div style="text-align: center;"></div>
<p> </p>
<p>安卓系统现在在车机之类的行业中应用很广泛。但是由于笔者主要从事工控,因此还是更习惯用linux开发。虽然现在官方暂未提供linux系统,但是问题不大,我们可以通过termux在安卓上实现类似linux虚拟机。Termux是一个专为安卓设备设计的开源Linux环境和命令行工具。通过Termux,用户可以在安卓设备上运行各种Linux命令和软件包,用来进行编程开发、网络安全测试、数据分析等各种任务。</p>
</div>
<p>Termux具有以下特点和功能:<br />
1. 完全开源:Termux的所有代码都是开源的,用户可以自由地修改和定制。<br />
2. 支持包管理:Termux内置了包管理工具,用户可以通过它来安装、更新和删除各种软件包。<br />
3. 支持终端模拟器:Termux内置了功能强大的终端模拟器,用户可以在其中执行各种命令。<br />
4. 支持插件:Termux还支持通过插件扩展功能,用户可以根据需要安装各种插件。<br />
5. 社区活跃:Termux有一个激活的用户社区,用户可以在社区中获取帮助、分享经验和交流。</p>
<p>总的来说,Termux是一个强大的工具,可以让用户在安卓设备上轻松地进行各种Linux操作和开发任务。</p>
<p> </p>
<p>下面笔者简要介绍下,如何在MYD-LT527的安卓系统上搭建Termux开发环境,并实现一个简单的MQTT通信demo。</p>
<p>首先安装两个apk(Termux, Termux:Boot),然后打开Termux.</p>
<div style="text-align: center;"></div>
<p> </p>
<p>pkg换源: termux-change-repo</p>
<p>升级系统包: pkg update -y</p>
<p>获取开发板存储权限: termux-setup-storage<br />
安装openssh: pkg install -y openssh</p>
<p>启动ssh服务:sshd</p>
<p>设置密码:passwd</p>
<p>查看当前用户名:whoami</p>
<p>查看当前IP地址: ifconfig</p>
<div style="text-align: center;"> </div>
<p>现在可以在电脑上通过SSH远程登录开发板并进行各种操作,大大提高了开发板的可玩性。</p>
<p>现在我们通过python在开发板上实现mqtt收发数据为例进行讲解。</p>
<p>在系统中安装pyhon:pkg install python</p>
<p>创建项目文件夹:mkdir mqtt<br />
进入项目目录:cd mqtt<br />
创建python环境: python -m venv .venv<br />
激活环境:source .venv/bin/activate<br />
安装mqtt库: pip install paho-mqtt</p>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p>然后分别实现发送客户端pub.py:</p>
<pre>
<code class="language-python">import time
import paho.mqtt.client as mqtt
broker = 'broker.emqx.io'
port = 1883
topic = "/Python/mqtt"
mqttc = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
mqttc.connect(broker, port)
mqttc.loop_start()
msg_count = 0
while True:
time.sleep(1)
msg = f"messages: {msg_count}"
msg_info = mqttc.publish(topic, msg)
print(f"Send `{msg}` to topic `{topic}`")
msg_count += 1
mqttc.disconnect()
mqttc.loop_stop()</code></pre>
<p>再实现接收客户端sub.py:</p>
<pre>
<code class="language-python">import paho.mqtt.client as mqtt
broker = 'broker.emqx.io'
port = 1883
topic = "/Python/mqtt"
def on_message(client, userdata, message):
print(f"Received `{message.payload.decode()}` from `{message.topic}` topic")
def on_connect(client, userdata, flags, reason_code, properties):
if reason_code.is_failure:
print(f"Failed to connect: {reason_code}. loop_forever() will retry connection")
else:
client.subscribe(topic)
mqttc = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
mqttc.on_connect = on_connect
mqttc.on_message = on_message
mqttc.connect(broker, port)
mqttc.loop_forever()
</code></pre>
<p> </p>
<p>代码中broker选择公网的emqx官方服务器,配置如下:<br />
broker = 'broker.emqx.io'<br />
port = 1883<br />
topic = "/Python/mqtt"</p>
<p> </p>
<p>然后在两个窗口中分别运行发送客户端和接收客户端, 并观察结果。</p>
<div style="text-align: center;"></div>
<div style="text-align: center;"></div>
<div style="text-align: center;"> </div>
<div>至此第一篇分享结束,我们已经成功的在米尔T527开发板实现了一个简单的mqtt通讯应用。后面章节我们会基于T527做工业边缘网关,实现更强大的功能。</div>
<p> </p>
</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>期待楼主基于T527做工业边缘网关,实现更强大的功能,后面精彩测评</p>
页:
[1]