Написать ПО для удаленного управления скутерами Ninebot

Автор Artoil, 27 Июнь 2018 в 21:27

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Artoil

требуется написать или готов купить готовое решение

MCZarin

[user]Artoil[/user], что вы подразумеваете под "удаленным управлением"? И раз оно удаленное, видимо, одного ПО будет недостаточно, нужен еще некий канал связи.
KingSong KS-16S

Artoil

Для начала нужен API / SDK для доступа к функционалу скутера, а канал связи - с помощью встраиваемого GSM-трекера(или иной технологии, сейчас есть варианты)

Валерий В

[user]Artoil[/user], здравствуйте! У вас что нибудь получилось? Хочу открыть шеринг электросамокатов, поэтому хочу узнать как управлять самокатом через свое самописное мобильное приложение. GPS в самокатах встроен от производителя или самому надо встраивать?

Валерий В

Ищу кто может за деньги описать архитектуру интеграции мобильного приложения с электросамокатом Ninebot es3 от Segway или Xiaomi Mijia.

Хотим запустить шеринг электросамокатов как в Москве сделал Youdrive lite, но в другой стране. Но не с тросовыми замками и станциями, а без станций (dockless), как в США делает стартап Bird или Spin.

Как выглядит взятие в аренду самоката:

На самокате есть наклейка с кодом. Подходишь к самокату, открываешь приложение на телефоне, включаешь блютус на телефоне. Включаешь самокат (кнопка на самокате). Вводишь номер самоката в приложение. Приложение подключается к самокату и разблокирует его. Можно ехать, начинается подсчет времени аренды самоката.

Затем решили завершить аренду самоката. Останавливаемся, в приложении жмем «Завершить аренду», после этого самокат передает в приложение инфу о своем местоположении, сколько времени длилась аренда. После чего самокат блокируется.

То есть нужно написать ту часть софта, когда приложение через блютус разблокирует/блокирует самокат, получает данные после поездки. Также важно использовать какой то индентификатор, например в виде 4 значного кода на наклейке, чтобы пользователь мог среди 10 рядом стоящих самокатов взять в аренду определенный.

Есть кто может помочь? В нашей команде есть один серверный/фронтенд разработчик и два разработчика под мобильные приложения. Ищем человека, который поможет наладить связь с самокатом


MCZarin

GPS в самокатах нету, нужно устанавливать свой, вместе с блютусом и вашим контроллером. От самого самоката - только питание.

Цитата: Валерий В от 01 Окт. 2018 в 15:46Останавливаемся, в приложении жмем «Завершить аренду», после этого самокат передает в приложение инфу о своем местоположении, сколько времени длилась аренда.
Время аренды нужно считать на сервере. Данные гнать в шифрованном виде от самоката до сервера. Приложение не должно видеть содержимое, а использоваться лишь в качестве приемопередатчика для шифрованного трафика. Иначе вас какой-нибудь школьник взломает...
Соответственно, блокировкой самоката также должен управлять сервер.

И кстати, если вы не хотите ставить GSM-модуль в сам самокат, как вы его будете искать в случае угона? Ведь достаточно унести его в гараж, пару часов поковырять, и это уже обычный самокат, не подконтрольный вам.
KingSong KS-16S

Валерий В

Цитата: MCZarin от 02 Окт. 2018 в 02:01
Приложение ... лишь в качестве приемопередатчика для шифрованного трафика.
Насчет шифрования спасибо за совет, даже не подумал. То что приложение как посредник между самокатом и сервером так и предполагал. Приложил картинку диаграммы для сценария старта и завершения аренды:


Цитата: MCZarin от 02 Окт. 2018 в 02:01
И кстати, если вы не хотите ставить GSM-модуль в сам самокат, как вы его будете искать в случае угона?
А как GSM поможет? Я думал что достаточно GPS модуля, который будет говорить где самокат находится. А другая инфа (какой заряд, кто брал в аренду, время аренды) будет передаваться через приложение человека, который брал самокат в аренду. К тому же GSM модуль усложняет оснащение самоката, надо еще симку для него ставить. Зачем вообще GSM?




MCZarin

Цитата: Валерий В от 04 Окт. 2018 в 23:35Приложил картинку диаграммы для сценария старта и завершения аренды:
Парковка самоката нарисована правильно (если инфа с самоката на сервер передается в шифрованном виде).
А вот разблокировка неправильная. Последовательность должна быть полностью обратной парковке, плюс дополнительный шаг в самом начале: запрос от пользователя на сервер о разблокировке. Команду разблокировки на самокат должен посылать сервер (опять таки, шифрованную).
Кроме того, перед разблокировкой сервер должен убедиться, что самокат работоспособен. То есть запросить у самоката данные о заряде и прочую диагностику.

Деньги лучше снимать до разблокировки. Т.е. пользователь сначала пополняет счет своего аккаунта, а разблокировка самоката происходит с указанием времени аренды. Если человек не укладывается во время, он доплачивает до истечения времени. Если аренда избыточна, часть средств возвращается на счет пользователя после парковки. Короче, аналогично московским платным парковкам, транспортным картам и т.д.

Если это все грамотно реализовать, то вас не взломают. Иначе возможны варианты. ;)

Цитата: Валерий В от 04 Окт. 2018 в 23:35А как GSM поможет? Я думал что достаточно GPS модуля, который будет говорить где самокат находится.
GPS не имеет в своем составе радиопередатчика. Он может сообщить координаты вовне либо по проводам, либо через какой-то дополнительный радиомодуль. По вашему описанию радиомодулем является блютус. Но блютус работает на 10, максимум 100 метров и только в том случае, когда к нему подключается пользователь. Когда пользователя нет (самокат припаркован), ваш сервер не имеет никакой возможности общаться с самокатом. Где он, что с ним - неизвестно. "Забирай меня скорей, увози за сто морей." :)
А GSM работает везде, где есть покрытие сотовой сети.
KingSong KS-16S

Валерий В

Цитата: MCZarin от 05 Окт. 2018 в 03:02
Последовательность должна быть полностью обратной парковке, плюс дополнительный шаг в самом начале: запрос от пользователя на сервер о разблокировке. Команду разблокировки на самокат должен посылать сервер (опять таки, шифрованную).
Кроме того, перед разблокировкой сервер должен убедиться, что самокат работоспособен. То есть запросить у самоката данные о заряде и прочую диагностику.
Согласен

Цитата: MCZarin от 05 Окт. 2018 в 03:02
Деньги лучше снимать до разблокировки.
Я бы не стал, нигде такого не встречал. В Убере, Яндекс Такси, Яндекс Драйве, Youdrive lite такого нет.
Думаю списывать деньги после поездки, а оплату сделать поминутной.
C необходимостью ставить GSM согласен, я что то думал, что голый GPS сможет отправлять местоположение на сервер.
Вы можете так оборудовать самокат?

MCZarin

Цитата: Валерий В от 06 Окт. 2018 в 00:38Вы можете так оборудовать самокат?
У вас интересный проект, но увы, у меня сейчас физически нет времени на участие в чем-либо. Поэтому могу только немного пофлудить на форуме. :)

Цитата: Валерий В от 06 Окт. 2018 в 00:38Я бы не стал, нигде такого не встречал. В Убере, Яндекс Такси, Яндекс Драйве, Youdrive lite такого нет.
Думаю списывать деньги после поездки, а оплату сделать поминутной.
Основная идея - убедиться в платежеспособности пользователя. Если есть механизмы, как это можно сделать с пост-оплатой, то не вопрос.
KingSong KS-16S

Валерий В

MCZarin, спасибо за полезные идеи! Я все еще в поиске низкоуровневого программиста, который сможет встроить в самокат GSM, GPS и научить их общаться с мобильным приложением и сервером

Валерий В

Цитата: MCZarin от 02 Окт. 2018 в 02:01
... Приложение не должно видеть содержимое, а использоваться лишь в качестве приемопередатчика для шифрованного трафика...

Если будет GSM модуль, то может пусть самокат напрямую общается с сервером, а не через приложение пользователя? Хотя в этом случае увеличится расход трафика на SIM карте, которая встроена в самокат. Как думаете?

Smok

[user]Валерий В[/user], самокат никак не должен подключаться к приложению, вообще никак, 0, зеро. все через ваш сервер.
иначе посчитайте сколько взломано онлайн игр (минимум, т.к. только через сервер) и оффлайн игр (много, т.к. каждый крутит свою игру как хочет)
а вообще разработка такой штуки-дрюки будет стоить от 1млн руб и разделится на 3 части
- управление самокатом, вкл, выкл и т.д. (железо + софт + инет)
- сервер, через который все будет работать так, как задумано. он же считает время, снимает деньги с привязаннй карты, отправляет запрос на ремонт самоката, зарядку самоката, обновляет ПО самоката и т.д.
- приложение, которое позволит клиентам стучаться к серверу и просить у него разблокировать самокат, заблокировать самокат, посчитать время и деньги.
- внутренний сайт, где будут видны все поездки, локации, состояние, заряд, фотки и т.д.

вам нужно будет найти 3 разных разработчиков:
- железо + софт для контроля самоката
- сервер + сайт
- приложение для андроид\ios (это кстати 2 разных разраба)

но можно вместо приложения сделать сайт или приложение-браузер, которое будет работать с мобильным сайтом. это будет дешевле и это может сделать спец занимающийся сайтом и сервером
Спойлер
ekross, 3kw, 72v 27AH,magura mt5e, kls7230s, marzocchi 888 rc3, DNM DV22AR, R18

nicomunet123

#13
Мне кажется, что на BIRD и прочих скутерах стоит другая головная плата.

И вообще, Ninebot в аренду - такое себе дело...

Еще не забывайте разницу в менталитете. В США эти самокаты начали ломать и угонять, только после того, как они всех задолбали, а в РФ сразу на зап. части разберут и угонят. Прокатным велосипедам в Москве и так достается (несмотря на камеры), а Вы хотите такое высокотехнологичное устройство сдавать.
Так что как  минимум надо будет все болты заменить на хитрые, и ликвидировать мех-м складывания.
Что касается взлома - это дело 15-и минут и быстрых ног. Разобрать охранную систему, обрезать дорожки GSM и GPS, замкнуть штатную кнопку включения и уехать. Никакие программные защиты от взлома не помогут, только алюминиевый или стальной корпус с хитрыми болтами, или вообще заклепками.

Я бы начал с защиты от вандализма. Заменил бы все болты, придумал бы корпус подходящий для электроники, и только потом бы занялся разработкой платы и ПО.
E-TWOW Eco -> Kugoo -> Ninebot ES1 -> Ninebot ES-Trash

MCZarin

Цитата: Валерий В от 06 Окт. 2018 в 18:04Если будет GSM модуль, то может пусть самокат напрямую общается с сервером, а не через приложение пользователя? Хотя в этом случае увеличится расход трафика на SIM карте, которая встроена в самокат.
Лучше конечно напрямую. Разумеется, это не избавляет от шифрования трафика, но приложение становится заметно проще (общение только с сервером), и у злоумышленника меньше возможностей.
Трафик там в любом случае будет небольшой.
KingSong KS-16S

Валерий В

Цитата: Smok от 07 Окт. 2018 в 03:34
[user]Валерий В[/user], самокат никак не должен подключаться к приложению, вообще никак, 0:
Обновил схему работы системы. Опубликую ниже отдельным постом. Что скажете?

Цитата: Smok от 07 Окт. 2018 в 03:34
вообще разработка такой штуки-дрюки будет стоить от 1млн руб и разделится на 3 части
В курсе, уже есть все люди кроме разработчика микроконтроллеров. Сейчас задача переоборудовать самокат под наши нужды.

Валерий В

Цитата: nicomunet123 от 07 Окт. 2018 в 03:43
Мне кажется, что на BIRD и прочих скутерах стоит другая головная плата.
У разных сервисов они по разному выглядят. Вон московский Youdrive lite смогли все встроить внутри, снаружи ничего не торчит.

Цитата: nicomunet123 от 07 Окт. 2018 в 03:43
И вообще, Ninebot в аренду - такое себе дело...
А что не так с Segway Ninebot? Он менее хлипкий чем Ксаоми, есть дополнительная батарея, батарея в рулевой стойке — надежнее.

Цитата: nicomunet123 от 07 Окт. 2018 в 03:43
начали ломать и угонять, только после того, как они всех задолбали, а в РФ сразу на зап. части разберут и угонят.
Думаю если не наводнять ими улицы, то негатива не будет. Также надо постоянно следить, чтобы они не валялись где попало.
От угона не спасешься, думаю прибыль покрывает издержки на вандализм и кражи. Самый крупный игрок американский Bird уже примерно в 40 городах работает и самокаты у них безстанционные

Добавлено 07 Окт 2018 в 23:51

Цитата: MCZarin от 07 Окт. 2018 в 06:53
Лучше конечно напрямую. Разумеется, это не избавляет от шифрования трафика, но приложение становится заметно проще (общение только с сервером), и у злоумышленника меньше возможностей.
Трафик там в любом случае будет небольшой.

Обновил схемы работы системы. Что думаете?



MCZarin

[user]Валерий В[/user], примерно так. Но при взятии в аренду вы снова зачем-то один шаг выкинули, хотя при парковке он есть. :)
После команды о разблокировке самокат должен вернуть на сервер ответ, что все ок, он разблокировался (заодно и всю стандартную телеметрию). Если же ответ отрицательный, сервер сбрасывает учет времени и отправляет пользователю сообщение об ошибке.

Еще имейте ввиду, что мы тут принимаем, что у нас всегда все сообщения доходят 100%. В реальности это не так, и протоколы взаимодействия на самом деле несколько сложнее.
Например: человек запрашивает у сервера самокат; сервер посылает самокату команду на разблокировку; самокат разблокируется и посылает ответ серверу. И по какой-то причине ответ не доходит (в том числе, если его специально глушат). Дальше пользователь (возможно - злоумышленник) может встать на самокат и поехать, хотя сервер еще не начал учет времени (или начал? зависит от выбранной логики работы). Т.е. на самом деле требуется еще много всяких промежуточных запросов-подтверждений, чтобы система стала достаточно отказоустойчива.
Но это уже нюансы, тут программисты железки и сервера между собой должны решить, что и как делать. Также будьте готовы менять протоколы после опытной эксплуатации.
KingSong KS-16S