Перейти до публікації
Пошук в
  • Додатково...
Шукати результати, які містять...
Шукати результати в...

Модуль управления: 2 канала, 2 входа

toksoft

Рекомендовані повідомлення

Попробую и я немного похвастаться :-)

 

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

Список функций собирал под свои задачи, учитывая опыт эксплуатации предыдущих автоматов, без дистанционного управления.

Вначале остановился на небольшом экранчике на корпусе автомата (локальное конфигурирование), но через пару месяцев понял что как-то не очень удобно, и решил вынести в IP сеть.

 

Очень внимательно присматривался к OASISу (от моего любимого поставщика Elko), но, блин, реально дорого. У меня стояло несколько базовых элементов имени OASIS - при пропадании основного (сетевого) питания, отключалась "тяжелая" нагрузка в разных местах в доме (бойлер, конвекторы, стиралка). Несколько на DIN рейке - трансмиттеры, остальные в подрозетниках - исполнители, которые получив команду, отключали нагрузку в конкретной точке. По одной на каждую из фаз.

До появления основного питания. Консоль имени OASIS оказалась для меня слишком дорогой. Было то, что мне не нужно, и не было того, что нужно. В принципе можно было бы доставить "костыли", как я когда-то доставлял для AJAX, но решился на "свое".

 

Были (и есть) задачи по периодическому включению вентиляции, включение/выключение света (импульсный выключатель). Потом добавились задачи "забыли выключить свет". Добавил еще пару полезных функций, учитывая то, что не везде установлены выключатели без фиксации. В общем попробовал сделать универсальный комбайн.

 

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

 

Мануал - это было пожалуй самое сложное :-)

https://www.stroimdom.com.ua/forum/attachment.php?attachmentid=635838&stc=1&d=1539679757

Timer_Manual_v1_1_rus.pdf

  • Лайк 2
Посилання на коментар
Поділитися на інших сайтах

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

 

Немного не так :)

Мое устройство может работать как в сети, так и без.

Для большинства "домашних" задач центральный узел не нужен.

 

Из ПДФки:

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

Именно поэтому я решил использовать помехозащищенный Modbus на базе RS-485.

:beer:

 

Добавлено через 1 минуту

А вообще - респект и уважуха! Громадная работа проделана... Один мануал только чего стоит!

Я только в начале этого пути :)

 

Добавлено через 37 секунд

PS: Фото внутрянки покажете? :)

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Спасибо.

 

Вечером сфотографирую и выложу.

Таких устройств разного назначения, у меня штуки 4. Термостат, под все известные и неизвестные датчики температуры/влажности/давления (до 3х штук любых цифровых), измеритель содержания CO и качества воздуха (CCS811) - решил от греха подальше установить у себя, т.к. зимой все-таки подтапливаю печку - "натуральное" тепло, датчик освещенности, еще что-то в devе лежит,- нужно вспомнить. :-)

Все в рамках того же самого framework, и совместимо друг с другом.

Решил такой себе продуктовый ряд исполнить. Инструкции ... эх,- это да, их нужно таки готовить.

 

Из устройств, которые как для меня проблематично разработать - это коммутация больших токов, т.е. контакторы. Их приходится использовать уже готовые (Elko/ETI или Hager).

 

4х и 6 контактные автоматы делать не стал. Для полива доделал устройство на 8 каналов (реле), с трудом "влез" в 6 юнитов. Блок питания и тепловыделение ...

С пультом - полный караул. Пришлось пульт IP66 о 10 кнопках заказывать в Китае. С коробками для всего этого хозяйства - самая большая проблема после мануалов.

 

Вроде-как чудес за 1+ год не замечено. Все серьезные "косяки" "всплыли" в 1й месяц эксплуатации.

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Из устройств, которые как для меня проблематично разработать - это коммутация больших токов, т.е. контакторы. Их приходится использовать уже готовые (Elko/ETI или Hager).
А их и не нужно - лучше сделать, чем промышленные изделия, не получится. Поэтому - блок с маломощными миниатюрными реле, которые и будут коммутировать промышленные контакторы.

 

 

Для полива доделал устройство на 8 каналов (реле), с трудом "влез" в 6 юнитов.

Кхм.

Реле Hongfa HF41F - 250VAC 6A / 30VDC 6A толщиной 5мм при габаритах 2,8*1,5см.

 

Блок питания и тепловыделение ...

Hi-Link 100-240VAC-5DC. Три ватта вполне хватит.

Или Вы БП еще и для управления клапанами в корпус вставили? Там же при 24В минимум 1А нужен. Зачем его объединять?

 

С пультом - полный караул. Пришлось пульт IP66 о 10 кнопках заказывать в Китае.
Ссылочку можно? Или фото :)
Посилання на коментар
Поділитися на інших сайтах

Картинки внутренностей (в процессе сборки, еще не мытые):

 

 

www.stroimdom.com.ua/forum/attachment.php?attachmentid=635890&stc=1&d=1539711304

www.stroimdom.com.ua/forum/attachment.php?attachmentid=635891&stc=1&d=1539711313

 

 

Hi-Link 100-240VAC-5DC в этот (2х юнитовый) корпус к сожалению не влазит. Использую другой (видно на картинке). Если посмотреть на саму схемотехнику,- то будет видно что она достаточно простая, и в общем блок питания я могу установить как 90-240/5, так и 90-240/12. Поменяются только реле, и еще несколько компонентов.

Входы и выходы развязаны через оптопары. Предохранитель 1А. Он еще дополнительно перегородкой работает. flybacks присутствуют. Повторить аппаратную часть, я думаю сможет каждый. Тут секретов никаких нет. Можно на smd, можно как у меня. Поскольку сборка не фабричная (завод), то паять не smd компоненты значительно проще.

 

 

Если запихивать в подрозетник,- то нужен и свой БП (reverse engineering - проще, или полностью свой), и smd, причем плотным слоем. Опять-же, корпуса типа такого

www.stroimdom.com.ua/forum/attachment.php?attachmentid=635899&stc=1&d=1539715025

я не нашел.

 

 

Что касается комплектовки (включая реле), я стараюсь не разводить зоопарк, и использовать максимально однотипные компоненты. Доступные как у нас на рынке, так и в Китае.

 

 

8266 (e/f/s) потребляет не более 400ma в пике. Каждое из тех реле, которые я использую - ~80ma (при удержании ессно меньше).

Блок питания (который на картинке), долговременно способен работать при нагрузке ~600ma (по 5 вольтам). Итого, в данной конфигурации 2 реле (предполагая что они могут срабатывать одновременно) это оптимум. Если таких реле 8, то блок питания нужен немного другой. Вот он родимый, практически всю нижнюю площадку в корпусе и занимает. Реле, как и на приведенной картинке "на 2м этаже".

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

 

 

БП для управления клапанами (24V) конечно же не в корпусе. Стоит блок питания на DIN рейке, HAGER. Рядом, и без перегородки. Вроде-как не перегружается. Перегородки у меня кончились. :-)

 

 

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

Под сигнализацию,- даже не знаю. Идей еще много чего допилить, особенно после общения с uafisher и diver, времени только нет, так что пока подожду.

 

 

Из "совсем готового", есть еще термостат/метеостанция:

https://www.stroimdom.com.ua/forum/attachment.php?attachmentid=635928&stc=1&d=1539721103

 

Остальное или в процессе "допиливания/тестирования", или в процессе подготовки инструкции, который очень часто вызывает "дополнительное допиливание". Датчик имени CO например, я себе даже и не представляю как тестировать. Он, кстати, сам по себе того, не очень заработает, хоть у него и встроенный NTC сенсор есть, ему нужны достаточно точные показания как температуры, так и влажности. Это значит что только в паре с другим, например HDC1080 (он мне больше всех понравился).

 

 

Что касается помехозащищенности, к сожалению это не панацея, в случае использования радиоканала. В моем случае, я поставил контактор 40А и таймер рядышком, без перегородки, и при включении мощной нагрузки (например котла на 25A), заметил что система иногда перегружается. С перегородкой - уже нет. Аналогичный эффект наблюдается, если начать "искрить контактами" прямо на терминалах устройства.

 

Добавлено через 58 минут

Ссылочку можно? Или фото :)

 

Кнопки такие: www.aliexpress.com/item/1PC-LED-Bulb-Night-Light-Push-Button-Switch-12mm-Momentary-Latching-Self-Locking-Switches-Waterproof-Metal/32821001554.html?spm=2114.search0104.3.69.14b55239bIQVqO&ws_ab_test=searchweb0_0,searchweb201602_5_10065_10068_204_318_319_10059_10884_10887_100031_10696_450_320_10084_10083_10103_452_10618_535_534_10307_533_532_448_449,searchweb201603_60,ppcSwitch_0&algo_expid=2342cc1a-2e49-4ad6-bde6-97a676e85d06-9&algo_pvid=2342cc1a-2e49-4ad6-bde6-97a676e85d06

 

 

в принципе, нечто подобное есть у АСКО, но значительно дороже.

 

 

Box такой: www.aliexpress.com/item/Hot-Waterproof-Plastic-Electronic-Project-Enclosure-Cover-CASE-Box-158x90x60mm-New-Drop-ship-Dls-HOmeful/32841720507.html?spm=2114.search0104.3.56.6c5927d10FYybn&ws_ab_test=searchweb0_0,searchweb201602_5_10065_10068_204_318_319_10059_10884_10887_100031_10696_450_320_10084_10083_10103_452_10618_535_534_10307_533_532_448_449,searchweb201603_60,ppcSwitch_0&algo_expid=2a4a32e0-a5c0-4299-b0fd-5b328fdcc85b-8&algo_pvid=2a4a32e0-a5c0-4299-b0fd-5b328fdcc85b

 

 

только черного цвета. "родную" прокладку выбросил сразу, вырезал свою.

 

 

К кнопкам, по идее должны были идти резиновые уплотнители (изнутри снизу, под гайкой). Не пришли, пошарился в своем "наборе сантехника", и нашел подходящего диаметра.

Почему кнопки большие ? Пожилые люди нажимают. Иногда чересчур сильно. :-)

 

 

8266 для дистанционного контроля полива (как в контроллере, так и в пульте), как мне кажется, подходит не очень. 2 18650 "типа" 3а/ч, хватает "почти на месяц" (включая подсветку кнопок от этого же аккумулятора). Deep sleep и прочие попытки оптимизировать потребление кристалла в общем помогают не сильно.

Наверное тоже нужно STM + RA02 (LORA),- но там мороки по программингу просто немеряно и платы по новой разводить и заказывать нужно. И распаивать всю эту конструкцию достаточно непросто. Если еще 2 соседа до весны созреют - сделаю конечно, так просто "ради интереса" неохота связываться.

Сам я в общем поливаю нечасто, тесть пользуется в основном дублирующим проводным пультом,- типа "так привычнее". Соединен дублирующий box путем витой пары 0.5. Сходил посмотрел на блок питания - HAGER ST314. Я уже не помню почему я выбрал именно его. Всего у меня 6 линий, на которых стоят электроклапана, одновременно могут работать не более 2х линий - давления на остальные не хватает, и K-Rain & Hunter форсунки на дождевателях просто не поднимаются. Сходу не помню, кажется на каждой из линий от 5 до 7 форсунок.

 

 

P.S. 3k3 0.125Wt я все в радиомаге на кардачах "выгреб". Натурально нет. Приходиться до момента прихода из Китая использовать имеющиеся старые аналоги, схожие по размерам (на картинке видно). Тоже с кардач ...

Cntr_Man_v1_1_rus.pdf

Змінено користувачем toksoft
  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Ссылки не открываются.

 

Если система перегружается, возможно идет наводка в цепь кварца, контроллер ловит лишние пики, "разгоняется" и виснет. По этому поводу есть статья: caxapa.ru/lib/emc_immunity.html

 

Я в своих девайсах заливаю всю плату сеткой из земли, оказалось достаточно

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Ссылки не открываются.

 

Если система перегружается, возможно идет наводка в цепь кварца, контроллер ловит лишние пики, "разгоняется" и виснет. По этому поводу есть статья: caxapa.ru/lib/emc_immunity.html

 

Я в своих девайсах заливаю всю плату сеткой из земли, оказалось достаточно

 

 

 

Сама по себе не перегружается, только рядом с контактором (если без перегородки). И то, не всегда. Если рядом "щелкнуть" автоматом 32А под нагрузкой (без перегородки)- не перегружается.

 

Если поставить рядом на DIN рейке 2 устройства, без хотя-бы одного автомата посередине - качество приема падает. Даже если разнести по каналам (WiFi). В общем физика понятна - 2 WiFi роутера рядом, тут похоже иначе никак, кроме как "через автомат", или на разных концах хотя-бы 6 юнитовой рейки,- тогда вопросов нет.

 

Картинки:

 

www.stroimdom.com.ua/forum/attachment.php?attachmentid=635926&stc=1&d=1539720374

www.stroimdom.com.ua/forum/attachment.php?attachmentid=635927&stc=1&d=1539720382

DSC_6271.thumb.JPG.3d01ee26d6d7c1bf5c6ad23c3c577343.JPG

DSC_6272.thumb.JPG.f61e2683bfe2643861d0b7e542fcb047.JPG

Посилання на коментар
Поділитися на інших сайтах

Хе. На верхнем модуле на выходе еще нужен электролит, китайцы на нем сэкономили. И вместо подстроечного резистора можно поставить смд на 21.5к. (для 3.3В) Потому что если его в процессе крутить, можно получить в схему 12В,или что там у вас питающее. Я так убил несколько контроллеров
  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Хе. На верхнем модуле на выходе еще нужен электролит, китайцы на нем сэкономили. И вместо подстроечного резистора можно поставить смд на 21.5к. (для 3.3В) Потому что если его в процессе крутить, можно получить в схему 12В,или что там у вас питающее. Я так убил несколько контроллеров

 

:-)

Да, 12V получить конечно можно, но я прежде чем устанавливать на плату подстраиваю всю пачку, а только потом уже ставлю по одной.

Посилання на коментар
Поділитися на інших сайтах

:-)

Да, 12V получить конечно можно, но я прежде чем устанавливать на плату подстраиваю всю пачку, а только потом уже ставлю по одной.

 

 

По моему трудоемкость с СМД меньше, но это ваш девайс, вам виднее.

Посилання на коментар
Поділитися на інших сайтах

По моему трудоемкость с СМД меньше, но это ваш девайс, вам виднее.

 

Процесс построен так:

 

1. Напаиваем 4 ноги на стабилизатор. И так раз 50, а то и все 100. Секунд 30 на плату.

2. Прямо на bread board, собрана "наколенчатая" схема с ЖК индикатором. "втыкаем" туда ноги от стабилизатора, 2-3 поворота пластмассовой отверткой - готово. Секунд 15, если руки не дрожат :-)

3. Достаем из BB и в коробку - потом понадобится при сборке.

 

Даже если ставить smd fixed резистор - проверять все-равно нужно. Были прецеденты ...

Посилання на коментар
Поділитися на інших сайтах

Изначально весь проект "пророс" из решений имени Elko, к которым по большому счету претензий нет. Основные модули которые я использовал, были CRM-93H, CRM-2H. Были и радиорешения, такие как RFSG-1M, который устанавливается на DIN рейку, и может командовать другими (совместимыми !) устройствами. Были еще термостаты TER-3xx. Сенсоры которые можно было к ним подключить, были только аналоговые. Еще пару лет назад, такого обилия RF компонент еще не было, сейчас чуть побольше. Есть даже IP Gateway (ссылки ниже).

 

Ссылки:

 

www.elkoep.com/multifunction-time-relay-crm-93h

www.elkoep.com/wireless-contact-converter-230v---rfsg-1m

www.elkoep.com/wifi-bridge

 

В общем автоматы неплохие, 1 юнит на DIN рейке. Управление - только крутилки. Есть 2х юнитовые типа "программируемые" реле SHT, настенные термостаты для теплого пола DTC, и еще много чего.

 

RF компоненты, еще года 3 назад стоили немалых денег, сейчас например, только один RFSG-1M (а это самый простой из всех), стоит около 3000 грн за штуку. Исполнители - гривень на 500 - 700 дешевле. IP шлюза в Киеве не нашел (может плохо искал ?), но стоит он тоже немало. OASIS - вообще космос по нынешним временам.

 

А чего собственно не хватало, в простых аналоговых (ну или почти аналоговых) девайсах, которые работали бы и по сегодняшний день ? Не хватало следующего:

 

1. Конфигурировать не крутилкой (отверткой), а через какой-либо интерфейс, при этом не выбрасывая уже имеющиеся устройства, и не покупая всю (или почти всю) новую RF линейку Elko.

 

2. Мониторинг. Видеть что где включено, какая сейчас активная программа. Тоже в интерфейсе.

 

3. Управление. Выключить/включить через интерфейс, не подходя при этом к устройству

 

4. Астрономический календарь (из перечисленных - только у SHT и DTC). остальные (из перечисленных), имеют "относительный" таймер, который начинает отсчет при подачи питания на устройства, и сбрасывается при исчезновении питания.

 

5. Программы (ежедневная/недельная/месячная). Понятно что в таком form-factorе с управлением и программами сильно не разгонишься, и нужно "выходить на следующий уровень", меняя практически всю уже установленную (и, кстати, не самую дешевую) автоматику на RF.

 

6. Имеющийся в наличии (CRM-93H) набор программ. Реально, нужно было больше. В некоторых случаях, приходилось устанавливать по 2шт, чтобы получить одну нужную функцию.

 

Вначале (~2 года назад), решил перейти на собственную разработку: STM + LCD, 1 или 2 юнита. В общем получилось неплохо, и продержались мои 10+ устройств почти год. Радиоканала все равно не хватало, ethernet адаптер я попробовал встроить в 2х юнитовый корпус (и так 4 раза), но потом понял что пачка силовых, а с другой стороны пару веток витой пары заходящие в щиток, в общем не очень удобно (еще и хотя-бы какой-то hub нужно запихнуть в щиток).

 

Решил попробовать "а что же будет" если все тоже самое, но только на 8266 ? Кристалл дешевый, надежный, а главное есть встоенный WiFi.

 

Требования у меня были следующие:

 

1. Конфигурирование через IP (browser, никаких "толстых" клиентов).

2. Управление (оперативное) через IP, без использования чего либо, кроме как обычного

планшета/компьютера, с самым что ни на есть обычным browser.

3. Взаимодействие между всеми устройствами "по воздуху", при децентрализованной схеме

включения, т.е. без WiFi маррутизатора, к которому подключены все устройства. Можно без IP,

в конце концов, это внутренние проблемы устройств, как они между собой общаются.

4. Отсутствие необходимости "обязательно" стучаться в Cloud (как правило vendor specific)

 

Присматривался пару недель,- таки да, на этом кристалле все мои требования реализуемы. Ну значит це макетируем и программим. За 3 месяца была готова 1я версия (таймер,- то что больше всего "болело"). Выбрал я e/f/s модели, с 4mb на борту. Часть под EEPROM, часть под код, часть под файловую систему. Вначале у меня была наивная мысль использовать "готовые" или "почти готовые" библиотеки. Тогда задача действвительно была бы решена меньше чем за месяц. Но ... не сложилось. Пришлось практически с нуля писать свои, благо уже были рабочие библиотеки, "откатанные" на STM. Очень обрадовался тому, что не пришлось "допиливать" LWIP (2.хх) - допилена более чем,- спасибо разработчикам из expressif.

 

Если уже делать,- то "по взрослому". Многопользовательскиий доступ (http), firewall, syslog, схожую с crontab (визуальную правда) систему расписания. разграничение прав, "почти SFT" файловая система, которую я изрядно "подправил", используя открытый код SPIFFS. ext3 конечно не получилось, но я уже и не помню случая, когда бы "лягла" файловая система. Записи, которые были буферизированы в памяти на момент пропадания питания, конечно пропадут, но сама файловая система остается целой и невредимой.

 

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

 

WiFi точка доступа тут по большому счету нужно только для удобства конфигурирования (WEB). Сами кристаллы умеют форвардить "чужие" пакеты (ессно не "сами по себе"), поэтому достаточно того, что один кристал "видит" хотя-бы одного соседа. Обмениваются друг с другом информацией о событиях, таких как изменение состояния управляющих входов, состояния контактов реле, ...

А как принимать иобрабатывать команды разного типа ? Тут я как бы велосипед не изобретал, и воспользовался логикой, сходной с MQQT: просто номер канала, от 0 до 255. Один кристалл генерирует (в зависимости от того, что с ним происходит) сообщение с номерами каналов (до 3х штук), остальные обрабатывают, согласно заданной программе, если номера каналов совпадают с теми, которые прописаны в локальном конфиге кристалла. Ну и форвардят (тоже конфигурируемо) выбранным соседям - до 75 устройств в одной группе. В принципе можно и больше, но я и до это предела дойти не смог.

 

Что 4касается управляющих входов, в моем случае есть проводка на 220В к выключателям и розеткам, посему управляющие входы "заточены" под 110 - 220В, т.е. не на замыкание контактов.

 

Управляет каждый управляющий вход (в зависимости от программы) своим реле, правда я оставил возможность управления путем каналов и вторым реле, т.е. можно "щелкнуть" обеими, если в этом есть необходимость.

 

С термостатом/метеостанцией в общем логика аналогичная, совместная работа с таймером, проверка всего чего только возможно во всех комбинациях. Ограничение - только циифровые датчики, их сейчас на рынке великое множество. В принципе можно конечно доделать подключение аналоговых NTC датчиков, благо свободный порт АЦП есть но учитывая разброс параметров по сопротивлению (при 25С), придется в зависимости от подключаемого NTC сенсора подбирать достаточно точное сопротивление, посему пока не делал.

 

Все устройства "равноценны", т.е. нет ни masterов, ни slavов. Для сценария, когда один автомат (не важно какой) должен централизованно дать команду "выключиться всем", предусмотрена отдельная программа.

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Приехали мои корпуса для сенсоров, наконец-то собрал все как и планировал вначале:

 

 

www.stroimdom.com.ua/forum/attachment.php?attachmentid=636581&stc=1&d=1540148997

www.stroimdom.com.ua/forum/attachment.php?attachmentid=636582&stc=1&d=1540149007

 

Теперь нужно подбирать корпус для беспроводного температурного сенсора. Еще та задача ...

Заказал у китайцев корпуса для подрозетников. Где-то через месяц будут. 2 реле в корпус для подрозетника помещаются, но только на 5А. Блок питания таки пришлось ваять свой, по образу и подобию того, который у меня стоит в 2х юнитовых корпусах.

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

Такая простая деталь,- и на тебе - дефицит на ровном месте ...

001.thumb.jpg.b75066247a1e8578ce2c1e12e63b96b7.jpg

002.thumb.jpg.4a759c401a89b8479ba8a0553cede262.jpg

Посилання на коментар
Поділитися на інших сайтах

Таки наступил сегодня на "веселую" швабру. Подключил к термостату HTU21D и BMP280. А нужно было от этого всего хозяйства, 2 температуры и влажность. Давление меня как бы не интересовало, а именно оно и "вылезло" вместе с 2 температурами.

Пришлось выносить в интерфейсе. Блин ...

Ну никак на автомате не получается. www.stroimdom.com.ua/forum/attachment.php?attachmentid=637041&stc=1&d=1540404117

Untitled-1.thumb.jpg.779c77fd374ba100ce02dae06673fe7f.jpg

Посилання на коментар
Поділитися на інших сайтах

  • 2 тижні потому...

Добавил поддержку датчика CCS811. Если содержание СО2 в воздухе (ppm) протестировать еще можно, то TVOC (ppb) как-то очень "виртуально".

CO2 в помещении колеблется от 400 до 600. На кухне, возле плиты - до 1200. Под выхлопной трубой машины - около 8000. Там правда в общем CO проблема, а не СО2, но типа, меряет. Корректировка с учетом температуры и относительной влажности дает изменения в пределах +/- 100ppm. TVOC можно рассматривать как "интегральный" показатель. Подержал минут 10 над открытой банкой с лаком (пол, яхтенный). Показатель уехал за 3000ppb. После того как закрыл банку, в течении ~1 минуты постепенно вернулся к старым значениям (в моих условиях 10 - 40). В туалете, "после того как", 800-900. Женский/мужской дезодорант - около 500ppb.

Под "выхлопной трубой", зашкалил за 20000. Канифоль (паяльник) - 650 - 700ppb. Дым от подожженной изоляции на проводе показатели "прыгали" в пределах 2000 - 2500ppb.

Больших цифр получить не удалось, хотя верхние границы как для CO2, так и для TVOC - 32768 (ppm/ppb).

 

Через неделю приедет BME680, буду пытаться скоррелировать показания.

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Так выглядит картина с содержанием CO2 за сутки www.stroimdom.com.ua/forum/attachment.php?attachmentid=638527&stc=1&d=1541532396

Untitled-1.thumb.jpg.0accadeb74f194bfc22ade62351bc64e.jpg

Посилання на коментар
Поділитися на інших сайтах

Обнаружил причину повышенного CO2 на графике.

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

 

www.stroimdom.com.ua/forum/attachment.php?attachmentid=638794&stc=1&d=1541705471

 

Судя по отзывам на западных сайтах, CCS811 почему-то считается "капризным" датчиком. Видать не разобрались как правильно clock stretch (i2c) реализовать. В документации достаточно много "серых зон" и, судя по всему, поскольку новые (HW) прошивки в датчик можно без особых проблем заливать, мне пришли датчики с какой-то новой прошивкой. Работает стабильно, зависаний не замечено. Если не использовать весь features set, такой как "wake up/put to sleep", прерывания, то WAKE нужно посадить на землю. Пулдаун уже запаян на плате.

Если сравнивать по сложности реализации со стороны программной части, то скажем SHT31 и MPL3115A2 отняли у меня гораздо больше времени, чем CCS811.

Untitled-1.thumb.jpg.01bdfea0ba3220bcf09f6f12dbc4f54c.jpg

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Итого, на текущий момент поддерживаются:

  • DS18B20(датчик температуры)
  • DS1822(датчик температуры)
  • DS18S20(датчик температуры)
  • DS1820(датчик температуры)
  • DHT11(датчик температуры и влажности)
  • DHT21(датчик температуры и влажности)
  • AM2301(датчик температуры и влажности)
  • DHT22(датчик температуры и влажности)
  • AM2302(датчик температуры и влажности)
  • BMP180(датчик температуры и давления, i2c)
  • BMP280(датчик температуры и давления, i2c)
  • BME280(датчик температуры, влажности и давления, i2c)
  • Si7020(датчик температуры и влажности, i2c)
  • Si7021(датчик температуры и влажности, i2c)
  • HTU21D (датчик температуры и влажности, i2c)
  • HDC1080(датчик температуры и влажности, i2c)
  • TMP102(датчик температуры, i2c)
  • MCP9808(датчик температуры, i2c)
  • SHT3X (датчик температуры и влажности, i2c)
  • MPL3115A2 (датчик температуры и давления, i2c)
  • CCS811(датчик COи VOC, i2c)

Поскольку задача устройства это мониторинг и управление, то возник резонный вопрос, который я похоже "провтыкал" раньше:

А зачем городить огород с отдельными контроллерами освещенности, UV, датчиками движения/жестов ... ?

Конечный итог все равно - графическая история и "щелкнуть реле" при совпадении условий.

Заказал MAX44009, VEML6070, APDS-9900, AP3216, APDS-9930, PAJ7620U2, BH1745NUC, APDS-9960, VL53L0X

 

Приедут - буду пытаться "доклеить" в термостат.

Змінено користувачем toksoft
  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

  • 4 тижні потому...

Добавил поддержку MLX90614/15 (безконтактное измерение температуры) и BME680.

Бесконтактный датчик дает 2 показания температуры: температура объекта, и температура окружающей среды. Температуру объекта меряет достаточно точно, в принципе, возможно использование в качестве датчика обнаружения движения, на расстояниях до 3х метров.

BME680 - монстр. Тяжело программится, за основу взял ессно "родную" библиотеку BOSCH. Монтажные отверстия на плате 1.75mm, вместо 2+mm, как на других платах с датчиками. По сравнению с BME280, более точно меряет относительную влажность, показания не так "прыгают". Температура и давление - отличий с BME280 не замечено. TVOC, или точнее сопротивление газа тоже в общем меряет неплохо, но нужно учитывать то, что показания стабилизируются через ~20 минут после каждого включения (вначале показания завышены - типа качество воздуха хуже).

 

Все датчики "прогнал" через жесткий тест - 15 минут на конвекторе, потом 30 минут в морозильную камеру.

Из победителей - TMP102. В течении ~17 секунд показания выходили на стабильные, как для конвектора, так и для морозильной камеры. В аутсайдерах - SHT30 и SHT31. Различаются отсутствием нагревательного элемента в младшей модели. В морозильной камере начал "косячить", приблизительно в течении минуты, перед тем, как показать реальные показания. HDC1080, который был у меня "эталоном", при резком изменении условий, тоже крайне медленно выходил на реальные показания температуры и влажности. Видать используется какой-то хитрый метод типа "половинного деления" при расчетах температуры.

Посилання на коментар
Поділитися на інших сайтах

Все датчики "прогнал" через жесткий тест - 15 минут на конвекторе, потом 30 минут в морозильную камеру.

Из победителей - TMP102.

 

Жаль, что у Вас нет MCP9700 :)

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Жаль, что у Вас нет MCP9700 :)

 

Дык он же вроде как аналоговый ?

Я пока старательно избегаю аналогов. Только цифра. Иначе придется DigiPot на пате ставить, 3 или 5% точность обычных резисторов (для делителя) будет явно недостаточно. Погрешность будет большая ...

Посилання на коментар
Поділитися на інших сайтах

Дык он же вроде как аналоговый ?

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

 

3 или 5% точность обычных резисторов (для делителя) будет явно недостаточно. Погрешность будет большая ...

1% в помощь :)

Разница в стоимости - копейки.

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

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

 

 

1% в помощь :)

Разница в стоимости - копейки.

 

В общем конечно не проблема.

Есть другие ограничения, над которыми я пока думаю:

 

1. 10 разрядный АЦП.

2. NTC резисторы обычно имеют нелинейную характеристику (логарифмическую), и посчитать итоговую температуру можно 2 способами:

a) B25/50 или B25/100, зная номинальное сопротивление при 25С - это обычно всегда указывается для любого NTC

b) По 2 или 3м точкам (помимо известного сопротивления при 25С)

3. Термистор во время работы нагревается, и это тоже нужно учитывать. Этот параметр обычно указывается как Dr/Dt, и не всегда присутствует в случае "непородистых" NTC

4. Есть разные номиналы NTC, начиная например от 4.7Ohms до 100к, соотв. если делать универсальную систему, то нужно заморачиваться с широкодиапазонным DigiPot, который без прожига washer. Либо с несколькими, для разных диапазонов. Выбор NTC с нужным сопротивлением, зависит от того, на каком "конце" диапазона вы хотите получить максимальную точность измерений. Либо "универсальный" 10-15k, который будет достаточно точно измерять температуру "посередине", скажем от 0 до 60C. Дальше пойдет неслабая погрешность в измерениях.

 

Я даже пробовал вычислять B25/50 у пары NTC, которые у меня были (от "породистых вендоров"). То есть типа моделировал ситуацию "сгорела плата контроллера, подставляем свой".

 

Вопрос как подключить, и что (или как) выносить в интерфейс. Система и так получилась уже не сильно простой, и усложнять ее дополнительными параметрами, которые понятны достаточно узкому кругу специалистов, я не вижу особого смысла.

Есть еще небольшое технологическое ограничение: В 2х юнитовом корпусе, у меня поместилось по 6 терминалов подключения с каждой стороны. 1,2 - питание устройства, 3,4,5,6 - i2c, DHT, DS датчики, и по 3 контакта для каждого из реле с другой стороны.

i2c, DHT и DS, не отличаются по электрическому подключению, во всех случаях pullups. Отличаются по способу (протоколу) обмена информацией с контроллером, У DS свой, у DHT свой, у i2c свой. Можно подключить либо кучу i2c датчиков, либо DS/DHT в любых комбинациях,- помимо питания, к 2м разным терминалам, которые используются для i2c. Терминал для аналогового сенсора мне вынести некуда, и стоит ли ?

Пытался совместить одновременное подключения DALLAS (кстати тот-же корпус TO-92) и i2c - на тех же терминалах, теоретически возможно, практически пока не получилось. С прорисовкой времянок возни много.

Учитывая стоимость DALLASов, я пока не стал заморачиваться с NTC сенсорами. Попробовал залить компаундом TMP102 (i2c, температура) в гильзе - работает. В принципе, в гильзе заработает любой, который не требует доступа к окружающей среде (влажность и давление). С давлением заказал на пробу один мембранный,- посмотрю что получится.

Тут многие жаловались на то, что у ESP софтовая реализация 2wires, но была бы аппаратная,- я бы не смог совместить подключение всех доступных датчиков на одних и тех же терминалах.

 

P.S. Судя по диаграмме, у MCP9700 линейная кривая зависимости температуры/напряжения, но это все-равно аналоговый сенсор. :-)

Посилання на коментар
Поділитися на інших сайтах

Получил наконец все возможные модификации MLX90614/15. Всего 4 разные модели. Оказалось что одна из модификаций MLX90614 двухлучевая. Как-то не обратил внимания вначале. 1 лучевой сенсор возвращает 2 параметра:

 

 

1. Температура объекта

2. Температура окружающей среды (ambient temperature)

 

 

В случае 2х лучевого - 3 значения температуры. Диаграмма направленности и как использовать, достаточно неплохо описана в документации. 14/15 отличаются адресами регистров, и битовой маской некоторых регистров. У 14го есть уникальный идентификатор, состоящий из 4х байт. Что-то типа vendor id, model id и серийного номера кристалла. У 15-го - из 2х байт,- только vendor id/model id.

У всех 4х vendor/model id оказались разными. :-(

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

Сенсор можно "на лету" перестроить на другой i2c адрес (ясное дело до 0x7f). Перезагрузка не обязательна, можно "извернуться" и без перезагрузки.

 

 

Имея исходники общим объемом порядка 23000 строк плюсового кода, наконец то заставить компилятор оптимизировать "правильно". Меньше статических переменных - больше динамики,- и тогда единственное ограничение (для ESP8266) - это объем flash, который для 4Мб, позволяет загрузить около 570k бинарного кода (OTA). Если больше - то тоже можно, но уже только через шнурок. Можно конечно подрихтовать flash map, но ессно только путем уменьшения либо области EEPROM, либо файловой системы.

Есть сборки с уже установленными 16Мб flash, но тут мне похоже крупно не повезло: пришла сборка с памятью, которая пишется только блоками по 1024 байта, т.е. сначала трем, потом пишем весь блок. Соотв. свободный RAM "просел" с 25kb до 23 с копейками.

Посилання на коментар
Поділитися на інших сайтах

  • 2 тижні потому...

Добавил поддержку сенсора MAX44009 (освещенность в люксах).

С интересом обнаружил что мои led lamps на самом деле далеки от заявленных характеристик "эквивалент 100/120Wt лампы накаливания".

То есть глазами это воспринимается как яркий свет, но сенсор с этим не согласен. В принципе логично,- интегральная характеристика какой-то части спектра, которую честно сполняет сенсор. 12Wt led (e27) - около 70lx. Визуально - ярче чем 100Wt лампа накаливания.

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Створіть акаунт або увійдіть у нього для коментування

Ви маєте бути користувачем, щоб залишити коментар

Створити акаунт

Зареєструйтеся для отримання акаунта. Це просто!

Зареєструвати акаунт

Увійти

Вже зареєстровані? Увійдіть тут.

Увійти зараз
×
×
  • Створити...