电子会议徽章:配备一个紧凑的76x284像素OLED显示屏、基于WiFi的配置门户以及智能电源管理功能
参加一次IT会议时,我注意到一些同事佩戴着商用的中国制造蓝牙LED徽章。我觉得这是一个绝妙的想法——比传统的纸质徽章更加实用且富有动感。我立刻就想为自己也买一个。
然而,在检查了这些现成的LED徽章后,一些局限性变得显而易见:
•单色:颜色已硬编码在硬件中,无法更改。
•低分辨率:11x44像素的矩阵严重限制了您可显示的信息量。
•无电池监控:无法追踪剩余电量百分比或状态。
更重要的是,当我能够自己动手制作徽章时,购买现成的徽章却感觉像是错失了一个机会。我翻出了自己的微控制器盒,取出了一块内置Wi-Fi功能的ESP32-C3_SuperMini。这款小巧却性能强大的设备再合适不过了:它可以运行本地服务器进行配置,然后进入低功耗睡眠模式,定期唤醒以监测电池状态。
从那里,我逐步设计了系统,优先选择成本效益高且功能丰富的组件。如果要追求功耗效率,电子墨水屏是理想之选,但我当时手头没有。于是,我订购了一块2.25英寸的TFT LCD(76x284像素),很快便收到了,而且价格便宜了三倍。
其余的硬件由备件组装而成:
•一个已停产的蓝牙耳机盒捐赠了其400mAh的锂聚合物电池。
•TP4056充电控制器模块
•DC/DC 3.3V 降压/升压转换器。
•一些电阻。
在空闲的晚上制作这个设备,让我获得了无与伦比的成就感。
设置Wi-Fi和基本的Web服务器是标准操作。
然而,让ESP32与显示屏协同工作却遇到了困难。在尝试使用通用的Arduino驱动程序来控制ST7789控制器后失败,我决定从零开始编写一个自定义的显示驱动程序。该驱动程序支持三种不同的字体大小、自定义符号集以及基于PWM的亮度控制。此外,我还直接将内置的二维码生成器集成到驱动程序中,从而能够快速显示Wi-Fi连接码,并托管用户自定义的数据,例如GitHub个人资料链接。
一切运行正常,直到我尝试同时运行网络服务器和显示屏。原型机开始出现异常行为。经过排查并测试了多种接线方式后,问题根源变得清晰:电磁干扰(EMI)。在密闭且无屏蔽的外壳内运行Wi-Fi无线电,同时为LCD背光生成高频PWM谐波,产生了显著的电子噪声。我通过将显示屏信号线缩短至5毫米以下,并将Wi-Fi天线置于设备最边缘位置进行隔离,解决了该问题。
硬件稳定后,剩余工作集中在优化固件和改进功能上。
工作原理
启动与接入点模式:设备上电后,会初始化一个本地Wi-Fi接入点(AP),并启动Web服务器。屏幕将显示SSID、密码以及生成的二维码,以便快速连接Wi-Fi。
配置:用户连接到网络,并在浏览器中访问 192.168.4.1。该网页界面允许用户:
•请输入自定义文本以显示。
•选择背景和文字颜色。
•调整显示亮度。
•输入自定义数据(如网址),在徽章上生成一个二次二维码。
节能模式:配置确认后,ESP322 将禁用 Web 服务器和 Wi-Fi 无线电,然后进入浅睡眠模式。微控制器每 600 秒唤醒一次,测量电池电压、计算剩余运行时间、更新显示屏状态,并返回睡眠模式。
技术规格与功耗
电池续航:使用400毫安时电池,且屏幕亮度设置为50%时,徽章可连续运行超过6小时。
充电:设备支持直通充电,可在运行过程中进行充电。如果物理电源开关关闭,电池将无法充电。
超时保护:在初始Wi-Fi配置阶段,设备会消耗约170毫安电流。为防止电池意外耗尽,若5分钟内未进行用户配置,设备将自动进入睡眠模式,并显示提示连接充电器。需通过硬件复位才能重新启动配置服务器。
本文编译自hackster.io





