Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Умный дом

Сообщений 61 страница 81 из 81

61

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

0

62

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

Отредактировано RDW (2018-05-08 15:25:29)

0

63

RDW
ну примерно так оно и есть - задвижка выдает импульсы а контроллер их считает

0

64

RDW написал(а):

А какое там управление? Зачем там внутри релеха? Он сам что ли делает два состояния открыт/закрыт и нет промежуточных?

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

Для определения промежуточных положений надо колхозить на редуктор переменник.

0

65

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

0

66

Может кто помочь с датчиком BME 280 ?

0

67

Skrip написал(а):

Может кто помочь с датчиком BME 280 ?

Поиском не пробовали?
Ссылка

0

68

Это первая часть опуса, вводная, дальше будет интересней, конкретика и технические детали. Сразу прошу прощения за много пафоса, наболело....
Изучив текущее состояние дел в плане автоматизации домов и интернета вещей, пришел к выводу, что прогресс свернул куда-то не туда. Каждый "Продвигальщик" таких идей начинает городить свой огород из известных только ему или убогих протоколов (MQTT хотя бы чего стоит, ничего более убогого я давно не встречал, хотя преподносится, как просто панацея) софта верхнего уровня и железа которое ни работает больше ни с чем. В результате получается Сизифов труд, когда полтора землекопа пытаются создать какую то свою законченную экосистему и в результате, как и Сизиф толкают камень в гору, а когда силёнки кончаются (а это довольно быстро происходит) сами от него же убегают. А проблема тут одна: не нужно изобретать велосипед, большая часть работы уже сделана, надо использовать существующие годами наработки. Все уже придумано до нас и проверено годами в промышленности, все шишки уже набиты и существуют рабочие практики. Немного теории и общая постановка проблемы.
Любую систему автоматизации можно разделить на 3 уровня:
1. Нижний - это контрольно-измерительное оборудование, другими словами первичные преобразователи или просто датчики (осуществляют преобразование из физической величины в эл. сигнал) этого добра полно, сейчас полно дешевых датчиков с приемлемой точностью для большинства применений в малой автоматизации
2. Средний - это как правило уровень контроллеров, они выполняют сбор информации с нижнего уровня, преобразуют эту информацию и осуществляет передачу по коммуникационным протоколам - Вот здесь огромная дыра, используемые в промышленности для этих целей ПЛК из-за стоимости и необходимости разработки ПО для них не доступны большинству для домашней автоматизации.
3. Верхний - это уровень сервера, сетевого оборудования, уровень операторских и диспетчерских станций. Вот здесь очень много очень странных "изобретений" хотя для реализации верхнего уровня уже давно существует огромное количество SCADA систем и HMI. Есть платные есть не очень, есть под разные ОС, на любой вкус и цвет. И даже в этих системах которые годами разрабатывают большие команды разработчиков периодически находят косяки. Тем не менее до сих пор находятся энтузиасты которые считают, что способны в одиночку написать софт уровня самой средней SCADы. У сименса с ее WinCC (хотя надо заметить, что это высшая лига) при наличии огромных ресурсов на это лет 25 ушло. Преимущество любой SCADA системы в том что она может работать с любым оборудованием по стандартизированым протоколам, эти протоколы тщательно описаны в RFC и пр. стандартах и отсебятины там нет и быть не должно. На верхнем же уровне возможна реализация САУ (Систем автоматического управления) для реализации сложных алгоритмов управления.

Резюмируя: Основная проблема всех этих систем в среднем уровне, а именно в том, что вместо того, чтоб использовать проверенные годами и зарекомендовавшие себя протоколы используемые в промышленной автоматизации и стыковке с огромным количеством уже разработанного и прошедшего долгий путь "детских болячек" софта, разработчики "умных домов" и "умных вещей" начинают этот путь с 0 изобретая свои велосипеды и вставая на те же грабли, но подпирая это все новыми костылями. И на момент написания данного опуса этот путь не осилил никто и я думаю в ближайшие лет 10 вряд ли осилит, хотя бы потому что 90% вообще идут не туда. Яркий пример этого тот же MQTT который активно продвигается, но любому человеку занимающемуся даже косвенно автоматизацией сразу бросается в глаза что этот протокол практически полностью скопирован с SNMPv2 с минимальными изменениями, но при этом все худшее от SNMPv2 в нем осталось. Несмотря на то, что SNMPv2 в основном используется в закрытых, "промышленных" сетях, практически 90% компаний от него отказываются из-за огромных рисков, а вот на риски домашних пользователей всем видимо наплевать.
Продолжение следует...

0

69

Продолжение
Как я уже писал, основная проблема на мой взгляд это отсутствие доступного для большинства пользователей оборудования среднего уровня, способного работать со стандартными для большинства SCADA протоколами. Побродив по интернетам я немного впал в уныние, а потом поразмыслив сформулировал сам для себя задачу и составил ТЗ:
1) нужно разработать контроллер среднего уровня максимально доступный для повторения и минимальной стоимостью(себе поставил планку себестоимости 500р)
2) Он должен быть один и универсальный для различной популярной периферии (датчиков)
3) Функционал должен включатся и настраиваться по мере необходимости без какого либо сложного программирования и пр.
3) Должен уметь работать с большинством SCADA

В результате осмысления и мук творчества получилось вот, что:
В качестве МК выбран ATmega328p (изначально разрабатывалось на 168p, но уже в середине пути понял, что не влезу)  Опять же 328 удачна тем, что Ардуина, значит меньше гемороя с печатными платами т.к. времени на все это катастрофически не хватает, а тут шилдами можно сделать хоть это не тру.
Протокол передачи Modbus RTU по шине RS485, это дешево, удобно, надежно с модбасом работает любая скада если она вообще считается скадой. Одним тонким 4х жильным проводом подвести к устройству питание и шину данных, питать их можно централизовано от резервированного БП, так же быстро можно перезагрузить из одного места при необходимости.
Modbus RTU + rs485 позволяет соединять устройства по топологии шина, что тоже обычно удобно (меньше проводов и нет необходимости тянуть отдельный провод "из центра сети", но если очень надо то можно и звездой. На одной шине могут быть до 247 устройств, что более чем достаточно для домашнего применения
Все настройки необходимого функционала так-же делаются по Modbus RTU, нужно включить какой то функционал, выключить или изменить для этого просто отправить записать соответствующий  параметр в нужный регистр. Ничего программировать, компилировать не нужно
Устройство имеет на борту:
1 цифровой вход с возможностью подключения датчиков (или): до 4х ds18b20, 1х DHT11, 1х DHT22, 1х BMP280, 1х BME280, 1х BH1750
2 входа АЦП 0-5в для подключения аналоговых датчиков (например MQ-2, MQ-3, MQ-7, MQ-8, MQ-135 и подобных) датчики напряжения и пр. Для АЦП реализован пересчет в физические значения. Для фильтрации значений АЦП реализованы фильтры: среднеквадратичное c пред измерением, среднеквадратичное по результатам N измерений, итерационная формула калмана, максимальное значение по N измерениям
2 дискретных входа для счетчиков(подсчет импульсов например для счетчиков воды или с импульсного выхода эл.счетчика)
4 дискретных входа с возможностью работать в режиме защелки и без
4 дискретных выхода для подключения реле или других исполнительных устройств (режим работы NO или NC)
Компаратор (ON/OFF регулирование) по значениям с цифровых входов или входов АЦП

Как уже говорил необходимый функционал включается по мере необходимости, через регистры настроек. Девайс один, а вариантов использования множество. Хотите мониторить температуру в комнате подключаете DHT11 настраиваете и получаете температуру и влажность, нужна температура в системе отопления на подаче и обратке 2шт DS18b20 подключаете, настраиваете и вперед, уличная температура и влажность вам нужен DHT22 или BME280. Настраивается все за одну минуту.
В планах еще упростить настройку написав конфигуратор, но времени катастрофически не хватает...

Отредактировано maul52 (2020-01-26 04:56:10)

0

70

maul52 написал(а):

Это первая часть опуса, вводная, дальше будет интересней, конкретика и технические детали


Может отдельную тему открыть ?

0

71

maul52 написал(а):

MQTT хотя бы чего стоит, ничего более убогого я давно не встречал

:cool:
Недавно для выставки срочно понадобилось развернуть сервер для приёма и отображения информации с датчиков. Быстрое гугление вывело меня на ThingBoard. Конечно же там был убогий MQTT. :canthearyou:
Ладно думаю, на три дня пойдёт. Погрыз его немного и кое как осилил, но... На каждый параметр нужно сгенерить уникальный токен и передача идёт так:
1. Создаём сокет.
2. Подключаемся к серверу по ТСР.
3. Подключаемся к серверу MQTT AT+QMTOPEN=0,ServerName,Port
4. Подключаемся к первому датчику AT+QMTCONN=0,t1,kaXH7VhBw1s6GUYM2hGS (t1 - температура, а куча символов это токен)
5. Отправляем значение температуры AT+QMTPUB=0,0,0,0,v1/devices/me/telemetry (последнее это адрес публикации)
6. Закрываем соединение с сервером MQTT AT+QMTCLOSE=0
После этого повторяем п.2-6 для остальных датчиков. А теперь представьте себе если у вас таких датчиков например сотня?  o.O

Отредактировано sva-don (2020-01-26 10:49:04)

0

72

в 2004 году сдавал очередной Умный дом, с передачей данных по сети 220 вольт.
Хрень для понта! Вложили в неё 2 года работы, КПД есть: мне и моему шефу - зп :) Остальное... Короче, не взлетело (нас сильно подмяло представительство TI в РФ). Конторы больше нет, точнее, того отдела инноваций :)
За бугром это внедряется для экономии на коммуналке: Электричество/Газ/Тепло во всех комбинациях. У нас же зачастую этой фразой обзывают банальные радиуправление освещением/розетками и/или, в лучшем случае, средства малой автоматизации уровня Нажали кнопку звонка у двери --> включился светильник в коридоре на 1 минуты, чтобы успели открыть и зайти.

+1

73

maul52 написал(а):

В качестве МК выбран ATmega328p (изначально разрабатывалось на 168p, но уже в середине пути понял, что не влезу)  Опять же 328 удачна тем, что Ардуина, значит меньше гемороя с печатными платами т.к. времени на все это катастрофически не хватает

А если все не поместится? 32 КБ флеша и 2 КБ ОЗУ это не много.
Для контроллера среднего уровня нужно брать МК с хорошим запасом. Из AVR не меньше ATmega2560.

0

74

Пётр написал(а):

А если все не поместится? 32 КБ флеша и 2 КБ ОЗУ это не много.
Для контроллера среднего уровня нужно брать МК с хорошим запасом. Из AVR не меньше ATmega2560.

Уже влезло, но под завязку. Занял 97% флеша. Проект готов на 90%, сейчас идёт проверка, отладка и небольшая оптимизация.
Как писал изначально писал под 168, но по мере роста хотелок перешёл на 328. Одна из основных вводных это цена, я себе обозначил ограничение в 500р т.к., любая подобная система может включать до 2х десятков таких контроллеров. В случае с 2560 стоимость вырастет уже к 1000, а то и больше

Отредактировано maul52 (2020-01-26 13:33:29)

0

75

Возможно попозже будет версия 2.0 т.к. из-за ограничений размера флеша пришлось отказаться от трех хотелок: реализация Modbus ASCII, возможность работать через WiFi (Modbus ASCII via WiFi) и хотел еще реализовать нестандартную 8 функцию Modbus для поиска и конфигурирования устройств с настройками по умолчанию

Отредактировано maul52 (2020-01-26 13:39:52)

0

76

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

0

77

maul52 написал(а):

Уже влезло, но под завязку. Занял 97% флеша.

Если понадобится добавить что-то еще?

maul52 написал(а):

В случае со 128мегой стоимость вырастет уже к 1000.

128 мега стоит 47 рублей с бесплатной доставкой. https://aliexpress.ru/item/33057454156.html

Отредактировано Пётр (2020-01-26 14:06:47)

0

78

Пётр написал(а):

Если понадобится добавить что-то еще?

Вопрос расширяемости пока не стоит

Пётр написал(а):

126 мега стоит 47 рублей с бесплатной доставкой


Да сама микруха стоит не дорого, но это подрузамевает изготовление печатки, да и припаять ее не каждый сможет. 328 мега это майнстрим, можно вообще без пайки обойтись и сделать все шилдами. Ардуино Nano + Шилд Max485 + шилд с реле + шилд DHT22 и при этом убраться в 500р. Прошивка льется через USB кабель, никаких программаторов (пусть даже копеешного USBASP не надо) Порог входа практически нулевой. Я понимаю, что на этом форуме профессионалы радиолюбители и для вас даже проще сделать печатку, но есть еще куча людей у которых банально не хватит знаний и возможностей. Лично для меня ардуина хороша возможностью очень быстрого прототипирования, мне в кайф что нибудь попаять, но времени на рисование печаток и их изготовление вообще нет. Хочу кстати протестить китайские сервисы по изготовлению pcb

0

79

maul52 написал(а):

это подрузамевает изготовление печатки

maul52 написал(а):

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

Китайцы с jlcpcb.com делают пять двухсторонних плат в размере до 100х100мм, с металлизацией, шелкографией и доставкой почтой России за 124 рубля.

Отредактировано EdGull (2020-01-26 15:38:15)

+2

80

Я себе делал умный гараж, если так можно назвать. Изначально была АТМЕГА 8, и цель была открывать замки ворот. Была небольшая фирма, и в гараже был склад инструментов и расходников, и если пацанам что-то нужно было, я открывал ворота с телефона, а не бросал работу, и ехал им выдавать. В общем были дешёвые автомобильные эл.замки, телефон билайн за 300р, как щас помню, и мега 8. Дальше обзавёлся актуаторами (что бы ворота сами открывались) и понеслось... В общем сейчас третья версия, на атмеге 128+. Гараж подключён к общей системе через nRF24l01, стоит говорилка, которая озвучивает действия, ошибки, контроль. И главное, что стало принципиально необходимо, это ведение лога. И здесь помог АВРДОС, а его в 328 не впихнуть. И это только гараж.
Так что закладывайте не менее 128-ю. Там есть два компорта, и один можно на ESP конкретно отвести и управлять вашим домом через WiFi

+3

81

EdGull написал(а):

за 124 рубля.

И дают 2 купона по $5.

0