Управляем вентиляцией через интернет с помощью esp8266

esp8266 + nrf24l01

WiFi модуль esp8266 используется в качестве веб-сервера для беспроводного управления вентиляцией через nRF24L01+.
Вот в эту конструкцию добавляется WiFi модуль, который выполняет роль «мозга» системы вентиляции.
Собранные значения углекислого газа отправляются на облачный сервер интернета вещей — ThingSpeak



Читать дальше
  • +3
  • 25 апреля 2016, 12:47
  • vad7

STM8 USB V-USB

2017-12-08~19_58_48 программируемая клавиатура
USB HID keyboard macros for games programming
Добавился отладчик (можно по USB считывать и записывать в регистры МК)
Скорее это больше для управления задумано, чем для отладки.
Добавилась возможность сохранения настроек кнопок в ini файл
github.com/BBS215
debugtool
debugtoolGUI
Чтобы работало прошивку в МК надо обновить.

2017-11-22~10_13_59
STM8S003F3P6 USB HID программируемая клавиатура с АПЧ (без кварца)
+ программа конфига кнопок с графикой и командной строкой.
forum.easyelectronics.ru/viewtopic.php?p=526561#p526561
(https://github.com/selevo/STM8S-VUSB-KEYBOARD/tree/patch-1)

github.com/wlianmin/stm8_usb
в комплекте пример hid мышки самодвигающейся :)
китайцы взяли в основу труды этого товарища:
ziblog.ru/2014/02/20/programmnyiy-usb-na-mikrokontrollerah-stm8.html
и в общем-то довели до рабочей железки

А нашлось сначала вот что:
STM8 USB
vk.com/doc-73481857_408253851

портированные на IAR
vk.com/doc-73481857_408254606

Цифровые нерекурсивные фильтры. Часть 2.

Эпиграф:«Asinus Buridani inter duo sinus cardinalis»

Существует огромное количество методик вычисления коэффициентов КИХ- фильтра. Посмотреть некоторые их них можно здесь или здесь. И всегда возникает вопрос: «А какую методику выбрать? Или тупо обратиться к МатЛабу?».
С одной из этих методик я и собираюсь вас подробно ознакомить. В этой части мы будем создавать КИХ — фильтры. Как говорится — «своими руками» (ну и немного — головой:-)!


Читать дальше

Цифровые нерекурсивные фильтры. Часть 1.

Обобщив не очень приятный опыт написания статей, посвящённых рекурсивным фильтрам, решил всё же обратиться к теме нерекурсивных, или КИХ (FIR) фильтров.
Можно считать, что этот цикл статей написан в качестве моральной компенсации тем, кто ничего не понял в моих предыдущих статьях, посвященным БИХ — фильтрам… :-)
Сразу предупреждаю, что знания основ матана, ТФКП, линейной алгебры и ТОЭ по-прежнему обязательны!


Читать дальше

I2C расширитель портов PCF8574

PCF8574 на макетной платеРасширители портов на сдвиговых регистрах — решение известное, простое в понимании и использовании, дешевое и многократно описанное (например вот, вот и вот).

Но есть у него и определенные недостатки.

Во-первых, как и все SPI-устройства, сдвиговый регистр требует для себя отдельной линии «chip select» (CS), и это при том, что шина как таковая и так занимает три свободных порта ввода/вывода (MOSI, MISO, SCK).

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

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

А тут мне на глаза попался расширитель портов PCF8574 (даташит TI, даташит NXP) на базе шины I2C.

Читать дальше

Цифровые рекурсивные фильтры. Часть 1.

Я долго думал, как назвать тему. Вариантов было много: от рекламно-жизнерадостного «Цифровые фильтры — это очень просто!» до (с ярким оттенком снобизма) «Алгоритмы построения цифровых IIR- фильтров Баттерворта — для тупых!»
«По совету друзей» (с) я решил остановиться на нейтральном названии (простенько, но со вкусом (с)): «Цифровые рекурсивные фильтры», или, как их ещё называют в простонародье, «БИХ-фильтры» или фильтры с Бесконечной Импульсной Характеристикой, что эквивалентно буржуйскому IIR (infinite impulse response).
Моя цель — подготовить подготовить вас к чтению серьёзных статей по этой тематике (не дай Бог, конечно, но в жизни может всякое случиться...).
Продолжение в Часть 2. Часть 3.


Читать дальше

Инициализация периферии с помощью именованных аргументов

В статье речь пойдет о реализации способа работы c периферией микроконтроллера с помощью именованных аргументов функций Си. Способ разобран на примере реализации функции конфигурации таймера TIM4 семейства STM8L.

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


Читать дальше

Программный таймер. Применение HAL

Сначала небольшая предыстория. Пользовался я раньше, значит, только прAVRославными контроллерами, да команды им посылал исключительно на богоугодном ассемблере. Все бы хорошо, но с портируемостью у асма, как известно, есть проблемы. В большинстве случаев, перенос какого-то куска интеллектуального труда с одного камня на другой подразумевал написание с нуля этого самого куска, но в реалиях периферии текущего мк. Вроде бы и несложно, да и обычно не особо напряжно, но как всегда есть НО. Проснулся интерес у меня к STMовским камням — обилие вкусной периферии плюс интересные цены прельщали (речь идет о STM8 и STM32). Вот тут-то я и задумался о том, что тут пора вспоминать С, да и изобретать свои велосипеды кроссплатформенно. Ибо каждый раз переписывать какое-нибудь типовое программное решение под другую архитектуру или модель контроллера, возможно и полезно с точки зрения тренировки и оптимизации, но грустно с точки зрения потраченного времени и сил. Такие вот дела.

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


Читать дальше

PGA своими руками

Сколько раз ни пытался применить готовые PGA (усилитель с программируемым Ку), ни разу не мог подобрать подходящий. Либо сетка коэффициентов не устраивает, либо (в основном) высокая цена, а часто особенности схемотехники. В результате пришлось изобрести свой.

Казалось бы, чего проще — операционник и коммутатор в цепи ОС, переключающий резисторы нужных номиналов.
Типа:


Как известно, Ку такого усилителя будет определяться соотношением Ку = R2..R5 / R1, выбор задается по адресным входам А0, А1. Вроде все ничего, но есть одно но. Как правило, КМОП-ключи имеют некоторое внутреннее сопротивление, и оно редко меньше 1 Ом, а может достигать и десятков. При этом однозначно нормировать его нельзя, т.к. этот параметр может изменяться как от экземпляра к экземпляру, так и от внешних условий — температуры, амплитуды сигнала и т.д.

Чем это грозит? Тем, что сопротивление ключа вносится в Rос и изменяет Ку. Если требования к точности невысокие и ключ достаточно низкоомный, можно пренебречь внутренним сопротивлением или взять типовое значение из даташита. Однако, если речь идет о прецизионных измерениях, закрывать на это глаза уже нельзя.

Что же делать? Нужно попытаться вынести добавку «за скобки». К счастью, нам повезло :) и коммутатор оказался двухсекционным. Легким движением руки…

… получаем усилитель, не зависящий от капризов природы.

Что произошло? Теперь при подключении любого из резисторов обратной связи мы берем выходное напряжение не с выхода операционника, где оно содержит добавку, обусловленную падением на ключе, а непосредственно с Rос, которое в точности определяется первоначальной формулой, ибо входной ток через R1 уравновешивается выходным через Rос, и напряжение на Rос зависит только от соотношения резисторов. Добавка, обусловленная дополнительным сопротивлением ключа коммутатора, на нем же и осталась.

Эту схему я придумал сам, некоторое время ощущая себя в определенном смысле гением :) пока не наткнулся на описание схемотехники китайского RLC-метра, который срисовали со старинного agilent. Ну и там увидел свой «велосипед». То есть, это вполне стандартный трюк, которым я с удовольствием и делюсь с уважаемым сообществом.

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

Спасибо за внимание, успехов в творчестве.

Юный радиолюбитель. В. Г. Борисов

Энциклопедический букварь начинающего радиолюбителя.
Из категории «обязательно к изучению».
Выдержала восемь изданий в серии «Массовая радиобиблиотека» и ещё несколько — вне этой серии.


Подробнее — статья в Википедии.


Читать дальше
  • +6
  • 08 октября 2014, 13:09
  • EW1UA
  • 3