Умный дом на 1С + ардуино

0. sasha777666 300 24.07.17 15:13 Сейчас в теме
Конфигурация для автоматизации быта программиста 1C и не только. В данной статье будет рассказано, как можно использовать 1С для задач, не входящих в стандартные рамки этой платформы. Например, управление домом. В качестве периферии для подключения будет использован микроконтроллер (МК) Ардуино, но на нём не будет никакой логической нагрузки, весь процесс будет проходить на сервере 1С. Работа с пинами ввода/вывода происходит напрямую из 1С.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. IvanovAV 69 08.08.17 01:26 Сейчас в теме
2. Артано 671 08.08.17 02:28 Сейчас в теме
Один вопрос - чем обусловлены ведущие символы нижнего подчеркивания в именах методов?
3. PhoenixAOD 59 08.08.17 03:26 Сейчас в теме
(2)Скорее всего привычкой))
5. sasha777666 300 08.08.17 09:03 Сейчас в теме
(2) хотел выделить процедуры которые являются комбинациями, чтобы набрав "К._" в подсказке появился их список, не знаю почему выбрал именно этот символ "_" :)
4. MaxS 1970 08.08.17 07:17 Сейчас в теме
Неужели ARDUINO не справиться с простейшими задачами? Может быть 1С полезнее использовать для конфигурирования логики и запись результата в память ARDUINO?
Иначе если после включения обогревателя зависнет 1С сервер, будет жарко.
Либо добавить простейшую логику защиты от зависания сервера. Обогреватель включается максимум на пол часа. Если за это время не получен ответ от сервера, переводим в состояние по умолчанию, заданное ранее в 1С, рекомендуется состояние по умолчанию - "выключен".
DrAku1a; dima1c; sergelemon; fvadim; starik-2005; +5 Ответить
6. sasha777666 300 08.08.17 09:11 Сейчас в теме
(4) Справится, но для этого нужно писать код для ардуины, а я хочу приобщить тех кто может писать только на 1С :)
Зависания и потеря связи предусмотрена, есть команда К.АвтоСброс(НомерПорта, ВремяВСекундах), вызвав её в МК включится таймер и если по прошествии указанного времени МК снова не получит эту команду то перезагрузится сбросив состояние всех пинов. В случае если причино стало зависание COM порта то можно перезапустить агент сервера К.ПерезапуститьАгентСервера1С, а если причина в ошибках ОС то перезагрузить сервер К.ПерезагрузитьСервер1С ... конечно если зависнет сам сервер то решать проблему нужно чем-то стороннем.
Olenevod; Serj1C; +2 Ответить
11. TODD22 19 08.08.17 17:45 Сейчас в теме
(6)
а я хочу приобщить тех кто может писать только на 1С :)

Пусть лучше освоят для разнообразия другие языки и технологии....
Novinsky; eugeniezheludkov; DrAku1a; neikist; igormiro; papami; корум; juricher; starik-2005; +9 Ответить
13. корум 284 08.08.17 17:53 Сейчас в теме
(11)
другие языки и технологии

Например, родной русский для выдачи команд сыну.
pbabincev; TreeDogNight; adapter; smakki; juricher; +5 Ответить
51. DrAku1a 1314 03.01.18 16:54 Сейчас в теме
(11) Я за! Тема интересная, вот только практической необходимости, пока что, нету.
21. OhlamOOOOn 26 09.08.17 09:55 Сейчас в теме
(6) Как вариант применения 1С, прямо скажу, для меня было неожиданно :) Классный изврат, порадовал :)
Но вот практического применения я пока увидеть не могу. Очень дорого. К всеобщему счастью, стоимость ардуины мега в китае около 400 руб, web расширения к ней того же порядка, силовые модули тоже рублей по 100 на контакт. Все, получаем веб сервер для управления. Да придется немного посмотреть уроков и почитать. Но извините меня, объем знаний для начального программирования ардуины ничтожно мал, по сравнению с применением той же БСП. Я сомневаюсь, что даже начинающий 1С-ник будет испытывать какие-либо проблемы при изучении. А вот для тех, "кто может писать только на 1С" думаю области управления устройствами лежат за пределами их интересов...

Повторюсь, спасибо за интересную идею применения, осталось только придумать область применения.
Хотя у меня уже есть вариант - управление светом на рабочем месте бухгалтера путем проведения документа "расход электроэнергии" :)
25. sasha777666 300 09.08.17 10:37 Сейчас в теме
(21) Практическая цель - возможность сделать какое-то устройство без изучения материала по ардуине. Сравнивать с какими-то специально разработанными для этого платформами не корректно. Но тут есть 2 преимущества которые являются очень весомыми для 1Сника:
1.Пишем на языке 1С
2. Доступны все фичи платформы.
13jaguar; +1 Ответить
24. disnos 09.08.17 10:31 Сейчас в теме
(6) Как чистый эксперимент интересно, но не для реального использования. Был опыт разработки связки 1с и ардуино для испытательной системы.

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

Повисла ночью у вас 1с-ка или винда или роутер и все система ушла в цикличный рестарт и сброс пинов.
Тогда надо поставить еще 1 ардуину, которая будет проверять каждое из устройств и в случае зависания ребутить комп, роутер и тд. :)
blackhole321; sasha777666; +2 Ответить
8. adapter 543 08.08.17 15:05 Сейчас в теме
т.е. умный дом теперь требует купить серверную лицензию 1С? Или мерзни как нищеброд. Вендор аплодирует )
Серверная 1С требует еще и сервер БД, даже фришный, но все равно ресурсы ест - как из пушки по воробьям.
triera2000; awk; juricher; starik-2005; +4 Ответить
9. sasha777666 300 08.08.17 15:58 Сейчас в теме
(8) размер базы несколько мегабайт, подойдёт скуль экспресс он бесплатный. У меня всё на мини ПК работает ( флешка 30 гиг, проц 1.4*4 вроде, 2 гига ОЗУ)
10. TODD22 19 08.08.17 17:42 Сейчас в теме
(9)
подойдёт скуль экспресс он бесплатный.

Но сервер 1С платный.
12. корум 284 08.08.17 17:52 Сейчас в теме
(9)
флешка 30 гиг, проц 1.4*4 вроде, 2 гига ОЗУ

... и вот это вот всё для того, чтобы включать вентилятор?
Господа, вы слишком много кушать.
awk; juricher; +2 Ответить
14. TODD22 19 08.08.17 17:56 Сейчас в теме
(12)
... и вот это вот всё для того, чтобы включать вентилятор?

Ну почему всё? Ещё 1С сервер и СУБД :) Управлять вентиляторами это вам не сыну команды отдавать! Тут серьёзно всё...
Lion_LexXx; +1 Ответить
15. juricher 6 08.08.17 19:40 Сейчас в теме
(12) Я бы сказал жиром пука...те
16. starik-2005 2180 08.08.17 19:40 Сейчас в теме
Не, мне, конечно, понравилось все это (в плане темы), но, господа! XXI-й век на дворе, стоимость "райспбери пиай" дешевле не только микросервера (я так понял, что 1С микросервер на 5 клиентов за 15 косарей выпустила именно для подобного шаманства), но и чуть ли не учебной 1С-ки. И в линухе не нужны эти все драйвера и компоненты для работы с COM-портом, эмулируемым кривыми виндовыми дровами - там уже есть порт-файл, в который ты на том же PHP/Python/C++/Go/куче всего другого можешь писать и из которого можешь читать. Это не говоря о том, что на "райспбери" (или "оранже" и прочих) девайсе ты можешь GPIO дергать вообще хоть из шелла. Кароч, за напоминание - спасибо, а за 1С в качестве управлятеля - чисто поржать.

https://www.terraelectronica.ru/news_postup.php?ID=3568
17. sasha777666 300 08.08.17 23:41 Сейчас в теме
(16) и много ли программист 1C накодит на PHP/Python/C++/Go/ ? для тех кто зная только 1С хочет что-то сделать малинка не альтернатива. Дёргать GPIO вообще опасно, 15мА превысишь и нет малинки..... и насчёт файла, ну и в винде можно писать/читать напрямую в порт "\\.\Com8" ...
27. starik-2005 2180 09.08.17 11:18 Сейчас в теме
(17) если программист не сможет что-то запилить на питоне, на котором дети 12-летние пишут вполне приличные приложения, то это, во-первых, ни разу не программист и даже в 1С ему делать нечего.

А по поводу 15мА, то это Ваше личное непонимание того, как все работает. У народа до 0,5А на выходе напруга. Но ежу понятно, что двигателем крутить надо через драйвер (это микросхема такая, а не то, что кто-то подумал). А для чтения данных с GPIO другие методы.
28. TODD22 19 09.08.17 11:45 Сейчас в теме
(27)
У народа до 0,5А на выходе напруга.

Это сила тока ;)
29. корум 284 09.08.17 12:01 Сейчас в теме
(28) Все всё искричество в ОМАХ меряют! :)
30. sasha777666 300 09.08.17 12:18 Сейчас в теме
(27) 16 мА это тех характеристики, а не моё личное мнение.
31. starik-2005 2180 09.08.17 12:43 Сейчас в теме
(30) Суть GPIO - прочитать уровень, установить уровень. Они двух вариантов: цифровой - высокий/низкий и аналоговый - это некий каскадный ЦАП (энное количество бит по количеству резисторов в каскаже). Дальше есть ШИМ - широтно-импульсная модуляция сигнала для управления скоростью вращения двигателя (ясно, что через линию управления драйвера), угла поворота или интенсивности свечения светодиода (можно и для иных моментов - генератор прямоугольного звукового сигнала на зуммерах, например). Все. Там мощи не надо. GPIO - это, считай, нога цифровая/аналоговая ардуинки - не более. То же самое для малины, апельсины и прочих девайсов (апельсинку зиро H2+ можно у кетайцев с 256 метрами и 4-мя ядрами 1,2Ггц купить за 700 рублей с учетом доставки).

Так вот, на ногах максимальная сила тока - до 0,5А = 500мА (от источника питания зависит в принципе, от ноги, от девайса). Напряжение - 5/3 вольта (в зависимости от девайса и ноги). Дальше все нетрудно посчитать, закон Ома в этих ваших интернетах описан в достаточном количестве источников. Подбираете правильный резистор и огребаете профит в виде данных с датчика, верчения пропеллером или поворота камеры на угол альфа.

И все это на питоне или даже bash-е. Для извращенцев на последние малины ставится Windows IoT.
32. sasha777666 300 09.08.17 13:13 Сейчас в теме
(31) Зачем вы всё это пишите? А на счёт МК у которого через GPIO можно пропустить 0.5 Ампера, поделитесь ссылочкой пожалуйста.
33. starik-2005 2180 09.08.17 13:44 Сейчас в теме
(32) а все зависит от того, зачем Вы пишите это:
Дёргать GPIO вообще опасно, 15мА превысишь и нет малинки.
То, что бред написан - это полбеды. Беда в том, что кто-то этот бред прочитает и подумает, что GPIO дергать вообще нельзя.
35. sasha777666 300 09.08.17 14:08 Сейчас в теме
(33)
(34) да вы батенька Не культурный человек, да и с названием раздела ошиблись
для тупых специальный раздел даже написан
судя по тому, что вы не поняли его, он явно не
для тупых

Вывод 5 вольт это 5 вольт от преобразователя напряжения, а GPIO это выводы АЦП
38. starik-2005 2180 09.08.17 16:53 Сейчас в теме
(35)
судя по тому, что вы не поняли его, он явно не
Ну расскажите нам, просветите, так сказать, темноту...
39. sasha777666 300 09.08.17 18:13 Сейчас в теме
(38) Сергей я посмотрел ваши публикации и у меня складывается впечатление, что ваш аккаунт взломали и сейчас тут другой человек. По ссылке написано что 0.3А можно взять с 5 вольтовых пинов питания, логика на малинке 3.3 вольта и на GPIO не может быть 5, я работал с малинкой и прекрасно знаю её характеристики. И то, что нельзя использовать GPIO - написали вы, я же говорил что их опасно использовать потому что есть риск спалить МК т.к. они напрямую завязаны на АЦП. И если ток ( пусть даже для поддержания логического напряжения) будет больше нормы, а это 16мА а не как не 300 то будет беда.
40. starik-2005 2180 09.08.17 19:26 Сейчас в теме
(39) хорошо, допустим ошибся я и перепутал выходы питания и ноги gpio - ошибся, умнее стал.

Но меня смутило именно то, что Ваш ответ звучал как "использовать gpio" нельзя. И тут уже вопрос сам всплывает: а как информацию сдатчиков считывать? У Вас есть вариант, как это сделать без gpio? Глупость на глупость = ничья.
41. sasha777666 300 09.08.17 19:41 Сейчас в теме
(40) я подключал ардуино нано и использовал её, а на малинке была веб морда, код писал на пхп..... по сути сейчас сделал тоже самое но с мини пк, а код на 1С. Но основная причина использования ардуины была как раз в том, что на малинке логика 3.3 вольта.
34. starik-2005 2180 09.08.17 13:53 Сейчас в теме
(32)
А на счёт МК у которого через GPIO можно пропустить 0.5 Ампера, поделитесь ссылочкой пожалуйста.
Ну вот тут, например, для тупых специальный раздел даже написан:
Что ВАЖНО знать перед работой с GPIO Raspberry Pi

Пожалуй, это самый важный раздел. Нужно помнить о некоторых особенностях GPIO и соблюдать определенные меры предосторожности, чтобы не залететь еще на 35-50$ не повредить Raspberry. Ниже приведены такие "критические особенности", а также несколько нюансов, которые просто могут быть полезны, и которые желательно помнить при разработке.
Максимальный суммарный ток обоих выводов 3.3 В равен 50 мА! Поэтому эти выводы могут использоваться для питания внешних устройств, только если их потребляемый ток меньше 50 мА.
Максимальный суммарный ток обоих выводов 5 В равен 300 мА! Эти выводы также могут использоваться для питания внешних устройств только в том случае, если их потребляемый ток меньше 300 мА.

Чуток ошибся - 300мА.
18. vano-ekt 839 09.08.17 08:10 Сейчас в теме
(16) да главное оттащить прога от регистра бухгалтерии, если у него душа лежит к робототехнике
он сам С++/пайтон в руки возьмет, потыкавшись с 1С
veretennikoff; starik-2005; +2 Ответить
19. Amedis 111 09.08.17 08:46 Сейчас в теме
"Умный дом на 1С" даже звучит страшно )))
20. awk 716 09.08.17 09:45 Сейчас в теме
Спасибо за комментарии. Ржал.... Настроение подняли с утра...
22. madonov 155 09.08.17 10:13 Сейчас в теме
ждем ЦУП на 1С =)
и желательно на клюшках.
23. sg12 17 09.08.17 10:31 Сейчас в теме
Года 3 назад выиграл у методиста бутылку текилы, за реализацию получения и записи в регистр сведений температуры с датчика ds18b20. А по теме, конечно интересная идея, но вот опускать низкий уровень в 1С мне кажется не правильно(но сама реализация интересна), я бы реализовал саму систему на ардуино, а вот управление системой на 1С.
26. stilet 50 09.08.17 10:50 Сейчас в теме
В ленивом режиме пишу нечто подобное, но с некоторым отличием:
1. 1С только как центр управления
2. Исполнительными устройствами являются MegaD 2561
36. citicat 119 09.08.17 16:14 Сейчас в теме
Для домашнего применения (выключить вентилятор) дороговато с учетом всех лицензий.
Для управлением ТСЖ, правда, не для включения вентилятора, а для похожих систем со включением- выключением электричества по подъездам можно переработать систему.
sasha777666; +1 Ответить
37. TODD22 19 09.08.17 16:31 Сейчас в теме
(36)
включением- выключением электричества по подъездам

Уже придумали датчики освещённости и датчики движения. Без всяких 1С и ардуин работает.
корум; +1 Ответить
42. vostok1.dz 38 10.08.17 14:11 Сейчас в теме
Горячая тема, для автоматизации небольших производств, я у себя на "подвластном" мне производстве окон уже заменил пару контроллеров на ардуино, и получаю тем самым, через com порт информацию о сделанных операциях станком (человеком), далее идет загрузка данных в 1с...
Реально освободил одно рабочее место кладовщика (или мастера)..., бонусом вижу когда идёт максимальная выработка по часам..., и много попутной информации...
Так же и я страдаю этим безумием ардуино ))), но уже есть реальные результаты....
AlenaR; citicat; sasha777666; +3 Ответить
43. sasha777666 300 10.08.17 15:38 Сейчас в теме
(42) Присоединяйтесь к проекту )) Сделайте модуль управления светом или климатом :) я сейчас делаю модуль управления зарядом АКБ от солнечных панелей.
44. vostok1.dz 38 10.08.17 20:00 Сейчас в теме
(43)Ближе к новому году, буду внедрять модбас в 1с, есть интерес у клиентов поуправлять БРУ (бетоно-растворный узел), правда не через ардуину, а напрямик ПЛК, с выгрузкой всего в 1С, минуя всякие АСУТП...
У меня с оконными производствами уже 2 положительных внедрения, народ в экстазе)))...
А по поводу умного дома я согласен с вышесказанным, что это немного изврат, но для тренировки полезно )))
citicat; sasha777666; +2 Ответить
45. TODD22 19 11.08.17 05:33 Сейчас в теме
(44)
а напрямик ПЛК, с выгрузкой всего в 1С, минуя всякие АСУТП...

ПЛК это не часть АСУТП?
46. sad_1 19.08.17 14:36 Сейчас в теме
Предположим, вам надо отвезти тёще мешок картошки. Как вы это сделаете?
Правильно!
Вы возьмёте танк, привяжете к нему садовую тачку, в тачку положите мешок картошки и поедите.
Причем, смотрите какое универсальное решение, если надо отправить внуков к бабушке, то к танку привязывается детская коляска и оп-ля, получается вариант пассажирской перевозки.
Вообще, танк, это очень полезная штука в хозяйстве, например, на пушке можно сушить бельё.

Хотя, сплошь и рядом в типовых конфигурациях встречается такой подход.

Например, вчера наши бухгалтера решили сделать типовую операцию (БГУ 2.0). Бухгалтера у нас творческие, пытливые люди. Они почитали ИТС, посмотрели на другие типовые операции и изваяли операцию. Запустили. Проводки не формируются и программа молчит как партизан. Всё нормально, хотя не понятно почему нет никаких сообщений.
Зовут меня. Мне становится интересно и я запускаю отладку. Лезу по программе и дохожу до создания Процессора компоновки данных.
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);

Это чо? Это для создания каждой записи Журнала проводок вызывается СКД?
Даа-а!
Простые решения это не наш метод!
"Нормальные герои всегда идут в обход" (С)
BigBoss; 7fortune; +2 Ответить
48. vde69 911 29.12.17 14:23 Сейчас в теме
плюсанул как вещь которая должна дать подумать...

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

ну и скетч под ардуинку - то же не идеал :)
49. sasha777666 300 29.12.17 14:44 Сейчас в теме
(48) Проблема с ком портом действительно серьёзная, в случае зависания приходится перезапускать службу сервера :(, в общий модуль внёс процедуру для этого. "ну и скетч под ардуинку - то же не идеал" ну так присоединяйтесь )) доведём его до идеала :))
50. BigBoss 3 03.01.18 14:06 Сейчас в теме
52. maxlab 68 14.06.19 16:10 Сейчас в теме
Оживлю тему. Автору респект и уважуха. И еще больше интересных идей по скрещиванию ужа и ежа. На самом деле, не смотря на критику "бывалых" эмбедеров, есть уверенность что платформу 1С можно использовать в управлении производственными процессами не только на уровне бумаг, но и на уровне пром. оборудования. Разумеется, жесткий реалтайм не получится, но пробовать на медленно текущих производственных процессах уже можно. Вопрос, какую лепту внесет 1С в комплексный показатель надежности всей системы в целом. И конечно же стоимость такого решения под вопросом. Но, с другой стороны... стоимость всей совокупности промышленных контроллеров, участвующих в производственном процессе иногда бывает просто заоблачной. Достаточно, для примера, поинтересоваться у КИПовцев на каком нибудь современном мясокомбинате или сахарном заводе. И нельзя сказать что пром.оборудование супернадежно как на космическом корабле и безгеморройно для обслуживания персоналом. Так что у платформы 1С, и по цене , по качеству и по надежности - есть перспектива. Просто надо сосредоточится на шине CAN. Датчики и исполнительные механизмы на ардуинках (и т.п.) вешать на эту шину, а 1С контролируя эти датчики, в индивидуальных фоновых заданиях, решает задачи (ПИД например), выставляет управляющие воздействия и визуализирует состояние и события на производственной линии. Кстати, поэкспериментирую на досуге на своем самогонном аппарате :). Лиха беда начало... так можно и до крекинг-процессов дорасти.
54. vadimt_82 9 19.08.19 10:59 Сейчас в теме
У меня вопрос к автору статьи. Статью еще не прочитал, но обязательно прочитаю статьи автора. Возможно в публикациях автора уже есть ответы на мои вопросы. Я решил сначала задать вопрос.
Как организовать работу мобильного приложения 1С в среде Android с платами Arduino? Arduino управляет шаговым двигателем. Скажите пожалуйста как это сделать в 2-х словах. Я только начал изучать данный вопрос. Какие программные средства, программные объект? Какие аппаратные средства? я так понимаю через USB?
55. sasha777666 300 21.08.19 13:42 Сейчас в теме
(54) Используя эту конфигурацию возможно управлять с телефона шаговым двигателем подключенного к ардуине которая подключена к локальной сети в которой находится сервер 1С. Возможности управления контроллером подключенным к клиенту 1С в этой конфигурации нет
56. pavel_pss 266 27.02.20 10:47 Сейчас в теме
Подскажи, а dll твоя самописная или где взял.
57. sasha777666 300 27.02.20 17:30 Сейчас в теме
(56) Вы наверное имеете ввиду компоненту для паузы? где-то взял
58. pavel_pss 266 27.02.20 17:42 Сейчас в теме
59. sasha777666 300 27.02.20 19:24 Сейчас в теме
(58)
AddInNative.dll
называется также, она ваша ?
60. pavel_pss 266 28.02.20 11:11 Сейчас в теме
AddInNative.dll, она лежит у тебя в макете, вопрос ты ее писал или где-то нашел
61. sasha777666 300 28.02.20 11:46 Сейчас в теме
(60) я с вами на вы, а вы увы , на ваш вопрос ответил ещё в первой реплике
62. pavel_pss 266 28.02.20 15:11 Сейчас в теме
63. 1cv9 28.05.20 09:11 Сейчас в теме
в файловой базе, при загрузке cf и последующим обновлении базы вылетает критическая ошибка
Ошибка СУБД:
Длина ключа индекса превышает максимально допустимую '_Reference759_ByParentFieldFld1088_RLSSRL (_ParentIDRRef, _Folder, _Fld1088, _Description, _IDRRef, _Marked) UNIQUE'
64. sasha777666 300 16.06.20 13:13 Сейчас в теме
(63) Конфигурация работает только в серверном режиме, причём сервер 1с должен быть 32 разрядным
Оставьте свое сообщение
Вопросы с вознаграждением