Starway Mini с мониторингом

#модернизация
+
1
2
Prana
Форумчанин
СамараRating: 250
Prana
28 february 2018, 18:40
Posted: 28 february 2018, 18:40

В декабре 2017 года я приобрел у уважаемого продавца Ecodrift самокат Starway Mini 4, в качестве апгрейда взамен китайскому клону JackHot, и сразу задумался о том, чего не хватает данному транспорту. Сразу пришлось перебрать рулевую, чтобы выкинуть стружку и зачистить шток для беспроблемного хождения во втулке. Возникли мысли о герметизации для поездок в дождливую погоду, и установке хорошей фары. В качестве руководства для этих работ были выбраны материалы Mister Big Joe.

Но покоя мне не давала проблема возможного конденсата и ржавчины в мотор-колесе, поэтому решено было оснастить самокат датчиками влажности и температуры для мониторинга его внутренного состояния. Мониторинг – не основная функция самоката, поэтому при выборе варианта реализации был отметен вариант с отдельным дисплеем для показаний, и сделан выбор в пользу их просмотра через WiFi с телефона. В качестве железки, которая бы это позволила делать, был выбран микроконтроллер ESP8266, и... сразу появились дополнительные идеи и хотелки.
В общем, чтобы не углубляться в историю всего процесса исканий, занявшего почти полтора месяца, сразу перейду к описанию того, что было сделано:


Самокат герметизирован (дисплейная плата, контроллер, мотор-колесо, дека), установлена шикарная фара от Ivan 100KWT, установлены датчики температуры и влажности в МК и деку (под контроллером), и еще один термометр снаружи. Дополнительно установлены светодиодные мини-поворотники в боковушках деки, и два USB-порта для подзарядки телефонов. Все управление светом, в т.ч. штатными габаритами перенесено на руль вместо кнопки на деке. Вся «навесная» электроника, не относящаяся к силовой части, подключена через предохранитель, и через кнопку в деке она подключена напрямую к аккумулятору, чтобы не зависеть от контроллера.


Теперь, что дает микроконтроллер и написанная к нему программа:

1. Веб-страницы:

а. страница с текущими показаниями датчиков

б. страница с графиками истории показаний за последние 2 часа

в. настройка параметров поведения системы: Wi-Fi сети, аварийной сигнализации и др.


2. Логика:

а. контролирует превышение предельных параметров по температуре (минимум, максимум) и влажности (максимум), при выходе за границы уведомляет пользователя

б. контролирует показатели поворотников, программно включает/выключает поворотники или аварийку

в. при отвале от Wi-Fi-сети ищет, к чему подцепиться. Если не находит - создает точку доступа, к которой в дороге можно подключиться телефоном

г. по приезду к знакомой Wi-Fi-сети, можно кратко нажать аварийку – и ESP переключится на нее


3. Настройки:

а. внешний вид пользовательских веб-страничек можно изменить без перепрограммирования, прямо через веб-сервер: они загружаются и пишутся на внутренний флеш.

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

в. в целом логика поведения системы (из пункта 2) не настраивается, но настраиваются ее параметры (частота моргания поворотников, частота опроса датчиков, время поиска сетей и т.п.)

г. параметры работы с Wi-Fi-сетями также настраиваются


4. Альтернативные варианты для общения с пользователем

Веб-странички - дело хорошее, но уже не слишком современное, да и требующее дополнительных телодвижений для просмотра. Поэтому реализован Telegram bot, сообщающий о данных датчиков пользователю. Работает он так:

а. при подключении к Wi-Fi бот сообщает текущий статус датчиков

б. при превышении допустимых параметров бот присылает сообщение о проблеме со статусом

в. у бота можно спросить отчет о статусе в данный момент

г. у бота есть кнопки, чтобы одним кликом перейти на страницу с графиками

д. в случае алярма, при наличии подключения к сети, пользователю еще может сваливаться СМС-сообщение (однократно)


Уведомления пользователю об аварийных ситуациях производятся через Telegram/СМС (при наличии WiFi), и дублируются морганием поворотников как «аварийки».


В реализации всего проекта старался максимально сохранить «заводской» внешний вид самоката, поэтому снаружи постарался внешний «колхоз» минимизировать.


В следующих сообщениях опишу детали реализации.

 16   
Prana
Форумчанин
СамараRating: 250
Prana
28 february 2018, 18:42
Posted: 28 february 2018, 18:42

При реализации проекта старался сохранить вид миника максимально близким к стоковому, использовал скутерные кнопки и т.п. Кажется, получилось :-)


 16   
Prana
Форумчанин
СамараRating: 250
Prana
28 february 2018, 18:45
Posted: 28 february 2018, 18:45

Электрическая часть:


Вот так выглядит электрическая часть миника в оригинале. Схема не принципиальная, поэтому абсолютной точности в ней нет, я набросал ее, чтобы показать произведенные изменения.



 12   
Prana
Форумчанин
СамараRating: 250
Prana
28 february 2018, 18:46
Posted: 28 february 2018, 18:46

Что было сделано:

1.     Вся «навесная», не силовая часть была запитана в обход контроллера, через кнопку на деке и предохранитель

2.     В правой боковинке деки был установлен DC-DC 48->5V 3A с небольшим радиатором. К нему подключены 2 USB-гнезда на рулевой стойке, модули поворотников, и DC-DC 5->3.3V 800mA для питания ESP8266 и датчиков.

3.     В левой боковинке расположились уже упомянутая DC-DC 5V->3.3V и ESP8266.

4.     На руле расположились выключатели габаритов, фар, поворотников и дублирующая их кнопка «аварийки».




 12   
Prana
Форумчанин
СамараRating: 250
Prana
28 february 2018, 18:59
Posted: 28 february 2018, 18:59

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


 15   
Jeronimo701
Форумчанин
Rating: 144
Jeronimo701
28 february 2018, 19:36
Posted: 28 february 2018, 19:36

Респектище!! Шикарная и большая проделана работа!! А главное без особого труда такое сможет повторить почти каждый. От себя только добавлю что если кто-то надумает собирать, то я бы брал не чистый esp8266, а с обвесом типа nodemcu, wemos1 - платы чуть больше, но в них уже имеется преобразователь напряжения с 5 до 3.3 вольт и микро юсб - не надо дополнительно брать tcpuart конвертер - воткнул в комп, поставил софт, дрова и прошивай на здоровье))

 2   
Vladimir Lavrulin
Подснежник
МоскваRating: 2674
Vladimir Lavrulin
28 february 2018, 20:13
Posted: 28 february 2018, 20:13

Это просто слов нет. Я такого подхода не видел еще. 


Я просто даже не знаю, что спросить, потому что мысли разбегаются. Поскольку сам являюсь и веб-разработчиком и бота телеграмного пишу, то мне все это очень близко и интересно, только я никогда не программировал микроконтроллеры. И не думал, что на них это делается вот так вот. Хочется расспросить и о ESP8266 и о том, как на нем веб-сервер поднять и какие у него интерфейсы и на чем именно бот написан и вообще... т.е. меня именно программная часть больше интересует, потому что в ней я хоть пойму что-то, а с электроникой сложнее. Но вся система целиком - восхищение!


Я просто понимаю, что мне сначала надо прогуглить ESP8266, а потом уже вопросы задавать...


Огромное спасибо за интереснейший материал!

Просто ВААЩЕ!

Мидас
Форумчанин
МоскваRating: 441
Мидас
28 february 2018, 21:12
Posted: 28 february 2018, 21:12

Космос ваще :)

Prana
Форумчанин
СамараRating: 250
Prana
28 february 2018, 22:57
Posted: 28 february 2018, 22:57

Где установлены датчики:
18b20 во влагозащитной гильзе выходит из деки и зажат в жгуте проводов - он измеряет уличную температуру;
один DHT22 (другое название - AM2302) - приклеен в нижней части статора мотор-колеса;

еще один DHT22 зажат между контроллером и дном деки - он снимает температуру и влажность около контроллера.

Тем, кто решится повторять/усовершенствовать проект могу посоветовать не полениться и поставить еще один или даже два 18b20 (не влагозащищенные, а простые "трехножки") около аккумулятора, постаравшись запихнуть как можно дальше - таким образом, можно будет мониторить еще и температуру батареи. Доработка программы потребуется незначительная. Я, если честно, поленился: если делать это по-хорошему, то нужно снимать температуру не только с передней стенки батареи, но и дальше, а у меня в планах не было вытаскивания аккумулятора из деки.

Установка:
1. 18b20  протаскивается через дырку в деке и устанавливается без особого напряжения.


2. Чтобы dht22 влез под контроллер, нужно его установить  горизонтально на усилитель (а не так, как криво ставит minimotors), потом взять хороший нож (строительный или канцелярский), и срезать верхнюю часть корпуса, как отмечено на картинке.

Засунуть датчик нужно в место, отмеченное красным, оставшейся плоскостью корпуса к контроллеру, чтобы снимать температуру с него, а не с дна деки.

3. Датчик в мотор-колесо ставить тяжелее всего, потому что силовые провода занимают почти всю полость внутри оси колеса. Мне помогли: силиконовая смазка, тонкий прочный медный провод и пайка: сначала очистил силовой провод от герметика, расшевелил его внутри полости в оси, и пролил силиконовой смазкой. Далее протолкнул со стороны обмоток медный провод "наружу", скрутил со всеми 3 жилами сигнального провода, идущего к датчику, и спаял. Весь кабель обильно смочил смазкой, и после этого еще минут 30 занимался движениями туда-сюда этим кабелем: то по-отдельности, то вместе с силовым. После протаскивания кабеля и приклеивания датчика к статору загерметизировал полость в оси с обеих сторон. 

 10   
Prana
Форумчанин
СамараRating: 250
Prana
28 february 2018, 23:12
Posted: 28 february 2018, 23:12

Элементы управления на руле:
https://ru.aliexpress.com/item/7-8-ATV-Quad/32675085118.html - переключатель поворотов, включатель для фары.
Свободной осталась еще зеленая кнопка без фиксации для звукового сигнала. Я сигнала не ставил, но вы можете для своих проектов ее использовать. Только обратите внимание, что большинство продающихся сигналов расчитаны на скутеры и мотоциклы с питанием 12В, и потребляют 1А и больше, а штатный DC-DC 48->12 довольно маломощный: он рассчитан на питание только габаритов и стоп-сигналов, которые в общей сложности потребляют всего порядка 4-5Вт. Хотите ставить что-то мощное с питанием 12В - сразу меняйте штатный DC-DC,  выбирая из тех, что принимают входные напряжения не менее, чем 60В.


https://ru.aliexpress.com/item/Motorcycle-Switch-Hazard-Light-Switch-Button-Double-Flash-Warning-Emergency-Lamp-Signal-Flasher-with-3-Wires/32716144601.html - кнопка аварийки, дублирует контакты поворотников. В моем проекте, помимо мигания "аварийкой", служит еще для того, чтобы заставить микроконтроллер искать знакомую WiFi-сеть - например, после приезда в помещение.


https://ru.aliexpress.com/item/7-8-Motorcycle-Bike-Scooter-Handlebar-ON-OFF-Headlight-Fog-Spot-Light-Switch-AA16-15/32829155305.html - кнопка включения габаритов. Перенесена из низин деки на самый верх на руле :-) 



Ну и полностью механическая деталь - компактный велозвоночек. Точно на тот же ссылки не нашел, но вот такого же типа: https://ru.aliexpress.com/item/5-colors-MTB-Handlebar-Mini-Invisible-Bell-Bicycle-Loud-Horn-Bike-MTB-Cycling-Alarm-Sound-for/32824564280.html просто, чтобы предупреждать пешеходов. Пугать их гудком не планирую, а автомобилистов гудком не разгонишь - на дороге габариты важнее, чем громкость

 10   
Prana
Форумчанин
СамараRating: 250
Prana
28 february 2018, 23:33
Posted: 28 february 2018, 23:33

Проводка
Из деки на руль придется прокинуть:
1. 2-жильный провод для выключателя габаритов, устанавливаемого взамен штатного. Большого сечения не требуется (там всего 12В и 350мА), но 0,2 мм2 хотя бы не помешает, чтобы не было большого падения напряжения.
2. 3-жильный провод для поворотников (+3.3В, левый, правый). Сечение любое, хоть самый тонкий - он нужен только для обеспечения логической единицы на соответствующем входе микроконтроллера

3. Питание на фару - 48В с аккумулятора, после предохранителя. Я использовал здесь 2-жильный кабель 0,5мм2 в двойной изоляции - в целом, для 10Вт это избыточно, но все-таки это самый мощный потребитель из "навесного". По факту достаточно будет и 0,2 мм, потому что реальный ток на 48В будет составлять менее 250 мА.
4. 2-жильный провод для 5В питания на USB-разъемы. Тут ток может доходить до 2-3А в пике. Чтобы уменьшить просадку, рекомендую использовать 0,5мм2.

Слишком толстые провода лучше не использовать: во-первых, их будет сложно протянуть через рулевую стойку и скоммутировать с кнопками, а во-вторых, толстый пучок начнет ощутимо мешать крутить руль. Провода лучше использовать качественные, многожильную медь. Одножилки переломятся со временем.

 10   
Prana
Форумчанин
СамараRating: 250
Prana
01 march 2018, 0:19
Posted: 01 march 2018, 0:19

Подключение нагрузки к аккумулятору

Как уже известно из печального опыта софорумчан, подключение к контроллеру всякой мощной нагрузки может привести к выгоранию силовых транзисторов (MOSFET-ов), в связи с этим, "врезался" я в провода, ведущие от аккумулятора к контроллеру, на той части проводов, что находится после силового разъема, уходящего в контроллер - см. фото. 


Как делается врезка: отсоединив разъем контроллера от аккумулятора, аккуратно, не повреждая медные жилы, зачищаем примерно 1 см изоляции красного провода, делаем надежную скрутку с проводом, который пойдет в боковушку, к предохранителю. Лудим и паяем, а затем тщательно изолируем соединение. Далее - повторяем операцию на черном проводе, отступив пару сантиметров в сторону от места, где зачищалась изоляция красного провода. В результате, получаем красный и черный провода с напряжением аккумулятора, отводим их в правую боковушку. 


Длину проводов подбираем такую, чтобы они доходили до кнопки, стоящей в деке + запас порядка 5-6 см. - в этом месте будем ставить предохранитель, после которого будут подключаться штатная DC-DC 48->12, DC-DC 48->5, и фара.
На черном проводе зачищаем конец - там будет большая скрутка для всех нулевых проводов: помимо  DC-шек, к этой скрутке нужно будет подключать фару и сборки светодиодов поворотников.

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

Сам предохранитель-mini покупайте не более, чем на 5А. Я, рассчитав реальное потребление всего навесного в пике не более 50Вт, поставил 2А-предохранитель, но таких в автомагазинах обычно не бывает в наличии. Для защиты от короткого замыкания и 5А вполне подойдет.


К красному проводу, выходящему из аккумулятора, подключаем сначала держатель предохранителя, а потом подключаем штатную кнопку, которая в оригинале выключает габариты. У нас она будет размыкать цепь 48В на ВСЮ навесную электрику.
После кнопки нужно отвести красный провод в заднюю часть боковушки, и сделать там скрутку "плюсов".
В задней части правой "боковушки" размещается конвертер 48->5V.  Выбирайте не менее, чем 3А (а лучше - 5А) - главное - чтобы влез в габариты. Если на конвертере нет радиатора - ставьте сами, иначе о токах больше 2А можно даже не думать.


Далее полученные 5В прокидываются на USB на руле, и проводом в левую боковушку, где устанавливается ESP8266.
От 5В конвертера также запитываются и блоки поворотников в моем проекте. Если в своем проекте вы используете поворотники от скутеров/мотоциклов/автомобилей - вам нужно будет использовать не 5В, а 12В питание, и ОБЯЗАТЕЛЬНО поменять штатный конвертер на более мощный.
Все скрутки необходимо пропаивать и тщательно изолировать: я все сажал в термоусадку, далее, при необходимости, это еще заматывалось изолентой, и пучок проводов в целом сжимался стяжками - это и защита от пережатия, и удобство при закрывании боковушки.


По описанному ранее перечню проводки выводим из деки наружу питание USB,  48В питание для фары и провода для выключателя габаритов.


Если не чувствуете в себе полной уверенности в том, что понимаете, что делаете, и сможете эту работу выполнить - лучше доверьте ее кому-то более профессиональному в этом деле: в самокате используются высокотоковые, и не особо безопасные источники питания, короткое замыкание которых может привести к очень печальным последствиям! 

В итоге проведенных операций, если вы уже прокинули провода на рулевую, вы должны получить: выключение всего навесного с кнопки на деке, включение габаритов выключателем на руле. Установив фару и выключатель для нее, вы получите хороший свет. А с  припаянным USB-разъемом - возможность подзаряжать мобильный телефон, или подключить какое-то другое устройство (камеру, колонку и т.п.)


 1     13   
Prana
Форумчанин
СамараRating: 250
Prana
01 march 2018, 9:04
Posted: 01 march 2018, 9:04

От электрики переходим к электронике


В основу проекта лег микроконтроллер ESP8266, широко известный в среде различных самоделок "умного дома". С точки зрения "железа" штучка очень интересная: 80 МГц микропроцессор, 512Kb флеш-памяти, часть из которой можно использовать для хранения пользовательских данных, около 80Kb оперативной памяти, более десятка портов ввода-вывода (правда, с ограничениями в использовании), и даже 10-битным АЦП. Но главное удобство - интегрированный Wifi, как раз и позволяющий строить решения для удаленного мониторинга/управления. На базе этого чипа строятся "умные розетки" Sonoff и их аналоги. Для данного МК есть поддержка Arduino IDE, что значительно снижает "порог входа", и позволяет строить простые решения руками Ардуинщиков-любителей без глубокого погружения в детали.


Но в ложке меда есть и бочка дегтя:  SDK для этого МК полу-закрыто, объем реально доступной пользовательским приложениям памяти после загрузки библиотек WiFi - менее 30Кб, поддержка не более чем 5 сетевых соединений, и желание сделать решение максимально близким для неискушенных программистов (постоянные перераспределения памяти ввиду повсеместного использования String-ов и динамических массивов приводят к ее фрагментации) ограничивают возможности использования этого железа "на полную катушку", и могут приводить к нестабильной работе и перезагрузкам. Тем не менее, как основа для "домашних" самоделок и простых решений вроде метеостанций этот МК вполне годится.


Что нам понадобится для изготовления устройства (даю ссылки на ali и на российский интернет-магазин):

  • Плата ESP8266 ESP-07.

Например, отсюда: https://ru.aliexpress.com/item/ESP8266-serial-WIFI-model-ESP-07-Authenticity-Guaranteed/32641377559.html, или из моего любимого магазина в России: http://avrobot.ru/product_info.php?products_id=2988


Остальное покупается в радиомагазинах, хотя можете тоже на ali поискать.


Питание 3.3В:

Схема включения - классическая, из даташита: http://hardelectronics.ru/stabilizator-ams1117-lm1117.html


Резисторы для "подтяжки":

Вы можете не захотеть повторять мой вариант с относительно маломощными поворотниками, поэтому следующий абзац - опционален, его можно пропустить, если вы не повторяете мою конструкцию:

Схема включения:

Напоминаю, количество AMC7135 определяется характеристиками (мощностью) светодиодов.


Ввиду ограниченности объема боковушек, и значительной разнесенности датчиков, светодиодов, кнопок, я не стал заморачиваться проектированием и изготовлением печатной платы, а пошел по пути "навесного монтажа". Да, это не хороший подход с точки зрения радиоэлектроники, но в данных условиях, и учитывая очень малое количество элементов, он вполне приемлем.


Питание 3.3В (трехножка AMS1117 и два конденсатора с двух сторон) засунуты в термоусадку и размещены недалеко от ESP8266. Аналогичные спайки из AMC7135 и двух конденсаторов также в термоусадках сидят каждая около своего светодиода. Для гидроизоляции каждую спайку после проверки забрызгал лаком, а потом усадил термоусадку.
Лак обеспечивает защиту от замыкания при попадании воды/конденсате, а термоусадка нужна для того, чтобы контакты не коротили на корпус деки или с другими контактами.

В общей сложности стоимость всех электронных компонентов не превысит 1000 рублей, а при заказе с Али - даже меньше.

 10   
Prana
Форумчанин
СамараRating: 250
Prana
01 march 2018, 11:50
Posted: 01 march 2018, 11:50

Микроконтроллер с обвязкой

Как я уже писал выше, в качестве метода монтажа был выбран навесной монтаж. Для ESP8266 вся обвязка, фактически заключается в установке "подтягивающих" резисторов, от 4,7 до 50К. Определенная комбинация логических уровней необходима ESP8266 на старте, по некоторым датчикам есть рекомендованные схемы включения, и есть общие рекомендации по подтяжке свободных входов ESP. Исходя из этого получилась вот такая схема:

Как выполняется поверхностный монтаж: паяем выводные элементы непосредственно к плате ESP, обрезаем нужную длину ног, засовываем резисторы в термоусадку, и паяем со второй стороны. Все соединения я делал над обратной частью платы, либо справа-слева от нее. Получился такой компактный комок из изолированных термоусадкой резисторов, и торчащих наружу скруток на +3.3В (слева) и GND (справа). Далее, к плате были припаяны провода от всех датчиков, выведены TX, RX, "земля", и GPIO 0 для программирования.  Питание при заливке прошивки микроконтроллер продолжает получать от самоката, но "земля" должна обязательно быть общей с USB-TTL конвертером.


Всю плату после завершения пайки я пролачил, затем зафиксировал термоклеем, и сунул в термоусадку, которая предохраняет от контакта с декой.


Подключение к плате внешних соединений:

GPIO0 - сигнальный (желтый) провод DS18B20 (при использовании нескольких таких датчиков все подключаются параллельно)

GPIO4 - сигнальный провод датчика DHT22 в деке

GPIO5 - сигнальный провод датчика DHT22 в МК

GPIO12 - вход от левой кнопки поворотника

GPIO13 - вход от правой кнопки поворотника

GPIO16 - выход логического сигнала (0/1) на левый поворотник

GPIO14 - выход логического сигнала (0/1) на правый поворотник


Вы можете подключиться и к другим GPIO, если потом пересоберете прошивку, но обратите внимание:

GPIO16 может работать ТОЛЬКО на выход

GPIO0 при старте должен быть подтянут к 1, а при прошивке - к 0, и подключаемое к этому входу должно быть толерантно к этому (DS18B20 - толерантен)

GPIO2 должен быть подтянут к 1 на старте

GPIO15 - к 0

RESET, CH_PD - должны быть подтянуты к 1 всегда

Свободный ADC рекомендовано "подтягивать" к 0


Для программирования выведенный GPIO0 замыкаем на GND, и подаем на плату питание. Держать замкнутым на землю все время нет необходимости - только в момент старта.


PS: Схему набросал "на коленке", без хорошего редактора, не обессудьте

 9   
Prana
Форумчанин
СамараRating: 250
Prana
01 march 2018, 12:58
Posted: 01 march 2018, 12:58

Ну а теперь, когда железные работы закончены, переходим к софту: подключаем USB-TTL конвертер к TX, RX и земле, замыкаем вывод от GPIO0 на землю, и подаем питание на ESP8266. 

В системе должен появиться новый COM-порт, ESP8266Flasher должен его сразу опознать, можно проверить настройки и путь к файлу прошивки Starway_controller2.ino.bin, и, если все в порядке, можно нажимать кнопку Flash.


После успешной прошивки ESP-8266 должен перезагрузиться и создать Wifi точку доступа Starway с паролем asdasdasd.

Можете отсоединять USB-TTL конвертер. Все остальное настраивается через веб-страницы.

После подключения к сети Starway, должна автоматически открыться страница "Starway Settings" с настройками подключения к вашей WiFi-сети: SSID, Password. Настраиваете свои параметры, и нажимаете Save.

После этого нужно перезагрузить ESP8266, отключив и заново подав на нее питание (GPIO0 на землю больше замыкать не нужно). На этот раз точки доступа Starway не должно появляться, модуль должен подключиться к вашей WiFi-сети. Если этого не происходит, и вы по-прежнему подключаетесь к сети с именем Starway - проверьте еще раз настройки и перезагрузите модуль еще один или два раза - иногда подключение может занимать слишком много времени, и модуль считает это ошибкой соединения.


После удачного подключения микроконтроллера к вашей сети, он должен быть доступен по адресу http://starway/; Перейдя по нему, вы снова оказываетесь на странице настроек WiFi-соединения. Но на этот раз нажимаем кнопку FS Editor. Должно открыться окно, которое вы видите ниже. Только список файлов у вас будет пустым.


Вам нужно по-одному, не спеша, загрузить все файлы из папки web. После загрузки файлов вы можете заново перейти по адресу http://starway/ - и тут вы должны увидеть страницу мониторинга:

Теперь пора настроить наш МК на нормальную работу - нажимаем на кнопку "Настройки". Браузер запросит логин - вводим admin, пароль - вводим 1234.

На странице настроек задаем настройки параметров уведомления о влажности/температуре, задаем до 3х WiFi-сетей для подключения (у меня заданы рабочая, домашняя, и точка доступа в телефоне), меняем параметры точки доступа самой ESP8266 - к этой точке мы будем подключаться в дороге, если нам нужно будет узнать состояние "на ходу".


Ниже находятся настройки для Telegram-бота, СМС уведомлений - я напишу отдельную инструкцию для тех, кому понадобится использование этих функций: с ними все не совсем просто обстоит.

И, в самом конце, располагаются параметры доступа в тот самый экран настроек, на котором мы находимся, а также галочка кэширования веб-страниц. Для обычного использования эта галочка должна стоять всегда. Снимать ее стоит только в случае, если вы экспериментируете с переделкой внешнего вида страниц на свой вкус.


После сохранения настроек система становится готовой к использованию. 
Следующим постом опишу особенности и ограничения ее использования.

 10   
Prana
Форумчанин
СамараRating: 250
Prana
01 march 2018, 14:03
Posted: 01 march 2018, 14:03

Как это работает


Когда мы включаем выключатель на деке, подается питание на все наши DC-DC конвертеры и начинает работать ESP8266, снимая показания с датчиков. Опрос датчиков выполняется каждые 5 секунд. При необходимости, задержку между опросами можно увеличить на экране настроек. Уменьшать - не рекомендую, потому что снятие показаний должно производиться не чаще 1 раза в 2 секунды.

Данные показаний практически в режиме реального времени обновляются на странице мониторинга: она делает каждые 5 секунд запрос к веб-серверу и обновляет данные.

Данные для графиков запоминаются 1 раз в минуту, максимально сохраняется до 120 точек, это соответствует 2 часам.

Графики также обновляются автоматически раз в минуту, поэтому судорожно жать F5 не только не нужно, но и вредно. Почему - объясню ниже.


Когда вы включаете ESP, она пытается подключиться к настроенным вами WiFi-сетям. Причем первый раз подключение может занимать много времени, и быть неудачным. Далее обычно роутеры достаточно быстро выдают ip-адрес и "старые" клиенты подключаются за пару секунд. Если не получилось никуда подключиться - а такое будет, если вы находились на улице, то ESP-8266 создаст точку доступа в соответствии с вашими настройками. По-умолчанию это Starway.


В зависимости от того, подключен ли микроконтроллер к WiFi, или он сам работает как точка доступа, доступны разные возможности:

При подключении к WiFi, если настройки для бота заданы, примерно черезт 15-20 секунд создается соединение с Telegram, и бот отправляет текущий статус, а также ссылки на страницы графиков и мониторинга, для удобства их открытия без ввода адреса в браузере:


Далее бот примерно каждые 10 секунд проверяет сервер, не отправили ли вы ему сообщение. И, если отправили, снова отвечает статусом. Сама по себе процедура установки соединения, отправки запроса и проверки достаточно сильно нагружает микроконтроллер, в связи с этим, при подключенном WiFi, особенно, если вы раздали его с телефона в месте с плохой связью, могут "тупить" поворотники, проявляется это как нарушение равномерности их мигания. В остальном в режиме подключения к WiFi микроконтроллер может работать сутки напролет без сбоев.


Если связь с WiFi-сетью пропадает (вы выехали из дома, например), то бот автоматически выключается, и создается точка доступа на самом самокате. В этом режиме вы не сможете получить никаких сообщений от бота, единственный способ узнать состояние самоката - это подключиться к точке доступа Starway.  При этом автоматически должно открываться приветственное окно подключения к WiFi, на котором вы видите экран мониторинга. С него можно открыть и страницу графиков, и зайти на экран настроек. У мониторинга состояния самоката в таком режиме есть 2 недостатка, о них стоит знать:

1. Если вы подключитесь к микроконтроллеру, работающему в режиме точки доступа, не с телефона, а с какого-нибудь более активно работающего в сети устройства, типа ноутбука, есть достаточно большой риск, что микроконтроллер начнет подтупливать, подвисать, или самопроизвольно перезагружаться, теряя при этом статистику графиков (что довольно печально). Вызвано это тем, что ESP 8266 не является роутером, и не рассчитана на работу в режиме полноценной точки доступа. Ей позволено устанавливать максимум 5 соединений, каждое из которых при этом требует оперативной памяти.

Подключение ноутбука может привести к тому, что десятки программ, на нем установленных, решают, что появился Интернет, и забивают попытками установить соединение чахлый микроконтроллер.
С телефонами на практике все работает достаточно стабильно, учитывая включенную на веб-сервере функцию кэширования.

2. При подключении телефона к Starway мы теряем на телефоне возможность ходить в Интернет через мобильную сеть, и это вызывает неудобство.


Поэтому основным сценарием подключения к самокату в дороге будет ручное подключение к точке доступа со смартфона только тогда, когда это необходимо.

Если вам нужно постоянно иметь свежие данные на экране - лучше создать точку доступа на телефоне, и подключаться микроконтроллером к ней. В этом случае будут работать все функции, в т.ч. и бот, если он вам нужен.


Но не все так плохо с точки зрения мониторинга и когда соединения с Интернетом нет: в качестве средства сигнализации об аварийной ситуации: перегреве, переохлаждении, или недопустимой влажности, работают поворотники - они сами начнут мигать с удвоенной частотой в случае выхода за границ температуры, и с учетверенной частотой в случае превышения порогов по влажности.

Если начали мигать аварийки - подключайтесь к ESP, и проверяйте, что там не так, смотрите на графиках историю за последние 2 часа. Статистика накапливается в любом случае, постоянно поддерживать WiFi-соединение с микроконтроллером не требуется.


Ну и последняя функция с точки зрения удобства: если мы приехали домой или на работу, и хотим посмотреть графики, то нам нет необходимости подключаться к точке доступа Starway: можно включить аварийку, и запустить процесс поиска известных WiFi-сетей: микроконтроллер должен подключиться к вашей домашней сети, запустить бота, и примерно через пол-минуты вы получите текущий статус от бота, со ссылками на страницы графиков и мониторинга.


Резюме: в общем и целом данное решение задумывалось как средство для того, чтобы "посмотреть" ситуацию в деке и мотор-колесе, и выбранный микроконтроллер не является полноценной, мощной реализацией для систем "умного дома", в связи с этим большая постоянная нагрузка может "выбивать его из колеи", уводя в перезагрузку. Но в повседневном использовании он достаточно стабилен: я включаю его перед выездом, получаю сообщение от бота, могу покататься, посмотреть несколько раз статистику с телефона, а приехав домой и переподключившись к WiFi, открыть графики на компьютере для большей наглядности. В течение часа-двух после поездки можно наблюдать процесс согревания самоката и охлаждения мотор-колеса, и связанные с этим колебания влажности.

Проведенные замеры показали, что потребление в режиме, когда ESP8266 подключен к WiFi-сети, составляет около 1Вт. Исходя из этого, можно особенно сильно не переживать по поводу "забытой" кнопки выключения на деке во время самокатного сезона.

 11   
Prana
Форумчанин
СамараRating: 250
Prana
01 march 2018, 14:19
Posted: 01 march 2018, 14:19

Пример поездки


Выезд в -10 из теплого дома: мотор-колесо греется, контроллер практически стабильно держит температуру

Желтый пик температуры - зашел на минуту в теплое помещение купить хлеба:

Влажность - скачет в соответствии с законами физики: чем ниже температура - тем выше влажность, и наоборот.


Остаток поездки - снова едем, МК продолжает греться аж до 65, не глядя на мороз. Заходим в дом, температура становится выше, самокат отогревается, но "запасенного холода" еще много, поэтому контроллер начинает охлаждаться, а мотор-колесо активно остывает.


А дальше начинается самое интересное - как раз то, когда может выпасть конденсат: самокат холодный, воздух теплый, мотор-колесо при этом недостаточно горячее, чтобы прогревать холодные крышку и резину - начинает прилично расти относительная влажность:


Ну и уже через 2 часа после приезда снимаем контрольно графики - дека согрелась, статор колеса остыл, ротор, крышки и резина - согрелись. Влажность в деке поднялась до своего стационарного значения в этом помещении - 30%, в  МК - медленно падает. Только через 5-6 часов она вернулась к своему стационарному значений около 19-20%.



 10   
Vitez
Участник
Rating: 13
Vitez
03 march 2018, 13:16
Posted: 03 march 2018, 13:16

Отличное решение и реализация. Напуганный :) литиево-полимерными аккумуляторами решил сделать мониторинг температуры аккумов и контроллера. Правда, мое решение: GPRS и MQTT ну и ардуино, куда же без него.

Prana
Форумчанин
СамараRating: 250
Prana
03 march 2018, 14:25
Posted: 03 march 2018, 14:25
Ответ пользователю
Vitez : 03 march 2018, 13:16
на это сообщение (развернуть)
Отличное решение и реализация. Напуганный :) литиево-полимерными аккумуляторами решил сделать мониторинг...

Отличное решение и реализация. Напуганный :) литиево-полимерными аккумуляторами решил сделать мониторинг температуры аккумов и контроллера. Правда, мое решение: GPRS и MQTT ну и ардуино, куда же без него.

А на какой элементной базе все планируете реализовать?
Я тоже думал об MQTT и обработке всего этого на каком-нибудь веб-сервере, но кроме графиков и сохранения статистики в базе больше ничего не придумывается, а это для меня недостаточный стимул, чтобы пойти такой дорогой :-)

 3   
Mister Big Joe
одноколёсный
МоскваRating: 2308
Mister Big Joe
04 march 2018, 12:50
Posted: 04 march 2018, 12:50

Проект просто бомбический. Нереально бомбический.

С сожалением для себя обнаружил, что лишь спустя несколько дней добрался до его прочтения :) Повысил рейтинг автора как только мог, пролайкав все информацилнные посты. Кстати, @Prana, при грубом подсчёте одна эта тема подбросила Ваш рейтинг на 50-60 -- это первый подобный случай на моей памяти :)) Записывайтесь в клуб, плюшки от Банка и не только наверняка Вам уже известны.


Описанный проект по модернизации самоката потянул бы на хорошую конкурсную статью. Ну и вообще, по сути изложения всё это скорее статья, чем рядовые сообщения на форуме о модернизации. Ставлю в закладки.

Огромный респект автору -- не только за проделанную работу, но и за неленивость и доступность в описании всего. Если не брать в расчёт время на проделанную работу (что люди делают для себя), то на написание этих текстов + рисование схем + оформление (это делается для других) ушло не меньше нескольких часов-дней. Приятно встретить коллеги-писателя пальцами, я думал только я пишу тексты, до конца которых мало кто добирается :)))


Вопросы по реализации приходят только в процессе самой реализации. У меня пока возник только вопрос практического характера из примера использования:

[quote="Prana"]А дальше начинается самое интересное - как раз то, когда может выпасть конденсат: самокат холодный, воздух теплый, мотор-колесо при этом недостаточно горячее,[/quote]

на всех этих графиках три кривые по температуре (жёлтая Ж, красная К, скажем оранжевая О) и две по влажности (К, О) -- скажите каким датчикам = расположенным где каждая кривая соответствует.

Это принципиально важно для чтения информации с графиков и их понимания :)

Mister Big Joe
одноколёсный
МоскваRating: 2308
Mister Big Joe
04 march 2018, 12:57
Posted: 04 march 2018, 12:57

Добавил текущую тему в закладки по Минику. Доступны в разделе "Модернизации".

См. скрин.


1
2