У.дача каждому 1С-нику или Умный дом для ленивых (зачеркнуто) пытливых

29.02.24

Интеграция - Робототехника и умный дом (Arduino, NFC, RFID)

Обладая минимальными навыками инженера, вполне можно сделать «умными» относительно недорогие устройства, и управлять всей логикой на 1С. Возможности огромны: управление светом, включением-выключением розеток, автополив, сигнализация и т.д. О самостоятельной реализации в 1С нестандартной логики управления устройствами пойдет речь в статье.

Аббревиатура «у.дача» означает «умная дача». Много лет назад, когда я приобрел дачу, у меня появилась потребность в комфорте. Мне хотелось приезжать в теплое прогретое помещение зимой, не тратить время на обогрев и прочие вещи. Тогда я задумался, как сделать так, чтобы на даче было тепло.

В то время не было «умных розеток» или какого-то простого решения, которое можно было бы купить в магазине – чтобы прийти домой, вставить в розетку, и сразу все заработало.

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

 

На конференции Инфостарта я выступаю впервые, хотя у меня больше 20 лет опыта разработки решений на 1С. Образование профильное, специальность «Программное обеспечение». Много лет работал руководителем ИТ в крупной компании.

И у меня достаточно большой опыт работы с микроконтроллерами, микрокомпьютерами – это мое хобби.

 

Умный дом. Охват решаемых задач

 

 

С помощью технологии умных домов мы можем решать множество задач:

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

  • Вопросы освещения. Начиная с того, чтобы просто автоматически включать в комнатах свет при появлении людей и потом его автоматически выключать, когда все пошли спать. Или уличное освещение: когда стало темно, свет автоматически включился, стало светло – автоматически выключился.

  • Умные розетки тоже вполне можно охватить этим решением.

  • Автоматические ворота. Когда мы подъезжаем к частному дому, ворота можно открыть просто с телефона.

  • Еще в частных домах актуальны задачи, которые связаны с выращиванием растений, – автополив, автопроветривание, поддержание уровня воды в бочке. Наше решение позволяет все это реализовать.

 

Кроме того, в частном доме, на даче или в квартире с помощью технологии «умного дома» можно контролировать:

  • утечку воды;

  • утечку газа;

  • задымление – если случился пожар, можно включить систему пожаротушения;

  • двери, окна – если, например, открылась форточка или дверь, отправлять какой-то сигнал или включать сигнализацию.

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

 

Основа «Умного дома» – микроконтроллеры

 

Основа решения – то, что позволяет нам управлять «умным домом» – микрокомпьютеры или микроконтроллеры.

На слайде представлены, наверное, самые распространенные микроконтроллеры.

  • Первые два – это Arduino серии WeMos и NodeMcu. Они небольшие, помещаются на ладони, причем в них уже даже встроен WiFi. Размеры этого устройства позволяют его встроить в любое место, даже в подрозетник – надо будет только поглубже его поставить.

  • Микрокомпьютер Raspberry – более серьезная система, с собственной встроенной операционной системой. У него есть выходы HDMI, USB, его можно подключить к монитору и клавиатуре, и будет полноценный компьютер.

Но мы будем основываться на более простых решениях – WeMos и NodeMcu.

Для работы микроконтроллеров нужна сеть WiFi, поэтому, если у вас на даче нет WiFi, вы можете приобрести отдельный модуль GSM, в который вставляется SIM-карта – тогда у вас интернет будет работать через мобильные данные оператора.

Микроконтроллеры – это основа для сбора данных с датчиков и для передачи сигналов на управляемые устройства.

 

Исполнительные механизмы «Умного дома»

 

Что входит в понятие «Исполнительные механизмы»:

  • Самые простые исполнительные механизмы – электромеханические реле. Они здесь на слайде в верхнем ряду, голубого цвета. Микроконтроллер подает на реле сигнал с небольшим током, происходит замыкание контактов катушки, и таким образом включаем или выключаем электрический ток.

  • Более технологичные устройства – это твердотельные реле. В них мы можем использовать бОльшие токи, они более надежные. Они здесь на слайде представлены в нижнем ряду – тут маленькое твердотельное реле и вариант покрупнее, который мы можем использовать для более серьезных систем. На твердотельном реле ток может доходить до 100 А – т.е. мы можем подключать очень большие нагрузки, например, микроволновки, системы отопления. Единственное – такие реле требуют дополнительного охлаждения. Это надо будет учесть. В моей статье на Инфостарте описаны нюансы работы с реле – разница между разными реле, и какие виды реле рекомендуется брать для реализации различных задач.

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

  • И есть электромеханические клапаны – ими мы можем управлять, чтобы отключить или включить подачу воды, например, для автополива или для центрального отопления. Или мы можем реализовать систему, которая контролирует утечку воды – если датчик сработал, мы получаем сигнал и перекрываем электромагнитный клапан. Такие автономные системы, конечно же, продаются, но мы говорим о едином комплексе. Это не будет набор каких-то разрозненных систем, вы сможете их контролировать в одном приложении.

 

На основании чего управлять? Датчики

 

Микрокомпьютер дает команды исполнительным механизмам на основании внешних событий, источниками которых являются датчики разных видов:

  • Температуры – на слайде представлен один из самых надежных датчиков температуры DS18S20.

  • Освещения.

  • Влажности.

  • Движения – можно сделать сигнализацию, реагирующую на какие-то движения. Или реализовать систему включения света.

  • Задымления – с их помощью можно уловить утечку газа или появление дыма и оповестить об этом.

  • Датчик расстояния – я использую, чтобы измерить уровень в бочке. От воды отражается сигнал, я ловлю его обратно и смотрю, сколько воды в бочке осталось. В зависимости от этого я автоматически пополняю воду – вода в бочке у меня есть всегда.

 

Причем тут 1С? Схема взаимодействия

 

Я вам рассказал про микроконтроллеры, про исполнительные механизмы, про датчики. А где здесь 1С – мы ведь ее никак не сможем поставить на микроконтроллер?

1С в этой схеме участвует в двух ролях:

  • как промежуточная часть – она является сервером;

  • и с помощью 1С мы можем реализовать мобильное приложение.

Схема работает следующим образом:

  • Микроконтроллер с периодичностью несколько раз в секунду отсылает серверу 1С HTTP-запрос и спрашивает, есть ли для него какие-то управляющие сигналы.

  • В параметре GET-запроса микроконтроллер может передать серверу 1С значение датчика. Например, здесь на слайде видно, что передается параметр ti0=27 – т.е. с нулевого датчика температуры мы получили значение «27». Передавать можно не только температуру, но и различные цифровые и аналоговые сигналы.

  • Далее 1С анализирует, какие входные сигналы мы получаем, по алгоритму преобразует их в выходные сигналы и говорит, на какую ножку какой сигнал пошел. Например, формируется JSON, как на слайде, где указано: на ножки 0, 1 и 2 нет сигнала; на ножки 3-4 есть управляющий сигнал.

  • И эта связка постоянно в цикле крутится.

Помимо статьи я опубликовал на Инфостарте саму конфигурацию 1С для этого решения.

  • Эта конфигурация 1С является центральной частью, куда мы можем заводить различную информацию об устройствах, входных и выходных сигналах.

  • Она же является сервером для входящих HTTP-запросов как от микроконтроллера, так и от мобильного приложения.

  • И она же является источником для публикации мобильного приложения.

 

Возможности конфигурации

 

Эта конфигурация 1С содержит набор справочников.

  • Основной справочник – это «Дома». По аналогии с решениями известных брендов домов может быть несколько – «Дача», «Загородный дом» – может, вы еще чем-то хотите управлять.

  • Внутри каждого «Дома» есть «Устройства». В данном случае к дому «Дача» подключено два устройства: «Основной дом + улица + теплица» и «Баня + бочка».

Скриншоты на слайде основаны на реальных данных – эта конфигурация реально у меня используется для управления этими устройствами.

Внутри карточки устройства:

  • Наверху в шапке можно задать описание, как мы будем видеть это устройство в мобильном приложении.

  • Плюс токен, который будет передаваться в HTTP-запросе от устройства вместе с данными – это минимальная защита, элемент безопасности.

В каждой строчке табличной части задаются элементы управления устройством и указывается описание, которое будет выводиться для каждого элемента в мобильном приложении:

  • В первой строке мы создали кнопку под названием «Дача вся» и обозначили, что эта кнопка – «Btn0».

  • Во второй строке мы вывели название «Улица» и вывели на форму входной сигнал «Tin0» – температура на улице. Кнопок в этой строке никаких нет, т.к. к сожалению, у нас нет власти управлять температурой на улице. Но и просто посмотреть значение температуры бывает полезно.

  • Третья строчка – управление одной из комнат, холлом.

    • Здесь на входной сигнал подаем температуру с датчика «Tin1».

    • Выводим минимальную и максимальную целевую температуру. На самом деле целевую температуру потом будет задавать пользователь, но здесь выводятся значения настроек по умолчанию.

    • Указывается кнопка «Btn1(Холл)», с помощью которой можно ввести целевую температуру.

    • И указывается то, чем мы управляем – выходным сигналом «Dout0». Т.е. выходным сигналом микроконтроллера мы управляем с реле, которое подключено к одной из ножек микроконтроллера – под номером 0.

    • Далее мы указываем алгоритм, по которому будем управлять – это текстовая строка, где мы пишем значение «Btn0*Btn1». Это означает, что управление температурой в холле будет работать, если мы в мобильном приложении включили тумблер «Дача вся» и «Холл».

  • Аналогично здесь сделано для «Холл турбо». У меня в холле есть дополнительный нагрев, и когда я вижу, что скорость нагревания не такая, как меня устраивает, я включаю дополнительный тумблер «Холл турбо». Он подключен к тому же датчику «Tin1», а выходной сигнал здесь уже управляется другим реле «Dout1», которое подключено к ножке 1. Алгоритм здесь «Btn0*Btn2», т.е. тумблер «Дача вся» умножается на значение включенности тумблера «Btn2», «Холл турбо».

  • Похожим принципом мы управляем температурой в спальне. Входной датчик «Tin2», кнопка «Btn3», и управляем выходным сигналом «Dout2», который подключен к ножке 2.

  • Теплица. Здесь мы ловим входной аналоговый сигнал от датчика влажности «Ain0». Он должен быть в диапазоне от 400 до 500 – в этом диапазоне мы поддерживаем влажность почвы. И уже выходным сигналом «Dout3» на ножку 3, которая подключена через реле на клапан подачи воды, регулируем полив.

  • Последнее – управление светом на улице. У меня реализовано простое управление светом на улице: включили-выключили. Подъезжаем, например, к даче, к дому, включили тумблер «Btn4» – свет загорелся. И мы спокойно открываем ворота, двери, не заходя в дом.

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

  • Для входного сигнала мы формируем номер – он может быть любой: 0, 1, 2 и т.д.

  • Дальше мы указываем PIN – ножку, к которой подключен микроконтроллер.

  • И выбираем тип сигнала – «Цифровой», «Аналоговый» или «Температурный».

«Температурный» я назвал условно – это, скорее, вариант подключения устройств через шину One Wire, когда к одной ножке микроконтроллера можно подключить неограниченное количество датчиков температур или других устройств, которые построены по этой технологии.

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

Настроив все эти значения в конфигурации – выбрав, к какой ножке какой входной и какой выходной сигнал подключается – вы нажимаете кнопку «Сформировать скетч», и весь код будет сформирован. И вы сможете просто запрограммировать микроконтроллер и залить, особо даже не разбираясь, не вдаваясь в подробности, какой код формируется для записи в микроконтроллер.

У микроконтроллера не очень сложная логика – он служит всего лишь как некий удаленный рабочий стол для управления исполнительными механизмами.

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

 

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

Здесь у нас те самые кнопочки: «Дача вся», «Холл», «Холл турбо», «Спальня», «Свет улица». Выводится влажность в теплице и температура на улице. Это одно устройство.

Ниже – второе устройство. Т.е. два устройства в одном доме здесь отображены на одном экране.

Здесь мы видим температуру на улице и в каждой из комнат. Если температура в комнатах нас не устраивает, включаем «Дача вся», тумблеры для нужных комнат и задаем для каждой из них целевое значение температуры.

 

Хватит теории! Демонстрация решения

 

 

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

На смартфоне у меня небольшое мобильное приложение, которое обменивается данные с этим устройством по WiFi. Я с телефона раздаю WiFi, а в устройство вшиты параметры, по которым оно соединяется с моим WiFi в телефоне. И есть дополнительный сервер, который обрабатывает эти данные.

В мобильном приложении для этого устройства реализовано два управляющих элемента – управление температурой и имитация управления светом.

Я нажимаю кнопку управления «Включить свет» и загорается светодиод управления. Включаю / выключаю – светодиод то горит, то гаснет. Алгоритм очень простой – нажата кнопка или не нажата.

Вторая кнопка чуть поинтереснее – она отвечает за температуру. Сейчас в зале температура 24.13 градуса по Цельсию. Это маленькое устройство определило температуру.

Сымитируем нагрев помещения. Текущая температура – 24 градуса, целевая – 28 градусов. Я включаю нагрев в приложении, и на устройстве загорается красная лампочка, которая имитирует нагрев.

Датчик температуры для этого устройства представлен в виде антенны сверху. Я ее сейчас зажму, и когда за счет тепла моего тела она нагреется до 28 градусов, лампочка должна погаснуть.

Датчик нагрелся – лампочка погасла. Через какое-то время, когда температура упадет, лампочка снова загорится.

 

Преимущества и недостатки решения

 

Рассмотрим, какие у этого решения есть преимущества, и в чем его ограничения.

К числу преимуществ можно отнести следующее:

  • Можно реализовать собственную бизнес-логику. Я показал самый простой алгоритм, где проверяется выполнение условий «Btn0*Btn1». Но алгоритм может быть любой, какой захотите. Код решения открыт, если вы немного погрузитесь, можно реализовать свою, сколь угодно сложную бизнес-логику – наверное, не в каждом решении от известных брендов этим можно воспользоваться.

  • Можно подключить совершенно различные устройства управления и совершенно различные датчики. Поддерживаются любые датчики, способные подавать цифровой, аналоговый сигнал, или которые можно подключить по шине One Wire. А также любые устройства управления, которым достаточно на вход подать небольшое напряжение 3.3-5 Вольт или использовать реле.

  • Нет зависимости от сторонних сервисов. Вы сами настраиваете решение, и только ваши настройки могут повлиять на стабильность и устойчивость.

  • Все данные хранятся только в вашей системе.

  • Можно сделать свой собственный интерфейс приложения – переделать его как вам удобно.

  • Теоретически можно организовать автономную систему. Я вам показал не очень автономную систему – она постоянно опрашивает сервер, какой управляющий сигнал получить. Но вы можете чуть-чуть глубже погрузиться в код Arduino и сделать свою автономную систему, которая сама знает, какие датчики оставить включенными, а какие выключить, если от сервера нет ответа.

  • Стоимость. Начальный комплект из двух устройств, который я показывал, стоит около 250-300 рублей.

 

Но есть и ограничения:

  • Все-таки нужны инженерные навыки. Вы не можете это решение просто подключить к сети, как умную розетку Сбера или Яндекса – придется чуть-чуть повозиться с проводами, с электрикой, с коммутацией. Но это очень интересно – почти так же, как детям интересно Lego. Можно считать, что Arduino – это Lego для взрослых.

  • Нужен сервер 1С. Надеюсь, он у многих развернут дома или на работе, и это не будет для вас сильным ограничением. Поэтому и тема доклада «У.дача для 1С-ников». Для не 1С-ников это, конечно, будет очень серьезным ограничением.

  • Дополнительная проводка. На умной розетке неплохо бы иметь дополнительную проводку, чтобы иметь возможность использовать несколько устройств управления в доме. Конечно, можно в каждую розетку поставить такой же контроллер, но тогда у вас устройств в справочнике будет много. Вопрос только – где взять низковольтное напряжение +5 Вольт. Многие розетки уже делают с usb-выходом, можно оттуда, например, забрать низкое напряжение.

  • И опять же стоимость. Это спорный вопрос, поэтому я поставил этот момент и в плюсы, и в минусы. Если захотеть, это решение можно сделать более выгодным. Если вы только на стадии строительства дома, можно заложить какие-то дополнительные низковольтные коммуникации к каждой комнате – это уже поможет удешевить решение.

 

Как самому развернуть решение?

 

Я опубликовал статью, где расписано:

  • как собрать этот микроконтроллер;

  • какие реле и датчики использовать;

  • как их правильно подключить;

  • какие там есть интересные сложности и нюансы;

  • как развернуть мобильное приложение, включая публикацию HTTP-сервисов;

  • как заполнить справочники «Дома» и «Устройства».

Решение, которое я вам демонстрировал, в статье подробно разобрано.

 

Вопросы

 

Вы сказали, что нужен сервер. Имеется в виду веб-сервер или именно сервер 1С? Подойдет простая файловая база с поднятым Apache?

Да. Это решение на обычном компьютере с Windows 10, с обычной файловой базой, обычный Apache с опубликованными http-сервисами. Развернутый 1С сервер не обязателен.

Под сервером здесь имеется в виду компьютер, на котором просто развернута база 1с, готовая принимать HTTP-запросы. Это несложно сделать.

Можно использовать обычный рабочий компьютер или какой-нибудь старый ноутбук на 4 ГБ оперативки.

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции Infostart Event.

 

10 - 12 октября 2024 года состоится конференция INFOSTART TECH EVENT, на которой прозвучит 130+ докладов.

Темы конференции:

  • Приемы, методы разработки и тестирования
  • DevOps-практики, управление инфраструктурой разработки
  • Интеграция и обмен данными
  • Идеи и тренды в разработке 
  • Администрирование серверов 1С и СУБД. HighLoad оптимизация  
  • Развитие технической команды. Личная эффективность разработчика 

INFOSTART TECH EVENT - крупнейшая профессиональная конференция для программистов 1С.


Подробнее о конференции.

 


См. также

Робототехника и умный дом (Arduino, NFC, RFID)

Кто сказал, что умный дом на 1С сделать невозможно? На конференции Infostart Event 2021 Moscow Premiere Юрий Лазаренко из компании «Цифровой Кот» показал, какие уникальные прикольные вещи можно делать на базе IoT (интернета вещей), где в этом всем 1С, и как это все между собой интегрируется.

19.06.2023    4494    TitanLuchs    28    

16

Мобильная разработка Робототехника и умный дом (Arduino, NFC, RFID) Мобильная платформа Конфигурации 1cv8 Абонемент ($m)

Хотите попробовать свои силы в разработке собственного мобильного приложения на 1С для управления светом и электроприборами в своём доме? Добро пожаловать! Хочу поделиться собственными наработками в этой области. Это будет приложение, разработанное для мобильных устройств на базе Android. Основное предназначение: управление включением/выключением устройств, работающих от сети 220 V (свет, телевизор, чайник, вентилятор, микроволновка и т.д.). Управлять будем: из приложения, голосом, на заданный промежуток времени, интенсивностью света, расписанием работы.

1 стартмани

19.12.2022    3257    osivv    8    

23

Робототехника и умный дом (Arduino, NFC, RFID) Программист Платформа 1С v8.3 Россия Абонемент ($m)

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

1 стартмани

26.09.2022    5234    11    atland    0    

25

Робототехника и умный дом (Arduino, NFC, RFID) Программист Платформа 1С v8.3 8.3.14 Конфигурации 1cv8 Россия Абонемент ($m)

Компонента для работы с RFID метками. Поддерживает считыватели Impinj 120, 220, 420. А также настольный RRU9816.

1 стартмани

24.11.2021    3735    5    pavelmael    6    

6

Робототехника и умный дом (Arduino, NFC, RFID) Программист 8.3.6 Бесплатно (free)

Возможно ли управление устройствами умного дома из 1С, да ещё и голосом? Можно ли без умных колонок Google Home, Alexa, Алиса и иных платформ, а также без приложений от Google, Amazon и других управлять этими устройствами? Мой ответ – ДА, можно, нужно просто иметь умное устройство, имеющее возможность работы в DIY, 1С и программу распознавания голоса и взаимодействия с 1С.

04.01.2021    48819    osivv    15    

12

Робототехника и умный дом (Arduino, NFC, RFID) Системный администратор Программист Платформа 1С v8.3 Абонемент ($m)

Что делать, если надо подключить удалённое устройство к серверу 1С, но ни устройство, ни сервер 1С нельзя "светить" наружу? А если таких устройств десятки или сотни по всей стране? Ответ: Использовать промежуточный сервис, который будет пересылать данные между сервером 1С и устройствами. Такие функции замечательно выполняет MQTT-брокер, но вот не задача, 1С не умеет с ним работать.

2 стартмани

25.06.2020    14625    22    frutty    34    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Torin 783 29.02.24 11:11 Сейчас в теме
2. starik-2005 3061 29.02.24 14:50 Сейчас в теме
Класс. Мне нравится Lolin32 с питоном на борту. Дешево и сердито. 270+/- рублей на алике.
PS: 1С для этого конечно лишнее - на том же питоне что-то наваять и поднять сервак на апельсинке не сложнее, но явно дешевле и надежнее.
AntonProgma; vampo; +2 Ответить
3. partizand 134 29.02.24 21:18 Сейчас в теме
Home assistant отдыхает, openhab нервно курит в сторонке. Zigbee и mqtt машут руками.
Zarmaran; sempler; nekiilik1c; sleemp; +4 Ответить
4. Sam13 343 01.03.24 10:21 Сейчас в теме
Дочка как раз пишет проект на тему "Умный дом". Скинул ей эту статью - здесь есть куча прикольных (а главное прикладных) моментов, которые ей могут пригодиться. Спасибо!
5. AntonProgma 47 01.03.24 19:33 Сейчас в теме
Самым умным выглядит Нуралиев с продажей лицензией.
6. sasha777666 325 03.03.24 20:37 Сейчас в теме
Эх, написали бы вы статью лет 8 назад ...
Плюсую за развитие данного направления ))
Оставьте свое сообщение