一款基于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和微信小程序交互:

微信小程序:

代码开源地址 :desktop_spirit: 用中科蓝讯的AB32开发板和ESP-01s制作了一个“桌面精灵”,可以实现OLED本地显示、mqtt联网和微信小程序交互,音乐播放等功能。

演示效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/813439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Learn SRP 02

3.Editor Rendering 3.1Drawing Legacy Shaders 因为我们的管线只支持无光照的着色过程,使用其他不同的着色过程的对象是不能被渲染的,他们被标记为不可见。尽管这是正确的,但是它还是隐藏了场景中一些使用错误着色器的对象。所以让我们来渲…

数据库性能优化思路

说到数据库的查询效率优化问题,首先就能想到以下几种方式: 这里是说基于数据库的优化,还有其它的优化方式;比如,增加缓存,把频繁使用的数据放到redis中,这样可以加快速度;但同样会带…

IP地址的主要功能及其在网络中的重要性

在当今数字化时代,互联网已经成为人们生活和工作中不可或缺的一部分。而IP地址(Internet Protocol Address)作为互联网中的关键组成部分,发挥着至关重要的作用。本文将探讨IP地址的主要功能以及其在网络中的重要性。 IP地址查询&…

计算机视觉数据集——扑克识别数据集

扑克数据集 数据集地址:https://download.csdn.net/download/matt45m/89130302 这是一个检测扑克牌种类的数据集,检测种类目前只有6种,分别是 "queen", "ten", "nine", "king", "jack"…

短视频转gif怎么做?三十秒在线转换gif

在现在这个快节奏的时代,gif动画相较于长时间的视频更受大众的欢迎。当我们需要将短视频、电影等视频制作成gif动画图片的时候就可以使用gif动画图片(https://www.gif.cn/)制作网站-GIF中文网,无需下载软件,手机、pc均…

Spring面试题pro版-6

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。 Spring中的单…

数据仓库—ETL最佳实践:提升数据集成的效率与质量

ETL(Extract, Transform, Load)作为数据仓库和数据集成的核心环节,对于确保数据的准确性、一致性和可用性至关重要。在实践中,遵循一些经过验证的最佳实践可以帮助企业提高ETL项目的成功率,优化数据处理流程&#xff0…

Redis GEO实现附近的人功能

附近的人功能是社交应用中非常常见的一项功能,它允许用户查找并发现他们周围的其他用户。使用Redis的GEO特性来实现这一功能是非常高效和简单的。以下是实现这一功能的基本步骤: 1. 准备工作 确保你的Redis服务器版本支持GEO特性(3.2.0及以…

fs.writeFile写入文件后 通过路径获取文件 获取不到最新写入的文件

通过fs.writeFile 直接通过路径获取文件 发现一直是首次上传的图片 不是当前最新上传的图片 const fs uni.getFileSystemManager()fs.writeFile({ilePath: ${uni.env.USER_DATA_PATH}/avatar.png,data: imageData.replace(/^data:image\/\w;base64,/,),encoding: base64,succe…

The Great Equalizer

# The Great Equalizer ## 题面翻译 Tema 购买了一台老旧设备,设备上有一个小屏幕和一个磨损的铭文“伟大的平衡器”。 卖家说,这台设备需要提供一个整数数组 $a$ 作为输入,之后“伟大的平衡器”将按照以下方式工作: 1. 将当前数组…

OSCP靶场--Fail

OSCP靶场–Fail 考点(rsync未授权覆盖公钥Fail2ban提权) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC 192.168.153.126 -p- -Pn --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-04-12 23:34 EDT Warning: 192.168.153.126 giving …

招生管理|基于SprinBoot+vue的招生管理系统系统设计与实现(源码+数据库+文档)

招生管理目录 基于SprinBootvue的招生管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 前台 后台 教师权限 学生权限: 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍&#xff…

大数据------JavaWeb------JDBC(完整知识点汇总)

JDBC 定义 全称为Java数据库连接(Java DataBase Connectivity):是使用java语句来操作所有关系型数据库的一套API JDBC本质 它是官方定义的一套操作所有关系型数据库的规则(即接口),各个数据库厂商会去实现…

Java 9 新特性

Java 9 新特性 Java 9 发布于 2017 年 9 月 22 日,带来了很多新特性,其中最主要的变化是已经实现的模块化系统。接下来我们会详细介绍 Java 9 的新特性。 Java 9 新特性 模块系统:模块是一个包的容器,Java 9 最大的变化之一是引…

VLC-Qt实现简单的视频播放器

VLC-Qt是一个结合了Qt应用程序和libVLC的免费开源库。它提供了用于媒体播放的核心类,以及用于快速开发媒体播放器的GUI类。由于集成了整个libVLC,VLC-Qt具备了libVLC的所有特性, 例如:libVLC实例和播放器、单个文件和列表播放、音…

.NET i18n 多语言支持与国际化

环境 WIN10 VS2022 .NET8 1.👋创建项目 2.👀创建Resources Controllers HomeController.en.resx HomeController.fr.resx HomeController.zh.resx 3.🌱Program.cs添加国际化支持 // 添加国际化支持 builder.Services.AddLocalization(…

6.Hexo标签插件和资产文件夹

标签插件 标签插件,基本上是只是一些小的代码片段,可以将他们添加到markdown文件中 以便添加特定的代码,不需要编写复杂或混乱的HTML 当很多时候想要在markdown页面添加一些特殊元素,通常必须使用HTML 如果不想这么用HTML&#…

CSS特效---百分比加载特效

1、演示 2、一切尽在代码中 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</title&…

公众号文章如何添加多个附件?

在公众号分享一些文档给粉丝下载&#xff0c;有那么几种方式。比如把文档转成超链接&#xff0c;放在公众号的“阅读原文”处&#xff0c;或者把文件转成二维码&#xff0c;贴在公众号文章里面。这两种方式其实都需要先把文件转成超链接&#xff08;网页链接&#xff09;&#…

开发需求15-使用el-checkbox组件实现el-tree组件的父子关联关系(非全选/全不选)

需求描述: 大家都知道el-tree可以很明显的通过选中来体现上下节点的父子选中状态,那么如果要求把后端把el-tree的数据结构,通过一个展开的list返回给你,使用el-checkbox组件渲染每一个节点,同时要求选中某一个节点,同时可以选中其父节点和子节点;取消也是一样。 思路:…