Примечание. Этот проект не одобрен и не поддерживается Lime или какими-либо дочерними компаниями. Делайте это только на своем легально приобретенном скутере! Их часто можно купить на аукционах.
Цель этого проекта — заменить Интернет вещей Lime Gen 3 на собственный, чтобы мы могли управлять им с помощью нашего собственного приложения. Если вы узнаете больше о сообщении, пожалуйста, отправьте его здесь.
Модуль IoT заменяется микроконтроллером ESP32, что позволяет нам управлять самокатом с помощью нашего приложения. Приложение взаимодействует с ESP32 с помощью Bluetooth Low Energy (BLE). ESP32 заменяет функцию оригинального Интернета вещей, а также предоставляет обратную связь в режиме реального времени о скорости, уровне заряда батареи и другую информацию.
Установите надстройку ESP32 для Arduino IDE, если у вас ее еще нет. Вот учебник
Установите библиотеку crc с помощью robtillaart из менеджера библиотек.
Прошить контроллер разблокированной прошивкой.
Перенесите код Arduino из папки LimeIoT в файл esp32.
Примечание. Контроллер подает напряжение 36 В. Поэтому вам нужно преобразовать его в стабильное напряжение 5 В для дисплея и esp32. Я сделал это с помощью понижающего преобразователя и ams1117.
Подключите провода:
Разъем | ЭСП32 |
---|---|
Блокировка контроллера | ГПИО 12 |
Контроллер RX | GPIO 1 |
Контроллер ТХ | ГПИО 3 |
Контроллер 36В | Понижающий преобразователь -> ams1117 -> 5В |
Земля контроллера | земля |
Дисплей 5 В | 5В |
Земля дисплея | земля |
Отображение передачи | ГПИО 16 |
Дисплей приема | ГПИО 17 |
Если хотите, можете подключить колонку к GPIO 13
.
Скачать приложение можно здесь: App.apk.
Пароль Bluetooth по умолчанию — 123456789
. Вы можете изменить его в файле ble_security.ino.
В настоящее время совместимо только с Android и хорошо смотрится только на телефонах, совместимых с Material You.
Если вы не хотите/не можете использовать это приложение, вы можете просто загрузить приложение терминала Bluetooth, например nRF Connect (Play Store | App Store), и отправлять команды самостоятельно:
Команды | Действие |
---|---|
unlock | Разблокирует самокат |
lock | Выключает контроллер |
unlockforever | Сохраняет самокат разблокированным при отключении |
alarm | пусть скутер подаст звуковой сигнал (если подключен динамик) |
Чтобы разблокировать контроллер, подайте напряжение 3,3 В на синий провод, подключенный к IoT, и отправьте команду 464316610001F1F28F
чтобы включить его. После включения отправляйте контрольный сигнал 4643110100084C494D4542494B45BE8A
каждые 500 мс. Чтобы выключить контроллер, отключите питание 3,3 В и отправьте команду 464316610001F0E2AE
. Скорость передачи для всех команд составляет 9600
.
Команда, отправляемая контроллером в 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
Выключить красный светодиод можно следующей командой: 4C 42 44 43 50 01 10 1B 00 08 03 00 00 00 03 00 00 00