Lime_Gen3_IoT_Replacement

注意:本项目未经 Lime 或任何关联公司认可或支持。请仅在你合法拥有的滑板车上进行此操作!你通常可以在拍卖会上买到它们。

cover

本项目的目标是用自定义的 IoT 替换 Lime Gen 3 的 IoT,以便我们可以用自己的应用程序控制它。如果你发现有关通信的更多信息,请在此提交。

我目前正在开发 PCB 和应用程序。一旦我有了工作原型,我将在此发布。

工作原理

IoT 模块被 ESP32 微控制器取代,使我们能够通过应用程序控制滑板车。应用程序使用低功耗蓝牙 (BLE) 与 ESP32 通信。ESP32 取代了原始 IoT 的功能,同时还提供关于速度、电池电量和其他信息的实时反馈。

安装

如果尚未安装,请为 Arduino IDE 安装 ESP32 插件。 这是一个教程

使用 解锁的固件 刷新控制器。

LimeIoT 文件夹将 Arduino 代码刷入 ESP32。

注意:控制器提供 36V 电压。所以你必须将其转换为稳定的 5V 以供显示器和 ESP32 使用。我使用了降压转换器和 ams1117 来完成。

连接电线

LimeIoTConnector

连接器 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 升级

示例:4C 42 44 43 50 01 10 11 00 09 01 31 01 1E 02 00 CD 01 00 9A

GitHub

查看 Github