Среда, 27.11.2024, 16:29
| RSS
Главная | Raspberry Pi. Общие вопросы. Часть 1 (тема закрыта) - Страница 92 - Форум
Защита, контроль, управление
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS · Чат

Наш канал в YouTube
]
Raspberry Pi. Общие вопросы. Часть 1 (тема закрыта)
ZooluДата: Суббота, 22.02.2014, 22:47 | Сообщение # 1
Группа: Пользователи
Сообщений: 490
Статус: Offline
Настоятельно прошу ознакомиться с уже предложенной документацией прежде чем задавать вопрос. Если информация, обсуждаемая на форуме несет в себе полезную смысловую нагрузку и будет полезна другим, то она будет закреплена в шапке (Просьба в этом мне помогать!)



ВСЕ Авторские разработки, касаемые Raspberry находятся ЗДЕСЬ! Обязательно к прочтению!!!

Варианты преобразователя интерфейсов. Еще тут и тут

Немного о политике безопасности- Рекомендовано к прочтению!

P.S. Давайте сделаем ВМЕСТЕ форум информативным и интересным!

ВНИМАНИЕ !!! В процессе разработки системы домашней автоматизации было создано несколько различных версий. Из-за этого у многих пользователей возникает путаница - программное обеспечение применяется от одних проектов, прошивки контроллеров от других. Поэтому, перед тем как задавать вопро, внимательно ознакомьтесь с этой информацией


Сообщение отредактировал Zoolu - Четверг, 28.04.2016, 11:09
 


НиколайДата: Вторник, 14.06.2016, 12:04 | Сообщение # 911
Группа: Пользователи
Сообщений: 577
Статус: Offline
Помогите разобраться с датчиками
Прикрепления: 5754803.rar (502.3 Kb) · 1047713.jpg (160.3 Kb)


Сообщение отредактировал Николай - Вторник, 14.06.2016, 12:32
 
Vanuha_63Дата: Среда, 15.06.2016, 11:44 | Сообщение # 912
Группа: Пользователи
Сообщений: 32
Статус: Offline
Уважаемые форумчане требуется помощь. Сделал все по инструкции Михаила, получил тестовую Web-страницу, вкладки открываются, работают. А дальше полный затык и возникло несколько вопросов:
1. Насколько я понял система опрашивается только при включенном WebIOPI, это хорошо, но для меня лучше было-бы чтобы опрос шел в фоновом режиме датчиков Raspberry PI 1 раз в 5-10 мин (если применяются дискретные входы то чаще. Контроллеры RS485 (8- 10 шт) опрашивались 1 раз в секунду с сохранением пакета в буфере в оперативе для дальнейшей обработки. Сохранять в базу данных усредненные значения допустим 1 раз в час. А WebIOPI брать данные из базы данных или из оперативы (промежуточного буфера).
2. Непонятно как обработать принятый пакет по Modbus (в смысле какой формат данных hex, bin, int, и т. д.). Можно ли обработать данные в формате byte ? Я знаю что стандарт для Modbus размер данных либо 1 бит либо 16-битный регистр. Мой контроллер на AtMega 8 и немножко больше данных передается по modbus.
3. Время на тестовой странице берется с основного компьютера с Windows а не с Raspberry PI.
Может кто уже реализовал похожие алгоритмы, прошу поделиться соображениями, идеями.
У меня Raspberry pi2 и система Rasbyan-jessy от 17.02.16года если не ошибаюсь. Более новая почему-то не заработала.
 
AdminДата: Среда, 15.06.2016, 11:59 | Сообщение # 913
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
Цитата Vanuha_63 ()
1. Насколько я понял система опрашивается только при включенном WebIOPI, это хорошо, но для меня лучше было-бы чтобы опрос шел в фоновом режиме датчиков Raspberry PI 1 раз в 5-10 мин (если применяются дискретные входы то чаще.

WebIOPi включен всегда. А вот запрос данных идет только когда открыта страница, генерирующая эти запрсы. Для работы в "фоновом" режиме необходим макрос на Python, запускающийся с выбранным интервалом. Пример такого макроса, запускающегося каждые 10 минут я уже приводил - http://lock.3dn.ru/news....-18-136

Цитата Vanuha_63 ()
2. Непонятно как обработать принятый пакет по Modbus (в смысле какой формат данных hex, bin, int, и т. д.). Можно ли обработать данные в формате byte ? Я знаю что стандарт для Modbus размер данных либо 1 бит либо 16-битный регистр. Мой контроллер на AtMega 8 и немножко больше данных передается по modbus.

Про Модбас, применительно к нашей системе домашней автоматизации, см. здесь - http://lock.3dn.ru/news....-10-137

Цитата Vanuha_63 ()
3. Время на тестовой странице берется с основного компьютера с Windows а не с Raspberry PI.

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

Цитата Vanuha_63 ()
Может кто уже реализовал похожие алгоритмы, прошу поделиться соображениями, идеями.

Да, многое что уже реализовано, что конкретно, см. здесь - http://lock.3dn.ru/news....-01-142. В том числе и обновлены прошивки контроллеров, работающих по Модбас. Просто сейчас все это тестирую, поэтому пока и не выкладываю на сайт.
 
НиколайДата: Среда, 15.06.2016, 16:30 | Сообщение # 914
Группа: Пользователи
Сообщений: 577
Статус: Offline
Admin, Вы упорно игнорируете на мой запрос, дайте хоть какую информацию
 
Vanuha_63Дата: Среда, 15.06.2016, 18:03 | Сообщение # 915
Группа: Пользователи
Сообщений: 32
Статус: Offline
Admin, спасибо за ответ, для меня Python и Jawa и html пока темные лошадки.  Из-за нехватки времени хотелось по-быстрому подключить свой контроллер к Raspberry pi - азарт появился- вот почти можно опросить контроллер, а для движения вперед знаний маловато. Придется идти в "школу"- садится за учебники. Не боги горшки обжигают.
 


AdminДата: Среда, 15.06.2016, 21:43 | Сообщение # 916
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
Цитата Николай ()
Admin, Вы упорно игнорируете на мой запрос, дайте хоть какую информацию

А почему Вы обращаетесь "персонально" ко мне? Форум - это коллективное обсуждение, а не вопросы исключительно к одному человеку. Здесь ведь вопрос не сугубо про какую-то мою разработку.
Вы хотя бы пытались анализировать, что это за ошибка "Error 19" - No such device? Или просто выложили скрин и ждете с "моря погоды"?

Цитата Vanuha_63 ()
Придется идти в "школу"- садится за учебники. Не боги горшки обжигают.

"Золотые слова, Юрий Венедиктович (С)"
Вот только Николай этого никак понять не хочет.
 


НиколайДата: Пятница, 17.06.2016, 20:58 | Сообщение # 917
Группа: Пользователи
Сообщений: 577
Статус: Offline
Цитата Admin ()
А почему Вы обращаетесь "персонально" ко мне?
С датчиками я разобрался
В инструкции: Raspberry Pi для домашней автоматизации. Шина I2C
уберите пробел в команде:myscript = /home/pi /myproject/python/script.py
Без пробела у меня все заработало
 
Vanuha_63Дата: Пятница, 17.06.2016, 21:33 | Сообщение # 918
Группа: Пользователи
Сообщений: 32
Статус: Offline
Уважаемый Admin, не могу врубиться, где формируется запрос minimalmodbus для сети rs485. Я так понял что здесь
@webiopi.macro
def getData():
instrumentA = minimalmodbus.Instrument('/dev/ttyUSB0', 1)
global i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12
try:
i0 = instrumentA.read_register(0, 0) # Чтение регистров данных
i1 = instrumentA.read_register(1, 0)
i2 = instrumentA.read_register(2, 0)
i3 = instrumentA.read_register(3, 0)
i4 = instrumentA.read_register(4, 0)
i5 = instrumentA.read_register(5, 0)
i6 = instrumentA.read_register(6, 0)
i7 = instrumentA.read_register(7, 0)
i8 = instrumentA.read_register(8, 0)
i9 = instrumentA.read_register(9, 0)
i10 = instrumentA.read_register(10, 0)
i11 = instrumentA.read_register(11, 0)
i12 = instrumentA.read_register(12, 0)
Мне иногда нужно опрашивать не все регистры командой "03", а часть регистров. Подскажите , пожалуйста,
1. где формируется запрос?
2. можно ли адрес слейва задавать не числом, а переменной, в которой адреса меняются по кругу.
3. Скрипт minimalmodbus выполняется весь от начала и до конца, или только тот , к которому приходит запрос с web-страницы. Где начинается ,например, @webiopi.macro
def getData(): понятно, а где заканчивается непонятно. В инете не получилось найти ответ. Подскажите ,пожалуйста.
 
AdminДата: Пятница, 17.06.2016, 21:59 | Сообщение # 919
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
Цитата Николай ()
В инструкции: Raspberry Pi для домашней автоматизации. Шина I2C
уберите пробел в команде:myscript = /home/pi /myproject/python/script.py

По хорошему эту инструкцию вообще нужно удалить - потому что если даже при вводе пути к файлу, человек тупо копирует пробелы..... беда!

Цитата Vanuha_63 ()
не могу врубиться, где формируется запрос minimalmodbus для сети rs485. Я так понял что здесь
@webiopi.macro
def getData():

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

def loop()
......
......
time.sleep(ххх)


где xxx - время повтора цикла в секундах - например, как для вывода графиков - ссылку тоже приводил в сообщении #913

Цитата Vanuha_63 ()
2. можно ли адрес слейва задавать не числом, а переменной, в которой адреса меняются по кругу

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

Цитата Vanuha_63 ()
3. Скрипт minimalmodbus выполняется весь от начала и до конца, или только тот , к которому приходит запрос с web-страницы. Где начинается ,например, @webiopi.macro
def getData(): понятно, а где заканчивается непонятно.

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

Прикрепления: 4507573.jpg (105.2 Kb)
 
AdminДата: Суббота, 18.06.2016, 08:11 | Сообщение # 920
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
Хотелось бы немного рассказать о тестировании системы и выявленных недостатках на текущий момент.

Полностью опробованы все функции, описанные в этой статье - http://lock.3dn.ru/news....-01-142.
Из выявленных проблем - иногда самопроизвольно сработает реле №5, управляемое от датчика освещения. Судя по журналу логов это происходит из-за сбоя приема данных по шине I2C от датчика TSL. Проблема решаема, но нужно немного доработать алгоритм скрипта.
Больше проблем в "централизованном" сегменте пока не выявлено.

Теперь что касается "распределенного" сегмента (т.е. контроллеров на шине RS485):
1. Переработана прошивка метеостанции (раньше наблюдались ее частые перезагрузки при запросе данных по шине).
2. Переработана прошивка радиомодуля
Выявленные проблемы:
1. Иногда "отваливается" последовательный порт ttyUSB0 (ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32). Судя по информации на профильных форумах, данный тип ошибки связан с недостаточным уровнем питания адаптера USB/RS485. Как вариант решения проблемы предлагают использовать дополнительный USB-hub. В общем, причина этой проблема как бы понятна. Кстати, отмечу, что с первым Raspberry Pi адаптер работает без вопросов. Поэтому, здесь ещё возможно многое зависит и от порта, и от применяемого адаптера.
2. Пару раз в процессе тестирования была получена ошибка сервера Error 500. Причина пока неизвестна. Но она стала проявляться только когда был задействован "распределенный" сегмент.

Попробовал совмещать на одной странице разные контроллеры, работающие по шине RS485. Пример такой интеграции метеостанции и радиомодуля приведен на скриншоте. Это позволяет вывести на одну страницу фактически все элементы контроля и управления дома. Но тут тоже "палка о двух концах". Дело в том, что если "запихивать" все функции на одну страницу, то она получается более "тяжеловесной", что не есть хорошо при "слабом" интернете. Да просмотр такой "насыщенной" страницы на небольшом дисплее не очень удобный.

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

P.S. Я с понедельника на неделю полечу в командировку в КНР, так что возможно на это время на форуме появляться не буду.

Прикрепления: 9792047.jpg (184.1 Kb)
 
Поиск:



T2M © 2024
Сайт управляется системой uCoz