标签存档: ESP32

百元成本,DIY 一个 ESP32-S3 驱动的炫酷 IV-18 荧光管时钟

前段时间分享了 HV5812 驱动 IV-18 荧光管(见 使用 C 语言位运算和宏,编写一个可自由配置的 HV5812 + IV-18 荧光管驱动),这段时间把固件和外壳搞了搞,总算是差不多做完了,桌上又多了个吃灰的摆件 😃。

在这次开发过程中,固件也是继续尝试了使用 AI 编写,体验还不错,不再需要为配网 + Web 配置界面这些烦琐的事花太多时间了。

成品效果

 

元件选型

做这个 IV-18 桌面时钟,元件中主要的成本就是 IV-18 荧光管本身了,占了绝对的大头。

  • 荧光管:IV-18 真空荧光管透明基板版本,约 95 元
  • 主控:ESP32-S3 Zero 开发板,21 元
  • DCDC 升压芯片:XL6007,7 毛
  • LED 高压驱动:HV5812,6 元
  • 其他阻容:算 5 元吧

PCB 还是老样子,嘉立创每月两样免费打样,外壳 3D 打印也不算了,总成本大约在 130 …

阅读全文 »

Wokwi + VSCode 插件在线仿真 ESP32 更好用,值得一试

之前在《玩 ESP32 和 Arduino 的同学一定不能错过这个在线仿真网站》这篇文章中分享了 Wokwi 这个在线仿真平台,它支持 ESP32、STM32、树莓派等众多 MCU,还有相当丰富的外设库,在手边没有硬件设备时临时调试一下固件代码还是很方便的。

不过之前测试的是使用 Wokwi 的在线编译功能,作为免费用户,经常会碰到服务器编译超时错误,然后导致无法调试,又或者是固件项目依赖了太多的三方库,编辑项目相当麻烦。

这个时候想到了它还有一个 VSCode 插件,似乎可以在本地编译固件再进行仿真,尝试了一下发现还真挺好用,妈妈再也不用担心手边没硬件了。

操作演示

这里以我本地编译了一个 ArduinoBASIC 项目进行测试,可以看到整个使用过程还是相当流畅的,完全不用等待 Wokwi 的服务端编译时间了。

安装插件

要安装 Wokwi 的插件也很简单,直接在 VSCode 中的插件市场搜索 wokwi 或者通过以下链接安装即可:

https://marketplace.visualstudio.com/items?itemName=wokwi.wokwi-vscode

wokwi-vscode-simulator-1

在安装完成后,就可以通过 Command + Shift + P 呼出 VSCode 命令窗口,再搜索 wokwi 找到 Wokwi: Start Simulator 就可以开始使用了。

获取免费授权

在第一次使用 Wokwi …

阅读全文 »

使用 C 语言位运算和宏,编写一个可自由配置的 HV5812 + IV-18 荧光管驱动

有段时间觉得辉光管挺有意思,刚好也看到有类似尺寸的 LCD 小屏幕,就用 LCD 显示图片做了个 LCD 模拟辉光管时钟(见《AI 干了一半活,做个 LCD 模拟辉光管时钟》)。

不过这效果总是差点意思,后面看到有人分享的荧光管时钟,效果也还可以,但是价格相比辉光管要便宜不少,辉光管一个 60 元左右,荧光管 IV-18 8 位数字的就 90 的样子,就决定也来搞一个做个正经的荧光管时钟。

在立创开源平台找了一些开源项目进行参考,简单搞了个 IV-18 驱动板,基于 XL6007 DC-DC 升压 + HV5812 高压 LED 驱动芯片。在嘉立创打了样焊接测试也一次成功了。

HV5812 驱动拿了立创开源平台 lurt/iv18-vfd 的代码,用 ESP32-S3 也是可以直接驱动起来,能正常显示数字,不过在显示有些字符的时候会有一些异常,应该是跟我为了布线改动了 IV-18 和 HV5812 连接有关系。

HV5812 驱动板 PCB

为了保持面积紧凑,以及为了后续连接不同的 MCU 控制,把 XL6007 和 HV5812 …

阅读全文 »

玩 ESP32 和 Arduino 的同学一定不能错过这个在线仿真网站

玩 ESP32 和 Arduino 的时候,经常会碰到手边没有对应的板子或者元器件的情况,这个时候又想测试固件的话,就非常麻烦了。

这个时候在线仿真服务 Wokwi 就可以派上用场了。

我还是在之前找一些开源项目的时候接触到了 Wokwi 这个仿真服务,用了一下感觉还挺方便,特别是在想快速验证一个代码是否有效的时候。

Wokwi 相比我刚开始用的时候,支持了更多的平台,已经不再是只有 ESP32 相关的开发板了,还有 STM32、树莓派 Pico 之类的。现在似乎发展还挺好,搞了不少服务出来,支持 VS Code 和 CI 什么的。

另外如果不喜欢在线工具,也可以看看之前分享的电脑上模拟器《Arduino玩家必备,SimulIDE电路模拟器》,外设可能不如 Wokwi 丰富,但是也基本够用。

Wokwi 优势

相比于自己购买硬件、使用面包板搭建测试电路,Wokwi 还是有一定优势的,在原型验证阶段,可以省掉不少事情。

  • 成本门槛: 开发板、元器件、传感器、工具(万用表、示波器)的购买成本。
  • 时间等待: 采购、物流、焊接、组装耗费大量时间。
  • 物理限制: 场地、电源、设备携带不便;易损坏(短路、烧芯片)。
  • 试错成本高: 代码错误可能导致硬件损坏。
  • 协作困难: 团队成员/师生间共享和复现硬件环境复杂。
  • 快速迭代难: 想法验证需要反复搭建电路,效率低。

当然,作为一个服务网站,也要生存,在使用过程中,可能还是会时不时碰到需要付费才能获得更好体验的情况 🙈,例如创建私有工程、编译时间长等问题,都需要付费。

整体界面

Woki …

阅读全文 »

AI 干了一半活,做个 LCD 模拟辉光管时钟

这是一个为了一碗醋包了一盆饺子的故事。

之前为了测试 AI 写单片机代码能不能行,用 Manus 测试了一下,过程可以看这篇 《AI 编程在嵌入式开发中能用吗?体验 Manus 编写 ESP32 固件》,简单来说:能用。

这不为了让 AI 写出来的固件有用武之地,得把整个硬件开发完~

不过好在整个项目比较简单,而且单片机 ESP32-S3 直接用了现成的模块,PCB 几乎没有什么复杂的线路,就 LCD 的 PCB 有几个小一点的元件,主板 PCB 全都用了 2.54mm 的插件。

AI 生成数字图片

之前只介绍了固件是用 Manus 生成了,但是实际上,每个屏幕展示的模拟辉光管效果的数字图片,也是让 AI 生成的。

不过这次是让 ChatGPT 生成的,现在这些 AI 工具,简单是没有设计能力的工程师的福音,想要啥效果,吩咐 AI 就行了 😃。

提示词:

请生成辉光管效果的10个数字,包含数字 0 1 2 3



阅读全文 »

AI 编程在嵌入式开发中能用吗?体验 Manus 编写 ESP32 固件

前段时间买了个 0.96 寸 80x160 的 LCD 屏幕,想要做一个模拟辉光管的时钟。

这第一步就用上了 AI,用 ChatGPT 生成了辉光管效果数字的图片,然后按数字裁切成 0-9 十张图,生成对应的图片 RGB565 格式数据,测试了一下,效果还不错。

然后我就在想,那这个时钟的固件,是不是也可以用 AI 来生成呢?AI 现在已经验证了写一些前端项目相当高效,在嵌入式开发领域,是不是也可以有同样的能力,至少可以完成一个简单的项目?

刚好 Manus 开放注册了,我就拿它来尝试一下看看效果怎么样。

功能需求

为了防止项目失败,先把功能定义得简单一点,就是通过 ESP32 控制 6 个 LCD 来显示上面裁切生成的数字图片,并且需要提供 API 更新图片、AP 配置能力。

提示词

这里为了让生成的项目更可控,提示词中明确了工程框架为 PlatformIO,引脚使用宏定义等能力,

请使用 platformio + arduino 框架帮我写一个 esp32-s3 固件,实现以下功能:

  • 控制 6 个 st7735 驱动的 lcd 屏幕,分辨率为


阅读全文 »

小智 AI 通信协议补漏,通过OTA接口注册设备

上周整理了一下小智 AI 的 WebSocket 通信协议,《复刻小智AI第2步,2张核心流程图学习一下它的WebSocket协议》,后面在调试时发现了一个缺失的点,就是漏掉注册设备这一步。

一开始还对配置文件中的 "OTA_VERSION_URL": "https://api.tenclass.net/xiaozhi/ota/", 字段比较费解,好像整个通信过程中也没有用到的地方,而且在 py-xiaozhi 中也不存在固件的概念。

另外因为跑示例的时候,用的 Client-IdDevice-Id 都是从仓库中直接拿的,应该是已经在服务器已经注册过了,只需要额外添加设备即可,所以一直没发现这个问题。

后来在手动修改 Device-Id 的时候终于发现了,仔细研究了一下 xiaozhi-esp32py-xiaozhi,再自己操作了一下,总算搞明白了。

问题

如果在设备启动时,不经过设备注册过程,那么在开始对话之后,服务端会返回没找到设备版本信息的语音,而不是在后台添加设备。

2025-04-21 14:51:23,295 - WebSocketClient - INFO - 收到JSON消息: {"type":"tts","state":"sentence_start","text":"没有找到该设备的版本信息,请正确配置 OTA 地址,然后重新编译固件。","session_id":"14328015"}

这个时候,不管怎么对话,服务端都只会返回这一句。

py-xiaozhixiaozhi-esp32 项目中,都是会在启动阶段进行 OTA 固件版本检查,因此我们也需要在加载配置时,先进行 OTA 版本检查这一步,同时完成设备注册。

注册设备

注册设备也很简单,构建一个固件信息的 …

阅读全文 »

复刻小智AI,ESP32-S3搭建Arduino+ESP-SR+ESP-TTS开发环境踩坑记录

最近 B 站上赛博小狗和小智 AI 都很火,我也想复刻一个,最好能把两者结合一下,研究了一下,发现作者们的开源方案有些地方不太符合我的习惯,准备改造一番,然后就走上了踩坑之旅。

缘由

赛博小狗这个开源项目,作者使用了现成的语音识别模块和文本转语音模块,这两个模拟贵且不说,在使用上也不太灵活,而且主控也是使用的 STM32,这个如果要想改造结合小智 AI,开发起来也比较麻烦。

然后就想到了乐鑫 ESP32 是已经自带了语音唤醒、语音识别、文本转语音能力的,那干嘛不直接用一个 MCU 来实现外部模块的功能,成本就要低上很多了,而且小智 AI 本身也是基于 ESP32 去做的,结合起来就更方便了。

再研究了一下小智 AI 的开源硬件端项目,发现是基于 ESP-IDF 开发的,这就叫人头大了,虽然原厂的 ESP-IDF 相比 Arduino 框架更强大,配置更灵活,但是从开发便捷性上来说,我还是更喜欢使用 Arduino 框架。

为了把这一堆东西都改成自己喜欢的样子,就开始了踩坑之旅。

开发环境

虽然在玩 ESP32 时一直用的 Arduino 框架,但是我并没有使用 Arduino IDE,而是使用的 Visual Studio Code + PlatformIO 插件。Ardunio IDE 的编辑器太古老了,缺少很多有用的功能,像代码提示、自动补全、符号跳转等功能都是缺失的。

而 Visual Studio Code …

阅读全文 »

来了来了,用单片机 ESP32-S3 跑 RISC-V 模拟器运行 Linux,这次启动只要 8 秒

在之前一篇文章 《用 7 毛钱的 CH32V003 单片机跑 Linux,启动需要 5 分钟》 中介绍了开源项目 linux-ch32v003mini-rv32ima,可以在 7 毛钱的单片机 CH32V003 上配合外置 PSRAM 来运行一个 RSIC-V 模拟器,并且可以运行一个裁剪过的 Linux 系统镜像。

但是 CH32V003 的性能不太强劲,按作者介绍启动 Linux 系统需要 5 分钟,为了更好地学习一下 RSIC-V 模拟器,我决定把它移植到 ESP32-S3 来试一下看看。

PS. 搞这个也是仅供娱乐了,毕竟 ESP32-S3-N16R8 20 多元的价格,可以买像 V3S 这样正经 ARM SoC 来跑 Linux 了。

移植 mini-rv32ima

在上一篇文章中,已经大概介绍了移植 …

阅读全文 »

Arduino + ESP32 高分开源项目推荐

作为一个 ESP32 重度用户,并且一直使用 Arduino 框架开发嵌入式应用的爱好者,在过去开发的项目过程中使用过不少开源项目,这里稍微总结一下比较有意思的,以及比较有用的开源项目列表。

其中一些项目不光是固件方面的程序,也包含了对应的硬件设计,可以当作一个电子 DIY 入门的学习项目。

开源项目集合

awesome-esp

项目地址:https://github.com/agucova/awesome-esp

一个国外爱好者收集的 ESP32/ESP8266 开源项目集合,主要偏完整的固件应用。

固件应用

这里是一些完整的固件开源项目,通常也会包含一个完整的硬件项目,不管是用来学习硬件开发,还是学习嵌入式软件开发,都是很好的例子。

ESPHome

ESPHome Logo

项目地址:https://github.com/esphome/esphome

算是最流行的开源智能家居固件之一了,通过编写 YAML 配置文件的方式来快速集成各种传感器、开关、屏幕等设备到一个固件中,并且内置了 Home Assistant 等智能家居平台的支持,可以一键添加到这些平台中。

要使用 ESPHome,基于上只需要了解大概的 GPIO 知识,I2C 以及 SPI 总线的概念就可以上手了,传感器或者其他外设的驱动都已经包含在固件中,并且官方文档也包含了详细的配置教程。

之前就使用 ESPHome 快速搭建了两个应用:

tasmota

项目地址:…

阅读全文 »