Raspberry pi 2 умный дом своими руками. Строим недорогую систему умный дом своими руками на основе Raspberry Pi

– это высокотехнологичная интеллектуальная система на базе одноплатного микрокомпьютера, берущая на себя управление всеми коммуникациями дома, квартиры.

Система программируется и настраивается владельцем жилища под свои нужды и в соответствии с его представлением о функциональности.

Система «Умный дом» на базе Raspberry Pi 3 хороша тем, что стоимость ее невелика, а функциональность можно наращивать постепенно.

Платформа Raspberry Pi 3 – главные особенности

В феврале 2016 компания Raspberry Pi выпустила в широкую продажу новую версию микрокомпьютера Raspberry Pi 3, модель «В».

Модель сразу же получила широкую популярность среди пользователей, о чем говорит все возрастающий объем ее продаж.

Структурная схема системы «Умный Дом» на базе Raspberry Pi 3

Построенный на базе Raspberry Pi 3 «Умный дом» позволяет не только взять под контроль и управление практически все коммуникации жилища, но и произвольно наращивать функциональность в процессе эксплуатации.

Основные характеристики Raspberry Pi 3

Новый микрокомпьютер получил:

  1. процессор ARM Cortex-A53;
  2. оперативную память в один гигабайт;
  3. встроенные WiFi и Bluetooth 4.1;
  4. полную совместимость с предыдущими моделями.

Процессор имеет четыре ядра, разрядность 64 бита, частоту 1.2 ГГц, что в 10 раз превышает производительность первой модели.

WiFi стандарта 802.11b/g/n с возможностью передачи данных со скоростью до 600 Мб/сек на частоте 5.0 ГГц.

По заказу «Raspberry Pi» компания «Broadcom» разработала и выпустила новый монокристалл BCM2837 с архитектурой, аналогичной кристаллам BCM2835 и BCM2836, что обеспечило совместимость с предыдущими моделями.

Одноплатные компьютеры Raspberry Pi 3 и Arduino – главные отличия

Сравнение этих платформ не совсем корректно. Прежде всего потому, что Raspberry Pi 3 по своему наполнению является компьютером с полным набором функций, а Arduino отнести к классу компьютеров достаточно проблематично.

Raspberry Pi 3 оснащен мощным четырёхъядерным процессором, частота которого в 40 раз выше тактовой частоты Arduino. Оперативная память Raspberry Pi 3 имеет емкость, в 128000 раз превышающую емкость оперативной памяти Arduino.

Но эти показатели говорят не о том, что Raspberry Pi 3 превосходит Arduino, а о том, что эти устройства предназначены для решения разных задач.

Задачи, решаемые Raspberry Pi 3 с помощью ПО, не под силу решать простому Arduino. Но он превосходно справляется с задачами сугубо аппаратных проектов, со считыванием и обработкой аналоговых сигналов.

Обработка аналоговых сигналов ведется в реальном масштабе времени, причем эти сигналы могут поступать с и чипов любых типов и производителей. Для того, чтобы Raspberry Pi 3 мог так же обрабатывать аналоговые сигналы, ему нужны дополнительные аппаратные средства.

Реализация проекта «Умный дом» на базе Raspberry Pi 3

Для тех, кто решил создать Raspberry Pi 3 «Умный дом» своими руками, вначале следует определиться, какие функции будут реализовываться, как они будут включаться в рабочую конфигурацию. И, в соответствии с этим, комплектовать будущую систему необходимыми устройствами.

Периферийные устройства «умного дома»

Для реализации проекта Raspberry Pi 3 «Умный дом» понадобятся такие модули:

  • модуль ;
  • модуль поддержки беспроводной связи;
  • датчик измерения влажности и ;

Кроме этого, для системы Raspberry Pi 3 «Умный дом» потребуются карта памяти MicroSD емкостью 32 ГГб, блок питания, пятивольтовое реле.

Одним из важнейших дополнительных устройств для реализации проекта Raspberry «Умный дом» является модуль NodeMCU ESP-12E с радиоинтерфейсом Wi-Fi и интегрированной в плату модуля микрополосковой антенной.

Операционные системы

Как и любой компьютер, Raspberry Pi 3 без программного обеспечения представляет собой просто бесполезный набор электронных элементов.

Чтобы этот набор превратить в инструмент, реализующий свои функциональные возможности, в него нужно «вдохнуть жизнь», то есть наполнить его соответствующим программным обеспечением.

Этот процесс выполняется в несколько этапов. Вначале необходимо выбрать и загрузить для Raspberry Pi 3 «Умный дом» iOS – мобильную операционную систему.

В качестве носителя для ОС и размещения на нем программ в Raspberry Pi 3 используется микрокарта памяти SD. Для установки ОС можно выбрать один из трех способов:

  1. купить SD-карту, на которую уже была предварительно установлена ОС;
  2. загрузить на карту памяти NOOBS (New Out Of the Box Software) – установщик ОС, и затем устанавливать ОС прямо с карты;
  3. монтировать образ ОС прямо на карту SD.

Для системы Raspberry «Умный дом» разработано более 40 различных ОС. Чаще всего используются ОС Raspbian OS, Ubuntu Mate, Windows 10 IoT, RICS OS.

Наиболее адаптированной под аппаратные средства Raspberry Pi 3 явл

яется операционная система Raspbian OS, устанавливаемая с загруженного на SD-карту установщика NOOBS.

Установка операционной системы

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

Для самого первого запуска понадобятся:

  • микрокарта SD, емкостью не менее четырех гигабайт (предпочтительно 32 гигабайта);
  • блок питания на пять вольт;
  • кабель с разъемами HDMI;
  • монитор с HDMI-подключением;
  • клавиатура и мышь с USB-подключением;
  • компьютер с разъемом для SD-карты;
  • подключение к интернету – Ethernet.

Следующие действия таковы:

  1. форматирование SD-карты;
  2. скачивание архива установщика NOOBS и распаковка его в корневую директорию SD-карты;
  3. карта вставляется в слот микрокомпьютера, подключаются все устройства, включается блок питания;
  4. при первом запуске из списка выбирается нужная ОС и запускается ее установка;
  5. по завершении установки установить и настроить программы Raspberry Pi 3 «Умный дом».

Установка сервера Homebridge и настройка модулей

Система «Умный дом» работает с технологией Home Kit, объединяющей все устройства «умного дома» в одном приложении, и воспринимающей голосовые команды, поданные на русском языке. Но таких устройств, особенно «понимающих» русский язык, не так уж и много, к тому же, они очень дорогие.

Сервер Homebridge выполняет роль своеобразного мостика между всеми устройствами дома и Home Kit. Этот сервер эмулирует Home Kit API.

Серверу доступны сотни самых различных плагинов, благодаря которым стало возможным осуществлять управление всеми домашними устройствами, которые даже конструктивно не предназначены для работы с Home Kit. Главное преимущество Homebridge то, что он может работать на любом компьютере, в том числе и на Raspberry Pi 3.

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

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

Заключение

Система «Умный дом» на базе Raspberry Pi 3, созданная своими руками, обойдется в разы дешевле аналогичной готовой системы, а функциональность ее можно наращивать практически неограниченно.

Видео: Raspberry Pi Model 3 B — устанавливаем систему управления умным домом Domoticz

В статье представлена информация о популярной линейке миникомпьютеров Raspberry pi. Описан принцип действия, области применения и дан развернутый обзор функциональных особенностей различных моделей Raspberry pi2, Raspberry pi3, Raspberry pi model B.

Raspberry и «умный» дом

В 2011 году компания Raspberry Pi Foundation выпустила первый в мире миниатюрный, но полноценный компьютер разработанный Девидом Брабеном. Размер этого устройства сопоставим с размерами банковской карты. В то же время его технические параметры соответствуют топовым компьютерам 2005-10 годов.

Одними из самых привлекательных черт данной техники является ее доступность. Стоимость базовых моделей (model А) находится в области 25 дол США, а более продвинутых (model В) около 35 дол США. Конечно, на отечественном рынке эта техника стоит несколько дороже, так как сказываются высокие ввозные пошлины и налоговые отчисления, но все равно стоимость Raspberry не сопоставима с аналогичной крупномасштабной техникой.


Вторым немаловажным преимуществом является его феноменальная экономность. Raspberry Pi 2 потребляет все 1 Вт электроэнергии в час, в то время как его стационарный аналог не менее 250 Вт.

Что может Raspberry и как он работает?

Операционная система Raspberry Pi – Debian Linux, на данный момент практически все модели выпускаются с предустановленной специальной системой под названием Raspbian. В довесок ко всему в качестве браузера используется Midori, офисный пакет (аналог незаменимого World и Exel) Koffice.

Как же Такое оборудование может использоваться в ?


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


Преимущества такой структуры заключаются в предоставлении определенной автономности периферии, которая будет выполнять поставленные задачи даже при выходе центрального устройства из строя. И элементарном упрощении задач по прокладке кабельных сетей. От сервера будет проложено по одному UTP кабелю к каждому контроллеру. Команды управления будут пересылаться по одной паре проводов, а остальные 3 пары будут использованы для подачи питания самих контроллеров и исполнительных устройств, находящихся под их управлением.

Центральным сервером системы является Raspberry Pi на котором установлен WEB-интерфейс, связанный с внешними мобильными устройствами управления – смартфоном, планшетом, ноутбуком. Доступ к ресурсу предоставляется по логину и паролю с сети интернет, Wi-Fi, или локальной Ethernet. У большинства ПО есть возможность разграничения уровня доступа на администраторский и пользовательский.

Связь модуля Raspberry Pi с контроллерами реализована через порт UART, к которому подключается согласующее устройство – переходник на интерфейс RS485. В последних моделях данный интерфейс реализован в базовой комплектации. Так же, реализована возможность подключения GSM модема для связи с мобильным оператором, предоставляющим провайдерские услуги доступа в глобальную сеть.

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

Стандартная система «Умный дом» основанная на Raspberry Pi может включать следующие элементы:

  • Контроллер температуры и влажности на 8 каналов. Собирает показания о состоянии параметров через детектор DHT22 и 7 датчиков типа DHT11.
  • Четырехканальный термостат. Этот терморегулятор может контролировать параметры четырех отдельных линии нагрузки, как нагрева, так и охлаждения. Параметры могут задаваться непосредственно на контроллере или через WEB-интерфейс сервера.
  • Радиомодуль – используется для приема данных с 10 радиодатчиков и эмуляции 5 радиобрелоков;
  • Универсальный констроллер, может применяться для контроля и управления системой полива, отопления и т.д. имеет 2 входя для подключения детекторов влажности (DHT22) и температуры (DHT11).

Более подробно о функционировании описанной системы можно увидеть здесь:

Обзор моделей Raspberry Pi 2, Pi 3 model B

Процессор ARM Cortex-A7 с тактовой частотой 900МГц и 4 ядрами на борту. Объем оперативной памяти довольно солидный даже по современным меркам 1 ГБ. В плату интегрирован графический чипсет — VideoCore IV 3D и звуковой контроллер. Это дает возможность использовать устройство в качестве универсального мультимедийного сервера в .


Внешние интерфейсы:

HDMI – главное отличие от предыдущих разработок, заменил собой аналоговый RCA видеовыход. Однако возможность подключения телевизора через 3,5 мм разъем осталась. Необходимо дополнительно приобрести кабель переходник (стоимость около 5 дол).


Еще одним отличием от моделей предыдущего поколения является наличие системных файлов. Так же имеется Lan порт и 4 USB порта, которые могут выдать для питания внешних устройств ток силой 1,2 А каждый. Для этого сам Raspberry Pi должен быть подключен к специальному сетевому адаптеру, который обеспечит силу тока 2 А.

По сравнению с 1 и 2 версиями Raspberry Pi 3 не подверглась кардинальной модернизации. Однако эволюция развития основных технических показателей существенна. Основным отличием является высокопроизводительный четырехъядерный 1,2 ГГц процессор ARM Cortex-A53. По заверениям разработчиков создание такого процессора на базе однокристальной платформы Broadcom BCM2837 увеличило его производительность на 50%, и при этом он полностью совмести с предыдущими версиями.

Из основных интерфейсов связи можно отметить:

  • Bluetooth 4.1;
  • Wi-Fi 802.11n;
  • 4 USB;
  • HDMI;
  • 40ка пиновый GPIO.

Стоимость устройства не изменилась, все те же 35 дол плюс доставка от официального дилера в Великобритании.

Raspberry Pi незаменимое устройство для тех, кто самостоятельно занимается установкой и наладкой систем «Умный дом».

  • А по теме DS18B20 подойдёт. ">
  • > @vadelma#5751 Подключать надо около 10 датчиков. Поэтому крайне желательна возможность использования на любом GPIO-контакте. Не только uart или i2c . i2c как раз и предназначена для подключения множества устройств. Благодаря

  • Подключать надо около 10 датчиков. Поэтому крайне желательна возможность использования на любом GPIO-контакте. Не только uart или i2c . ">

    Подключать надо около 10 датчиков. Поэтому крайне желательна возможность использования на любом GPIO-контакте. Не только uart или i2c .

  • Нужен погружной в жидкость температурный датчик. Диапазон температур 0/+100 градусов. Требуется возможность снимать показания в формате понятном малине без риска для неё.

    @gena#5747 В отсылаемом пакете данных присутствует адрес источника (от 0 до 31), а команда отсылается по всей линии передач, просто исполняет её только только тот источник, у которого адрес совпадает

    В отсылаемом пакете данных присутствует адрес источника (от 0 до 31), а команда отсылается по всей линии передач, просто исполняет её только только тот источник, у которого адрес совпадает с

    > @Knmichael#5746 Программируемые источники питания общаются посредством интерфейса RS-485 с управляющим устройством (в данном случае с Raspberry Pi 3 Model B+), а между собой коммутируются через RS-232. В моём случае,

    ### Программирование источников питания при помощи Raspberry Pi Model B+ ("Малинка"). **Здравствуйте, подскажите, пожалуйста, каким образом реализовать идею.** Программируемые источники питания общаются посредством интерфейса RS-485 с управляющим устройством (в данном случае с

    Для перезагрузки подвисшей Raspberry можно использовать сторожевой таймер. http://robocraft.ru/blog/3130.html - тут есть подробная статья на эту тему

  • Через Bluetooth.
    Либо купить 2 USB видеокарты со входом для микрофона и соединить выход одной со входом другой обычным 3.5 jack кабелем ">

    Через Bluetooth.
    Либо купить 2 USB видеокарты со входом для микрофона и соединить выход одной со входом другой обычным 3.5 jack кабелем

  • Можно подключить 1 экран по HDMI, 1 по DSI.
    И это будет не очень просто ">
  • > @Andreyku#5619 Вот я и хотел спросить, можно ли к малинке подключить два шаговых двигателя и управлять ими через сайт который работает на https ? Да, можно.

    1) Это просто переходник с CSI на HDMI, чтобы можно было подключать камеру более длинными и надёжными калебями. 2) Это обычный экран, LVDS панель + LVDS-HDMI переходник. Захват через

    Всем привет! Парни, помогите кто чем может! Есть RaspberryPi 3B, со свежим Raspbian, малину использую только для передачи данных от USB-портов в Ethernet, этим заведует сервис ser2net, установленный из арсенала

    Я сразу извиняюсь, поскольку мои познания очень, очень скромные. Купил сей девайс https://www.waveshare.com/wiki/SIM7600E-H_4G_HAT Задача запустить его в среде Pri - Raspbian, т.е. что бы подключение было по модему и работал GPS.В мануале есть примеры

  • Видео аппарата https://www.youtube.com/watch?time_continue=1&v=CUNnT2uiEDM ">
  • Всем привет. Пару лет назад собрал дипенсор, для кофейных капсул на ардуино. Заходишь на сайт выбираешь один из двух вкусов и аппарат выдает его. Все работало нормально до тех пор

    В общем все поставил все включил через config и ssh и VPN, но работать отказывается т.е. с ПК зайти не могу! Подключено все через роутер, RAPI подключена по WiFi , ПК

    Установил windows на новенький raspbery pi b 3. Подключаю ethernet кабель к роутеру - никакой реакции. Ноутбук с этим же кабелем к роутеру подключается без проблем. Помогите, пожалуйста, в чём

    В одном из сообщений здесь писали о переходнике с HDMI на шлейф RaspCam: https://www.tindie.com/products/freto/pi-camera-hdmi-cable-extension/ . Можно ли его использовать для видеозахвата видео с видеокамеры с HDMI выходом? Хватит ли пропускной способности камерного входа на малинке?

    Chug17, скажи, пожалуйста, может ли использоваться переходник, о котором ты писал выше https://www.tindie.com/products/freto/pi-camera-hdmi-cable-extension/ для захвата видео с видеокамеры с HDMI выходом? Хватит ли пропускной способности входа камеры на малинке? Насколько я

    Умный дом на Raspberry Pi своими руками

    1.4 (28.89%) 9 votes

    Сейчас невозможно игнорировать нововведения и современные технологии, прочно укоренившиеся в нашей жизни: мобильную связь, интернет, компьютерные приборы и дома, в которых каждый бытовой процесс контролируется с планшета или телефона. Такие дома называют «Умными домами». Это жилища, в котором вы сможете контролировать всё: от включения света или отопления щелчком пальцев до активации систем имитации присутствия, которые будут помогать держать ваш дом в безопасности, пока в нём никого нет.

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

    Если вы хотите минимизировать прилагаемые усилия при выполнении бытовых занятий, таких как стирка, готовка или уборка, проект «Умный дом» просто создан для вас.

    Проект «Умный дом»

    Концепция работы «Умного дома»

    Конечно, для каждого автоматизированного и автоматического оборудования должна быть программа. Именно от неё будет зависеть успешность вашего «Умного дома». Такие программы адаптации оборудования требуют некоторых знаний и опыта в сферах программирования и электроники. Однако если вы новичок в этом, малознакомы с программированием и не обладаете необходимым опытом работы с электроникой, мы рекомендуем вам использовать программы, максимально адаптированные для начинающих пользователей.

    Создание «Умного дома» без собственных усилий подразумевает собой крупные вложения средств, которые на данный момент может позволить себе далеко не каждый. Но если понять концепцию работы устройств, можно с лёгкостью собрать такой своими руками.

    Raspberry Pi или автоматизация «Умного дома»

    Raspberry Pi - компания, создавшая миникомпьютер Raspberry. Это устройство максимально упрощает автоматизацию «Умного дома» и обладает крайне привлекательной ценой по сравнению с конкурентами, имеющими менее качественное оборудование.

    Изначально было придумано 2 комплектации мини-компьютера Raspberry Pi:

    • модель А;
    • модель В.

    Внешний вид Raspberry Pi model B (с установленной flash-картой)

    Обе версии работают на основе процессора ARM11 с тактовой частотой 700 МГц, но имеют различную память. Как правило, модель B обладает количеством оперативной памяти, в 2 раза превышающей модель А. Следовательно, А - 256 Мб, а В - 512 Мб. Поэтому модель А не была снята с международного производства, так как обладала ещё одним весомым преимуществом. В ней присутствовала поддержка порта Ethernet, позволяющая выход в интернет. Также компания Raspberry Pi не остановилась на достигнутом и позже выпустила обновлённую версию модели В. Улучшенный вариант обладал более компактным дизайном, а также включал в себя 4 USB-порта, что в 2 раза превышает их количество в предшествующей модели.

    Данный девайс прекрасно найдёт себя в вашей разработке проекта «Умный дом». За относительно невысокую стоимость этот компьютер Raspberry Pi может выполнять самые разнообразные задачи, связанные с автоматизацией проекта «Умный дом».

    Мини-компьютер Raspberry может управлять , которое облегчит автоматизацию вашего дома или квартиры. С помощью платы RaZberry от фирмы Z-Wave ваш мини-компьютер воистину станет мозгом для всей вашей системы. Z-Wave являет собой стандарт беспроводной автоматизации. Он не требует проведения дополнительных проводов или ремонтных работ, что в лучшую сторону сказывается на экономике вашего проекта. Также Wave невероятно прост в установке. Это позволяет самостоятельно справиться с задачей даже новичку в сфере электроники. Появилась нехватка производительности? Не беспокойтесь, производительность Z-Wave можно наращивать благодаря установке дополнительных устройств, как и в обычном компьютере. Смена комплектующих или их апгрейд послужит улучшению работы устройства. Также Wave регулярно проводит доступные тренинги и обучения для опытных монтажников по темам установки и адаптации под определённые системы Z-Wave.

    Контроллер Z-Wave Fibaro Home Center 2

    Если вы не уверены в своих возможностях, или же вам не хватает опыта, компания Z-Wave готова предоставить полный спектр услуг по установке, либо же настройке оборудования Z-Wave по всей территории России. Также вы всегда можете воспользоваться их доступной базой знаний или задать интересующие вас вопросы на сайте технической поддержки.

    Также с помощью системы Raspberry Pi вы можете соорудить из обычной веб-камеры и одноплатного компьютера собственную настоящую систему видеонаблюдения и наблюдать за любым объектом через интернет, где бы ни находилась ваша камера.

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

    С помощью системы Raspberry Pi и веб-камеры можно вести видеонаблюдение

    «Умный дом» является сложной системой, которая, помимо выполнения указаний, заданных вами в программе, может выполнять действия, полностью опираясь на оригинальность той или иной ситуации. В ином понимании это «умная» система, способная самостоятельно найти выход из ситуаций, основываясь на происходящем.

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

    Сделать свой дом максимально удобным, приспособить его под свой образ жизни теперь стало возможным с помощью «Умных домов» и мини-компьютеров Raspberry Pi.

    • Tutorial

    В данном проекте запускаем своё iOS, Android или Web приложение, а также пишем (вернее, чуть дописываем) чат бот на питоне, который управляет розетками через радио модуль, подключенный к Raspberry Pi.

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

    Интересно?

    А зачем?

    Вопрос “а зачем это нужно?” не всегда остро стоит для проектов из серии «умный дом» и всяческих Internet of Things, здесь часто тратится куча времени и денег на автоматизацию чего-то, что на практике удобнее переключать по старинке обычным настенным выключателем:-) Но при этом получаешь кучу удовольствия и полезного опыта в процессе и далее радуешься исправной работе механизма, который сделал сам.

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

    • Человеческий язык - довольно легко заставить чат бот общаться с вами на человеческом языке, что довольно удобно, особенно для менее технических членов семьи. Также это позволяет в перспективе подключить голосовое управление.
    • Универсальный удаленный доступ - к XMPP чат серверу можно подключаться откуда угодно и из любого Jabber совместимого IM клиента. Людям удобно, а как подключить устройства описано в данной статье.
    • Удобное управление для всей семьи - подключите домашних в единый групповой чат, где сидят боты, отвечающие за дом или приборы в доме. Вы можете обсуждать свои семейные вопросы и одновременно управлять домом. Все видят, кто какие команды подал приборам, можно видеть их (ботов) ответы и отчеты, просмотреть предыдущую историю и т.п. Это удобно.
    • Система независимых распределенных агентов . Каждый прибор или набор датчиков, которые имеют представительство (по сути, пользователя) в чате, соответственно являются независимыми агентами и могут общаться с другими приборами и быть управляемыми ими или вами напрямую. Единый сервер не обязателен. Можно поднять свой чат бот для каждого важного прибора или датчика, а также настроить главного бота с элементами AI, такой себе “дворецкий” или “majordomo”, который будет всеми девайсами управлять, причем они будут общаться в доступном вам и другим членам семьи чате на понятном вам языке, так что вы всегда можете отследить что происходило или вмешаться в процесс.

    Реквизит

    Для данного мини-проекта нам потребуются следующие компоненты:

    1. Raspberri P.
    У меня модель B, заказал буквально за день до объявления о выходе B+, но в принципе, любая модель тут подойдет, главное смотрите, чтоб GPIO пины были совместимы с управляющим модулем, который вы выберете. Об этом ниже.
    Ну а так, главное требование - запустить чат бот на питоне.

    2. Аксессуары к вашему Pi.
    WiFi модуль, простые USB клавиатура и мышь, карточка SD памяти с дистрибутивом Raspbian, блок питания, по желанию - пластиковый корпус.
    Это стандарт для “малинки”, но т.к. я покупал её впервые, специально под этот проект, то не знал, что WiFi и SD карта не входят в стандартный комплект, и пришлось дозаказывать, так что имейте в виду. Также для настройки вам потребуется монитор или телевизор с HDMI кабелем.

    3. Управляющий модуль (RF transmitter) и розетки или другие приборы с приёмником (RF receiver).
    Здесь нужно сказать, что я пошел по быстрому или ленивому пути, и заказал готовый RF модуль для Pi и набор радиоуправляемых розеток от Energenie . В комплекте идет готовый RF передатчик, который подключается на GPIO пины вашей малинки. Кому этот путь не по душе, есть альтернативы, в инете куча гайдов о том, как к существующим радиоуправляемым приборам подобрать код и управлять ими через простой дешевый китайский RF передатчик. В качестве альтернативы можно через Pi управлять приборами непосредственно прямым проводным подключением с GPIO, а также через WiFi и по другим каналам.

    Вот фото моего Energenie комплекта:

    4. Чат-клиент.
    В данном туториале используется Q-municate , это мессенджер с открытым исходным кодом от нашей платформы QuickBlox, который можно скачать с github и забилдить под iOS, Android или запустить Web версию на десктоп и других платформах. Преимущество использования Q-municate в том, что вы можете кастомизировать интерфейс под себя и сделать своё собственное приложение, например, только для своей семьи.
    Но это совершенно не обязательно. Вы можете использовать любой Jabber/XMPP совместимый клиент, например Adium.

    Итак, начнем.

    Устанавливаем дистрибутивы / dependencies для Raspbian

    Логинимся на малинку и ставим следующие вещи под рутом:
    apt-get install python-dev pip install sleekxmpp pip install dnspython pip install pyasn1 pyasn1-modules apt-get install python-rpi.gpio
    Нам собственно нужен sleekxmpp, это базовый проект для чат бота, а остальное решает вопросы с различными зависимостями для этого проекта. Ну и плюс python-rpi.gpio позволит контролировать GPIO пины малинки из нашего питон скрипта.

    Подключаем и проверяем модуль радиоуправления

    Если вы используете другой модуль, не от Energenie, то эту часть вам придется исследовать самостоятельно.

    При использовании же готового Pi-mote модуля всё просто и хорошо описано в официальной инструкции от производителя: energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf

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

    Итак, обучаем. Согласно инструкции, запускаем скрипт

    Sudo python ENER002.py
    вставляем розетки в розетки) и если лампочки на них не мигают, то переводим в режим обучения нажатием кнопки выключения в течение 5 секунд. Лампочки замигали, нажимаем “Enter” на клавиатуре чтобы подать сигнал из скрипта и видим быстрое мигание лампочки, это значит что обучение прошло успешно. Повторяем то же самое с остальными розетками. Один Pi-mote модуль может подавать 4 разных кода, т.е. управлять можно 4 разными наборами Energenie розеток, при этом никто не мешает использовать один код для нескольких розеток одновременно.

    Поднимаем чат сервер

    Нам нужен XMPP / Jabber совместимый чат сервер с возможностью создания MUC (группового чата или чат комнаты) в нём, чтобы подключить туда наш чат бот и человеков-пользователей.

    В принципе, на Pi можно поднять свой чат сервер, например вот здесь http://box.matto.nl/raspberryjabberd.html описывается установка ejabberd на Raspberri Pi.

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

    Шаги ниже описывают регистрацию и заодно создание пользователя для нашего чат бота и MUC комнаты для общения.

    Дальше нам нужно взять и модифицировать это под свои нужды.
    Если вы тоже используете Energenie для управляемых розеток и QuickBlox для чат сервера, то вы можете взять мой готовый скрипт здесь: https://github.com/QuickBlox/sample-powerbot-python-rpi .
    Вам нужно будет только поменять credentials в начале скрипта, прописав туда свои ключи приложения и пользователя (того, что мы создали выше).

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

    1. Добавлено авто-присоединение по приглашению в другие чат комнаты.

    2. Подправлена совместимость с QuickBlox и Q-municate (мелочи типа формата названия чат комнат и т.п.)

    3. Добавлен собственно парсинг команд для управления приборами - в нашем случае это «lamp on», «lamp off», «all on» и «all off» - и вызов функций switch_on / switch_off из питон модуля energenie, который уже отдает команды на плату радиопередатчика через GPIO.
    Кто работает напрямую с GPIO, посмотрите в energenie.py как реализована работа с GPIO.

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

    Как реализовать авто-присоединение - парсим станзы входящих XML сообщений, т.к. нам обязательно прийдет сообщение о том, что создан такой-то MUC чат, если данный пользователь был туда приглашен.

    В нашем случае мы используем платформу QuickBlox и конкретное приложение Q-municate, в нём приглашение в новый групповой чат выглядит примерно так:
    RECV: Taras Filatov created new chat<_id>53b78c0c535c12798d0050551234040,1258466,126535021404538064Yanus Poluektovich, Sergey Fedunets[email protected]1

    Отслеживаем фразу “created new chat” в XMPP станзах, и если она встречается, то парсим оттуда xmpp_room_jid, это и будет id вновь созданной комнаты.
    Дальше запускаем процесс с этим же скриптом
    Имейте в виду, для того чтоб это работало, нужно сделать скрипт исполняемым:

    Chmod +x powerbot.py
    Код реализации представлен ниже:

    If msg["mucnick"] != self.nick and "Create new chat" in msg["body"]: from bs4 import BeautifulSoup y = BeautifulSoup(str(msg)) roomToJoin = y.xmpp_room_jid.string print ("Got an invite to join room") botId = subprocess.Popen(, shell=True) print "spawned new bot ID=" print botId self.send_message(mto=msg["from"].bare, mbody="Thank you for your kind invitation, joining your new room now!", mtype="groupchat")

    Приветствие + инструкции
    Определяем кодовое слово, в данном случае “powerbot”, и выдаем в ответ приветствие и подсказку о том, как пользоваться / общаться с нашим ботом.
    Проверка “if msg["from"] != self.nick” нужна чтобы бот не реагировал на сообщения от себя самого.

    # # Reply to help request (any message containing "powerbot" in it) # if msg["mucnick"] != self.nick and "powerbot" in msg["body"]: reply_test_message = self.make_message(mto=msg["from"].bare, mbody="Powerbot is greeting you, %s! Usage: lamp to control socket 1, all to control all sockets. Example: "lamp on" switched socket 1 on." % msg["mucnick"], mtype="groupchat") self.copy_dialog_id(msg, reply_test_message) reply_test_message.send() print "Sent help text: " + str(reply_test_message)

    Включение / выключение лампы и других приборов
    Отслеживаем команду “lamp on” (включить лампу), если команда получена, то включаем розетку switch_on(lampSocket) и отчитываемся о выполнении.

    # # Handle "lamp on" command # if msg["mucnick"] != self.nick and "lamp on" in msg["body"]: switch_on(lampSocket) confirmation_message = self.make_message(mto=msg["from"].bare, mbody="Lamp has been switched on, %s." % msg["mucnick"], mtype="groupchat") self.copy_dialog_id(msg, confirmation_message) confirmation_message.send() print "Lamp switched on, sent confirmation: " + str(confirmation_message)
    Аналогичным образом реализованы “lamp off”, “all on” и “all off” (последние отвечают за включение или выключение всех управляемых розеток).

    Запускаем чат бот
    Из bash на малинке выполняем нехитрую команду:

    Sudo python powerbot.py -d -r <адрес начальной MUC комнаты>
    Sudo нужно для доступа к GPIO. Если вы использовали QuickBlox, то в качестве адреса MUC комнаты просто скопируйте JID адрес из таблички Chat Dialogs.

    В результате на экране появятся логи аутентификации и обмена XMPP статусами с сервером:

    Всё, бот готов и ждет ваших указаний в чат-комнате.

    Кстати, вы могли обратить внимание, что функции реакции на команды продублированы одновременно в
    def message(self, msg):
    и
    def muc_message(self, msg):
    первый блок обрабатывает приватные сообщения 1:1, а второй - групповые.
    То есть управлять ботом можно и в приватном чате, хотя на мой взгляд, это менее интересно.

    Собираем чат клиент под iOS (варианты: Android, Web)

    Как я писал выше, можно общаться с ботом через любой Jabber / XMPP - совместимый чат клиент.
    Мы легких путей не ищем, поэтому собираем своё приложение - клиент для управления ботом ну и заодно для общения с домашними и друзьями.
    Свой собственный мессенджер с ботом и групповыми чатами:-)

    Однако, как вы увидите, мы здесь тоже идем по быстрому и ленивому пути и берем готовый open-source проект нашей собственно разработки,
    который называется Q-municate.

    1. Тянем с гита проект для соответствующей платформы.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: