这是一个非常完整的智能手表开源项目,功能齐全,且资料开源。
如果你是:自己平时喜欢diy的工程师,想要提升开发技能的学生,马上要做毕设的大四学生,这个手表很值得一做,别错过了~~
所有开源的资料以及原文链接见文末。
先来看下这个手表的功能:
- 首先,是一个可以佩戴的手表
- 可以充当紧凑的无线访问设备,控制所有物联网设备
- 还具有可交换的 MAC 地址、扫描 WiFi 网络的能力
- 内置距离感应的 LiDAR
- 实时温度、海拔、湿度、压力、气体、倾斜度和加速度
- 通过按键控制所有操作
主要功能详解
测距:使用的LiDAR是意法半导体(STMicroelectronics)的超简洁VL53L1X ToF(飞行时间)距离传感器。精度 <±1% ,可以测量从 4 厘米到 4 米的任何距离。
由于它使用 940 nm 激光(它是红外线,因此人眼看不见),因此还在它旁边加入了一个可切换的亮红色 650nm 5mW 激光器,以帮助瞄准或进行演示。
无线部分:手表利用 ESP-NOW 以超低功耗快速广播数据。
之所以选择这种无线协议,是因为它能够绕过传统的WiFi连接设置,这使得其他设备之间的动作反应时间几乎是瞬时的,适用于大多数 32 位 MCU。
扫描 WiFi 网络:手表还可用于扫描 WiFi 网络,并提供网络 SSID、RSSI(信号强度)和身份验证模式(网络的安全性 0-7)。
由于广播无线数据非常耗电,手表编程为仅暂时激活 WiFi 以发送/接收数据,然后自动禁用。
它还具有自动 1.5 秒睡眠模式计时器和倾斜唤醒检测功能,与 Apple Watch 非常相似,但Apple Watch 是无法连接到 DIY 门锁/电灯开关的。
数字水平/坡度检测器:只需将手表放在有问题的表面上,然后单击 IMU 模式按钮即可访问实时倾斜和加速度数据。
空气检测:手表内置的挥发性有机化合物 (VOC) 传感器,观察 IAQ 读数因目标气体与 BME680 加热的金属氧化层接触的结果而变化,还监测湿度和大气压力。
主题修改:手表还带有多个主题,可以选择最喜欢的颜色。
功能介绍完了,可以来看下如何从原理图开始吧——
主电路由ESP32-S3、五个传感器(可选第六个)、一个 LiPo 电池、一个激光模块驱动器以及用于为 ESP32-S3 微控制器供电、通信和设置的典型电路组成,还有一些按钮和连接器。
以下是完整的原理图:
更详细的原理图详解看这里(复制到浏览器打开):https://www.roboticworx.io/p/build-custom-esp32-boards-from-scratch#%C2%A7the-schematic
要在如此小的空间(43x36mm)中塞得下如此多的器件,2层板肯定不够的,直接使用了4层本。
在背面可以放置一些器件,并且中间的两层接地层,这样还能获得良好的隔离效果。
bom清单在这里(复制到浏览器打开):https://github.com/RoboticWorx/Gateway-Smartwatch/blob/main/Gateway%20Part%20List%20and%20BOM.csv
为确保一切正常,需要进行简单的测试。通过 USB-C 端口上传主程序,并确保一切正常。
上传到开发板的说明可以在编程部分找到。
如果上传程序后看到屏幕似乎没有响应,可以断开电源,然后重启。
也可以尝试按下重置按钮(最左侧的按钮)并重启电路板的电源。
初步测试成功之后,就可以安装电池,打印外壳了。
作为一个非常复杂的项目,下面是关于如何使用手表和操作不同按钮/组合的部分。下面是常规按钮布局及其作用:
按钮 1 :通用主页按钮。在单击此按钮的任何时候,返回主表盘,手表能够进入睡眠模式(启用 1.5 秒计时器)。
如果手表处于睡眠模式,还会唤醒手表(除了倾斜唤醒之外)。
按钮 2:无线模式。按下这个按钮,按钮 2-5就 被重新分配以帮助导航不同的 MAC 地址。
按钮 3 切换 MAC 地址,按钮 4 更改所选的 MAC 地址数字,按钮 5 遍历当前所选 MAC 地址的数字。
按钮 3:惯性测量单元 (IMU) 模式按钮。单击按钮 3 后,将出现一个菜单,显示来自板载ICM42670的当前陀螺仪和加速读数。
按钮 4 和 5 很特别,本身不会做任何事情,但可以1,2,3组合,完成一些功能:按住按钮 4 并单击按钮 1 ,将打开手表的手电筒屏幕。
按住按钮 4 并单击按钮 2 将通知手表开始 WiFi 扫描。这会将手表更改为新的空白屏幕,几秒钟后将出现本地 2.4GHz 网络。网络数据将包括 SSID(名称)、RSSI(信号强度)和身份验证模式(网络的安全性 0-7)。
按住按钮 4 并单击按钮 3 将使手表进入时钟更改模式。
按钮 5 组合是独一无二的,因为它们都充当无线热键。这样,您不必在每次想要发送无线信号时都导航到无线菜单。
按住按钮 5 并单击按钮 1 将向 菜单中的第一个 MAC 地址发送 1,按住按钮 5 并单击按钮 2 将向 菜单中的第二个 MAC 地址发送 1,依此类推最多三个。
应该注意的是,手表必须处于打开状态才能使所有这些工作正常,除非将数据发送到第一个 MAC 地址(按钮 1 将其唤醒)。
要激活 LiDAR,按住按钮 1 并按下按钮 2。要激活激光指示器,按住按钮 1 并按下按钮 3。
如果在任何时候出现问题,可以随时单击启动按钮旁边的硬件重置按钮。
最后是编程部分,这个项目太复杂了,直接使用 ESP-IDF(ESP32 微控制器的官方物联网开发框架)。
代码在这里(复制到浏览器打开):https://github.com/RoboticWorx/Gateway-Smartwatch/tree/main/Code
这绝对是一个非常实用的项目,但还是可以继续改进的:
- 类似于 Flipper Zero 可以执行的更多 RFID 功能
- 手表内置的红外摄像头(用于热成像),用于以 32x24 分辨率进行温度感应。
- 更改为触摸屏
- LoRa 模块发送命令的远程无线电通信
- 5GHz 无线功能(希望 ESP32-C5 能为此而推出)。
- GPS实时坐标功能、磁力计
- 实时摄像头监控(外部摄像头馈送到手表显示屏上)。
- 延长电池续航时间。