Lime_Gen3_IoT_Replacement
注意:本项目未经 Lime 或任何关联公司认可或支持。请仅在你合法拥有的滑板车上进行此操作!你通常可以在拍卖会上买到它们。
本项目的目标是用自定义的 IoT 替换 Lime Gen 3 的 IoT,以便我们可以用自己的应用程序控制它。如果你发现有关通信的更多信息,请在此提交。
我目前正在开发 PCB 和应用程序。一旦我有了工作原型,我将在此发布。
工作原理
IoT 模块被 ESP32 微控制器取代,使我们能够通过应用程序控制滑板车。应用程序使用低功耗蓝牙 (BLE) 与 ESP32 通信。ESP32 取代了原始 IoT 的功能,同时还提供关于速度、电池电量和其他信息的实时反馈。
安装
如果尚未安装,请为 Arduino IDE 安装 ESP32 插件。 这是一个教程
使用 解锁的固件 刷新控制器。
从 LimeIoT 文件夹将 Arduino 代码刷入 ESP32。
注意:控制器提供 36V 电压。所以你必须将其转换为稳定的 5V 以供显示器和 ESP32 使用。我使用了降压转换器和 ams1117 来完成。
连接电线
| 连接器 | ESP32 |
|---|---|
| 控制器锁 | GPIO 13 |
| 控制器 RX | GPIO 1 |
| 控制器 TX | GPIO 3 |
| 控制器 36V | 降压转换器 -> ams1117 -> 5V |
| 控制器 GND | GND |
| 显示器 5V | 5V |
| 显示器 GND | GND |
| 显示器 TX | GPIO 16 |
| 显示器 RX | GPIO 17 |
如果你愿意,可以将扬声器连接到 GPIO 14。
用法
你可以在此处下载应用程序:App.apk
默认蓝牙密码是 123456789。你可以在 ble_security.ino 文件中更改它。
目前仅兼容 Android,并且仅在与 Material You 兼容的手机上看起来效果好。
如果你不想/不能使用该应用程序,你可以下载一个蓝牙终端应用程序,如 nRF Connect (Play 商店 | App Store),然后自己发送命令。
| 命令 | 操作 |
|---|---|
解锁 |
解锁滑板车 |
锁定 |
关闭控制器 |
永久解锁 |
断开连接时保持滑板车解锁状态 |
警报 |
让滑板车发出蜂鸣声(如果连接了扬声器) |
控制器通信
要解锁控制器,需要向连接到 IoT 的蓝色线提供 3.3V 电压,并且需要以 9600 的波特率每 500 毫秒发送十六进制命令 4643110100084C494D4542494B45BE8A。切断 3.3V 电源并停止命令传输将在大约 60 秒后关闭控制器。
控制器发送到 IoT 的命令包含 42 个字节。第 9 个字节表示速度,第 20 个字节表示电池电量。命令的最后两个字节是 CRC-16/XMODEM 校验和。
| 字节数 | 含义 |
|---|---|
| 9 | 速度 |
| 20 | 电池 |
| 最后两个字节 | CRC-16/XMODEM 校验和 |
示例:46 58 0C FF 00 22 11 00 00 40 00 00 41 3F 60 42 00 FF 44 64 52 00 61 F1 80 00 00 72 01 5C 01 59 82 00 00 00 00 E0 00 00 0A B3
显示器通信
- 波特率:
115200 - 校验和:
width=8 poly=0x31 init=0x0a refin=true refout=true xorout=0x00 check=0xc1 residue=0x00
下表显示了发送到显示器的命令中字节的已知含义
| 字节 | 含义 |
|---|---|
| 12 | 状态(见下文) |
| 14 | 电池 |
| 16-17 | 速度 |
| 最后一个字节 | 校验和 |
状态字节
| 字节 | 状态 |
|---|---|
| 21 | 扫描到骑行 |
| 22 | 不可用 |
| 23 | 暂停 |
| 24 | 锁定 |
| 25 | 已完成 |
| 26 | 充电中 |
| 31 | 骑行中 |
| 41 | 骑行中低电量 |
| 42 | 骑行中警告 |
| 43 | 骑行中禁止停车 |
| 44 | 骑行中禁止骑行 |
| 45 | 骑行中最高速度 |
| 51 | 升级 |

