JerryZhen 发表于 2024-3-17 00:49

【米尔-全志 T527 开发板-试用评测】-第一篇 小试牛刀之MQTT

<div class='showpostmsg'> 本帖最后由 JerryZhen 于 2024-3-17 08:57 编辑

<p>米尔开发套件 MYD-LT527由核心板 MYC-LT527 和底板MYB-LT527 组成,核心板与底板采用 LGA贴片焊接方式。随同开发套件 MYIR &nbsp; &nbsp;提供了软件资源以及文档资料。由于全志科技 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>&nbsp;</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>&nbsp;</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>&nbsp;</p>

<p>下面笔者简要介绍下,如何在MYD-LT527的安卓系统上搭建Termux开发环境,并实现一个简单的MQTT通信demo。</p>

<p>首先安装两个apk(Termux, Termux:Boot),然后打开Termux.</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<p>pkg换源:&nbsp; termux-change-repo</p>

<p>升级系统包:&nbsp; 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;">&nbsp;</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>&nbsp;</p>

<p>&nbsp;</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>&nbsp;</p>

<p>代码中broker选择公网的emqx官方服务器,配置如下:<br />
broker = &#39;broker.emqx.io&#39;<br />
port = 1883<br />
topic = &quot;/Python/mqtt&quot;</p>

<p>&nbsp;</p>

<p>然后在两个窗口中分别运行发送客户端和接收客户端, 并观察结果。</p>

<div style="text-align: center;"></div>

<div style="text-align: center;"></div>

<div style="text-align: center;">&nbsp;</div>

<div>至此第一篇分享结束,我们已经成功的在米尔T527开发板实现了一个简单的mqtt通讯应用。后面章节我们会基于T527做工业边缘网关,实现更强大的功能。</div>

<p>&nbsp;</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>

Jacktang 发表于 2024-3-18 07:48

<p>期待楼主基于T527做工业边缘网关,实现更强大的功能,后面精彩测评</p>
页: [1]
查看完整版本: 【米尔-全志 T527 开发板-试用评测】-第一篇 小试牛刀之MQTT