一款基于 AB32VG1 的桌面智能坞小工具
项目简介:
我基于这个开发板制作了一款桌面小工具,它是一个小巧、功能丰富、具有实用价值的桌面物联网“控制中枢”。可以实现: 精灵播放音乐时内部有一颗呼吸灯的效果; 精灵可以通过 OLED 显示当前音乐名字、播放状态; 精灵可以自动连接到 MQTT 服务器,实现网络交互; 精灵可以通过红外遥控,实现音乐切换和暂停播放; 精灵可以通过手机连接热点配网,配置联网信息,连接 WIFI; 精灵连接有功放模块实现播放 TF 卡中的音乐; 精灵连接有一个 RGB 彩灯,在一个精致小夜灯中实现彩虹灯的效果; 精灵连接有一个灯管,实现联网控制灯管,冬天再也不用下床关灯了; 精灵配有自主设计的微信小程序端应用,通过 MQTT 服务器来实现和精灵的交互。
硬件说明:
整个作品各项内容均由我一人完成,涉及的技术栈有:电路图、PCB 设计,基于 RT-Thread Studio 编程,MQTT 服务器端搭建,数据包收发的对接,微信小程序的编写等。通过这个作品,大大提高了我对于一个产品从设计到落地的整个过程,产品版本迭代重要性的认知。
PCB 的 3D 图:
软件说明:
软件主要分为几个线程
- 播放器线程:挂载 sd 卡、载入 dfs 文件系统,并搜索 sd 卡中的音乐文件,检测接收队列来响应上一曲、下一曲、暂停、播放等消息
- 红外接收线程:检测红外信号
- 串口线程:连接到 ESP-01S 实现网络交互
- OLED 线程:对当前的播放状态和文件名进行显示
- 呼吸灯、RGB 彩灯线程:控制呼吸灯和 rgb 彩灯
代码树:
几个硬件设备都是分模块编写、耦合度较低,也较容易理解代码的用途。 整个软件的流程如下,主要是分为几个线程,通过 RT-Thread 来实现多线程的交互。网络端使用 MQTT 服务器来实现人机交互。
流程图:
MQTT.fx 和微信小程序交互:
微信小程序:
代码开源地址 :https://gitee.com/pomin-163/desktop_spirit
演示效果:
版权声明: 本文为 InfoQ 作者【攻城狮Wayne】的原创文章。
原文链接:【http://xie.infoq.cn/article/07b06743d47eb491971d39db9】。文章转载请联系作者。
评论