Включение и выключение электроприборов из 1С

02.04.20

Интеграция - Периферийные устройства

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Утилита включение и выключение электроприборов из 1С jar
.zip 358,88Kb
3
3 Скачать (1 SM) Купить за 1 850 руб.
Утилита включение и выключение электроприборов из 1С, исходный код
.zip 157,53Kb
2
2 Скачать (1 SM) Купить за 1 850 руб.
Обработка для 1С управлением реле
.epf 6,50Kb
5
5 Скачать (1 SM) Купить за 1 850 руб.

В прошлом я занимался 1С, но со временем перешел на низкоуровневые языки. В том числе начал заниматься разработкой электроники на заказ. В этой статье попробую описать простой способ управления электроникой из 1С. 

Конечно, сама платформа 1С не предназначена для подобных вещей, но для разовых случаев подобные методы вполне уместны.

Для включения и выключения с немалым током питания первым делом нам нужен нужен блок реле. Я уже давно использую блок ICSE012A от компании ICStation. Стоимость такой платы около 400 рублей при заказе из Китая. Плюсы у этой платы в том, что нет необходимости городить дополнительные способы подключения реле к компьютеру. Достаточно провода microUSB и у вас на компьютере сразу появится COM порт (Внимание! Проблема с драйвера при работе с Windows 10, возможно, придется помучиться).

 

Теперь нам надо научиться отправлять данные на плату.

Согласно документации для инициализации платы мы должны отправить на нее байты 0x50 0x51. После чего реле перейдет в режим работы. Отправляя последовательность битов, мы включаем или выключаем реле. Например, отправив биты 0000, вы включим все 4 реле, 1111 - выключим все 4, а отправив 0101 - включем первое и третье. Но это все теория. Давайте рассмотрим реальный вариант использования. Дабы исключить ошибки в работе я прикрепил к публикации исходники рабочей программы на Java по управлению данным типом реле. 1С будет вызывать данные программы и передавать им нужные параметры.

Первым делом скачиваем и устанавливаем Java машину с официального сайта https://www.java.com/ru/download/

Распаковываем архив (Утилита включение и выключение электроприборов из 1С jar) и видим там 2 папки - GUI и NoGUI. Для первого тестирования нам понадобиться папка GUI. Заходим в папку с командной строки, где лежит файл Java.jar и запускаем его командной java -jar Java.jar COM9. Где COM9 - это порт под которым плата определилась в системе. После этого откроется форма с помощью которой можно управлять платой реле. 

Если все прошло правильно и плата отзывается, можно переходить к следующему шагу - подключения платы к 1С. Для этого нам понадобится другая утилита NoGUI. Скачиваем и запускаем обработку для 1С. Обработка протестирована на платформе 1С 8.3.4.437.

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

Теперь, когда все у нас работает, можно подключать любые приборы к Реле по схеме ниже:

Для данной платы можно подключить необходимые приборы с мощностью до 2 кватт на переменном напряжении (изучите что будет написано на реле вашей платы). Помимо простых приборов, каждое реле можно использовать для имитации нажатия кнопок на системах контроля доступа. При особом желании может получиться умный дом под управлением 1С. RelayTools может также работать и на ОС Linux и MacOS, с внесением поправок в пути и названия COM портов.

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

обработка оборудование подключение оборудования реле внешние приборы Java

См. также

Периферийные устройства Системный администратор Программист Платформа 1С v8.3 1С:Розница 2 Россия Абонемент ($m)

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

10 стартмани

14.11.2024    511    1    aximo    0    

3

Периферийные устройства Системный администратор Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

Простая в использовании обработка https://infostart.ru/1c/tools/1001819/ в целом решает поставленную задачу, но имеет явный недостаток - взаимодействует только с принтерами, подключенными к серверу. Доработанная версия позволяет работать как с принтерами на клиенте, так и на сервере

1 стартмани

30.08.2024    386    3    Sergey1CSpb    0    

4

Периферийные устройства Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Розничная и сетевая торговля (FMCG) Россия Абонемент ($m)

Расширение для вывода информации для покупателя из РМК на второй монитор. Также реализован вывод картинок из каталога в левую часть экрана покупателя. Разработано для УТ 11.5, УНФ 3.0.6 и 3.0.9.

1 стартмани

12.08.2024    1060    21    Rastopchinss    15    

3

Периферийные устройства Пользователь Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

02.08.2024    686    0    AlOkt    0    

5

Периферийные устройства Программист Пользователь Платформа 1С v8.3 1С:Розница 3.0 Абонемент ($m)

Пример работы с эмулятором дисплея покупателя через библиотеку БПО.

6 стартмани

10.07.2024    704    5    aximo    0    

3

Периферийные устройства Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Речь пойдет не о сканерах штрихкодов 2D/3D/RF/распознавании лиц и прочего, а о старом добром аппарате, позволяющем считать страницу и отправить ее образ в ПК через COM/USB порт. Рассмотрим, как можно подключить и использовать сканер в типовых 1С-конфигурациях. И что делать, если никак не найти команду настройки сканера.

1 стартмани

28.05.2024    1026    Sergey1CSpb    2    

6

Периферийные устройства Пользователь Платформа 1С v8.3 1С:Розница 2 Россия Абонемент ($m)

Расширение для 1С: Розница 2.3 версий 2.3.15.ХХХ и выше. Удобный способ изменения принтера по умолчанию во встроенной обработке печати ценников и этикеток. Только для операционной системы Windows.

1 стартмани

13.05.2024    1006    5    independ    0    

5

Периферийные устройства Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

15.04.2024    8311    madonov    60    

38
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Steelvan 306 03.04.20 09:09 Сейчас в теме
Тема интересная. Было бы интересно раскрыть еще примеры применения в дополнительных публикациях.
vsesam80; bobreks; +2 Ответить
2. ra1ich 18 03.04.20 10:28 Сейчас в теме
Интересует запись с ip камеры наблюдения с момента начала ввода чека и до оплаты, затем прикрепить видео к чеку. Розница 2.1
4. Sedaiko 590 03.04.20 11:34 Сейчас в теме
(2) многие камеры позволяют сделать снимок по http-запросу. Тут даже библиотек не надо, все можно сделать чисто средствами платформы
10. bobreks 154 03.04.20 12:48 Сейчас в теме
(2) К сожалению, ip камер сейчас на руках дома нет, а почему не попробовать сделать то же самое через web-камеру? Для получения изображение опять нужна будет библиотека, но зато цены на веб камеры намного ниже. (за неделю до карантина купил пачку камер по 90 рублей за штуку на распродаже) При этом вебки выдают такой же честный VGA 640x480.

С ip камер приходилось получать только фото (и это были в основном производственные камеры, которые в принципе не предназначены для кодирования видео), но сдается мне, что в режиме онлайн камера не сможет сжать и передать картинку лучше чем 640x480. Если мы говорим о доступных камерах до 7-8 тыс.р. Но идея интересная. Буду смотреть в эту сторону.
12. spectre1978 61 03.04.20 15:20 Сейчас в теме
(10) да ну, вы это серьезно? Сейчас видеонаблюдение FullHD уже потихоньку переходит в сегмент low-end, люди вовсю покупают камеры и регистраторы H.265 на 4К. На кассе требования к разрешению камер довольно высоки - нужно видеть мелкие предметы - товары на ленте, купюры, карточки, а также в деталях, что делают покупатель и кассир. В общем тренд такой, что камера, которая с 10 метров не позволяет рассмотреть в деталях лицо человека - это не камера.
15. bobreks 154 03.04.20 15:46 Сейчас в теме
(12) При тех же 30 кадрах в секунду? Я предположил по тем характеристикам что я видел. Регистраторы да, есть, но они не передают изображение по сети в том же качестве. Снять и записать на карту памяти намного менее затратно по времени. Плюс постоянный перегрев устройств при неприрывной работе. Если у вас есть на примете устрйоство, которое может транслировать самостоятельно изображение в FullHD по http в режиме реального времени, скиньте, пожалуйста, ссылку.
17. starik-2005 3087 03.04.20 15:50 Сейчас в теме
(15)
Если у вас есть на примете устрйоство, которое может транслировать самостоятельно изображение в FullHD по http в режиме реального времени, скиньте, пожалуйста, ссылку.
Тот же Rispbery Pi 3 A/B может такое.
20. bobreks 154 03.04.20 16:03 Сейчас в теме
(17) А где будут храниться данные? на распбери или она будет передавать видео? Если на распбери сохранять, то безусловно справится, если передовать данные, то сомневаюсь, если только со сжатием с потерей качества. Зачастую в моей работе любое сжатие недопустимо, не должен потеряться ни один пиксель. Для видео наблюдейния этот вариант возможен.
21. starik-2005 3087 03.04.20 16:05 Сейчас в теме
(20)
если передоавать данные, то сомневаюсь, если только со сжатием с потерей качества.
Справится и с передачей. Камеры 2к передают на подобных чипах, а то и 4к. Там есть графический процессор, который отлично справляется с H265, так что не боись.
24. bobreks 154 03.04.20 16:13 Сейчас в теме
(21) H265 вроде бы как работает с потерей качества и записывает изменения относительно опорного кадра. Особенно если работать с DataMatrix кодами на видео, но есть вариант потерять информацию.
26. starik-2005 3087 03.04.20 16:28 Сейчас в теме
(24)
Особенно если работать с DataMatrix кодами на видео, но есть вариант потерять информацию.
zbarimg и рамдиск спасет отца и мать русской демократии от записи куда-либо кроме памяти. Дропнуть с камеры кадр - вообще проблем нет, записать его в память - тоже проблем нет, скормить его zbarimg - вообще проблем нет.
44. spectre1978 61 03.04.20 21:03 Сейчас в теме
Года два назад я делал FullHD-видеонаблюдение бюджетное, у меня были H.264 FullHD камеры Divisat от отечественного производителя (реально, конечно, это был Китай). Ценник такой железки тогда был порядка 6.5 тыс рублей за уличную варифокальную камеру с вполне годным ночным режимом, правда, тогда еще ночной был ч/б. Чуть позже появились за человеческие деньги матрицы, которые умудрялись цветной ночной при ничтожном освещении.
Так вот, 25 кадров вполне они гоняли через RTSP и через Onvif, причем могли одновременно передавать несколько каналов - с высоким качеством, с качеством пониже, и с еще более низким для мобильного просмотра. Никаких проблем. Другой вопрос, что такой фреймрейт - это сильный ужор дискового пространства и в общем-то для видеонаблюдения в большинстве случаев оно не очень надо.
46. spectre1978 61 03.04.20 21:30 Сейчас в теме
(15)
Если у вас есть на примете устрйоство, которое может транслировать самостоятельно изображение в FullHD по http в режиме реального времени, скиньте, пожалуйста, ссылку.

Просто придите в любой магазин по безопасности и попросите их показать картинку с современной камеры. Я, правда, не знаю насчет http, скорее всего это будет rtsp, и смотреть можно любым стримовым плеером, например VLC. Но суть такова.
А что до ссылки - ну например вот https://satvision-cctv.ru/catalog/ip_videokamery/ip_videokamery_divisat/2367/. Хотя это вообще не обязательно должен быть Divisat, может быть Optimus, Dahua, HikVision, да хоть черт в ступе, их сейчас брендов немерено.
14. spectre1978 61 03.04.20 15:30 Сейчас в теме
(2) А кассовое место Розницы вообще никак не интегрировано с видеофиксацией работы кассира?
Поспрашивайте контору, к которой вы обращаетесь по сервису ККМ, возможно, они смогут что-то предложить.
Тема довольно разработанная, под Фронтол точно есть наработки.
50. papami 56 04.04.20 09:36 Сейчас в теме
(2)Часто, камеры пишут постоянно.
Нужно взять время чека и обратиться с помощью SDK/API камеры/видеорегистратора к архиву для просмотра.

Если запись не постоянная, то дергаем ивент-менеджер, руководствуясь тем же API.
Некоторые реги дают защитить отрезок от перезаписи также командой.
Прикреплять видео к чеку, т.е. сохранять в БД 1С, методически неверно.
52. starik-2005 3087 04.04.20 10:49 Сейчас в теме
(50)
видео к чеку, т.е. сохранять в БД 1С, методически неверно.
Вообще файлы хранить в 1С "методически" не верно.
53. papami 56 04.04.20 10:54 Сейчас в теме
3. Sedaiko 590 03.04.20 11:31 Сейчас в теме
Я сразу отказался от игрушек с интерфейсом связи usb или com, так как нужно еще одно промежуточное устройство - компьютер.
Советую обратить внимания на устройства с интерфейсом ethernet и поддрежкой http (например я юзаю kernelchip). Тут никаих библиотек не надо, все делается средствами платформы.
sevushka; TitanLuchs; bobreks; +3 Ответить
5. Steelvan 306 03.04.20 11:40 Сейчас в теме
(3) Ахуофигенно, спасибо за наводку.
Тоже надо более внимательно ознакомиться и попробовать юзатьпользовать их продукцию
6. Sedaiko 590 03.04.20 11:46 Сейчас в теме
(5) Главный минус usb и com - небольшие расстояния. Еще есть интерфейс Wiegand, вроде его тоже пользуют для управления реле
9. bobreks 154 03.04.20 12:41 Сейчас в теме
(6) Если не так важная скорость срабатывания (можно пождать 0.5-1 секунду отправки и обработки запроса), то можно сделать еще проще - WiFi микроконтроллеры esp8266. Цена микроконтроллера около 250 рублей, при этом он может держать легкий http сервер и принимать запросы на переключение реле. Но есть и минусы - надо знать С++ и уметь прошивать микроконтроллера хотя бы через Arduino. Но стабильность радует. Уже 4 года я включаю дома свет и отобление через интернет без сбоев.
11. Sedaiko 590 03.04.20 13:12 Сейчас в теме
(9) Тоже вариант. Для небольшого дома сойдет
8. bobreks 154 03.04.20 12:34 Сейчас в теме
(3) Хотел сразу описать такой способ подключения по ethernet или wifi, но решил этого не делать. Спасибо за наводку.
7. Steelvan 306 03.04.20 11:49 Сейчас в теме
13. spectre1978 61 03.04.20 15:27 Сейчас в теме
Интересно, спасибо!
16. starik-2005 3087 03.04.20 15:47 Сейчас в теме
А что, питон не дешевле будет? Подключите к Rispberry Pi, например - у нее USB больше, чем на моем ноуте. Ну и проблем с драйвером для PL2303 быть не должно. Фактически на винде можно потратить кучу времени на установку дров, которое можно потратить на проект на питончике - сразу веб-интерфейс на телефоне готовый.
18. bobreks 154 03.04.20 15:56 Сейчас в теме
(16) Дешевле взять вообще nodeMCU или аналог на esp8266 и на ней сделать то же самое. ( примерно 250 рублей плата). Если передо мной стояла задача, то я так и сделал бы, но я тут описал только один из возможных вариантов. Raspberry очень ненадежны в индустриальных масштабах из-за карты памяти в качестве жесткого диска. Может и пары лет не проработать.
19. starik-2005 3087 03.04.20 16:02 Сейчас в теме
(18)
Raspberry очень ненадежны в индустриальных масштабах из-за карты памяти в качестве жесткого диска. Может и пары лет не проработать.
>Карты памяти очень разные бывают, да и записывать на них нет никакой необходимости - можно к их 4-м USB-шникам девайсов подоткнуть море всяких. Так что карта памяти может только обеспечивать загрузку. А так - у меня этих микроэсдешек дома валяется уйма, и все, что нахожу, работают (что странно). Самой молодой из них 4 года, как оказалось )))

А по поводу NodeMCU - да, тоже хорошая штуковина. Но 30 кадров фулХД не даст )))
22. bobreks 154 03.04.20 16:10 Сейчас в теме
(19) Одно дело дома или в магазине, а другое на производстве, когда вылетает какой-то важный узел. Предприятие встает пока не приедет мастер и не поменяет карту.

Сам линукс, к сожалению, устроен так, что происходит постоянная запись на карту памяти, а количество записей на карту ограничено. Надо искать дистрибутивы с загрузкой в ОЗУ. Да и вообще чем сложнее система, тем больше вероятность сломаться. Зачем все усложнять, когда все можно записать на небольшой микроконтроллер, который будет работать по спецификации более 1000 лет без проблем
25. starik-2005 3087 03.04.20 16:16 Сейчас в теме
(22)
Сам линукс, к сожалению, устроен так, что
Он на столько "так" устроен, на сколько Вы его себе "так" устроили. Если есть какая-то либа, которая пишет видео из L4V2, то это проблема либы. Всегда есть возможность писать фреймы прямо в сеть, а если хочется заморочек - можно сделать и RAM-диск, который в линухе искаропки.

Вообще, даже VNC умеет транслировать по сетке L4V (фактически видеопоток с камеры)
23. bobreks 154 03.04.20 16:12 Сейчас в теме
(19) В этой ветке мы обсуждаем USB реле вроде, камеры в другой :))
48. spectre1978 61 04.04.20 09:06 Сейчас в теме
(18) есть industrial grade карты памяти, даже MicroSD. Конкретно насчет них не знаю, а вот CompactFlash industrial работают десятилетиями - у меня в конторе в оборудовании встречаются 128 и 256М начала нулевых.
49. papami 56 04.04.20 09:29 Сейчас в теме
(18)
Raspberry очень ненадежны в индустриальных масштабах из-за карты памяти в качестве жесткого диска. Может и пары лет не проработать.

От операционки будет зависеть. Карта памяти в ряде случаев будет работать на чтение.
47. spectre1978 61 04.04.20 09:00 Сейчас в теме
(16) для малинки вообще такая плата не нужна. Проще релюхи к GPIO подключить - там существенно более простая плата, на которой стоит по сути реле и оптопара для развязки 3.3В GPIO выхода и катушки реле. И управлять такими релюхами стандартным хорошо документированным способом через GPIO.
54. papami 56 04.04.20 17:29 Сейчас в теме
(47) В контексте статьи, осталось только на малину 1С поставить. Кто возьмется?
55. starik-2005 3087 04.04.20 17:42 Сейчас в теме
(54)
В контексте статьи, осталось только на малину 1С поставить. Кто возьмется?
Не поставить, т.к. бинарников под ARM нет у 1С, а так бы без проблем...
56. spectre1978 61 04.04.20 18:00 Сейчас в теме
(55) зачем? На малину веб-сервис на питоне и фласке, например, а веб-сервис уже пинать с 1С.
59. papami 56 04.04.20 18:05 Сейчас в теме
(56) нет, ну чтобы устройство в себе было, так сказать, самоизолированное. Я вообще не любитель во все места пихать 1С, но с академической точки зрения если...
57. papami 56 04.04.20 18:03 Сейчас в теме
58. starik-2005 3087 04.04.20 18:04 Сейчас в теме
(57)
Мобильную, не?
Ну если андройд на малинку натянуть, то, полагаю, можно и мобильную.
60. papami 56 04.04.20 18:10 Сейчас в теме
Попробую под Win IOT Core. отпишу.
61. papami 56 05.04.20 11:35 Сейчас в теме
(60) Ставится. Но на старте только первый экран с картинками, надпись 1С и потом падает.
Прикрепленные файлы:
27. starik-2005 3087 03.04.20 16:33 Сейчас в теме
Кста, для датаматрикса есть классная штука - dmtx.
Прикрепленные файлы:
28. bobreks 154 03.04.20 17:08 Сейчас в теме
(27) Да есть, но к сожалению не лучшая библиотека для распознования. Скорость работы оставляет желать лучшего. Тестировал ее, в результате пришлось писать свою. Если это один DataMatrix, то ничего, а если надо найти и распознать 90 или 100 кодов на фотографии плохого качество, то время будет просто чудовищным. Из коробки даже многопоточности нет
29. starik-2005 3087 03.04.20 17:12 Сейчас в теме
(28)
Из коробки даже многопоточности нет
А зачем 90-100 датаматриксов распознавать на одной фотке? Если 100 на разных фотках, то многопоточность можно организовать сотней и одним способом, вплоть до запуска каскадом сотни команд dmtxread с выгрузкой в свой файл, на выходе СТО текстовых файлов.
$ time dmtxread 1.png
Hello, world!

real	0m0,020s
user	0m0,061s
sys	0m0,005s

time dmtxread 12.jpg 
Wikipédia, l'encyclopédie libre
real	0m4,136s
user	0m3,998s
sys	0m0,012s
Показать
На сложной картинке с ресурса по маркировке - да, мой I5-8250U работал долго (4 секунды). Но в 4 потока это по секунде на единицу. У Вас за сколько времени распознает этот код?

33. bobreks 154 03.04.20 20:14 Сейчас в теме
(29) Послойная агрегация во время упаковки - такой способ сканирования целой партии товаров часто используется на предприятиях с большим количеством товаров. С учетом новых законов о маркировке, потребность в послойной агрегации только растет.

>У Вас за сколько времени распознает этот код?
0.393 секунды в один поток на старом MacBook Air 2012 года i5-3427U. Сложнее становится когда фотография размыта и имеет менее 4 пикселей на один элемент датаматрикса.
Прикрепленные файлы:
34. starik-2005 3087 03.04.20 20:18 Сейчас в теме
(33) буква сломалась: "l'encyclopédie"

А вообще - да, треть секунды - это вполне ниче так.
37. bobreks 154 03.04.20 20:31 Сейчас в теме
(34) Большие части кода я брал из открытого проекта XZing, но у него есть ряд проблем. Без доработки напильником, большая часть кодов просто не распознается. Ну и ради быстродействия пришлось много параметров, которые определяются автоматически, выносить в ручные настройки. В результате получилось быстро, но требует небольшой настройки под каждую камеру и условия. Но такие четкие картинки распознаются без настроек. Но зная что картинка не повернута, что она достаточно большого размера и т.д. можно ускорить еще раза в 2.

Но в том что я так много потратил времени на то, что уже было написано до меня, есть еще один плюс. Это возможность детектировать сбои принтеров - либо заминка риббон ленты с браком печати или в случае прямой печати на пачках - определение позиционирования штрих кода. Если эти параметры выходят за допустимые пределы, то пачка автоматов сдувается в отбраковку. ZXing как и libdmtx проглатывают и не сообщают о мелких погрешностях.
40. starik-2005 3087 03.04.20 20:47 Сейчас в теме
(37) zbar очень быстро работает, если ему четко сказать, что распознаем. Но он датаматрикс не умеет - это да. Но сам датаматрикс хорош - написать механизм распознавания, заточенный чисто под него, думаю труда не должно большого составить - там как раз лево-низ - сплошная линия, а это уже что-то...
30. TitanLuchs 413 03.04.20 17:32 Сейчас в теме
Провода от компа к девайсу - это минус, тем более при работе через COM-порт, он имеет свойство падать в самый неподходящий момент. Чтобы работало без проводов, ардуино в помощь. Одна из лучших плат для этой задачи - Wemos Lolin D1R2. У нее WiFi на борту и большое количество выводов для управления реле. Ниже скетч для нее, который управляет лампочкой. Он сам генерит html-интерфейс, можно прямо с планшета или смартфона рулить. По коду понятно, какими http-запросами можно включать/выключать свет из 1С. В коде указан IP-адрес: 192.168.0.1, при необходимости можно поменять.

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

#ifndef STASSID
#define STASSID "<Имя WiFi сети>"
#define STAPSK "<Пароль WiFi сети>"
#endif

const char* ssid = STASSID;
const char* password = STAPSK;

ESP8266WebServer server(80);
IPAddress IP_myip(192, 168, 0, 1);
IPAddress IP_gateway(192, 168, 0, 2);
IPAddress IP_subnet(255, 255, 255, 0);

const int RELAY_PIN = D3;
const String deviceName = "Свет на кухне";
bool can_toggle = false;
uint32_t onTimer;

// Подготовка текста страницы
String pageText(String message){
String pageBoard = "";
pageBoard += "<html><head>\n";
pageBoard += "<meta http-equiv='content-type' content='text/html; charset=utf-8'>\n";
pageBoard += "<title>Свет на кухне</title>\n";
pageBoard += "<style>.cpbt{height: 15vh; margin: 3px; font-size: larger;}.w{width: 91%;}.h{width:45%; display: inline-block;}.lamp{height: 200px;}</style>\n";
pageBoard += "</head>\n";
pageBoard += "<body style='font-size: 60px;'><center>\n";
pageBoard += message;
if(deviceStatus()){
pageBoard += deviceName + " включен
";
}else{
pageBoard += deviceName + " выключен
";
}
pageBoard += "
";
pageBoard += "<button class='cpbt w'>Включить свет</button>\n";
pageBoard += "<button class='cpbt w'>Выключить свет</button>\n";
pageBoard += "<button class='cpbt w'>Переключить свет</button>\n";
pageBoard += "<button class='cpbt w'>Состояние</button>\n";
pageBoard += "</body></html>\n";
return pageBoard;
}

bool deviceStatus(){
if(digitalRead(RELAY_PIN) == HIGH){
return true;
}else{
return false;
}
}

// функция для пинга лампочки
void handleRoot(){
server.send(200, "text/html", pageText(""));
}

// Функция для недействительных запросов
void handleNotFound(){
String message = "not found";
server.send(404, "text/html", pageText(message));
}

void turnDeviceOn(){
Serial.println("turning on");
digitalWrite(RELAY_PIN, HIGH);
onTimer = millis();
}

void turnDeviceOff(){
Serial.println("turning off");
digitalWrite(RELAY_PIN, LOW);
}

// Изменяем состояние реле
void toggleDevice(){
if(deviceStatus() == true) {
turnDeviceOff();
} else {
turnDeviceOn();
}
}

void handleOn(){
turnDeviceOn();
String message = "";
server.send(200, "text/html", pageText(message));
}

void handleOff(){
turnDeviceOff();
String message = "";
server.send(200, "text/html", pageText(message));
}

void handleToggle(){
toggleDevice();
String message = "";
server.send(200, "text/html", pageText(message));
}

void setup(void) {
pinMode(RELAY_PIN, OUTPUT);
turnDeviceOff();
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
WiFi.config(IP_myip, IP_gateway, IP_subnet);
Serial.println("");

// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());

if (MDNS.begin("esp8266")) {
Serial.println("MDNS responder started");
}

server.on("/", handleRoot);
server.on("/on", handleOn);
server.on("/off", handleOff);
server.on("/toggle", handleToggle);
server.onNotFound(handleNotFound);

server.begin();
Serial.println("HTTP server started");
}

void loop(void){
server.handleClient();
MDNS.update();
if(deviceStatus() && millis() - onTimer >= 60000){
turnDeviceOff();
}
}
31. TitanLuchs 413 03.04.20 17:35 Сейчас в теме
(30) Там в алгоритм в самом конце зашито автоматическое выключение лампочки через минуту, отключается комментированием строк
if(deviceStatus() && millis() - onTimer >= 60000){
turnDeviceOff();
}
32. starik-2005 3087 03.04.20 19:59 Сейчас в теме
(30)
Одна из лучших плат для этой задачи - Wemos Lolin D1R2.
Видимо меня в гугле забанили - нет ответа, где продается, сколько стоит, даже на сайте производителя я ее не нашел.
Прикрепленные файлы:
35. bobreks 154 03.04.20 20:19 Сейчас в теме
(32) Плата основана на esp8266. Можно посмотреть аналоги - NodeMCU, Wemos mini и много других. Работают они одинаково. Если нужно больше выводов и больше скорость, можно посмотреть esp32, но он дороже раза в 2
36. starik-2005 3087 03.04.20 20:20 Сейчас в теме
(35) пример скиньте с алмка.
38. bobreks 154 03.04.20 20:37 Сейчас в теме
(36) Esp8266 NodeMCU Такая плата, только первой версии у меня стоит дома для включения света уже много лет

Esp32 Wemos - Чуть более мощная esp32

За этих продавцов ручаться не могу, просто пример.

В обоих случаях не очень хорошая связь с wifi. Я предпочитаю впаивать в плату вместо встроенной антенны простой кусок медной проволки длиной 124.8 мм (Можно сделать полуволновую антенну в 2 раза меньше, все лучше встроенной).
39. starik-2005 3087 03.04.20 20:42 Сейчас в теме
(38) этого добра у меня море. а где с релехами сразу?
41. bobreks 154 03.04.20 20:48 Сейчас в теме
(39) вместе с реле я не видел. Да и Wemos Lolin D1 R2 тоже идет без реле, но в форм факторе Arduino Uno. Придется докручивать через мосфет
43. TitanLuchs 413 03.04.20 20:55 Сейчас в теме
(39) Релюхи к вемосам идут в виде шилдов. Там еще много другого добра бывает: датчики температуры, кнопки и т.д.
https://aliexpress.ru/wholesale?catId=0&initiative_id=SB_20200403095410&SearchText=wemos+d1+­mini+%D1%80%D0%B5%D0%BB%D0%B5
45. starik-2005 3087 03.04.20 21:13 Сейчас в теме
(43) это-то я в курсе, но мне показалось, что речь шла именно о релюхе с вайфаем и прочими штуками.
Одна из лучших плат для этой задачи - Wemos Lolin D1R2. У нее WiFi на борту и большое количество выводов для управления реле.

Вот я не нашел релюхи с вайфаем. А то, что отдельно - так этого добра, как я уже писал, у меня полна коробка )))

ЗЫ: я вот купил малинку себе - отличная штуковина.
51. TitanLuchs 413 04.04.20 10:26 Сейчас в теме
(45) Не, релюх с вайфаем пока не встречал, самому интересно было бы посмотреть.
Малинка - вещь, но немного для других задач. Я на ней сейчас голосовой интерфейс для умного дома на 1С пилю.
62. pro-rok 297 06.04.20 11:03 Сейчас в теме
Кто использовал ардуино, для задач связанных с 1С, отпишитесь пожалуйста насколько надежной получается решение.
Первый раз делал проект с ардуино примерно три года назад. Ардуино с сетевой платой на борту+ кнопка. Работает до сих пор, клиент не жалуется.
63. bobreks 154 06.04.20 14:52 Сейчас в теме
(62) Достаточно надежно. Те же esp8266, которые обсуждали выше используют платформу Arduino. Вообще сами Arduino, если они качественные, достаточно надежные, ломаться просто нечему, если защитить от помех и протестировать программу. Слабым звеном является связь Микроконтроллер<--> Компьютер
64. trustasia 14 30.04.20 11:34 Сейчас в теме
Типа на складе включать освещение у нужной палеты вполне потянет, однако...
65. VKuser93419869 17.06.20 14:15 Сейчас в теме
Здравствуйте всем! Кто-нибудь знает решение такой задачи?
Надо подключить прибор какой-либо к 1С напрямую и чтобы считывал данные и автоматически загружал их в 1С.
66. bobreks 154 25.08.20 14:35 Сейчас в теме
(65) Извиняюсь за поздний ответ.
В данном случае нельзя выполнить подключения без промежуточного звена - микроконтроллера. Большинство приборов имеют один из интерфейсов передачи данных - SPI, i2C или аналоговые данные. Микроконтроллер должен получать эти данные и преобразовывать в поток данных UART. На компьютере должна быть установлена USB плата виртуального COM порта (смотрите дешевые платы на CH340 по 120 рублей на алиэкспресс, можно и на авито найти поближе), которая имеет UART выход. Можно просто погуглить по теме Arduino (готовые платы имеют уже встроенный преобразователь USB<->UART) и городить надо будет меньше. Остается только написать прошивку на C/C++ для считывания данных.
Оставьте свое сообщение