17937| 5
|
[项目] 使用FireBeetle Board ESP32 制作电子徽章 |
如果你在参加派对的时候希望大家能记住你的名字。使用FireBeetle Board ESP32来制作一个电子徽章,可以成为聚会活动中很酷的东西。 部件清单: 3、400mAh 3.7V锂电池 长50mm 宽20mm 厚度4.2mm 4、圆形磁铁 直径15mm 5、一角硬币 6、401胶水 资料清单: 1、Arduino IDE 你可以在Arduino官网下载最新版本的IDE 2、FireBeetle Board ESP32板子的库文件 (登录DFRobot的 wiki资料库可以找到说明) https://wiki.dfrobot.com.cn/_SKU_DFR0478_FireBeetle_Board_ESP32%E4%B8%BB%E6%9D%BF%E6%8E%A7%E5%88%B6%E5%99%A8V4_0制作完成的效果图: 在FireBeetle Covers-24x8 LED Matrix上显示滚动字符 首先我们需要将下载的FireBeetle Covers-24x8 LED Matrix驱动库ZIP文件导入到Arduino IDE,此时才能够使用这个点阵。 使用 点阵库里面的Scrolling例子烧录,看看是否可以滚动显示 "DFROBOT 2017"
测试FireBeetle Board ESP32 内部霍尔传感器 你可能发现了一个问题,无法关闭显示,除非你拔掉电池。 我们是否可以通过其他的方式来关闭显示呢,通过查询ESP32的数据手册,我们发现模块内部居然还集成了一个霍尔传感器,我们是不是可以通过这个霍尔传感器检测外部磁场来做一些事情。 首先我们来测试下这个霍尔传感器,以下是测试代码:
代码很简单,就是不停的通过串口打印出霍尔传感器的采集到的磁场强度数据。以下是捕捉到的数据: 可以看到,我手上的传感器在没有磁铁靠近的情况下大概在 30 这样的数字 然后我们将磁铁的一面贴近FireBeetle Board ESP32 主板安装ESP32模块背面的PCB位置 数字大概在 -2到-9之间。 我们用磁铁的另外一面靠近 FireBeetle Board ESP32 背面 数值在48到53之间 这说明磁铁靠近模块,霍尔传感器的数据的确会有变化,使用霍尔传感器的读数来切换LED点阵的亮灭是可行的。 根据以上的数据我设定如果霍尔传感器的数据大于35或者小于10,判断为磁铁贴近FireBeetle Board ESP32主板。 所以我们是不是可以在衣服上面固定一个磁铁,当电子徽章吸附在衣服上的时候自动显示? 通过检测霍尔传感器数值来开关LED点阵 在这里,我们将LED点阵显示和霍尔传感器检测相结合,开发出可以通过外部磁铁来开关LED点阵。 首先,我们使用401胶水将硬币粘贴在FireBeetle Board ESP32的背面。 这里需要注意以下3点: 1、硬币的位置可以参考下面的图片,如果离ESP32模块的位置太远,有可能不能可靠识别。 2、401胶水不要点太多,否则会四处流动。 3、10分钟后等胶水凝固,在来进行下一步。 我们添加如下代码:
下载完成后我们可以测试下效果。当磁铁靠近硬币,显示屏显示字符。当远离硬币。显示屏关闭。 FireBeetle Board ESP32 低功耗测试 此时虽然我们完成了磁铁靠近后LED点阵熄灭,降低了功耗。但是发现FireBeetle Board ESP32主板还有20多毫安的功耗。我们是否可以让ESP32也进入低功耗,进一步减少项目在不使用的时候的电流呢?通过查询FireBeetle Board ESP32 主板的使用说明书,里面有介绍低功耗的控制函数。 我们将程序改为如下:
在这里,我们使用ESP.deepSleep(5000000); 这个函数让FireBeetle Board ESP32主板深度睡眠 5秒钟。睡眠后实际测试加上LED点阵的漏电流一共在1毫安左右。 5秒钟后 FireBeetle Board ESP32主板自动唤醒,快速读取一次霍尔传感器,如果判断没有磁铁靠近又立即进入睡眠5秒状态。 至此,项目完成了,你可以将磁铁通过别针安装在衣服上,或者直接吸附到铁材料上面。也可以像我一样直接将磁铁放到衬衣口袋里面。我们将制作的电子徽章吸附到衣服上面,徽章自动循环显示。当取下后自动停止显示。是不是很吸引眼球。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed