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-05-17

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

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

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

 

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

 
  2016-05-28

Удобный переходник для ESP-03

Нашел на thingiverse удобный преходник для ESP-03 для макетной платы. До этого приходилось припаивать к площадкам ESP-03 проводочки которые затем вставлялись в макетную плату. Выглядело это дело не очень. Но тут совершенно случайно наткнулся в сети на удобный переходник который можно распечатать на 3D принтере - и тут же распечатал - получилось просто прекрасно:

Надо сказать, 3D принтер просто незаменимая вещь в хозяйстве, особенно если научиться моделировать в Blender. Я пока только его осваиваю, но уже понимаю, что это вызывает зависимость. Зато теперь я могу с легкостью распечатать всякую мелочь, например каркасы для индуктивностей, различные разветвители для домашней поливалки и прочую мелочь, сделать которую другими способами было бы проблематично.

 

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

 
  2016-05-15

Увеличение чиcла GPIO для esp8266

Давно играюсь с esp8266, для тех кто не в курсе это такая маленькая микросхема размешенная на готовом модуле. Этот модуль можно купить у китайцев за два доллара, причем модуль этот представляет собой полноценный микроконтроллер, имeющий на борту все, что нужно чтобы создавать довольно навороченные решения и умеющий общаться c внешнем миром по wifi.

Одной из проблем этого модуля является ограниченное количество портов общего назначения. У ESP-01 свободным остается только GPIO2, хотя можно еще использовать GPIO0 и два порта через которые заливают прошивку с компьютера RX и TX тоже можно использовать как GPIO.

Однако, мне для моих поделок нужно было больше GPIO выводов, гораздо больше. Сначала, хотел попробовать сдвиговые регистры, однако потом пришла в голову идея получше - 1Wire!

У фирмы Maxim есть замечательные ключи, например, ds2413 содержит два управляемых ключа, которые могут работать как для чтения так и для записи. У ds2408 их 8. При этом, можно сколько угодно вешать таких устройств на одину шину 1Wire которая в простейшем случае представляет из себя выход GPIO микроконтроллера с подтягивающим резистором 4.7 кОм. 1Wire позволяет вешать до 256 устройств на шину, что позволяет получить отличную масштабируемость.

У китайцев на aliexpess можно купить аналог ds2413 - 3A 2100H. Хотя, у большинства продавцов написано, что продают они ds2413 - у того у которого я купил, на картинке четко была видна маркировка - 3A 2100H, больше в описании об это ничего не было сказано. От оригинальных микросхем аналог отличается только семейным кодом - у оригинального он 0x3A у китайского 0x85 так что, если заходите взять поиграть, не наколитесь. Сначала, хотел написать грозный отзыв продавшему мне эти чипы китайцу, но когда скетч успешно заработал, я написал не очень грозный...

Вот пример для работы с ардуиной, который мне помог разобраться. Еще потребуется библиотека OneWire. В последних версиях есть поддержка esp8266. Чтобы пример заработал с 2100H нужно поменять в нем 0x3A на 0x85.

Теперь, можно делать на esp8266 устройства с любым количеством входов-выходов. При условии, кончено, что они будут не слишком быстро переключаться - у 1wire не сильно высокая пропускная способность.

 

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

 
  2015-10-25

Умный свет на Arduino

Продолжаем тему плавного включения света, начатую ранее.

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

Наиболее нетривиальной задачей было организовать управление точечными светильниками с плавным включением. Её я успешно решил, выкинув "родные" блоки питания, замнив их на управляемые ШИМ источники тока и запитав всю схему от одного мощного блока питания. Светильники на 3 Ватта питаются от блока питания 12 вольт, светильники на 6 Ватт - от блока питания на 24 вольта.

Сам контроллер собран в корпусе на дин-рейку, заказанном на чипе&дипе. Корпус, кстати, оказался весьма удобным с макетной платой, на которой и были размещены маломощный блок питания для ардуины и три семисторных ключа с оптронной гальванической развязкой - безопасность превыше всего! Сама плата arduino pro mini и микросхема max485 для шины модбас размещены на отдельной макетной плате и помещенны в тот же корпус, благо место позволяет. 

Прошивку написал с нуля - она пока не совсем такая как я хочу, но уже не вызывает рвотного рефлекса при взгляде на код - оказывается, ардуино позволяет писать программы на вполне приличном C++ с объектами, наследованием и виртуальными функциями. Все это делает код вполне читаемым и, главное, поддерживаемым в будущем. Код выложил на github - замечания и дополнения приветствуются! 

Основная фишка - одна кнопка. Тут я вполне согласен со Стивом Джобсом - одна кнопка рулит! 

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

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

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

 

Коментариев: 3

 
  2014-11-05

Сдруживаем Arduino и Openhab

Openhab - это сердце умного дома от суровых немецких ребят. Мне это решение понравилось тем что оно распространяется по свободной лицензии, написано на Java но при этом может работать на совсем слабом железе - том же raspbery. Платки arduino pro mini при заказе с ebay стоят сто рублей шутка, при этом их просто и легко запрограммировать под выполнение нужных задач - зажигать свет, измерять температуру и влажность, работать с датчиками движения и теплым полом - не нужно даже разводить ЛУТ - просто припаял такую платку на макетную плату, добавил силовых элементов, завел питание и готово устройство!

Выложил небольшое видео как заставить работать вместе ardiuno pro mini и openhab через USB. Применений подобному решению может быть масса, я же хочу реализовать сверхбюджетный вариант умного дома. Что из этого получится? Поживем - увидим.

Скетч для ардуинки выложил на гитхаб. На стороне опенхаба используется обычный serial binding - если кого заинтересует выложу и его настройки.

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

UPD: для настройки openhab нужно добавить в конфигурацию openhab:
demo.items: https://gist.github.com/maxistar/26cb21fe7e045c1200e5
demo.rules: https://gist.github.com/maxistar/8fdd6989560c3a1c7df7
саму идею почерпнул вот из этой статьи.

 

Коментариев: 3

 
  2014-08-27

Arduino

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

 

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