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

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

toksoft

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

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

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

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

 

 

Вроде уже писал где то здесь- в прошлом году проводил сравнение всех светодиодных ламп на 12В, которые были в Эпицентре. Задача была задиммировать через полевик. Выяснилось, что буквально все лампы жрут ~300мА, из которых на освещение идет 20, а на остальное они греются.

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

  • 5 тижнів потому...

Добавил поддержку еще пары сенсоров, итоговый список такой:

 

1. DS18B20 (датчик температуры)

2. DS1822 (датчик температуры)

3. DS18S20 (датчик температуры)

4. DS1820 (датчик температуры)

5. DHT11 (датчик температуры и влажности)

6. DHT21 (датчик температуры и влажности)

7. AM2301 (датчик температуры и влажности)

8. DHT22 (датчик температуры и влажности)

9. AM2302 (датчик температуры и влажности)

10. BMP180 (датчик температуры и давления, i2c)

11. BMP280 (датчик температуры и давления, i2c)

12. BME280 (датчик температуры, влажности и давления, i2c)

13. Si7020 (датчик температуры и влажности, i2c)

14. Si7021 (датчик температуры и влажности, i2c)

15. HTU21D (датчик температуры и влажности, i2c)

16. HDC1080 (датчик температуры и влажности, i2c)

17. TMP102 (датчик температуры, i2c)

18. LM75A (датчик температуры, i2c)

19. MCP9808 (датчик температуры, i2c)

20. SHT3X (датчик температуры и влажности, i2c)

21. MPL3115A2 (датчик температуры и давления, i2c)

22. MLX90614/MLX90615 (безконтактный датчик температуры, i2c)

23. TMP006 (безконтактный датчик температуры, i2c)

24. CCS811 (датчик CO и VOC, i2c)

25. BME680 (датчик температуры, влажности, давления и качества воздуха, i2c)

26. MS5611 (датчик температуры и давления, i2c)

27. MAX44009 (датчик освещенности, i2c)

28. BH1750 (датчик освещенности, i2c)

29. TSL2561 (датчик освещенности, i2c)

 

Обновленная инструкция:www.stroimdom.com.ua/forum/attachment.php?attachmentid=645996&stc=1&d=1547502972

 

Как подключать:

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

 

Выложил для "посмотреть" прошивку и образ файловой системы:

www.upload.ee/files/9427259/Thermostat_v12.rar.html

 

Заработает на ESP8266 E/F/S. Образ FS под 4Mb (1+3).

При подключении сенсоров, нужно понимать что 2 пуллапа имени 4.7к это для dev плат, если есть желание подключить "голый" сенсор - то нужно смотреть на схему подключения, и добавить пару пезисторов и конденсатор (согласно мануалу для каждого из сенсоров).

Полярность подключения сенсоров (3.3v) желательно не перепутать, сенсор сгорит, т.к. защитный диод редко кто ставит.

Cntr_Man_v1_1_rus.pdf

Schema.pdf

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

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

Допилил еще с 10 поддерживаемых датчиков.

пока проблемы только с одним - Senserion SGP-30. То-ли мне бракованный образец попался, то ли он от рождения такой. Заводится, работает 2-3 минуты, потом все. Перестает отвечать на команды. Ни тебе ACK, ни NOACK. Перезагрузка и/или 0x0006 не спасает - только power off.

 

С Senserion датчиками, по факту проблем было больше всего SHT30/31, SHT20/21. Модели "официально" различаются типа "точностью" измерений, но это далеко не все. Различаются времянки, частичная поддержка некоторых i2c команд.

Есть еще SHT1х -это вообще мрак какой-то. Видать вначале пожадничали на лицензию имени i2c, по финалу получилось 4 провода, но несовместимых ни с чем. В документации как-то опрометчиво пообещали что "будет работать совместно с I2C устройствами", но в реалиях - будет с крайне ограниченным количеством. Если сенсор требует signal strech/restart - досвидос, не заработает, ну или заработает, со значительными потерями во времени, и достаточно сложным кодом.

Оставил "про всяк випадок" поддержку датчика,- может когда-нибудь пригодиться.

Задумался над MQQT. TLS без шансов, SSL можно, но по причине ограниченного объема памяти есть нюансы, plain text authentication, т.е. только в пределах локального сегмента сети, дальше пусть брокер релеит - можно. За пару недель доделаю, как раз подоспеет мой Orange Pi 3, будет с чем повозиться.

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

2 вопроса:

 

Зачем такое многообразие датчиков в устройстве на 2 входа и 2 выхода?

Какой из датчиков температуры по вашему мнению "дешево и сердито" ?

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

2 вопроса:

 

Зачем такое многообразие датчиков в устройстве на 2 входа и 2 выхода?

Какой из датчиков температуры по вашему мнению "дешево и сердито" ?

 

Универсальность. Где-то нужно температуру/давление померять, где-то влажность, где-то UVA/UVB. TVOC/CO. Городить огород для каждого сенсора отдельно - много мороки. Одно устройство для всего. Что подключаем - то и будет работать. Управление/история показаний ведется по 3м параметрам, вне зависимости от того, сколько датчиков подключено. Можно выбирать "на ходу".

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

 

"дешево и сердито" - bme280. Давление/влажность/температура.

Можно DALLAS в гильзе - я использую для измерения температуры в качестве погружного датчика. Для теплого пола - TMP102. Гильза, плата, 2 резистора, конденсатор, харьковская EVA для заливки солнечных батарей. Если нужно CO/TVOC - CCS811. BME680 не совсем "тот" TVOC меряет.

 

Если датчик меряет давление/влажность, то при выносе на улицу лучше сделать так, чтобы дождь напрямую не попадал на датчик.

Можно для простоты использовать готовые dev boards, паять самому smd морочливо. Дешевле и лучше в домашних условиях точно не получится. Например такое:

 

www.aliexpress.com/item/1-8-5V-GY-BME280-GY-BME280-3-3-precision-altimeter-atmospheric-pressure-BME280-sensor-module/32847825408.html?spm=2114.search0104.3.9.ab11301ddiupka&ws_ab_test=searchweb0_0,searchweb201602_3_10065_10068_319_10059_10884_317_10887_10696_321_322_10084_453_10083_454_10103_10618_10307_537_536_10902,searchweb201603_45,ppcSwitch_0&algo_expid=37eb4984-0eb3-45db-9110-b33b3961ea22-1&algo_pvid=37eb4984-0eb3-45db-9110-b33b3961ea22&transAbTest=ae803_4

 

Если нужны очень точные показания давления, то тогда MPL3115A2 или

MS5611/MS8607. Они изначально для дронов,- там хорошая точность.

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

Для самих сенсоров, в формате devboards, я использую

 

www.aliexpress.com/store/product/szomk-diy-plastic-electrical-box-equipment-box-shell-enclosure-20-pcs-59-26-12mm-enclosure-housing/1006252_32567329247.html?spm=a2g1y.12024536.productList_1690906.pic_20

 

ессно за исключением случаев, когда нужно например запихнуть i2c в гильзу и залить,- тогда нужна своя плата, например 4.9 * 30мм

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

Вместо стрелочных манометров на системе водоочистки хочу поставить цифровые датчики. MS5803-14BA . TE блин ...

Дорого. На 30 бар стоит еще дороже. Есть китайский аналог, по протоколу обмена и командам совпадает с TEшным. Видать скопировали, надеюсь что удачно. 2$, правда без dev платы, только сам сенсор. Схема подключения оригинальностью не отличается. :-)

Уплотнительное колечко в комплекте. Как этот самый датчик физически инсталлировать в трубу - пока думаю.

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

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

Таки поборол китайский датчик SPL06-001. Температура/давление. Для дронов. С температурой неожиданностей нет, давление конечно меряет шикарно. По спецификации обещали +/- 5 см (измерение высоты). По моему погорячились,- подтверждаю точность 10см. Документация - мрак. Написано одно, на самом деле программится совсем иначе :-)

Стоимость - 1.20$. если брать пару десятков - меньше доллара (вместе с dev платами). Очевидно был какой-то прототип, с которого скопировали. Удачно скопировали. Как алтиметр - лучшего не видел, даже у TI.

Измерение температуры - достаточно инерционное, даже при минимальном усреднении. Специфика дронов ...

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

Небольшой пример по разборке с китайским сенсором (SPL06-001).

 

1. Datasheet: www.tim-crystal.com/Data/tim-crystal/upload/file/20170524/SPL06-001_datasheet_V2.0.pdf

 

Confidential. Wow ...

 

300-1200 hpa с точностью 0.006 hpa в диапазоне от минус 40 до плюс 85. Очень некисло.

Так, а как с этого зверька снимать показания ? Смотрим вначале на самый простой пример - тепература:

 

t = c0 / 2 + c1 * tread / kT

 

Ага, значит как коэффициэнты, так и raw показания температуры могут быть отрицательными. Это важно, и нужно будет учесть при рассчетах. Кристалл имеет 9 коэффициэнтов, по которым рассчитываются

корректирующие значения температуры и давления. Без проблем вычитываются из регистров, нужно только не забывать о знаке (+/-).

Давайте рассмотрим на примере коєффициєнта с00. Разрядность - 20 бит. int16 мало, значит int32. Оставшиеся 12 бит можно заюзать под что-то другое, или просто "забить". Вычитываем 3 байта, и пакуем в int32:

 

c00_32 = (uint32_t)(byte1<<16)|(byte2<<8)|byte3 ;

 

Запаковали,- теперь знак. В примере выше абсолютно пофиг будет ли это int32_t или uint32_t. Почему ? А потому, что знак в 20 бите, а не в 32м. Есть правда нюанс заключающийся в том, что некоторые компиляторы, единыжды закастив в один тип (например в uint32_t), потом "втихаря" будут кастить в него же, несмотря на попытки закастить в int32_t, но в случае с Teslenica все путем.

 

if ( byte1&0x80 )

{

c00_32 ^= 0xFFFFF ;

c00_32 = 0 - c00_32 - 1 ;

}

 

О,- теперь все Ok. Можно конечно и в одну строчку,- но тогда будет менее понятно. Нужно определиться будем ли мы жить в целочисленной арифметике, или придется уходить на float. Что для этого нужно ?

 

Посмотреть на размерность коэффициэнтов, и вычитываемых значений температур. 16/20/24. Немало ...

Максимальное значение коэффициэнта (котрый определяется выбранным oversampling) 7864320. с0 (int16), да еще и деленный на 2 - это потенциальная потеря точности на целочисленной арифметике, значит дление убираем:

 

t = c0 + c1 * tread * 2 / kT

t /= 2 ;

 

А что с raw temperature (tread) ? Там 24 бита, но все-равно остается шанс того, что вычитается скажем, значение 0xFF, а потом поделившись на 6 значное число, станет нулем, и точность поплывет. Значит нужно умножать не на 2, а уже, например, на 10000. Опаньки. Можем не поместиться. Значит int64. Если навести резкость на формулу для рассчета давления, то там все еще печальнее, уже подбираемься к пределу int64. Можно соптимизировать, можно перепрыгнуть на float.

 

В документации сказано что нужно выбрать тип температурного сенсора, при помощи которого были получены калибровачные параметры. ASIC или MEMS. Правильный ответ - MEMS.

 

В случае выбора oversampling более 8, нужно еще ставить бит сдвига в регистре, и потом учитывать, несмотря на заверения в manualе, что типа "не повлияет никак". Повлияет. Если учитывать, то эта штука может измерять высоту с точностью до 3см. Теоретически может даже и сантиметр, но там уже шумы давить надо, и усложнять алгоритмы. Если использовать в качестве алтиметра, то лучше поместить в негерметичную коробочку, чтобы исключить влияние движения воздуха - чувствительность весьма и весьма похвальная.

 

Смотрим на типа "рабочий пример":

github.com/RT-Thread-packages/spl0601/blob/master/spl06_01.c

 

hdev->calib_param.c00 = (int32_t)h<<12 | (int32_t)m<<4 | (int32_t)l>>4;

hdev->calib_param.c00 = (hdev->calib_param.c00&0x080000)?(0xFFF00000|hdev->calib_param.c00):hdev->calib_param.c00;

 

|= 0xFFF00000

 

Опаньки,- а это что за фокусы ? Это мы так хитро "по китайски" adjusим в минус ? Учитывая что этот коэффициэнт участвует в формуле в качестве одного из операндов, ошибка в общем будет достаточно небольшая, но она таки будет. И нафига спрашивается тулить везде каст имени int32_t ?

 

А присмотреться повнимательнее к формуле рассчета давления, то можно понять что формула неоптимальна. "ненавязчивое" загрубление результата.

 

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

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

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

Приехал мой Orange PI. В точности как на картинке. Тем временем реализовал поддержку MQTT. 3.1.1. Полную. В общем ничего сложного. Выглядит так:

371a85eedb9b387a855c79b0890e26e3.jpg

 

 

Соберусь с силами, попробую поднять Home Assistant (docker container). Еще не совсем понятно как там писать сценарии,- думаю разберусь. В качестве тестовой платформы использовал

 

customer.cloudmqtt.com

 

и

 

console.ng.bluemix.net/

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

Вместо стрелочных манометров на системе водоочистки хочу поставить цифровые датчики. MS5803-14BA . TE блин ...

Дорого.

....

Как этот самый датчик физически инсталлировать в трубу - пока думаю.

 

Я купил такие:

 

attachment.php?attachmentid=652172&stc=1&d=1552029728

 

5VDC (выход - 0,5...4,5 В), 0-1,2 МПа

pressure.jpg.d5796f2f8fb0b68cd92abcba0f8e3c52.jpg

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

InSAn - спасибо, но я все-таки сторонник цифры.

Такая себе модель микросервисов, в рамках которой я не хочу думать о физических характеристиках сенсора, а хочу иметь эксклюзивно цифровой интерфейс к этому самому сенсору. Унифицированный. Например i2c. Как эти сенсоры внутри себя компенсируют температуру, давление, дрифт по старению кристалла,- я знать в деталях абсолютно не хочу. Я хочу иметь абсолютные показания, с точностью один знак после запятой, и использовать те модели, которые доступны "в широкой продаже" на розничном рынке.

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

...хочу иметь эксклюзивно цифровой интерфейс к этому самому сенсору. Унифицированный. Например i2c.

 

I2C хорош только при межплатном интерфейсе - на длинные расстояния (более полуметра или даже меньше) уже не подходит.

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

I2C хорош только при межплатном интерфейсе - на длинные расстояния (более полуметра или даже меньше) уже не подходит.

 

На 2х метрах работает без проблем. Все датчики. Не проверял, но думаю что с пулапами 4.7 заработает и на 5 метрах. Можно даже на обычном телефонном кабеле

 

В общем конечно да, без спецсредств, на большие расстояния (более 10м) не получится.

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

Прошло 9 дней с MQTT. Hаботает стабильно:

 

 

27938d527a6b7a8d74807451ea4629d9.jpg

 

 

При обрыве или пропаданию/появлению inet восстанавливает связь с MQTT сервером, все "неприятности" связанные с WiFi extender пофиксил на стороне кристалла.

 

 

Таки реализовал все что планировал. Ну или почти все. Остались вопросы по аппаратной части, которые хотел, но пока не смог реализовать:

 

1. Универсальное питание 9 - 240V (пока только 90-240V).

2. Обнаружение 9 - 240V на управляющих входах (пока только 90-240V).

 

Получилась следующая картина мира:

 

Само устройство может работать как в автономе (без инет, конфигурирование через встроенную точку доступа), так и при наличии internet connection, т.е. помимо встроенной точки доступа, можно еще подключить к домашней сети. Статикой, или dhcp. Пр этом есть возможность управления через интерфейс, помимо конфигурирования программ.

Если устройств несколько, то вне зависимости от наличия inet, они "разговаривают" друг с другом, т.е. если например к одному из устройств подключен выключатели, а к другому исполнители - будет работать пока не пропадет питание.

С 2х сторонним MQTT возможности явно расширились, теперь осталось ими воспользоваться (HomeAssistant или что-либо другое).

 

Для 2го аппарата (к которому подключаются датчики) реализовал аналогичную схему. Список поддерживаемых датчиков:

  • DS18B20/DS1822/DS18S20/DS18S20/DS1820(датчик температуры)
  • DHT11(датчик температуры и влажности)
  • DHT21/AM2301 (датчик температуры и влажности)
  • DHT22/AM2302 (датчик температуры и влажности)
  • SHT1x (датчик температуры и влажности)
  • AM2320(датчик температуры и влажности, i2c)
  • BMP085(датчик температуры и давления, i2c)
  • BMP180(датчик температуры и давления, i2c)
  • BMP280(датчик температуры и давления, i2c)
  • BME280(датчик температуры, влажности и давления, i2c)
  • Si7020/Si7021 (датчик температуры и влажности, i2c)
  • SHT2x (датчик температуры и влажности,i2c)
  • HTU21D (датчик температуры и влажности,i2c)
  • HDC1080(датчик температуры и влажности, i2c)
  • HDC2080(датчик температуры и влажности, i2c)
  • TMP102(датчик температуры, i2c)
  • LM75A(датчик температуры, i2c)
  • MCP9808(датчик температуры, i2c)
  • SHT3x (датчик температуры и влажности,i2c)
  • MPL3115A2 (датчик температуры и давления, i2c)
  • LPS331AP/LPS25H (датчиктемпературы и давления, i2c)
  • SPL06(датчик температуры и давления, i2c)
  • MS5611(датчик температуры и давления, i2c)
  • MS8607(датчик температуры, влажности и давления, i2c)
  • MLX90614/MLX90615 (безконтактный датчик температуры, i2c)
  • TMP006/TMP007 (безконтактный датчик температуры, i2c)
  • CCS811(датчик COи VOC, i2c)
  • SGP30(датчик CO2и VOC, i2c)
  • BME680(датчик температуры, влажности, давления и качества воздуха, i2c)
  • MAX44009(датчик освещенности, i2c)
  • BH1750(датчик освещенности, i2c)
  • TSL2561(датчикосвещенности, i2c)
  • OPT3001 (датчик освещенности, i2c)
  • VEML6070(датчик ультрафиолетового излучения UVA, i2c)
  • VEML6075(датчик ультрафиолетового излучения UVA и UVB, i2c)
  • SI114x (датчикосвещенности: Visible, IR, UV, i2c)

Еще осталось реализовать поддержку пары TE датчиков давления и, пожалуй, хватит.

 

После того, как снял со щитков и перепрошил 16 аппаратов, добавил возможность прошивки "по воздуху". "стандартный" OTA меня не устроил, пришлось писать свой.

 

Все устройства "ходят наружу" только по 3м поводам:

 

1. DNS resolve

2. MQTT

3. Отправка управляющих пакетов аналогичным устройствам (включить, например, свет в Чернигове из Киева, при этом не используя никаких платформ и сервисов, кроме 2х устройств).

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

Датчики TE планируются под задачу регулятора давления. У меня немного сложная система очистка воды (https://www.stroimdom.com.ua/forum/showthread.php?t=93628) и, похоже за 6+ лет, насосу (обычный Водолей в скважине, труба 110), и реле давления, приходит конец. Как это выглядит:

 

 

У меня реле давления (механическое, кажется какое-то итальянское), было настроено на диапазон 1.5 - 5Атм, насос исправно качал, и все было хорошо. При установке всего хозяйства, я еще "про всяк випадок" добавил систему защиты от сухого хода, которая при вскрытии оказалась усложненной системой реле тока. Иногда, при достижении границы 5Атм, реле давления почему-то не срабатывает. Срабатывает защита по току, где-то в районе 5.9А (проверил экспериментальным путем). После этого нужно исполнить цикл power down/up, и тогда все продолжает работать как задумано.

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

Дебит скважины минимум в 3 раза превышает возможности насоса, так что с этим проблем нет.

По причине износа пружин, а в моем реле давления стоят 2 регулятора (верхний и нижний предел), которые по факту работают в режиме "верхний предел" и дельта, механические регулировки позволили "переехать" в диапазон 3 - 4.5Атм, что в общем не сильно хорошо как для самого насоса, так и для мембраны в баке.

Давление я мониторил путем 3х механических манометров. Почему 3х ? Потому, что давление "на входе", после 3х баллонов, и на трубе раздачи чистой воды конечным потребителям различается. Фактически, для меня значительные отклонения любого из 3х показателей, означали необходимость внеочередной промывки, или замены механического фильтра (одного из).

По идее, самое простое решение - это "вернуться" в старый диапазон, путем установки цифровых датчиков (те самые TE), но при этом возникает вопрос,- а как собсно должна работать система на разных режимах ? Может имеет смысл мониторить расход воды за период, и динамически подстраиваться под текущий расход ? То есть, если устройство например видит что расход воды "относительно постоянный", то какой смысл ждать пока давление опустится до 1.5, потом снова накачивать до 5, и снова ждать ?

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

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

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

Выполнил первичную оценку, не нашел цифрового flow meter. Значит наверное нет смысла заморачиваться с частично аналоговыми, частично цифровыми датчиками. Придется каятся перед InSAn :-)

 

Минимальный набор я вижу следующий:

 

1. ADS1115 (www.aliexpress.com/item/16-Bit-I2C-ADS1115-Module-ADC-4-channel-with-Pro-Gain-Amplifier-for-Arduino-RPi-1PCS/32817162654.html?spm=a2g0s.13010208.99999999.260.82353c00k7q5lH)

2. 1" flow sensor (www.aliexpress.com/item/Water-Flow-sensor-Hall-Sensor-Switch-Flow-Meter-DN25-brass-water-meter-Industrial-turbine-flowmeter-1/32954428165.html?spm=a2g0s.8937460.0.0.71372e0e5j0PjI)

3. Pressure transducer (www.aliexpress.com/item/5V-0-1-2-MPa-Oil-Fuel-for-Gas-Water-Air-Pressure-Transducer-Sensor-Oil-Fuel/32816800284.html?)spm=2114.search0104.3.8.5c1b2b7dP4Docc&ws_ab_test=searchweb0_0,searchweb201602_1_10065_10068_319_10059_10884_317_10887_10696_321_322_10084_453_10083_454_10103_10618_10307_537_536_10902,searchweb201603_6,ppcSwitch_0&algo_expid=caf7ee64-5205-4673-8854-5d189c2e093b-1&algo_pvid=caf7ee64-5205-4673-8854-5d189c2e093b)

4. Current transformer (www.aliexpress.com/item/Free-Shipping-1pcs-Non-invasive-Split-Core-Current-Transformer-AC-current-sensor-100A-SCT-013-000/32754634532.html?spm=a2g0s.9042311.0.0.27424c4dyNB2q4)

 

Часть уже есть в наличии, часть дозакажу. АЦП - 4 канала. По идее мне достаточно 3, но учитывая критичность процесса, можно поставить 2 дублирующих датчика давления (И/ИЛИ).

Поскольку внешний I2c АЦП доступен, вписываюсь в архитектуру 8266, т.е. ESP32 для этой задачи избыточен.

Еще бы напряжение (220V) чем-то померять, тогда был бы полный феншуй, но для того чтобы измерить с приемлимой точностью, увы и ах без трансформатора не обойдешься.

Можно такой www.aliexpress.com/item/ZMPT101B-2mA-2mA-Precision-Phase-voltage-transformer-Output-Voltage-Sensor/32960491471.html?spm=a2g0s.8937460.0.0.26e92e0eBoXYbc

 

но меня что-то смущает 2ма. "голым" оный подключать не получится, я думаю как минимум нужно 2 резистора и один конденсатор. Тогда будет чем загрузить 4й порт АЦП.

 

Так, в принципе, все понятно. С алгоритмом - начал рисовать, но пока еще не все понятно.

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

Еще бы напряжение (220V) чем-то померять

 

Нужно померять наличие в цепи или его значение в сети?

Если наличие - то посмотрите сюда: forum.easyelectronics.ru/viewtopic.php?p=565989 (сообщение от iev91, вторая схема)

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

Нужно померять наличие в цепи или его значение в сети?

Если наличие - то посмотрите сюда: forum.easyelectronics.ru/viewtopic.php?p=565989 (сообщение от iev91, вторая схема)

Наличие не проблема, это у меня уже давно есть в таймере. Это самая простая задача. В диапазоне от 90 до 240В. С dejitter, т.к. мне нужно знать когда была нажата, а когда отпущена клавиша выключателя. Нужно значение самого напряжения. Желательно в диапазоне от 1 до 400В. :-)

Цель - знать потребление насоса как единомоментно, так и за период.

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

Цель - знать потребление насоса как единомоментно, так и за период.

 

Тогда только через счетчик электроэнергии с Модбас выходом :)

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

Тогда только через счетчик электроэнергии с Модбас выходом :)

:-)

Не, сделаю свой. Он был в планах, но явно не на сейчас. Пока как часть логики управления насосом. Сложностей никаких я не вижу, глянул на пример реализации (www.aliexpress.com/item/Active-Single-Phase-Voltage-Transformer-Module-AC-Output-Voltage-Sensor/32860818572.html?spm=a2g0s.13010208.99999999.285.e9933c001VUKKo) - все понятно. Операционник и обвеска. На ali есть уже "типа готовые решения" имени energy monitoring, со снятием показаний через uart,- но смысла в оных я не вижу, тут ничего сложного нет. Алгоритмы простые и известные, трансформатор тока есть, проверен, и работает как часики. На 10 битах имеющегося в наличии ADC точность конечно не позволит что-либо измерить с достаточной достоверностью, но на 16 битах, чуть поджав диапазон - вполне.

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

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

Поменял Hiaomi WiFi extender Pro на один из самых простых ASUS RT-12E.

Стоимость - 300 грн. Доставка Новой почты ... Эхх... 55 грн. С Укрпоштой имеет смысл иметь дело только для поставок с aliexpress,

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

подключить оный в режиме AP. Осталось 11 100Mbps POE портов и 2 гигабитных. Кончатся, прижется снова нп local.com.ua покупать

еще один маршрутизатор, а это потребление энергии, место в мини-серверной, и тепловыделение.

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

с целью проверить как будет вести себя фрагмент системы, при постоянно отваливающемся коннекте. С Xiaomi extender, картина выглядела так:

5785f2375aa3186784bff5e9aba181b6.jpg[/url]

То есть каждые 5 минут. DHCP settings на главном роутере в учет не брались, т.е. причина была не в них.

Если навести фокус на лог, ту станет понятно, что некоторое время, причем каждые 5 минут, устройства находились в offline, т.е.

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

возможность работы с MQTT. Зачем вообще при таких раскладах MQTT ? В моих реалиях - дистанционный мониторинн и управление, ну и

"продвинутые сценарии", которые достаточно проблематично реализовать на каждом из контроллеров, по причине ограниченного объема памяти

(причем уже как RAM, так и EEPPROM).

Сами устройства самодостаточны, т.е. "выпадение" точки доступа, не означает что что-либо перестанет работать.

Как это реализовано ?

Каждое устройство, при наступлении события, рассылает (в случае наличия connect с AP) информацию на muulticast address, и все остальные

устройства реагируют согласно заданным программам.

888b0c1c92684113a001c12f10c61ef6.jpg

В приведенном выше screenshot, когда срабатывает одно из реле, сообщения отправляются с некиим признаком, типа "виртуальный канал",

5 и 6 для реле N1 и реле N2. Все остальные устройства, у которых в "Accept announcements from", при получении такого сообщения,

"отзеркалят" у себя состояние соотв. реле. Могут "отзеркалить" состояние управляющих контактов, типа есть напряжение (90-220В), или нет.

Далее, каждое из устройств будет отрабатывать сигналы, согласно локальной программе в каждом из устройств. Если локальные программы не заданы,

то тогда все устройства "слушающие", например, канал 5 (для channel 1 на картинке выше), в случае замыкания на устройстве, которое

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

ESP8266 имеет очень неслабые сетевые возможности, в частности возможность работы в режиме "mesh network". Для этого не нужно использовать

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

Что это значит ? 2 или более ESP8266 могут общаться напрямую, без участия точки доступа, или каких-либо других аппаратных средств.

Основное условие - прямая видимость. "прямая видимость" в общем достаточно условно, например один из моих контроллеров в подвале, "достреливает"

до соседнего здания через метров 20. С RSSI примерно -85. Сообщения на multicast и на остальные устройства передаются "условно одновременно", при

этом каждый из кристаллов фильтрует дубли. Это означает, что подключение к точке доступа мне нужно только для того, чтобы я мог "c удобствами",

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

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

полностью рабочем состоянии. В примере нав картинке выше, контроллер "следит" за наличием сетевого наряжения на 2х фазах и, в случае если пропало,

и система перешла на резерв, отключает конвекторы и бойлер, которые подключены на каждую их этих фаз. Ясен перец, что при таких раскладах, неполучение

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

А что будет если устройства находятся слишком далеко друг от друга, т.е. "не достают" один до другого ?

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

Да, при этом из своей локальной сети я это устройство "не вижу", но при этом, например, оно исправно включает прожектор, и открывает/закрывает

калитку. Выключателями которые в доме, и не только. Другие устройсва, которые "по дороге" ретранслируют команды от/к устройству, и вся эта

конструкция работает, пока не пропало питание.

MQTT мне нужен для сценариев, когда требуетсся выполить какие-либо действия, при совпадении нескольких условий, например температура в одном

из помещений повысилась до заданного предела, при этом "выпала" одна из фаз (или все), датчик освещенности показывает что "капец как ярко",

а дачтик UVB гоаорит что больше 8. Такой сценарий контроллеры самостоятельно не отработают, и для этого есть MQTT.

Если AP "упадет", то я ессно лишусь этих самых сценариев, но "базовые" продолжат работать, и я смогу управлять всем своим хохяйством.

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

"а какой собсно IP у контроллера, который управляет светом в беседке" ? Не, понятное дело, что я могу пойти и щелкнуть выключателями

в этой самой беседке, но из интерфейса это сдедать немного удобнее :-)

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

Все то же самое можно выполнить через MQTT, разве что из WEB интерфейса можно отключить возможность обработки "обратки" (PUBLISH) от

MQTT, либо вообще отключить MQTT для данного конкретного устройства.

Сам движок MQTT (в моем случае mosquitto с API) работает исправно (на Orange PI), не хватает собсно только GUI, где будут красиво прорисованы

и представленны строения/комнаты, с утановленными устройствами и элементами управления. Home Assistant я рассматривал эксклюзивно с этой

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

Нашел пару frameworks имени JS, сейчас присматриваюсь к трудозатратам.

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

взаимодействия друг с другом.

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

  • 3 місяці потому...
Не сталкивались с вай-фай реле для роллет, какой нибудь аналог сонофф, которое бы поместилось в подрозетник? Меня вполнеустраивает как работает умная розетка сонофф (например включение рециркуляции и пассивного холода по графику), хочу сделать чтото подобное для роллет, но то что вижу на али все какое то крупное
Посилання на коментар
Поділитися на інших сайтах

Не сталкивались с вай-фай реле для роллет, какой нибудь аналог сонофф, которое бы поместилось в подрозетник? Меня вполнеустраивает как работает умная розетка сонофф (например включение рециркуляции и пассивного холода по графику), хочу сделать чтото подобное для роллет, но то что вижу на али все какое то крупное

 

ru.aliexpress.com/item/32967558175.html?spm=a2g0v.search0204.3.11.400345271ajkX4&ws_ab_test=searchweb0_0%2Csearchweb201602_6_10065_10068_319_10059_10884_317_10887_10696_321_322_10084_453_10083_454_10103_10618_10307_537_536%2Csearchweb201603_52%2CppcSwitch_0&algo_expid=de113ff1-5989-499f-974c-672a721d0821-1&algo_pvid=de113ff1-5989-499f-974c-672a721d0821&transAbTest=ae803_3 такое?

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

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

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

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

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

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

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

Увійти

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

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