Catatan: Proyek ini tidak didukung atau didukung oleh Lime atau perusahaan afiliasinya. Lakukan ini hanya pada skuter milik Anda yang diperoleh secara legal! Anda sering dapat membelinya di lelang.
Tujuan dari proyek ini adalah untuk menggantikan IoT dari Lime Gen 3 dengan yang kustom, sehingga kita dapat mengontrolnya dengan aplikasi kita sendiri. Jika Anda mengetahui lebih lanjut tentang komunikasi tersebut, silakan kirimkan di sini.
Modul IoT diganti dengan mikrokontroler ESP32 untuk memungkinkan kami mengontrol skuter dengan aplikasi kami. Aplikasi ini berkomunikasi dengan ESP32 menggunakan Bluetooth Low Energy (BLE). ESP32 menggantikan fungsi IoT asli sekaligus memberikan umpan balik real-time mengenai kecepatan, tingkat baterai, dan informasi lainnya.
Instal add-on ESP32 untuk Arduino IDE jika Anda belum memilikinya. Ini tutorialnya
Instal perpustakaan crc oleh robtillaart dari pengelola perpustakaan.
Flash pengontrol dengan firmware yang tidak terkunci.
Flash kode Arduino dari folder LimeIoT ke esp32.
Catatan: Pengontrol memberi Anda 36v. Jadi Anda harus mengubahnya menjadi 5v stabil untuk tampilan dan esp32. Saya telah melakukannya menggunakan buck converter dan ams1117.
Hubungkan kabel:
Konektor | ESP32 |
---|---|
Kunci pengontrol | GPIO 12 |
Pengendali RX | GPIO 1 |
Pengendali TX | GPIO 3 |
Pengontrol 36v | Konverter uang -> ams1117 -> 5V |
Pengendali Gnd | Gnd |
Tampilkan 5v | 5V |
Tampilan Gnd | Gnd |
Tampilkan TX | GPIO 16 |
Tampilan RX | GPIO 17 |
Jika mau, Anda dapat menyambungkan speaker ke GPIO 13
.
Anda dapat mengunduh aplikasinya di sini: App.apk
Kata sandi bluetooth bawaannya adalah 123456789
. Anda dapat mengubahnya di file ble_security.ino.
Saat ini hanya kompatibel di Android dan hanya terlihat bagus dengan ponsel yang kompatibel dengan Material You.
Jika Anda tidak ingin/dapat menggunakan aplikasi ini, Anda cukup mengunduh aplikasi terminal bluetooth seperti nRF Connect (Play Store | App Store) dan mengirimkan sendiri perintahnya:
Perintah | Tindakan |
---|---|
unlock | Membuka kunci skuter |
lock | Mematikan pengontrol |
unlockforever | Menjaga skuter tetap tidak terkunci saat melepaskan sambungan |
alarm | biarkan skuter berbunyi (jika speaker terhubung) |
Untuk membuka kunci pengontrol, suplai 3,3V ke kabel biru yang terhubung ke IoT dan kirim perintah 464316610001F1F28F
untuk menyalakannya. Setelah dihidupkan, kirim detak jantung 4643110100084C494D4542494B45BE8A
setiap 500 mdtk. Untuk mematikan pengontrol, putuskan pasokan 3.3V dan kirim perintah 464316610001F0E2AE
. Baudrate untuk semua perintah adalah 9600
.
Perintah yang dikirim oleh pengontrol ke IoT terdiri dari 42 byte. Byte ke-9 mewakili kecepatan, dan byte ke-20 mewakili level baterai. Dua byte terakhir dari perintah adalah checksum CRC-16/XMODEM.
Nomor byte | Arti |
---|---|
9 | Kecepatan |
20 | Baterai |
dua byte terakhir | Pemeriksaan 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
Baudrate: 115200
Checksum: width=8 poly=0x31 init=0x0a refin=true refout=true xorout=0x00 check=0xc1 residue=0x00
Tabel berikut menunjukkan arti byte yang diketahui dalam perintah yang dikirim ke layar:
byte | Arti |
---|---|
12 | Status (lihat di bawah) |
14 | Baterai |
16-17 | Kecepatan |
byte terakhir | checksum |
byte | Status |
---|---|
21 | Pindai Untuk Berkendara |
22 | Tidak tersedia |
23 | Dijeda |
24 | Terkunci |
25 | Selesai |
26 | Mengisi daya |
31 | Penggerak |
41 | Mengemudi Baterai Lemah |
42 | Peringatan Mengemudi |
43 | Mengemudi Tanpa Parkir |
44 | Mengemudi Tanpa Berkendara |
45 | Mengemudi Kecepatan Maks |
51 | Perbaikan |
4C 42 44 43 50 01 10 11 00 09 01 31 01 1E 02 00 CD 01 00 9A
Anda dapat mematikan LED merah dengan perintah berikut: 4C 42 44 43 50 01 10 1B 00 08 03 00 00 00 03 00 00 00