Настоятельно прошу ознакомиться с уже предложенной документацией прежде чем задавать вопрос. Если информация, обсуждаемая на форуме несет в себе полезную смысловую нагрузку и будет полезна другим, то она будет закреплена в шапке (Просьба в этом мне помогать!)
1. Отформатировать SD карту (4-32 Гб) в программе SDFormatter. При форматировании в разделе «Option»указать тип формата «Quick» и формат сборки «On».
2. На отформатированную карту с помощью программы Win32DiskImage установить образ операционной системы Raspbian. Скачать образ можно здесь – https://u.to/RzT7Cw
3. Установить SD карту в слот Raspberry Pi, подключить кабель HDMI к монитору или ТВ, клавиатуру и блок питания.
4. Включить Raspberry Pi. После загрузки выбрать в меню конфигурирования системы пункт «Advanced Options» и включить режим SSH. Если меню по каким-либо причинам после загрузки системы не появилось, необходимо его вызвать командой: sudo raspi-config
5. Отключить Raspberry Pi от монитора, клавиатуры, питания и подключить его кабелем Ethernet к роутеру. Включить питание.
6. С помощью программы IPScan определить IP адрес Raspberry Pi в сети (например, 192.168.1.8)
7. Запустить программу Putty и настроить доступ к Raspberry Pi – ваш IP, порт – 22, имя пользователя – pi, пароль – raspberry.
8. Скачать архив WebIOPi на диск Raspberry Pi: $ wget https://u.to/jV0LCg (для старых версий) или: $ wget https://u.to/T61-DA (для новых версий), где x.y.z – номер версии
9. Распаковать архив WebIOPi на диск: $ tar xvzf WebIOPi-x.y.z.tar.gz
10. Выбрать распакованную папку (директорию): $ cd WebIOPi-x.y.z
Если у вас модель Pi2 или B+ то выполняем следующие действия: $ wget https://u.to/cvylDA $ patch -p1 -i webiopi-pi2bplus.patch
14. Открыть файл конфигурации WebIOPi: sudo nano /etc/webiopi/config Найти в тексте заголовок [DEVIСE]и прописывать строку: serial0 = Serial device:ttyAMA0 baudrate:9600 (для работы через UART) или: serial0 = Serial device:ttyUSB0 baudrate:9600 (для работы через USB)
15. В разделе [HTTP Server Configuration] необходимо прописать строку: doc-root = /home/pi/myproject/html
20. Создать на диске Raspberry Pi папки для хранения файлов проекта. Для этого запустить программу WinSCP (логин – root, пароль – назначенный в пункте 18). Структура вложенных папок должна иметь вид: /home/pi/myproject/html
21. Скопировать в папку html все файлы проекта с расширением *html и файл фонового рисунка fon.jpg. В качестве фона можно использовать любой рисунок, главное, что бы имел название fon.jpg.
22. Выполнить вход на сервер raspberry Pi из сети по адресу: ваш IP:8000 (логин – pi, пароль - raspberry)
Микроблог Zoolu о переделке интерфейса. Информация будет редактироваться только тут
P.S. Давайте сделаем ВМЕСТЕ форум информативным и интересным!
ВНИМАНИЕ !!! В процессе разработки системы домашней автоматизации было создано несколько различных версий. Из-за этого у многих пользователей возникает путаница - программное обеспечение применяется от одних проектов, прошивки контроллеров от других. Поэтому, перед тем как задавать вопро, внимательно ознакомьтесь с этой информацией
Сообщение отредактировал Zoolu - Четверг, 28.04.2016, 11:09
когда допустим контролеру нужно передать что нить он проверяет занята линия передачи или сразу лупит
У нас ведь RS485, что подразумевает наличие в сети только одного "мастера". Другими словами контроллер (слейв) ничего не может передавать, пока не получит команду от мастера. В такой ситуации проверка линии не имеет смысла за счет сравнительно больших (2 секунды и более) тайм-слотов между запросами с Raspberry Pi - пока пойдет новый запрос, контроллер гарантированно ответит (ну или не ответит вообще ).
"Многомастеровый режим" для RS485 - это отдельная песня. Основная проблема в RS485 - это невозможность дуплексного обмена данными, т.к. это может привести к коллизиям. Есть несколько решений, например циклическая передача по сети маркера присвоения режима мастера каждому устройству. Но это все тоже не стандартизированные протоколы. Я когда-то уже думал над этим вопросом.
Дата: Суббота, 14.02.2015, 20:52 | Сообщение # 244
Группа: Пользователи
Сообщений: 58
Статус: Offline
ну как сказать а допустим авария трубу в ванной прорвало а сервак и знать об этом не будет или у людей котлы с ним что нить не так
Добавлено (14.02.2015, 20:52) --------------------------------------------- сколько я знаю 485 так там допустим сработал датчик пожарной сигнал. то прибор slave сразу же передает мастеру
Сообщение отредактировал gorrec41 - Суббота, 14.02.2015, 20:51
Дата: Суббота, 14.02.2015, 21:05 | Сообщение # 245
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
Цитатаgorrec41 ()
ну как сказать а допустим авария трубу в ванной прорвало а сервак и знать об этом не будет или у людей котлы с ним что нить не так
Как можно заметить, функций охраны в данной системе пока нет. Я считаю, что охранная система должна быть полностью автономной, а в систему автоматизации должны поступать только данные от нее.
Цитатаgorrec41 ()
сколько я знаю 485 так там допустим сработал датчик пожарной сигнал. то прибор slave сразу же передает мастеру
Неправда. Почитайте про модбас. Все ответы от слейва идут только по запросу мастера. Сам слейв на передачу выходить не может.
Дата: Суббота, 14.02.2015, 22:16 | Сообщение # 246
Группа: Пользователи
Сообщений: 14
Статус: Offline
ЦитатаAdmin ()
Неправда. Почитайте про модбас. Все ответы от слейва идут только по запросу мастера. Сам слейв на передачу выходить не может.
Получается,что даже если тот же пожарный датчик или датчик протечки сработал,то мастер-raspberry pi не будет знать об этом пока сам не запросит состояние ? Т.е. чтобы хозяин квартиры оперативно получил уведомление об аварии в своем доме, raspberry pi должен опрашивать основные контроллеры с датчиками каждую секунду, не меньше - достаточно хлопотное занятие если таких контроллеров с датчиками будет много, с другой стороны возможно я недооцениваю быстродействие raspberry pi в данном случае... Преград нет!
Алгоритм обмена между Raspberry Pi и контроллерами в системе домашней автоматизации теоретически может быть организован по принципу «master-slave» с возможностью инициализации со стороны slave. Попробую объяснить это более подробно. Интерфейс RS485 в классическом виде является полудуплексным в отличие от RS232, где прием и передача данных может вестись одновременно (дуплексный режим). Как правило, при использовании RS485 всегда есть только одно главное устройство (master) и подчиненные устройства (slave). Мастер посылает адресный запрос подчиненному устройству, принимает от него ответ, затем опрашивается следующее устройство и т.д. Инициализатором обмена может быть только мастер, slave-устройство по своей инициативе выходить на связь не может.
Разумеется, что при таком построении алгоритма работы, должен вестись непрерывный опрос мастером (Raspberry Pi) всех подчиненных устройств (контроллеров). В результате этого по сети будет непрерывно транслироваться поток фактически одинаковой информации. Проблемы в этом большой нет, но все же я думаю применить немного иной алгоритм работы.
Он заключается в том, что Raspberry Pi опрашивает контроллеры относительно редко (с периодом приблизительно 5 секунд), но в случае события со стороны контроллера (замыкание/размыкание входа, получение команды на переключение выхода) контроллер может передавать данные без запроса со стороны мастера. В некоторой степени это чревато так называемыми «коллизиями», когда, например, одновременно происходит запрос со стороны Raspberry Pi и событие со стороны контроллера. Вероятность коллизий прямо пропорциональна количеству slave-устройств в сети и обратно пропорциональна периоду их опроса мастером. При опросе мастером с периодом 5 секунд и использовании только одного контроллера, вероятность таких проблем довольно небольшая. Но исключать их нельзя. Поэтому, здесь необходимо подумать насчет использования более сложного алгоритма
Дата: Воскресенье, 15.02.2015, 09:33 | Сообщение # 249
Группа: Пользователи
Сообщений: 58
Статус: Offline
как в пиках организовать я не знаю но в atmege можно организовать так :если случилось какое то событие то то прижимаем пин передачи на sleve допустим 200млсек предварительно проверив не идет ли передача от каких нить других контролеров , в это время малина видит что ее пин приема в 1 более 100 млсек переключается на прием, после паузы 200млсек slave ждет еще 10млсек и начинает передачу когда последний байт передан он дожидается ответа то малины что все ок все принято, и переходит в обработку своих событий . малина после приема данных переходит в обработку поступившего события.и согласно инструкци решает что делать.
Дата: Воскресенье, 15.02.2015, 12:01 | Сообщение # 250
Группа: Пользователи
Сообщений: 15
Статус: Offline
Хочу высказать свое мнение по поводу протокола (вернее интерфейса) RS485. Да действительно master должен постоянно опрашивать все устройства. Но таких устройств на шине не может быть больше 255. А в версии протокола автора 99. А реально их еще меньше. Так что время на опрос всех устройств совсем небольшое И не надо никаких дополнительных алгоритмов с коллизиями. А уж ежели кому-то хочется с несколькими мастерами и коллизиями то милости просим в интерфейс CAN. Там все это предусмотрено.