2020-08-23

Велотрекер

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

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

После того как TTGO выпустили плату с ESP32 и SIM600 на борту я подумал, что это почти готовый GPS трекер, на нём уже есть контроллер LiPo аккумулятора и слот для SIM карты - нужно только добавить в связку GPS! Из недорогих на рынке оказался модуль NEO6m который удивительно прост в управлении. Трекер питается от LiPo аккумулятора емкостью 700mAh

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

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

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

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

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

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

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

 

Оставить комментарий

 
  2020-05-08

Посылаем данные в облако через мобильную сеть

Пришел интересный модуль - TTGO T-Call ESP32 SIM800L.

По сути это ESP-32 Wrover соединенный с модулем SIM800L который умеет работать с 2G сетями. С 3G уже не умеет, но это и не нужно если объем передаваемых данных не велик.

Залил тестовую прошивку, найденную у RandomNerd предварительно адаптировав ее для работы https://requestbin.com/.

И ура! Теперь я могу посылать данные по GPRS!

Тестовый скетч залил на Github.

 

Оставить комментарий

 
  2020-04-22

Подсветка светодиодной лентой WS2812b - продолжение

Решил спаять новое устройство на смену временной макетной плате, которая стоит на шкафу и пылиться.

Новая плата чуть менее временная, но все равно макетка:

Сказано сделано - спаял новое устройство. Однако, работать оно поначалу не захотело.

Сначала при включении светодиоды начинали хаотически мигать. Опытным путем было установлено, что эффет проявлялся только если напряжение питания модуля 3.33 вольта и ниже. Если повысить напряжение до 3.5 вольт все начало работать нормально. Видимо, пятивольтовая логика ленты WS2812b не совместима с 3.33 вольтовой логикой ESP32. По идее нужен преобразователь уровня.

В определенный момент всплыл другой глюк. Опять стали подмигивать отдельные светодиоды. Стал искать причину. Выяснилось следующее: из-за того, что новая плата у меня ESP 32 Wroom а не ESP 32 Cam при заливке прошивки я выбрал другой тип платы - ESP32 Dev Board с часторой 120MГц. Раньше прошивал с настройкаи для ESP32 Wroover на 80МГц и на 40МГц. Интересно, что система прошилась нормально, а вот лента стала странно подмигивать. При этом эффект уже  не зависил напряжение питания. Вернул предыдущие настройки - все стало опять хорошо.

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

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

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

 

Оставить комментарий

 
  2019-12-24

Новогодняя иллюминация

На выходных сделал новую поделку:

 

Сначала хотел такое сам сделать, потом поискал, и оказалось, что уже есть замечательная прошивка для контроллеров от Espressif. Работает на ESP32 и более младщих сериях. Поддерживает голосовые ассистенты типа Гугла и Алексы, прошивка сделана на редкость профессионально хоть и Ардуино. Очень понравилось.

 

Оставить комментарий

 
  2019-12-08

Подсветка светодиодной лентой WS2812b

Давно хотел сделать какую-нибудь поделку со светодиодной лентой. Во первых это красиво, во вторых, первого пункта вполне достаточно. 
Для микороконтроллера я выбрал ESP32 - мой последний фаворит - у него есть Wifi и Bluetooth - а что еще нужно для IoT поделки? Лента - WS2812b это - RGB светодиодная лента с индивидуальной адресацией. 
Кроме этого, ESP32 позволяет заливать прошивку по воздуху. В сети полно примеров как это делается. Cамым простым вариантом для меня было создавать прошивку на C++ и Arduino. Знаю это не спортивно, но задо это быстро.
И вот все компоненты будущей системы мне были доставлены. Сама светодиодная лента WS2812b представляет собой ленту длиной 5 м с 150ми светодиодами в каждый из которых интегрирован чип управления управляемый по одному проводу. Оказалось, что лента питается напряжением 5 Вольт, в то время как я заказал блок питания на 12 вольт. Каждый светодиод на полную яркость потребляет около 50mA а значит у меня не получается запитать всю ленту целиком поэтому в тестовой прошивке я зажигаю пока лишь несколько светодиодов одновременно. Так как у меня нет правильного блока питания то и лента и микороконтроллер питаются от пяти вольт через понижающий на Step Down стабилизатор который может давать ток до 1 ампера, в то время как лента на полную мощность потребляет около 7 ампер. Значит все светодиоды пока включать не будем.
Получилось настроить и обновление прошивки по воздуху. Так как устройство расположено на шкафу и доступ к нему затруднен обновление по воздуху было для меня самым главным требованием. 
Родная прошивка модуля esp32 CAM не захотела обновлять скетч по воздуху, устройство просто перезагружалось, однако, когда я сменил в настроках Arduino тип устройства на esp32 Wrover все прекрасно заработало.
Библиотека для работы с лентой от Аdafruit у меня почему-то тоже не стала работать корректно и некоторые светодиоды остались зажженными. При этом если выбирать малое количество светодиодов библиотека работает более или менее стабильно. Возможно дело в каких-то аппаратных проблемах или же у меня имеются наводки на сигнальный провод.
Однако, когда я поставил другую библиотеку - FastLED она сработала вполне стабильно. Но пока я все еще недоволен быстродействием. 
Возможно всё дело в неэффективности кода или я что-то сделал не так, но анимация в виде бегущего огонька у меня происходит краааайне медленно. 
Поскольку ленту нужно включать дистанционно реализовал работу с лентой через веб интерфейс, таким образом включать и выключать ленту можно из со странички в локальной сети. 
Интересно что также есть возможность использования mdns - это такой легковесный DNS для локальной сети - само устройство появится в сети с именем devicename.local. C компьютера эта функция у меня сработала без проблем но с телефона через mdns почему-то работать не захотела. Возможно дело в настройках браузера.
В общем нужно заказывать хороший блок питания на 5 вольт и током не менее десяти ампер - а лучше двадцати, так как я хочу ленту еще удлинить.
 
P.S. Извиняюсь за дикий русский язык - писал это в воскресенье вечером, был уже слегка не в себе :)
 

Оставить комментарий

 
  2019-11-16

ESP-32 и INA219

Как измерить напряжение батареи при питании вашей самоделки на базе базе ESP32?

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

Поэтому, другим вариантом было использования отдельного датчика на базе INA219. Этот чип общается с внешним миром через i2c - для этого можно использовать любые две ноги ввода-вывода - в моем случае это 13 -SDA, 15-SDL. Для того чтобы все заработало как полагается в стандартный пример от Adafruit достаточно добавить одну единственную строчку для инициализации i2c на нестандартных выводах:

 Wire.begin(13, 15);

Питание микороконтроллера осуществляется Step Down стабилизатором выходное напряжение которого устанавливается переменным резистором - на нем я выставил напряжение около 3.3 вольта.

Интересно, что если ничего не подать на ногу V+ INA219 то она показывает напряжение около 0.8 В и ток порядка 10mA - уж не знаю почему - во всех примерах которые я видел в сети на него ничего не подается и эти ноги используются только при измерении токов - у меня же, почему то так не заработало - нужно было сигнал подавать именно на +V при том что я запитал сам сенсор от 3.3 вольта от которого запитал и микроконтроллер.

Вот код прошивки.

Вот так выглядит моя схема. 

На реальной схеме было несколько больше деталей, но в данной прошивке они не используются:

Вот что выводится в терминал:

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

 

Оставить комментарий

 
  2019-08-24

ESP-32 ist Kaputt

В Германии не очень популярен АлиЭкспресс, но зато все заказывают с местного аналога -  amazon.de. Товары на нём уже растаможенные, так как без растаможки тут можно заказывать из-за границы на сумму не более 21 евро в месяц. Чтобы иметь возможность поэкспериментировать с некоторыми железками, заказал себе набор юного радиолюбителя в который входит паяльник, тестер, кусачки и ещё куча всякого разного. Дополнительно, заказал макетную плату с кучей соединительных проводов резисторов конденсаторов, транзисторов и ещё всякими разными другими активными элементами которые могут пригодиться. 

И первым делом спалил esp32 Cam модуль, который неправильно запитал. Подключил блок питания не стого конца и не заметил, что плюс на блоке питания упирается в синюю дорожку а минус в красную. Как ожидалось, вернее как не ожидалось, но модуль благополучно сгорел. Оказывается, он прекрасно горит если на плюс подать минус. Теперь у него постоянно подмигивает лампа впышки и модуль больше не отзывается на команды извне. Что же, на будущее будем осторожнее и закажем еще пару таких же модулей - благо стоят они не очень дорого. 

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

 

Оставить комментарий

 
  2019-05-17

ESP-32 Работает!

Подключил, залил пробный скетч - оно работает! Фантастика!

Хотя, признаться, работает довольно препаршиво. В сети регистрируется даже не через раз а раз в десять раз - в чем проблема пока не понятно - то ли не хватает питания, толи еще чего не нравится. Но ESP всегда были очень капризными модулями и тут важен сам факт того что работает а стабильность это уже будет отдельная история...

 

Оставить комментарий

 
  2019-05-08

Приехал ESP32-CAM

Вчера приехал новый модуль ESP32 да еще в модификации с камерой. ESP32 - это микросхема пришедшая на смену ESP8266 у которой еще больше возможностей, на базе которой можно создавать законченные решения с доступом к Интернет, при этом, теперь возможностей кристалла хватает чтобы стримить видео и/или записывать его на флешь карту. При этом стоит это очень и очень дешево. Мой модуль обошелся мне в восемь евро, хотя на ebay.de я видел и за четыре с доставкой. В общем, технологии наблюдения за ближним идут семимильными шагами.

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

Получается, этот девайс по возможносям стоит где-то между Aрдуино и Raspberry Pi Zero W.

Будем пробовать как это теперь все можно запрограммировать.

 

Оставить комментарий

 
  2019-05-08

Приехал ESP32 - Cam

Вчера приехал новый модуль ESP32 да еще в модификации с камерой. ESP32 это микросхема пришедшая на смену ESP8266 у которой еще больше возможностей, на базе которой можно создавать законченные решения с доступом к Интернет при этом теперь возможностей кристалла хватает чтобы стримить видео или записывать его на флешь карту. При это стоит это очень и очень дешево. Мой модуль обошелся мне в восемь евро, хотя на ebay.de я видел и за четыре с доставкой. Вобщем, технологии наблюдения за ближним идут семимильными шагами.

 

Оставить комментарий