2020-08-22

U-Center

Удалось успешно запустить U-Center на Линукс. U-Center это такая программа позволяющая конфигурировать GPS модули от фирмы Ublox. Это программа разработана только под Windows но создатели утверждают что под Wine она тоже работает.

Для этого поставил Wine.

sudo aptitude install wine-stable

Чтобы настроить последовательный порт необходимо запустить редактор реестра при помощи команды wine regedit и создать новую запись COM1 со значением /dev/ttyUSB0 в разделе HKEY_LOCAL_MACHINE\Software\Wine\Ports, после чего перезапустить Wine командой wineserver -k.

Для соединения с компьютером использовал переходник USB - UART с резистивным делителем, так как Neo6m имеет трех вольтовую логику.

Теперь я могу посылать команды непосредственно с компьютера, а то через Ардуино это занимает слишком много времени.

 

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

 
  2020-08-10

Спят усталые игрушки

Почему-то отладочная плата на TTGO T-Call ESP32 SIM800L не хочет работать столько сколько мне бы хотелось от одной зарядке.

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

Пришлось собирать отдельное устройство для опытов. Для этого использовал Arduino Pro Mini INA219 и маленький монохромный дисплей.

Оказалось что все не так уж и плохо. В спящем режиме устройство потребляет около 1.4 mA что в принципе не плохо. В активном режиме ток потребления около 20-30 mA что тоже вполне неплохо.

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

Если вдруг кому потребуется код всего этого безобразия в том числе команды для ввода NEO6m в спящий режим, то вот он.

 

 

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

 
  2020-06-21

Особенности TTGO T-Call ESP32 SIM800L

Продолжаю изучать отладочную плату TTGO T-Call ESP32 SIM800L. Несколько недоумеваю по поводу используемых портов. У ESP32 есть три аппаратных UART при этом нa плате для соединения ESP32 с SIM800 используются выходы 26 и 26 на которых аппаратного UART нету! То есть, заместо аппаратного нужно использовать программный UART который хуже по определению! При этом эти ноги еще выведены на гребенку платы - зачем, если использовать их уже нельзя?

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

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

 

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

 
  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 на другой канал, так как домашние жаловались не нестабильную связь - зависания устройства сразу прекратились.

Upd3: Написал более подробную статью про освещение светодиодной лентой, статья пока в разработке, но уже из нее можно многое почерпнуть про изготовление устройства.

 

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

 
  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-07-21

Проект выходного дня - Автоответчик на Asterisk

Наконец завершил работу по созданию автоответчика на Asterisk. Задача следующая: поскольку я теперь живу в Германии хотелось бы сохранить свой российский телефонный номер и иметь возможность получать на него голосовые сообщения. На мой российский номер мне постоянно кто-то звонит - в большинстве случаев это спамеры но иногда бывают и полезные звонки и поэтому каждый раз когда мне кто-то звонит мне не хочется перезванивать поскольку роуминг в Европе достаточно дорогой. Во время своего последнего визита на родину я собрал вот такую шарманку: usb voice modem, подключенный к raspberry pi через USB switch. На raspberry pi поставил прошивку с asterisk'ом и freepbx и настроил переадресацию со своего российского мобильного телефона на на sim-карту которая стоит в USB модеме. Теперь любой входящий звонок на мой российский телефон переадресуется на этот чудо комбайн, который человеческим голосом просит оставить сообщение которое я которые затем присылается мне на электронную почту.

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

 
 

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