참고: 이 프로젝트는 Lime 또는 그 어떤 계열사에서도 보증하거나 지원하지 않습니다. 귀하가 소유하고 있으며 합법적으로 구입한 스쿠터에만 이 작업을 수행하십시오! 경매를 통해 구입하는 경우가 많습니다.
이 프로젝트의 목표는 Lime Gen 3의 IoT를 맞춤형으로 교체하여 자체 앱으로 제어할 수 있도록 하는 것입니다. 커뮤니케이션에 대해 자세히 알아보려면 여기에 제출해 주세요.
IoT 모듈은 ESP32 마이크로컨트롤러로 교체되어 앱으로 스쿠터를 제어할 수 있습니다. 앱은 BLE(Bluetooth Low Energy)를 사용하여 ESP32와 통신합니다. ESP32는 원래 IoT의 기능을 대체하는 동시에 속도, 배터리 수준 및 기타 정보에 대한 실시간 피드백을 제공합니다.
아직 Arduino IDE용 ESP32 애드온을 설치하지 않았다면 설치하세요. 여기 튜토리얼이 있습니다
라이브러리 관리자에서 robtillaart를 통해 crc 라이브러리를 설치합니다.
잠금 해제된 펌웨어로 컨트롤러를 플래시합니다.
LimeIoT 폴더의 Arduino 코드를 esp32로 플래시합니다.
참고: 컨트롤러는 36v를 제공합니다. 따라서 디스플레이와 esp32를 위해 안정적인 5v로 변환해야 합니다. 나는 벅 컨버터와 ams1117을 사용하여 이 작업을 수행했습니다.
전선을 연결하십시오:
커넥터 | ESP32 |
---|---|
컨트롤러 잠금 | GPIO 12 |
컨트롤러 RX | GPIO 1 |
컨트롤러 TX | GPIO 3 |
컨트롤러 36v | 벅 컨버터 -> ams1117 -> 5V |
컨트롤러 접지 | 접지 |
디스플레이 5V | 5V |
디스플레이 접지 | 접지 |
디스플레이 송신 | GPIO 16 |
디스플레이 RX | GPIO 17 |
원하는 경우 스피커를 GPIO 13
에 연결할 수 있습니다.
여기에서 앱을 다운로드할 수 있습니다: App.apk
기본 블루투스 비밀번호는 123456789
입니다. ble_security.ino 파일에서 변경할 수 있습니다.
현재 Android에서만 호환되며 Material You 호환 휴대폰에서만 잘 보입니다.
앱을 원하지 않거나 사용할 수 없는 경우 nRF Connect(Play Store | App Store)와 같은 블루투스 터미널 앱을 다운로드하고 직접 명령을 보낼 수 있습니다.
명령 | 행동 |
---|---|
unlock | 스쿠터의 잠금을 해제합니다 |
lock | 컨트롤러를 끕니다. |
unlockforever | 연결을 끊을 때 스쿠터 잠금 해제 상태를 유지합니다. |
alarm | 스쿠터를 작동시키세요(스피커가 연결된 경우). |
컨트롤러 잠금을 해제하려면 IoT에 연결된 파란색 선에 3.3V를 공급하고 464316610001F1F28F
명령을 보내 전원을 켜세요. 전원이 켜지면 500ms마다 하트비트 4643110100084C494D4542494B45BE8A
보냅니다. 컨트롤러의 전원을 끄려면 3.3V 공급을 차단하고 464316610001F0E2AE
명령을 보내십시오. 모든 명령의 전송 속도는 9600
입니다.
컨트롤러가 IoT에 보내는 명령은 42바이트로 구성됩니다. 9번째 바이트는 속도를 나타내고, 20번째 바이트는 배터리 잔량을 나타냅니다. 명령의 마지막 2바이트는 CRC-16/XMODEM 체크섬입니다.
바이트 수 | 의미 |
---|---|
9 | 속도 |
20 | 배터리 |
마지막 2바이트 | 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
다음 명령을 사용하여 빨간색 LED를 끌 수 있습니다: 4C 42 44 43 50 01 10 1B 00 08 03 00 00 00 03 00 00 00