Четверг, 26.12.2024, 16:51
| RSS
Поиск
Главная |
Защита, контроль, управление
Форма входа

Меню

Авторские проекты

Статьи

Raspberry Pi

Полезная информация

Обратная связь

Ссылки

Форум

Чат

Канал YouTube

Группа в Facebook


Календарь
«  Февраль 2017  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728

Наш опрос

Ссылки


Яндекс.Метрика





.
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Домашняя автоматизация на Raspberry Pi. Программное обеспечение

Домашняя автоматизация на Raspberry Pi. Программное обеспечение

Наш канал в YouTube


Перед тем как начать рассматривать установку программного обеспечения для системы домашней автоматизации, несколько слов об аппаратной части проекта. Разработка  аппаратного обеспечения (кросс-платы) для системы домашней автоматизации была вызвана стремлением упорядочить разрозненные элементы централизованного сегмента в единое целое и в тоже время сделать его и отдельным устройством, и «ядром» всей системы. Кроме того, это связано и с идеологией построения самой системы – для небольших объектов вполне может быть достаточно только централизованного сегмента, а для больших объектов система дополнительно «усиливается» распределенным сегментом – т.е. сетью удаленных контроллеров, подключаемых по шине RS485 или по радиоканалу.

Размещенные на сайте ранее материалы позволяют в полной степени «вдохнуть жизнь» в кросс-плату, но для полной реализации её возможностей разработана специализированная программная сборка. Наряду с наработками, о которых уже рассказывалось, так же предусматривается возможность создания пользователем несложных сценариев через интерфейс конфигурирования системы – т.е. без вмешательства во внутренние программные коды исполняемых скриптов и алгоритмов.

На текущий момент на базе кросс-платы реализованы и поддерживаются следующие функции:

  • управление 8 релейными выходами;
  • контроль 8 дискретных входов;
  • шина 1-wire для подключения DS18B20;
  • шина I2C для подключения DS1307BMP085; TSL2561SHT21, MPL115A2, MMA7660
  • два входа для подключения датчиков температуры и влажности DHT22;
  • возможность реализации на реле №1 и №2 двух независимых термостатов по командам датчиков температуры (с точностью до десятых долей градуса как в области положительных, так и отрицательных температур);
  • возможность реализации на реле №3 и №4 двух независимых суточных таймеров (шаг установки – 1 минута);
  • возможность реализации на реле №5 измерителя освещенности (люксметра);
  • возможность реализации на реле №7 и №8 двух независимых каналов управления по изменению состояния входов №7 и №8;
  • отправку сообщений на е-mail при замыкании/размыкании любого из дискретных входов;
  • построение графиков изменений во времени параметров, получаемых от датчиков;
  • ведение журналов (ретроспективы) событий на входах и выходах по времени и с «конкретизацией» причин событий, а так же возможность удаленного просмотра и очистки журналов;
  • самостоятельное конфигурирование пользователем системы через web-интерфейс (создание описанных выше сценариев) непосредственно в процессе работы без перезагрузки сервера.

В принципе, для небольшого объема автоматизации указанных функций вполне достаточно. Однако, возможности системы можно значительно расширить с помощью контроллеров, подключаемых по шине RS485 (это так называемый распределенный сегмент системы). Используя эти контроллеры можно организовать дополнительный сбор показаний температуры и влажности с датчиков DHT11 и DHT22, беспроводное управление кондиционером и освещением, состояние беспроводных датчиков, управление дополнительными нагрузками и контроль дополнительных дискретных входов. Всю необходимую информацию для самостоятельной сборки данных контроллеров, а так же их описание, вы можете найти здесь.

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

Далее рассмотрим web-интерфейс. Отмечу, что все web-страницы самомасштабируемые - т.е. автоматически подстраиваются под размер окна браузера. На главной странице предусмотрены три дополнительные вкладки - «Метеостанция», «Радиоуправление» и «Выходы и входы GPIO» с кнопками их развертывания и свертывания. Это позволяет оперативно переключаться между вкладками и в тоже время не загромождать страницу лишней информацией. По умолчанию при открытии web-интерфейса все вкладки свернуты. Периодически изменяющие цвет полоски (красный/зеленый) показывают, что идет обмен данными по шине RS485 Raspberry Pi с метеостанцией и радиомодулем. (рис.1)

 

Raspberry Pi
 
Рис.1

 

На первой вкладке «Метеостанция» выводится информация собственно с самой метеостанции (1 датчик DHT22 и 5 датчиков DHT11), температура и загрузка процессора Raspberry Pi, атмосферное давление (датчик BMP085), показания с двух дополнительных датчиков DHT22, а так же показания с датчика освещенности TSL2561 (рис.2)

 

Meteo station Raspberry Pi
 
Рис.2

 

На второй вкладке «Радиоуправление» отображается интерфейс управления освещением (4 канала), управления кондиционером (режим охлаждения и режим обогрева в диапазоне +20… +24 °С), состояние радиодатчиков тревоги с кнопкой сброса сигнала тревоги, а так же состояние радиодатчиков положения окон и дверей (рис.3)

 

Radio station Raspberry Pi
 
Рис.3

 

Третья вкладка «Выходы и входы GPIO» отображает мнемосхему выходов (реле) и входов GPIO. Кнопки управления выходами являются одновременно и элементами сигнализации состояния выходов – включенное состояние реле отображается красным цветом, отключенное – зеленым.

Кроме того, на этой вкладке указывается информация о «привязке» релейных выходов и дискретных входов к выбранным сценариям – работе по таймеру, термостату или люксметру с указанием диапазонов времени, температуры и освещенности, отправку e-mail при замыкании/размыкании входа и т.д. Если рядом с входом или выходом такая информация отсутствует, это говорит о том, что управление и контроль могут выполняться пользователем только через web-интерфейс. Данные температуры для работы термостатов берутся с двух дополнительных датчиков DS18B20, люксметра – с датчика TSL2561, текущее время – с часов DS1307 (рис.4)

 

GPIO Raspberry Pi
 
Рис.4

 

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

 

Logs Raspberry Pi
 
Рис.5

 

Четырехканальные контроллеры вынесены на отдельную страницу «Контроллеры», так как таких контроллеров может быть несколько штук. Посредством таких контроллеров через RS485 можно управлять четырьмя релейными выходами, контролировать состояние четырех дискретных входов и получать данные температуры и влажности от датчика DHT22 (рис.6):

 

Controller Raspberry Pi
 
Рис.6

 

На странице «Графики» отображаются графики изменения во времени показаний различных датчиков (рис.7). С принципами формирования и визуализации графиков можно в этой статье – Построение графиков.

 

Graphs Raspberry Pi
 
Рис.6

 

Страница «Конфигурация» предназначена для настройки системы – на ней пользователь может самостоятельно «привязать» к определенным реле термостаты, таймеры, установить температуру и время включения и отключения реле, настроить отправку сообщений на e-mail, очистить журналы событий по входам и выходам.  Что бы корректно ввести данные на странице «Конфигурация», необходимо предварительно прочитать конфигурационный файл кнопкой «Считать» внести необходимые изменения и только затем записать данные в файл кнопкой «Записать»

 

Config Raspberry Pi
 
Рис.8

 

Установка и настройка ПО для системы домашней автоматизации (из образа):

1. Отформатировать SD карту (емкостью не менее 4 Гб) в программе SDFormatter. При форматировании в разделе «Option»указать тип формата «Quick» и формат сборки «On».

2. На отформатированную карту с помощью программы imageUSB установить образ системы домашней автоматизации.

3. С помощью программы IPScan определить IP адрес Raspberry Pi в локальной сети (например, 192.168.1.11)

4. Выполнить вход на Raspberry Pi по адресу: ваш IP:8000 (логин – webiopi, пароль - raspberry). Логин и пароль затем можно будет изменить.

5. В данном интерфейсе уже есть возможность управления 8-мю выходами и контроль 8-ми входов, реализованных непосредственно на портах GPIO Raspberry Pi. Для реализации остальных функций необходимо подключить дополнительные датчики и устройства (см. п.6…п.8)

6. Подключить к Raspberry Pi датчики DS18B20BMP085, TSL2561, DHT22.

7. Запустить программу Putty и настроить доступ к Raspberry Pi – ваш IP, порт – 22, имя пользователя – pi, пароль – raspberry. Открыть файл конфигурации webIOPi:

sudo nano /etc/webiopi/config

Раскомментировать в разделе «Scripts» скриты script_gpio.py и script_sensor.py, а в разделе «Devices» устройства tmp0, tmp1, bmp, light0. Обратите внимание, что для датчиков tmp (DS18B20)  необходимо указать их серийные номера.

8. Подключить в порт USB Raspberry Pi адаптер USB/RS485, а к нему, в свою очередь контроллеры, работающие по шине RS485 (метеостанция, радиомодуль)

9. Открыть файл конфигурации webIOPi:

sudo nano /etc/webiopi/config

Раскомментировать в разделе «Scripts» скрипт script_modbus.py, а в разделе «Devices» устройство serial0

10. Выполнить настройку отправки e-mail при срабатывании входов. Для этого с помощью программы WinSCP открыть в текстовом редакторе скрипт script_gpio и изменить его в разделе «Макросы e-mail»следующим образом:

  • значение mail_from – адрес, с которого будут отправляться сообщения
  • значение  mail_to – адрес, на который будут приходить сообщения
  • значение mail_text – текст отправляемого письма
  • значение mail_subj – тема отправляемого письма
  • значение attach_file – путь к прикрепляемому к письму файлу (при необходимости)
  • значение smtp_server – адрес smtp сервера
  • значение smtp_port – порт smtp сервера
  • значение smtp_user – smtp отправителя (адрес)
  • значение smtp_pwd   – пароль отправителя

Более подробно о настройке скрипта отправки e-mail и формировании SMS оповещений можно почитать здесь.

11. Выполнить перезагрузку WebIOPi командой:

sudo /etc/init.d/webiopi restart

12. В пункте меню «Конфигурация» web-интерфейса выполнить требуемые для пользователя установки, очистить журналы событий, очистить данные графиков. Система домашней автоматизации готова к работе.

В связи с тем, что периодически устраняются различные недостатки, выявленные в процессе работы системы домашней автоматизации, программное обеспечение постоянно совершенствуется. Это касается в первую очередь прошивок контроллеров и скриптов Python. Поэтому, после скачивания образа SD карты перед его настройкой, настоятельно рекомендуется заменить скрипты в папке:

home/pi/myproject/python  

на прилагаемые скрипты из архива. Информация в архиве периодически обновляется (в настоящее время  ).

В этом же архиве можно найти папку html, в которой web-интерфейс в отличие от описанного выше в этой статье,  реализован в виде отдельных страниц. Кроме того, на главную страницу добавлены показания датчиков вне зависимости от того, используются они «в связке» с портами GPIO или нет (рис. 9). Поэтому, выбирать вид интерфейса («раскрывающийся» или в виде отдельных страниц) каждый пользователь может на своё усмотрение.

 

Controller Raspberry Pi
 
Рис.9
 

 

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

 

 

Содержание всех статей по Raspberry Pi

Образ SD карты

Исходные файлы (папки HTML и Python)

Прошивки микроконтроллеров  с RS485

 




Категория: | Просмотров: 14412 | Добавил: Admin | Теги: | Рейтинг: 5.0/13 |
Всего комментариев: 8


8 griganam  
Все заменил, только не понял где взять файл config, и куда его прилепить? новый интерфейс выводится, но журнал событий не показывает , ошибка 404 вроде, что делать, куда копать дальше?

4 griganam  
Добрый вечер! Как записать образ SD карты для PI3, образ для PI2 не работает на 3. Спасибо!

5 Admin  
0
Лично я не проверял, но судя по отзывам на форуме, все должно работать и на RPi3
В любом случае после установки, если страница не открывается, нужно через отладку в терминале посмотреть причину этой проблемы.

6 griganam  
Спасибо, моя плюха, все загрузилось и работает, пока пробую тестировать. Жду нового интерфейса, надеюсь что он будет так-же в виде образа, а то не силен в линексе.

7 Admin  
0
Нет, образ уже давно выложен. Просто нет смысла после каждого изменения обновлять образ размером 4 Гб. Нужно будет только доустановить на скачанный образ библиотеку smsbus - см. здесь и заменить файл config, а так же папки html и python - и получите новый интерфейс с дополнительными возможностями.

3 griganam  
Спасибо получилось, буду пробовать.

1 griganam  
Win32DiskImage записывает файлы с расширением .img, а образ системы домашней автоматизации на яндекс диске имеет расширение .bin. Как записать данный файл на флэшку, если Win32DiskImage его не видит.

2 Admin  
0
Воспользуйтесь программой imageUSB





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