如何在Arduino UNO Q的Linux端搭建无线网页仪表板,通过手机控制STM32微控制器并查看实时数据
官方Arduino UNO Q是一款性能强大的开发板。与传统微控制器不同,它采用“双脑”架构:搭载高通® Dragonwing™ MPU,运行Linux Debian系统,用于处理复杂的AI和计算任务;同时配备STM32U585微控制器,实现实时硬件控制。
但一旦你将这个板部署在远程位置,比如智能花园监测器、天花板安装的AI摄像头或远程气象站,通过插入USB-C线缆来检查状态或更改设置就会变得非常麻烦。
本项目向您展示如何将两个“大脑”连接起来,创建一个无线智能手机仪表板。您将在 Linux 端运行一个轻量级 Web 服务器,通过它可控制 STM32 的引脚,并直接在手机浏览器中查看实时硬件反馈。无需安装定制应用,设置完成后也不需要任何线缆!
详情
要使这正常运行,两个处理器需要相互通信。
•Linux MPU 运行一个 Python 网络服务器,通过 Wi-Fi 向您的智能手机提供简洁的 HTML 仪表板。
•当你在手机上点击按钮时,Python 脚本会向 STM32 微控制器发送一条串行指令。
•STM32持续监听,接收到指令后会切换硬件(例如打开继电器或在内置的8x13 LED矩阵上绘制图案)。
这种配置意味着你的手机充当遥控器,Linux MPU 作为无线路由器/网络主机,而 STM32 则充当“肌肉”。
1 — 初始设置与Wi-Fi连接
首先,我们需要将UNO Q连接到您的本地网络。
•通过USB-C端口将Arduino UNO Q连接到您的电脑。
•使用 5V 3A USB-C PD 转换器供电(也可使用电脑,但建议使用专用适配器以充分发挥 SBC 的性能)。
•通过 SSH 或串行控制台访问 Linux 终端。
•使用标准的 Debian 网络管理器或 Arduino App Lab 连接到您的 Wi-Fi。
•连接后,在终端中输入 hostname -I 以查找板子的 IP 地址(例如:192.168.1.45)。请记下这个地址!
2 — 操作STM32微控制器(肌肉)
现在我们让实时MCU监听来自Linux端的命令。
•在您的电脑上打开 Arduino IDE。
•选择 Arduino UNO Q(STM32 侧)作为你的板,并选择正确的 COM 端口。
•上传以下草图。该代码监听内部串行端口,接收特定字符(1 表示开启硬件,0 表示关闭),并返回心跳消息给 Linux 端,以便你确认它正在运行。
3 — 在 Linux 上设置 Web 服务器(大脑)
现在我们转向高通MPU端。我们将使用Flask库创建一个简单的Python Web服务器。
•登录到你的Arduino UNO Q的Linux环境。
•通过运行以下命令安装 Flask 和 PySerial:pip3 install flask pyserial
•创建一个名为 dashboard.py 的新 Python 文件,并粘贴以下代码。该脚本将生成一个适配移动端的网页,包含“开启”和“关闭”按钮。
•运行脚本:python3 dashboard.py
4 — 通过智能手机远程控制
最棒的是——无需安装应用,也无需使用数据线!
•请确保您的智能手机连接到与Arduino UNO Q相同的Wi-Fi网络。
•在手机上打开 Chrome 或 Safari 浏览器。
•您将看到一个简洁、便于移动设备访问的仪表盘。
•点击按钮!您将立即看到STM32的响应以及内置硬件的切换。
部署专业技巧
•静态IP:为避免每次都需要输入新的IP地址,请在路由器的DHCP设置中为您的UNO Q分配一个静态IP。
•扩展功能:您可以轻松扩展此仪表板,以读取通过Qwiic接口连接的温度传感器,甚至可以触发预加载在Arduino App Lab中的AI视觉模型!
•自动启动:要让 Python 仪表板在 UNO Q 启动时每次运行,请将命令 python3 /path/to/dashboard.py 添加到您的 Linux cron 表或 systemd 服务中。
代码
本文编译自hackster.io





