Hinweis: Dieses Projekt wird weder von Lime noch von verbundenen Unternehmen unterstützt oder unterstützt. Tun Sie dies nur mit einem legal erworbenen Roller, den Sie besitzen! Sie können sie oft auf Auktionen kaufen.
Das Ziel dieses Projekts ist es, das IoT des Lime Gen 3 durch ein benutzerdefiniertes zu ersetzen, damit wir es mit unserer eigenen App steuern können. Wenn Sie mehr über die Mitteilung erfahren möchten, reichen Sie diese bitte hier ein.
Das IoT-Modul wird durch einen ESP32-Mikrocontroller ersetzt, damit wir den Roller mit unserer App steuern können. Die App kommuniziert mit dem ESP32 über Bluetooth Low Energy (BLE). Der ESP32 ersetzt die Funktion des ursprünglichen IoT und liefert gleichzeitig Echtzeit-Feedback zu Geschwindigkeit, Batteriestand und anderen Informationen.
Installieren Sie das ESP32-Add-on für Arduino IDE, falls Sie es noch nicht getan haben. Hier ist eine Anleitung
Installieren Sie die crc-Bibliothek von robtillaart über den Bibliotheksmanager.
Flashen Sie den Controller mit entsperrter Firmware.
Flashen Sie den Arduino-Code aus dem LimeIoT-Ordner auf den esp32.
Hinweis: Der Controller liefert 36 V. Sie müssen es also für das Display und den ESP32 auf stabile 5 V umstellen. Ich habe es mit einem Abwärtswandler und ams1117 gemacht.
Schließen Sie die Drähte an:
Stecker | ESP32 |
---|---|
Controller-Sperre | GPIO 12 |
Controller RX | GPIO 1 |
Controller TX | GPIO 3 |
Controller 36v | Abwärtswandler -> ams1117 -> 5V |
Controller-Masse | Gnd |
Anzeige 5V | 5V |
Masse anzeigen | Gnd |
TX anzeigen | GPIO 16 |
RX anzeigen | GPIO 17 |
Wenn Sie möchten, können Sie den Lautsprecher an GPIO 13
anschließen.
Sie können die App hier herunterladen: App.apk
Das Standard-Bluetooth-Passwort lautet 123456789
. Sie können es in der Datei ble_security.ino ändern.
Derzeit nur auf Android kompatibel und sieht nur mit Material You-kompatiblen Telefonen gut aus.
Wenn Sie die App nicht nutzen möchten/können, können Sie einfach eine Bluetooth-Terminal-App wie nRF Connect (Play Store | App Store) herunterladen und die Befehle selbst senden:
Befehle | Aktion |
---|---|
unlock | Entriegelt den Roller |
lock | Schaltet den Controller aus |
unlockforever | Hält den Roller beim Trennen entriegelt |
alarm | Lassen Sie den Roller piepen (sofern Lautsprecher angeschlossen ist) |
Um den Controller zu entsperren, versorgen Sie das mit dem IoT verbundene blaue Kabel mit 3,3 V und senden Sie den Befehl 464316610001F1F28F
um ihn einzuschalten. Senden Sie nach dem Einschalten alle 500 ms den Heartbeat 4643110100084C494D4542494B45BE8A
. Um den Controller auszuschalten, unterbrechen Sie die 3,3-V-Versorgung und senden Sie den Befehl 464316610001F0E2AE
. Die Baudrate für alle Befehle beträgt 9600
.
Der vom Controller an das IoT gesendete Befehl besteht aus 42 Bytes. Das 9. Byte repräsentiert die Geschwindigkeit und das 20. Byte repräsentiert den Batteriestand. Die letzten beiden Bytes des Befehls sind eine CRC-16/XMODEM-Prüfsumme.
Byte-Nummer | Bedeutung |
---|---|
9 | Geschwindigkeit |
20 | Batterie |
letzten zwei Bytes | CRC-16/XMODEM-Prüfsumme |
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
Baudrate: 115200
Prüfsumme: width=8 poly=0x31 init=0x0a refin=true refout=true xorout=0x00 check=0xc1 residue=0x00
Die folgende Tabelle zeigt die bekannte Bedeutung der Bytes in den an das Display gesendeten Befehlen:
Byte | Bedeutung |
---|---|
12 | Status (siehe unten) |
14 | Batterie |
16-17 | Geschwindigkeit |
letztes Byte | Prüfsumme |
Byte | Status |
---|---|
21 | Scannen zum Fahren |
22 | Nicht verfügbar |
23 | Angehalten |
24 | Gesperrt |
25 | Erledigt |
26 | Aufladen |
31 | Fahren |
41 | Beim Fahren ist die Batterie schwach |
42 | Fahralarm |
43 | Fahren ohne Parken |
44 | Fahren, kein Reiten |
45 | Fahren mit Höchstgeschwindigkeit |
51 | Upgrade |
4C 42 44 43 50 01 10 11 00 09 01 31 01 1E 02 00 CD 01 00 9A
Sie können die rote LED mit dem folgenden Befehl ausschalten: 4C 42 44 43 50 01 10 1B 00 08 03 00 00 00 03 00 00 00