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 телефонию а также можно сделать возможность переадресации вызовов на нескольких абонентов Но это всё планы будущего пока что такое решение меня вполне устраивает.

 
 

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

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

 

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