Pull to refresh

Comments 73

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

А еще почитайте про MQTT и как вообще подобные вещи автоматизируюся. Потом про esp32 на базе risc-v и поробуйте MicroPython, возможно вам понравится.

Good Luck! :)

дешево и сердито

Дёшево и сердито было бы на raspberry - 11 лет назад они уже были. Это было бы дешевле чем большой комп и ведро масла. И rdp не нужно, хватило бы и ssh. И скорости 3g хватило бы

А сколько отработала бы SD карта на малинке?

Да, возможны варианты ;) можно отключить логирование - тогда проживет достаточно долго. Можно просто менять раз в пару лет,

Верно. Файловую систему с SD можно смонтировать в режиме рид-онли.

У меня sd карта на распе первого поколения проработала без перерывов более 6 лет. Далее просто заменил на более ёмкую.

У меня на умном доме живет уже 8 лет сд карта в распберри. Не HA, самописный на python. Причем распберри без охлаждения, совсем. Логи никак специально не настаивал. Распберри в связке с ардуино по USB. Протокол связи между ними так же самописный пакетами по 8 байт. Ардуина воткнута в "материнку" собственного производства. На ней обвязка кучу выходов и входов (мега). Для нагрузки твердотельные реле через обвязку из транзисторов. И оно ни разу не отключалось и не висло за 8 лет. С момента включения ни разу не перезагружал систему. Даже пыль не смахивал.

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

У raspberry 11 лет назад были огромные проблемы со стабильностью. Например кривой USB контроллер на котором сидит Ethernet. Им понадобилось почти 2 года и очень не стандартное решение с высокоприоритетным IRQ чтобы более менее стабильно заставить его работать. Да и драйвер SD карты тоже был кривым и подвешивал систему.

Похожую по назначению систему и я тоже сделал. В одном садоводческом товариществе, расположенном далеко от города в лесу есть скважина и на большом удалении от нее, метрах в 800, накопительные баки с большим объемом. Провода тянуть не вариант, дорого и ненадежно. Сделали радиоканал на радиомодулях от китайской фирмы EBYTE. Модули работают на 450...480 МГц. Мощность примерно 30 мВт. В качестве управляющего контроллера Atmega8. Написана прошивка практически на Ассемблере, вернее на отечественном ПО от Геннадия Громова Algoritm Builder. Шикарное ПО. Практически графический интерфейс. Симулируется вся периферия. Для мелких задачек - подарок судьбы и Г.Громова. Спасибо автору. Кстати есть в открытом виде в свободном доступе. Ссылка http://algorithmbuilder.ru.

Простите за оффтоп. Не мог не поделиться. Возвращаясь к объекту разговора: На накопительных баках поставили два датчика уровня: верхний и нижний. Если уровень ниже нижнего, радиомодуль передает сигнал 33, если между нижним и верхним - сигнал 55, если выше верхнего - 77. Сигнал передается раз в несколько минут. Такойпериодичности вполне достаточно. Приемник возвращает сигнал добавив к нему +1. Это нужно для контроля работы модулей бака и насоса сторонним наблюдателем, в качестве такового используется аналогичный модуль с адаптером, ноутбуком и программой от производителя. Насосный блок управления работает в трех режимах. Местное управление, когда насос включается вручную, 2-отключено. 3-атоматическое управление. Насос может включаться вручную при автоматическом режиме для набора воды в емкость на водокачке. Отключается он только сигналом модуля с бака, передающим или 77, или 55. То есть при уровне воды выше нижнего датчика уровня. В качестве датчиков уровня используются датчики производителя "Сенсор".

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

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

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

Разве нормальные компаунды не теплопроводнее воздуха ?

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

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

В моем случае греться нечему. Стабилизатор импульсный, токи минимальные, передатчик работает на передачу милисекунды. На приеме ничего не греется точно. Там правда питание 24 вольта, но импульсный стабилизатор на это расчитан и потери на тепло минимальны. А в компаунд заливать - надо гарантированное качество, которое зависит сильно от серийности. А тут единичные экземпляры. Если залить, ремонт затруднен, а требуется иногда вмешательство. Техника рассчитана на долговременную эксплуатацию. Компаундом заливают желая скрыть схемотехнику, а в программно-аппаратном устройстве это не сильно требуется. Закрываешь программу и вуаля.

http://algorithmbuilder.ru.

  • Устаревшая архитектура: поддерживает только микроконтроллеры AVR.

  • Ограниченная поддержка: последние обновления среды датируются 2010 годом

  • Ограничения демо-версии: существует ограничение на размер кода в демонстрационной версии

Обясните смысл написания в этой среде?

Говорят, что нынешнее программирование - ремонт двигателя автомобиля через выхлопную трубу. Абсолютно согласен. А программы на ассемблере - это ремонт двигателя нормальный. Алгоритм билдер - это среда, которая и есть ассемблер. Там все операции выверены до микросекунд. Я писал для ПИК-ов на ассемблере в 90-е годы. На PIC16F84 работает система управления насосом через силовой кабель 3х380 вольт. Кстати до сих поор работает. Такое написать на С++ просто нереально. Думаете зря прошивкки постоянно улучшаются и обновляются. Это как раз проблема с кривизной программ на С++ и более высокоуровневых языков. А вот ассемблер - вечен. Я в этой проблеме понимаю неплохо. С середины 90-х этим занимаюсь. Конечно на ассемблере мозги напрягать надо много сильнее, чем на С++ и выше. Есть у меня товарищ, который делает медицинские приборы на этом самом АБ. Рекламаций вообще никаких, ибо ассемблер. Товарищ правда усидчивый до абсолюта. Ему под 70 лет, а он на ассемблере программы пишет. Вам такое не светит. Вы чужими библиотеками пользуетесь. Доброго продукта не получится никогда. А Атмеги еще очень даже в ходу. Потому АБ жив. И кстати в нем никаких ограничений нет. Ищите версию 5.44.

система управления насосом через силовой кабель 3х380 вольт

Все насосы управляются по силовому кабелю. Даже без микроконтроллера ;)

Такое написать на С++ просто нереально

Нереально воще, или только на этом самом PIC?

Думаете зря прошивкки постоянно улучшаются и обновляются

Думаю, программисту нравится процесс получения зарплаты ;)

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

А у PIC16F84 памяти программ всего 1 килобайт. Попробуйте написать что нибудь на С++.

В 21 веке придумали stm32, который дешевле этого PIC, и под который нормально кодить на плюсах ;) А то и на python ;) А вот программировать на ассемблере его hal - таких буйных мало ;)

Что мешает взять компилятор GCC и использовать только .S (ассемблерные) файлы, если хочется абсолютного контроля над кодом?
Можно писать на чистом ассемблере, подключать к проекту только необходимые модули, использовать make или CMake для сборки — и всё это в современной, поддерживаемой и свободной экосистеме.

Аргумент про "вечность ассемблера" понятен, но это не делает Algorithm Builder уникальным или необходимым.

main.S — простой ассемблерный код для AVR (например, ATmega328P)

.section .text
.global main

main:
ldi r16, 0xFF ; загрузить 0xFF в регистр r16
out 0x05, r16 ; записать r16 в порт B (PORTB на ATmega328P — это 0x25, но для out используется адрес I/O space: 0x25 - 0x20 = 0x05)
loop:
rjmp loop ; бесконечный цикл

Makefile — сборка прошивки:

MCU = atmega328p
F_CPU = 16000000
AS = avr-gcc
OBJCOPY = avr-objcopy
CFLAGS = -mmcu=(MCU) -DF_CPU=(F_CPU) -Wall

all: main.hex

main.elf: main.S
$(AS) $(CFLAGS) -o main.elf main.S

main.hex: main.elf
$(OBJCOPY) -O ihex -R .eeprom main.elf main.hex

clean:
rm -f .elf .hex

Сборка: make
Будет создан файл main.hex, который можно прошить в контроллер

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

Честно не могу понять, объясните свой выбор.


Не считаю я Algorim Buulder уникальным или необходимым. Дело вкуса. Но для понимания программирования на самом низком уровне он очень удобен. В нем кстати и отладка есть через один пин и эмуляция всех ресурсов контроллера. Для освоения на примере AVR - самое то. А Ваше предложение - левой рукой за правое ухо. Это ваше личное дело, ну или глушитель для ремонта двигателя. Я частенько встречаю инженеров, которые даже о разрядности микроконтроллеров плохо понимают. А уж о топологии периферии вообще не приходится говорить. И потому результат не очень. Это как слепому на многополосной автодороге.

И кстати да, скачайте и попробуйте. Места на компьютере занимает минимум. Я кстати одного дипломника научил пользоваться им в течении нескольких дней. Он дипломную практическую работу сделал: блок управления пресс-пакетировщиком. Была немаленькая схема на десятке плат, сала одна плата с несколькими транзисторами на выходе, и оптронами на входе. Было ненадежно, стало абсолютно надежно. И плюсом отличная дипломная работа и знания у человека, который их потом успешно применял и применяет работая главным энергетиком металлургического завода. Кстати на этом пакете выучил много народу.

АВ - отличная идея и реализация, спасибо Громову. Но, к сожалению, не получила поддержки сообщества, что выразилось в отсутствии библиотек и «экосистемы». Отдельные энтузиасты (включая меня) не в счет. Громов также систему забросил. Возможно у него были свои субъективные причины, но и объективных хватает - все-таки программирование на уровне ассемблера для современных МК, с их ресурсами и объемами, в 99% случаев больше похоже на мазохизм, чем на реальную необходимость.

Безусловно АВ - специфический продукт. Область распространения - в основном микроконтроллеры с ограниченными ресурсами памяти. И строить на нем какие-то веб-приложения мазохизм. Но более приземленные проекты - вполне разрешимы. В первом десятилетии этого века я делал систему управления тремя тиристорными приводами на Atmege 2560. Вполне работоспособная система получилась. Тут уж точно нужно хорошее знание предмета.

Аналогично, делал в начале века плавный пуск привода шахтного конвейера, а чуть позже эмулятор FDD, в котором пришлось такты экономить. Вот на такие проекты 1% и положил. Потому что во всех остальных проектах АВ был излишне трудоемок. Но софтить на нем, конечно, было на порядок проще, чем на ассемблере. И на порядок сложнее, чем на С/С++ :)

А вот и формула успеха. Выбирай инструмент, чтобы не уработаться. А иногда и на С++ уработаешься, а на ассемблере нет.

Похожая система, только проще и надежнее как я думаю. Основное железо STM32 + SIM800. Управление реле через DTMF, можно перезагружать удаленно. Можно заставить отправить СМС с состоянием реле датчиков и аналоговых входов. Плата покрыта в несколько слоев лаком. Номер привязан и другой человек не сможет управлять. Также есть возможность отправлять это все на narodmon.ru

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

А с STM32 я до сих пор не связывался, не то что в 18 лет)

По тексту можно сделать вывод что речь идет о систем водоснабжения небольшого города и не просто так а имеется слово "Водоканал". Неужели нельзя надежое решение на промышленных контроллерах реализовать?
В деревне у родителей делал а атмеге (самостоятельную ппату развел с питанием и винтовыми клиниками, ардуина показалась слишком сопливой с ее соединениями) и работает тоже больше 10 лет, но там если сломается то в одном доме и есть резервный способ включить.

Неужели нельзя надежое решение на промышленных контроллерах реализовать?

Кстати да. Как хобббийная самоделка это прекрасно. А как система управления критической инфраструктурой - ужос

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

У собственной разработки bus factor= 1. Если эта штука сломается, а автор почему то не доступен - городок будет сидеть без воды пока приглашенный электрик будет разбираться, чего там наверчено.

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

Хорошо, однако, уели Вы этих свидетелей секты "а если тебе кирпич на голову упадет" ))

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

Просто вручную включат и на время заменят МК на обезьяну с рычагом.

У меня вот куплено дочерту серверов делл. И вроде бы если что пойдет не так, то я оплатил чтобы их починили. Ну вы поняли, да :)? Толку мне от таких гарантий, лучше б самосбор взял, к которому запчасти доступны.

Скажите это AB, GE, Siemens и Schneider - а это уже 90% рынка автоматизации планеты.

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

А почему нельзя было лаком, кампаудом залить плату, чтобы избежать проблем с влажностью и водой, не знаю как оно у вас 10 лет прожило, на машинах такие решения вообще гниют в 1,2 года

Заливать не стали, чтобы можно было заменять модули
Система получилась модульной, отдельно Arduino, отдельно реле, отдельно датчики и решение с дополнительной вентиляцией и отверстиями для слива воды было достаточно хорошим на тот момент, после этого проблем не возникало и придерживались принципа: работает - не трогай

В машине другие условия.

Проблема самоделок исключительно в том, что их работоспособность очень сильно зависит от прямизны рук. У кого то оно будет работать годами, у кого-то через сезон помрёт.

Ну хз , практика - критерий истины. Эта штука работает 11 лет - так что это пример как НАДО делать. Да, учесть проблемы, но если это уже работает 11 лет, то другие, хоть и более правильные, на первый взгляд, решения, далеко не факт что будут так же долго и хорошо работать.

Типичная проблема выжившего, только и всего.

Я лично так и не понял почему поселок в 50к человек тупо не посадил там сторожа.

Ну вот вы начинаете теоретизировать - "проблема выжившего" и тп. Но по факту есть Ардуино который 11 лет норм работает - сделал и забыл. А сторожей искать надо, и платить им зп.

Поселок с населением 10к человек)

Бюджет на эту разработку был - 50 тысяч рублей

Сторож не будет сидеть в этой будке, потому что там есть только свет и вода, вокруг лес. Летом в будке +30, зимой -20, представляете стоимость оплаты такому сторожу и траты на обогрев этого помещения?)

А чтобы знать когда включать/выключать скважины - нужно находиться на водозаборе в самом поселке и следить за манометрами и разбором воды.

почему поселок в 50к человек тупо не посадил там сторожа

Заменить человека небольшим скриптом это правильно ;)

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

В домашних вещах я использую ESP32 + ESPHome или ESP8266 + ESPHome, он работает без нареканий, да я замечаю, что иногда они перезагружаются, но это не проблема. У меня нет устройств которым требуется uptime 99%

Есть такая беда, когда программа слишком большая и может работать нестабильно, или есть утечки памяти, то вачдог может себе работать, а например логика ПО нарушается или даже искажаются данные принятые по serial. Я стал подключать какой-нибудь пин к ресету и если связь теряется, даю туда 0, все устройство и Ethernet shield перегружается. Еще вариант скрипт на микроте, который пигнует такой девайс и если пропадает пинг, выключает/включает питание по PoE.

Я как-раз искал готовые блоки POE для IoT, не подскажете какие используете?

Я имею вв виду обычный роутер Mikrotik, у которого на портах есть PoE и его можно включать/отключать.

Вроде бы не очень большая программа, сделал отслеживание FreeHEAP, меньше 37304 не бывает. может что ещё отслеживать что бы понять из за чего зависает?

Прошагайте в уме всю логику, скорее всего залипает "штатно" в ожидании у моря погоды — вачдог при этом пинается фоновой процедурой, пока процессор сидит в ожидании следующей проверки чего-то там.

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

Ох, задели за живое :) В своё время собрал подобную конструкцию из "подножного корма" для контроля и лёгкого управления радиовещательными передатчиками (нужен контроль, бюджет нулевой и вообще психанул). Первый вариант кратко описан тут, http://rw6hrm.qrz.ru/vigintos.htm , работает третий год. Сейчас уже оно умеет немного больше - самоперегружается при зависании сетевого модуля, управляет внешним компьютером, температурку показывает... Хорошая вещь как для пользы дела, так и для тренировки мозгов.

Если между 2 антеннами появилось препятствие, то нужно поставить третью антенну в обход, начать изобретать чудо-юдо решение длинною в жизнь.

За пару вечеров вроде чудо решение сделали ведь ?

Прям даже не знаю, ретранслятор в лесу сколько времени и денег будет стоить построить и поддерживать ?

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

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

35f3680b-fbab-4274-841a-92e5abc8fe72
35f3680b-fbab-4274-841a-92e5abc8fe72

Вы на этом деньги зарабатывали, а автор экономил.

Это Мега? Всё развязано?

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

Следующая статья будет видимо про сигейт, который 14 лет работает в nas

"Мужчина, вы ошиблись, отдел фантастики на третьем этаже!" (С)

WDC WD5003AZEX-0 два шутки
104544 (почти 12 лет) часа наработки на сервере муниципального телевидения

У них денег нет, но держатся )

Если на объекте есть интернет, то сейчас полно готовых недорогих решений на Wi-Fi и с локальным управленинм по простенькому API и с бесплатным облаком в комплекте. Например SHELLY или SONOFF, купить пару одинаковых модулей в резерв и забыть еще лет на 10. Например Sonoff 4CHR3 PRO.

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

Конечно не промышленная автоматика, но уже и не Arduino где контакты через картонку.

Скажи плз, а малинка будет жить в трансформаторном масле?

А всякие DIY платы типа Уно и ESP32? Меня прям заинтересовала тема.

Ардуина да и ESP не любят "наводки", можно застать в фольгу(7слоев). Но это лишь 30% защиты, надо на всех проводах вешать либо ВЧ фильтра(снабберы) либо дешевле и проще ферритовые колечки, на водоканале их горы с АЦИТов к примеру.

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

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

Работают мои поделки с 2012 года.

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

Отсутствие документации как метод защиты системы-звучит сильно

Sign up to leave a comment.

Articles