一款基于AB32VG1的桌面智能坞小工具

简介: 该项目是一个由单人完成的桌面物联网设备,集音乐播放、OLED显示、MQTT网络交互、红外遥控、WIFI配网、功放模块、RGB彩灯和灯管控制于一体。开发者通过RT-Thread Studio编程,实现了低耦合的模块化设计,包括播放器、红外接收、串口、OLED显示和灯光控制线程。代码已开源于Gitee(https://gitee.com/pomin-163/desktop_spirit)。项目包含详细流程图和交互示例,如MQTT.fx和微信小程序的配合使用,以及演示效果展示。

项目简介:

我基于这个开发板制作了一款桌面小工具,它是一个小巧、功能丰富、具有实用价值的桌面物联网“控制中枢”。可以实现: 精灵播放音乐时内部有一颗呼吸灯的效果; 精灵可以通过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

演示效果:

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
13天前
|
小程序 物联网 人机交互
一款基于AB32VG1的桌面智能坞
【11月更文挑战第3天】基于这个开发板制作了一款桌面小工具,它是一个小巧、功能丰富、具有实用价值的桌面物联网“控制中枢”。
|
JSON 数据格式
NodeMCU ST7735 Weather Station 制作流程
NodeMCU ST7735 Weather Station 制作流程
125 0
AD20和立创EDA设计(5)立创EDA导出3D模型放入AD20使用
AD20和立创EDA设计(5)立创EDA导出3D模型放入AD20使用
1283 0
|
6月前
|
弹性计算 Linux 网络安全
企业员工Linux终端加入AD域并挂载文件存储
这是企业级用户认证及文件权限控制的延续篇,企业里面如有人使用的Linux客户端如何加入域中,使用共享NAS。
311 0
企业员工Linux终端加入AD域并挂载文件存储
|
Android开发
android手机操作SD的使用方法
android手机操作SD的使用方法
93 0
|
编解码 C语言
SAP SD基础知识之与FI集成相关的流程与配置
SAP SD基础知识之与FI集成相关的流程与配置
|
物联网 C# Windows
张高兴的 Windows 10 IoT 开发笔记:HC-SR04 超声波测距模块
  HC-SR04 采用 IO 触发测距。下面介绍一下其在 Windows 10 IoT Core 环境下的用法。   项目运行在 Raspberry Pi 2/3 上,使用 C# 进行编码。     1.
1335 0