sonyps4.ru

Управление gpio raspberry pi через web. Raspberry Pi: настройка и управление

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

Raspberry Pi представляет собой миникомпьютер, который имеет много портов, которые могут быть использованы для подключения различных периферийных устройств. Вы можете подключить отдельный монитор через HDMI порт и клавиатуру и мышь через USB разъемы, также у Raspberry Pi имеется Ethernet порт, поэтому вы можете использовать интернет в своих проектах на Raspberry Pi.

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

Оборудование и программное обеспечение

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

  • Raspbian OS : когда вы покупаете Raspberry Pi, у вас есть возможность (в некоторых магазинах) купить предустановленную на SD карту операционную систему, либо просто скачать zip-файл c https://www.raspberrypi.org/downloads/ , который содержит образ Raspbian OS, чтобы записать его на вашу SD карту;
  • SDFormatter : у SD Card Association есть очень хорошее ПО, которое может быть использовано для форматирования вашей SD карты. Посетите https://www.sdcard.org/downloads/formatter_4/index.html и скачайте SDFormatter для вашей операционной системы;
  • Win32DiskImager : чтобы записать Raspbian OS на вашу SD карту, вам понадобится полезная утилита Win32DiskImager. Скачать её можно здесь ;
  • : вам будет необходимо определить IP адрес вашего Raspberry Pi, когда подключите его компьютеру. Просто скачайте эту программу http://www.advanced-ip-scanner.com/ ;
  • PuTTy : PuTTy - это SSH клиент, который будет использоваться для подключения к Raspberry Pi. Вы можете скачать его здесь http://www.putty.org/ ;
  • VNC : и последнее это VNC сервер. Скачать его можно здесь https://www.realvnc.com/download/ .

Когда скачаете всё это программное обеспечение, распакуйте и установите его.

Установка операционной системы
  • Вставьте SD карту в картридер и проверьте, какая буква была присвоена диску.
  • Откройте Win32DiskImager, возможно понадобится запустить его от имени администратора.
  • Выберите образ распакованной Raspbian OS.
  • Выберите букву, присвоенную вашей SD карте, в выпадающем списке устройств. Убедитесь в том, что выбрали правильную букву диска, чтобы не повредить данные на каком-либо другом диске.
  • Нажмите Записать (Write ) и ждите завершения.
  • Закройте Win32DiskImager, выньте SD карту и вставьте её в Raspberry Pi.
  • Примечание: после записи операционной системы вы заметите, что на SD карте осталось лишь несколько мегабайт. Это из-за созданного раздела, остальная часть свободного пространства скрыта. Вы сможете это исправить, как только мы подключимся к Raspberry Pi.

    Общий интернет через Ethernet порт

    Как только SD карта будет готова, вставьте её в Raspberry Pi. Подключите USB кабель питания. А также соедините Raspberry Pi и ноутбук кабелем Ethernet.

    Если вы подключаете Raspberry Pi к роутеру с доступом к интернету, то этот шаг можно пропустить.

    Проверка IP адреса, присвоенного вашему Raspberry Pi

    Это просто, убедитесь, что ваш Raspberry Pi подключен к Ethernet сети вашего компьютера (напрямую или через роутер). Если всё работает нормально, вы увидите, что светодиоды на плате мигают.


    Подключение к Raspberry Pi через PuTTy

    Отлично! Перед тем, как продолжить, посмотрим, что у нас уже сделано к текущему моменту.

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

    Для получения удаленного доступа к датчикам возможно использование микроконтроллеров или одноплатных миникомпьютеров. В этой работе для решения задачи получения доступа к датчикам рассматриваются одноплатные миникомпьютеры. В настоящее время наиболее популярными и покупаемыми являются Raspberry Pi 2, Banana Pi 2 и Orange Pi PC (см. рисунок 1).

    Рис.1. Одно платные миникомпьютеры

    Эти компьютеры объединяет:

  • Малые размеры, с кредитную карточку;
  • Четырехядерный процессор, который работает на всех компьютерах примерно на частоте 1-1.2 ГГц;
  • Оперативная память 1 ГБайт;
  • SD card вместо диска для загрузки операционной системы и программ;
  • Ethernet порт для подключения к сети;
  • HDMI выход для подключения монитора или телевизора;
  • USB порты для подключения, например клавиатуры, мыши, флешь памяти.
  • Операционная система Linux;
  • И главное - 40-а пиновый GPIO порт, к которому подключаются устройства, датчики, которыми надо управлять.
  • Главная задача - это выбор компьютера для удаленного управления.

  • Стоимость (на 25.02.2016, сайт http://ru.aliexpress.com с доставкой):
  • Raspberry Pi 2 - $36.99;

    Banana Pi 2 (BPI-M2 A31S) - $50.21

    Orange Pi pc - $18.99

  • Быстродействие процессора + памяти:
  • По вычислительным тестам с использованием 4-х ядер

    Banana Pi 2 (BPI-M2 A31S);

    Raspberry Pi 2.

    При использовании одного ядра для вычислительных работ (задача не распараллелена)

    Banana Pi 2 (BPI-M2 A31S);

    Raspberry Pi 2.

    Отмечают, что у Orange Pi работает 3 ядра, 4-й не всегда запускается.

    3.Техническая поддержка и наличие отлаженного программного обеспечения:

    Raspberry Pi 2 - (1); Banana Pi 2 - (2); Orange Pi pc - (3).

    У Orange Pi pc пока нет главного условия для управления устройствами - это программной поддержки порта GPIO.

    Удаленное управление датчиками и устройствами может выполняться с помощью микроконтроллеров:

  • Arduino Mega256 с Ethernet Shied w5100 - $12-15;
  • Arduino nano с контроллером сети enc28j60 - $8-9;
  • ESP8266-12 - $2-3;
  • Опыт показывает, что в локальной сети микроконтроллеры работают неплохо, в глобальной сети при потерях пакетов управление становиться ненадежным. Миникомпьютеры работают под управлением ОС Linux, у которой сетевые протоколы отлажены хорошо. Можно делать высокую степень защиты для входа в управляемую систему. У микроконтроллеров для хороших протоколов и защиты от взлома недостаточно ресурсов.

    На основании изложенного выше для удаленной работы с датчиками используется миникомпьютер Raspberry Pi 2. В качестве примера рассматривается подключение датчика давления и температуры BMP180 к шине компьютера I2C. Должны решаться задачи:

    При подключении к компьютеру с помощью браузера на экране должны отображаться давление и температура. Их значения должны изменяться каждые 5 секунд.

    Скрипт на Питоне должен записывать давление и температуру в файлы каждые 5 минут. Они используются для построения графиков.

    Необходимо предусмотреть управление устройством и в случае отсутствия у него реального IP - адреса (DNS имени). Необходимо лишь подключение к Интернет, например через стандартный ADSL модем с установленным NAT.

    Рассмотрим последовательность решения задачи.

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

    Для этого необходимо с сайта https://www.raspberrypi.org/downloads/raspbian/ скопировать образ операционной системы RASPBIAN JESSIE, например на компьютер под управлением Windows 8.1. Разархивировать этот файл. Скопировать дисковую утилиту Win32DiskImager с сайта http://sourceforge.net/projects/win32diskimager , разархивировать ее. Установить SD card на компьютер и с помощью дисковой утилиты установить на SD образ операционной системы. После этого эта SD card устанавливается в компьютер Raspberry Pi. К компьютеру необходимо подключить монитор, клавиатуру, мышь и кабель Ethernet. После подключения питания компьютер автоматически загружается и на экране появляется меню предварительной настройки, которое формируется файлом raspi-config. Опции этого файла есть в ссылке https://www.raspberrypi.org/documentation/configuration/raspi-config.md

    2. Назначение Raspberry Pi статического IP адреса

    Raspberry Pi выполняет функцию web - сервера, поэтому он должен иметь статический ip адрес. Для этого:

    Меняем содержимое файла /etc/network/interfaces на

    iface lo inet loopback

    iface eth0 inet static

    address 172.20.0.138

    netmask 255.255.0.0

    gateway 172.20.200.1

    dns-nameservers 8.8.8.8

    Полностью удаляем из системы dhcpcd5, выполнив команду

    sudo apt-get purge dhcpcd5

    3. Следующим этапом является установка Фреймворка WebIOPi.

    Фреймворк WebIOPi представляет пакет программ, специально разработанный для Raspberry Pi для удаленного управления устройствами. Совместно с Raspberry Pi 2 он реализует технологию Internet of Things (Интернет вещей). Пакет WebIOPi позволяет создавать различные пользовательские приложения.

    WebIOPi имеет следующие возможности:

    Встроенный Web - сервер, реализованный на языке Python

    Встроенную поддержка более чем 30 устройств с интерфейсами UART, SPI, I2C, 1-Wire

    Библиотеки Javascript / HTML для создания Web-интерфейса

    Библиотеки Python / Java для создания приложений для Android

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

    WebIOPi имеет открытый код, который может быть изменен пользователем. Это позволяет увеличить количество задач для решения. Для настройки пакета под конкретную задачу изменяется файл конфигурации. Например, в этот файл записываются GPIO pins, к которым подключены устройства. Если используются датчики, их также заносят в конфигурационный файл. Однако необходимо в некоторых случаях включить драйвер устройства (например датчика bmp180). Рассмотрим установку версии 0.71 WebIOPi. Эта новая версия хорошо поддерживает Raspberry Pi 2, имеющего 40 пинов порта GPIO. Для установки WebIOPi, заходим в Raspberry Pi 2 через 22 порт программы putty (логин - pi, пароль - raspberry) и в терминале вводим поочередно следующие команды:

    $ wget http://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz

    $ tar xvzf WebIOPi-0.7.1.tar.gz

    $ cd WebIOPi-0.7.1

    Устанавливаем patch, чтобы работать с 40 GPIO Raspberry Pi 2:

    $wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi-pi2bplus.patch

    $ patch -p1 -i webiopi-pi2bplus.patch

    $ sudo ./setup.sh

    Для автоматического запуска WebIOPi после перегрузки системы необходимо выполнить команду (справедливо для образа 2015-05-05-raspbian-wheezy.img):

    sudo update-rc.d webiopi defaults

    Для более поздних версий автоматический запуск выполняется так:

    $ cd /etc/systemd/system/

    $ sudo wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi.service

    $ sudo systemctl start webiopi

    $ sudo systemctl enable webiopi

    После чего перезапускаем Raspberry Pi 2:

    Теперь необходимо проверить работу WebIOPi. С любого компьютера в локальной сети набираем сетевой адрес, присвоенный Raspberry Pi 2 с указанием порта 8000. Например:

    http://172.20.0.138:8000/app/gpio-header

    Для доступа к WebIOPi необходимо в открывшейся форме ввести логин и пароль. По умолчанию логин «webiopi», пароль - «raspberry». Браузер выведет интерфейс программы WebIOPi , на котором представлены номера 40-а пинов порта GPIO и их назначение. Для изменения логина и пароля вводится команда:

    sudo webiopi-passwd

    Для настройки WebIOPi под задачу необходимо датчик давления и температуры BMP180 прописать в конфигурационном файле /etc/webiopi/config Webiopi в секции :

    На рисунке 2 показана схема подключения датчика к пинам порта GPIO.

    Рис.2. Подключение BMP180 к GPIO

    В файл /boot/config.txt необходимо добавить строку

    dtparam=i2c_arm=on

    Изменение пароля Webiopi выполняется командой

    Проверить работоспособность датчика температуры можно, подключившись по адресу:

    http://172.20.0.138:8000/app/devices-monitor

    В браузере должно появиться значение температуры и давления от датчика (рис.3).

    Рис.3. Данные, считанные с датчика BMP180

    Для перегрузки WebIOPi после внесения изменений в конфигурационный файл, скипт на Python и html файл, необходимо выполнить:

    /etc/init.d/webiopi restart

    Сообщения об ошибках при запуске Webiopi находятся в файле /var/log/webiopi. Его можно распечатать по команде:

    cat /var/log/webiopi

    4. Создание файла index.html и скрипта на Python script.py

    Необходимость этих файлов в следующем. HTML-страница посредством JavaScript выполняет запрос к скрипту (подпрограмме), написанной на Python, а Python в свою очередь возвращает на HTML-страницу полученные данные с датчика BMP180 для их визуализации. Каждые 5 минут скрипт записывает значения давления и температуры в текстовый файл. Этот файл используется для построения графиков давления и температуры для изменяющегося времени.

    В каталоге /home/pi/myproject/html создаем файл index.html, содержание которого представлено на рис 4. А в каталоге /home/pi/myproject/python создаем файл script.py на Python, представленный на рис. 5

    Рис.4. Файл index.html

    Файл press.html показан на рис. 6. Аналогично выглядит файл temp.html для формирования графика температуры.

    Рис.5. Файл script.py

    Рис.6. Файл press.html для формирования графика давления

    HTML файлы press.html и temp.html для построения графиков давления и температуры используют готовую библиотеку dygraph, которая написана на JavaScript. Файл dygraph-combined-dev.js этой библиотеки копируется с сайта

    http://dygraphs.com в каталог /home/pi/myproject/html.

    После перегрузки компьютера WebIOPi будет работать по представленным скриптам. Если подключиться к нему через браузер, информация о давлении и температуре будет представлена как на рисунке 7.

    Рис.7. Данные, полученные с датчика BMP180

    Рис.8. График давления, полученный с помощью библиотеки dygraph

    5. Подключение к сети Интернет компьютера Raspberry Pi 2, если он не имеет реального ip-адреса или доменного имени, но имеет выход в Интернет (через модем, router, межсетевой экран).

    Одним из способов получения доступа к Raspberry Pi как к устройству Интернет вещей является использование сервиса Weaved. Он предлагает следующие услуги:

    SSH - позволяет войти в Raspberry Pi с любой точки мира по SSH;

    Web (http) on port 80 - можно просматривать web - страницы с любой точки мира, размещенные на Raspberry Pi;

    WebIOPI - позволяет управлять пинами GPIO порта Raspberry Pi, используя разработанное пользователем программное обеспечение.

    Перед установкой Weaved желательно создать каталог /home/pi/myproject/my, зайти туда и работать там с файлами Weaved.

    Установка Weaved на Raspberry Pi:

    Необходимо на сайте https://developer.weaved.com/portal/login.php получить аккаунт;

    Подключить Raspberry Pi 2 к Интернет;

    Загрузить Weaved Software на Raspberry Pi:

    wget https://github.com/weaved/installer/raw/master/binaries/weaved-nixinstaller_1.2.13.bin

    Сделать файл weaved-nixinstaller_1.2.13.bin исполняемым:

    chmod +x weaved-nixinstaller_1.2.13.bin

    Запустить программу установки:

    ./weaved-nixinstaller_1.2.13.bin

    Выбрать услугу

    При первом запуске программы будет предложено установить одну из услуг: SSH на порт 22, Web (HTTP) на 80-й порт, WebIOPi на порту 8000, VNC на порт 5091 (протестирован с tightvncserver), или пользовательский TCP на выбранном порту.

    Выбираем здесь 3-ю услугу, Web (HTTP) на 8000-й порт.

    Ввести информацию для входа в Weaved (ввести аккаунт, который был получен на сайте Weaved).

    Проверяем, было ли создано новое устройство:

    Заходим по адресу https://developer.weaved.com/portal/login.php и вводим свой аккаунт. После входа должна появиться следующая страничка (рис. 9), где указано имя созданного устройства:

    Рис.9. Листинг созданных сервисов

    Выводы.

  • Высокая надежность управления удаленными сенсорами (оборудованием) с помощью миникомпьютеров через сеть Интернет по сравнению с микроконтроллерами. Сетевые протоколы на микроконтроллерах облегченные, поэтому работают не так надежно.
  • Высокая стоимость систем управления на миникомпьютерах через сеть по сравнению с микроконтроллерами.
  • Простота программирования систем сетевого управления для миникомпьютеров, в связи с разработанным программным обеспечением, подобным WeBIOPi.
  • Возможность получения доступа к миникомпьютерам через Интернет в случае невозможности использования реальных IP - адресов и доменных имен.
  • Обнаружены проблемы при работе с модулем BMP085 для датчика давления BMP180. После нескольких часов работы перестает работать Web - сервер WebIOPi. Вместо работы с модулем BMP085
  • from webiopi.devices.sensor.bmp085 import BMP085

    лучше использовать модуль deviceInstance

    from webiopi import deviceInstance

    bmp = webiopi.deviceInstance("bmp")

    Здесь ("bmp") - это получить устройство с именем bmp, которое находится в файле

    /etc/webiopi/config, в секции .

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

  • WebIOPi - The Raspberry Pi Internet of Things Framework. . - Mode of access: http://webiopi.trouch.com/, 2016.
  • Internet of Things for Everyone. . - Mode of access: https://www.weaved.com/ , 2016.
  • Комплексная система домашней автоматизации на Raspberry Pi. . - Mode of access: http://electromost.com/ , 2014.
  • Мясищев А.А. Интернет электро - розетка на основе мини компьютера Raspberry Pi и фреймворка WebIOPi. Практика для студентов. . - Mode of access: https://sites.google.com/site/webstm32/internet_rozetka, 2016.
  • Webiopi имеет открытый код, который может быть изменен пользователем. Это позволяет увеличить количество задач для решения. Для настройки пакета под конкретную задачу изменяется файл конфигурации. Например, в этот файл записываются GPIO pins, к которым подключены устройства. Если используются датчики, их также заносят в конфигурационный файл. Однако необходимо в некоторых случаях включить драйвер устройства (например для температурного датчика ds18b20). Рассмотрим установку версии 0.6 Webiopi. Эта версия хорошо поддерживает Raspberry Pi model B , имеющего 26 пинов порта GPIO. Для установки WebIOPi, заходим в Raspberry Pi через программу Putty (логин – pi, пароль - raspberry) и в терминале вводим поочередно следующие команды:

    $ wget http://webiopi.googlecode.com/files/WebIOPi-0.6.0.tar.gz
    $ tar xvzf WebIOPi-0.6.0.tar.gz
    $ cd WebIOPi-0.6.0
    $ sudo ./setup.sh

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

    $ sudo update-rc.d webiopi defaults

    После чего перезапускаем Raspberry Pi:

    Теперь можно проверить работу Webiopi. С любого компьютера в локальной сети набираем сетевой адрес, присвоенный Raspberry Pi с указанием порта 8000. Например:

    http://172.20.0.137:8000/app/gpio-header

    Для доступа к WebIOPi необходимо в открывшейся форме ввести логин и пароль. По умолчанию логин «webiopi», пароль – «raspberry». На рисунке 6 представлен интерфейс программы Webiopi, на котором представлены номера пинов порта GPIO и их назначение.

    Рис.6. Интерфейс фреймворка Webiopi

    Из рисунка видно, что по умолчанию все пины GPIO работают на вход (IN). Для переключения на выход, необходимо мышкой нажать на IN. Его значение поменяется на OUT. Черный цвет пина означает низкий уровень порта, желтый - высокий. Если кликнуть мышкой на номер порта, его значение переключиться с низкого на высокий и черный цвет поменяется на желтый. В этом случае произойдет включение(или выключение) устройства, подключенного к этому пину.
    Для настройки Webiopi под задачу необходимо выбрать пины порта GPIO для подключения розеток и датчика температуры DS18B20 и прописать их в конфигурационном файле Webiopi:

    GPIO23 - розетка для подключения обогревателя;

    GPIO9 - розетка 1;

    GPIO11 - розетка 2.

    Датчик температуры подключен к GPIO4, который реализует шину 1-wire(рис.7).

    Рис.7. Пример подключения DS18B20 к GPIO4

    Подключаемся к Raspberry Pi через терминальную программу Putty (логин – pi, пароль - raspberry) и открываем для редактирования конфигурационный файл config:

    sudo nano /etc/webiopi/config

    Настраиваем порты GPIO 9, 11, 23 как выходы с высоким стартовым уровнем. В секции записываем:

    Для того, чтобы работал датчик температуры в секции прописываем:

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

    myproject = /home/pi/myproject/python/script.py

    В секции указываем имя и расположение html файла:

    doc-root = /home/pi/myproject/html

    и номер порта работы встроенного в Webiopi web - сервера:

    port = 80

    В секции прописываем активные порты(только они будут работать):

    gpio-export = 9, 11, 23

    и разрешаем вводить изменение с браузера величин GPIO(низкий и высокий уровень пина) но запрещаем менять функции GPIO(нельзя менять OUT на IN):

    gpio-post-value = true

    gpio-post-function = false

    Для того, чтобы работал датчик DS18B20 необходимо в файл /boot/config.txt вставить строку

    dtoverlay=w1-gpio

    Если к GPIO4 подключено несколько датчиков DS18B20, то каждый из них должен иметь свое имя. Для определении имени переходим в каталог.

    Здравствуйте друзья

    После того, как я испытал возможности системы управления умным домом Domoticz на своем настольном компьютере и убедился в том, что она отлично дополняет, а где и заменяет Mi Home - штатную систему Xiaomi - я решил приобрести для нее отдельный одноплатный компьютер - Raspberry Pi. И в этом обзоре я расскажу про свой опыт.

    Вступление

    Для тех кто не читал мой первый обзор про Domoticz - . Буквально после первых удачных экспериментов, я загорелся идеей отдельной аппаратной базы для нее, в качестве рабочей платформы настольный ПК не подходит. Выбор свой я остановил, после штудирования пабликов - на Raspberry Pi Model 3 B - компактный но мощный одноплатный компьютер на базе Soc процессора BCM2837 с 4 ядрами Cortex-A53, работающим на частоте 1.2GHz, 1GB ОЗУ и беспроводными модулями Wi-Fi и Bluetoth 4.1.

    Комплект

    В свой заказ я включил 4 позиции -

    Что интересно в магазине имеется две модификации - китайская и английская. На момент покупки китайская стоила на 7 долларов дешевле, ее я и взял. Чего там китайского - честно говоря для меня загадка.

    Медные радиаторы для Raspberry Pi - страница товара

    Еще для полного комплекта вам понадобится microSD карта - не менее 4 GB и HDMI кабель. У меня в загашнике был и кабель и карта на 32 ГБ, потому покупать не стал.

    Что в посылке

    Через положенный срок - чуть более двух недель, курьер принес посылку с моим заказом.


    Рассмотрим подробнее. Блок питания с вилкой Тип С и разъемом micro-USB.


    Заявленный максимальный ток - 2А при напряжении 5 В.


    Тестовое включение с нагрузкой в 2А - показывает некоторое проседание напряжения, но в пределах допустимого, блок питания - более-менее честный.


    Комплект из трех медных радиаторов в пакетике, для пассивного охлаждения.


    Все радиаторы имеют квадтарную форму, два радиатора с штырями и длиной стороны около 12 мм и один плоский со стороной около 15 мм.


    Корпус из темного пластика с выдавленным изображением ягоды малины на крышке


    Размеры корпуса - примерно 90 на 65 мм



    Корпус разбирается на 5 частей - держится все защелках, никаких винтов.


    С аксессуарами покончено - пора переходить к самому главному

    RASPBERRY PI 3 MODEL B

    Raspberry Pi 3 Model B является прямым наследником Raspberry Pi 2 Model B. Плата полностью совместима с предшественником, но наделена большей производительностью и новыми средствами коммуникации:
    64-х битным четырёхядерным процессором ARM Cortex-A53 с тактовой частотой 1,2 ГГц на однокристальном чипе Broadcom BCM2837; встроенными Wi-Fi 802.11n и Bluetooth 4.1.
    Кроме того, процессор имеет архитектуру ARMv53, а значит вы сможете использовать любимую операционную систему: Debian Wheezy, Ubuntu Mate, Fedora Remix и даже MS Windows 10.


    Технические характеристики подробнее

    CPU - Broadcom BCM2837, ARM Cortex-A53 Quad Core, 1.2 GHz
    Количество ядер процессора - 4
    GPU - VideoCore IV 3D
    RAM - 1 GB
    Хранилище - microSD
    Сетевые возможности
    Ethernet 10/100
    WiFi 2.4G 150 mb/s
    Видео вывод - HDMI
    USB порты - 4
    Беспроводные возможности - Bluetooth
    Аудио вывод - 3,5 Jack
    85,6 х 53,98 х 17мм, 45 грамм


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


    На одной из длинных сторон компьютера размещены порты micro USB для питания, полноразмерный порт HDMI, CSI-2 Camera port - для подключения камеры по интерфейсу MIPI, 3,5 мм аудиоразъем. Так же на верхней стороне находится модуль процессора и Ethernet/USB Hub lan9514-jzx


    На торцевой стороне скомпонованы 4 USB порта и порт Ethernet


    На другой стороне материнской платы находится 40 контактов ввода/вывода общего назначения (GPIO)


    На второй торцевой стороны - находится DSI Display Port для подключения штатного дисплея


    На нижней стороне платы находится модуль памяти LPDDR2 SDRAM - EDB8132B4PB-8D-F


    И micro-SD разъем для карты памяти


    Медные радиаторы ставятся на USB/Ethernet Hub и процессор с одной стороны


    И на чип памяти с другой. Этот радиатор плоский - не мешает установке платы компьютера в корпус


    В корпус все устанавливается отлично, винтовых соединений нет - садится на пластиковые выступы.


    Все вырезы на корпусе в точности совпадает с разъемами компьютера



    Для запуска нам потребуется внешний монитор (телевизор) с HDMI входом, USB клавиатура, будет удобнее если так же будет и мышка и питания. Монитор, клавиатура и мышка - понадобятся только на момент установки, дальше достаточно будет только блока питания.


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

    Для установки операционной системы, первым делом необходимо загрузить архив с дистрибутивами - отсюда . Пока скачивается почти полутора гигабайтный архив, загружаем утилиту для форматирования SD карты - SD Card Formatter - отсюда . Этот дистрибутив гораздо компактнее - всего 6 МБ, поэтому не теряя времени, устанвливаем программу


    и, после установки, вставляем карту памяти в картридер (у вас же есть картридер не правда ли) и запускаем SD Card Formatter. В меню Options необходимо установить “FORMAT SIZE ADJUSTMENT” в “ON”


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

    Следующий шаг - первый запуск Raspberry Pi (флешку с записанным дистрибутивом, конечно устанавливаем в него). Извините за качество нескольких следующих фото - с экрана телевизора:(

    При первом запуске стартует меню выбора операционной системы - что ставить, причем в списке имеется даже версия WIndows 10 для Raspberry Pi. На этом этапе можно выбрать язык (внизу экрана) - русский есть и подключится к Wi-Fi сети - кнопка Wi-Fi networks


    Нужная мне опарационка - Raspbian базирующаяся на Linux Debian - представлена в двух вариантах, lite И полном, с графическим интерфейсом. Я выбрал полную версию


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


    Периодически измеряя температуру во время установки, максимально что я видел - 38 градусов.

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


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


    Для управления Raspberry с настольного ПК, нам понадобится любая программа терминал, я использую старый добрый Putty


    Имя пользователя и пароль по умолчанию - pi и raspberry . Для смены пароля воспользуйтесь командой passwd .


    eth0 - это Ethernet

    lo - это локальный интерфейс 127.0.0.1

    wlan0 - это wi-fi интерфейс


    а для того что бы отредактировать файл с настройками - вводим команду

    sudo nano /etc/dhcpcd.conf

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

    Например мы хотим использовать адрес 192.168.0.222, маска 255.255.255.0, адрес шлюза и DNS - 192.168.0.1

    Для Ethernet вставляем

    static ip_address=192.168.0.222/24
    static routers=192.168.0.1

    interface wlan0
    static ip_address=192.168.0.222/24
    static routers=192.168.0.1
    static domain_name_servers=192.168.0.1


    Для выходя из редактора нажимаем ctrl+x
    Для сохранения изменений - нажимаем “Y” и затем enter

    Установка Domoticz

    Большая часть работы по настройке уже закончена, теперь нам нужно установить систему Domoticz. Делается это одной командой -

    sudo curl -L install.domoticz.com | sudo bash

    Которая инициализирует процесс загурзки и установки системы


    В процессе установки, инсталлятор задаст вопросы по поводу места установки и т.п. - все эти моменты я оставил по умолчанию.


    После успешной установки, инсталлятор напишет адреса и порты веб интерфейса системы Domoticz


    Но, для работы с шлюзом Xiaomi - нам нужна beta версия системы. Обновление до крайней версии беты производится командами

    cd ~/domoticz
    sudo ./updatebeta


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


    На данный момент я уже перенес все свои рабочие сценарии с Windows версии на Raspberry - кстати стоит добавить что обе системы мирно сосуществуют одновременно. Для обеспечения бесперебойного питания миникомпьютера достаточно использовать PowerBank, который позволяет одновременно питать устройство и получать питание от внешнего источника.

    Видеоверсия обзора:

    Все мои обзоры устройств Xiaomi в хронологическом порядке - Список

    Надеюсь обзор был полезен и интересен, спасибо за внимание.

    Моя Raspberry Pi на данный момент трудится в качестве домашнего сервера, держа на себе медиасервер, облако, принт-сервер, электронную библиотеку и торрент-клиент.

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

    И процесс создания такого интерфейса я и опишу в сегодняшней статье из цикла публикаций об использовании Raspberry Pi.

    Итак, мы будем создавать веб-интерфейс, доступный с любого подключенного к локальной сети устройства по ip-адресу нашей “малины”.

    Для осуществления описываемых в этой статье действий понадобится:

    • Локальная сеть

    Кроме того, нужно чтобы на Raspberry Pi был установлен веб-сервер и PHP-интерпретатор. Эти моменты были описаны в , поэтому сейчас я не буду останавливаться на них отдельно.

    А при создании веб-интерфейса будут использоваться следующие технологии:

    Язык разметки HTML, который некоторые ошибочно называют языком программирования – “скелет” любой веб-страницы. HTML-тегами задаются параграфы и вставляются картинки, в HTML-теги облачаются гиперссылки. И не только.

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

    И, наконец, PHP – веб-ориентированный язык программирования. Уже более серьезная вещь, чем HTML, позволяющая писать веб-приложения и выполнять команды на сервере. Если нужно удаленно выполнить на Raspberry Pi какую-то команду кликом по кнопке в веб-интерфейсе, то это осуществимо через PHP-интерпретатор.

    Не пугайтесь количеству того, что нужно знать и уметь. У нас есть Google, которому можно задавать конкретные вопросы и находить на них конкретные ответы, примеры и объяснения.

    Именно так я и поступил, в результате вся работа по созданию веб-интерфейса заняла у меня один полный вечер. Знаний CSS и PHP на тот момент у меня не было вообще, а HTML я знал на уровне новичка.

    Ну а повторить описываемые мною действия по этой статье можно в течение 10-15 минут.

    Требования к веб-интерфейсу

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

    Веб-интерфейс в моем понимании должен:

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

    Исходя из этого формулируем задачу.

    Нужно сделать 2 меню: одно вертикальное, для доступа к основным и часто используемым функциям, и одно горизонтальное, для доступа к вспомогательным функциям.

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

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

    Создание скелета веб-интерфейса на HTML

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

    Итак, содержимое любой веб-страницы лежит в контейнере, заключенном между тегами (открывающий тег) и (закрывающий тег).

    Внутри этого основного контейнера будут еще 2 контейнера – шапка страницы и тело страницы. В шапке страницы содержится служебная информация. А тело страницы – это то, что мы в конечном счете будем видеть у себя на экране в браузере.

    В папке /var/www/html/ на Raspberry Pi создадим (или откроем для редактирования) файл index.html:

    Sudo nano /var/www/html/index.html

    Поставим открывающий тег и запишем шапку сайта:

    Raspberry Pi

    Что находится в шапке? Информация для браузера о кодировке страницы и ее заголовок. Позднее шапка страницы у нас расширится, но не будем забегать наперед и для начала ограничимся этим.

    Теперь создадим тело страницы:

    Домашний сервер на Raspberry Pi 3 Медиасервер Plex Электронная библиотека RPi-Monitor Transmission Nextcloud

    Тело страницы заключено между открывающим и закрывающим тегами .

    Сверху находится заголовок – “Домашний сервер на Raspberry Pi 3”. Он заключен в теги заголовка первого уровня H1 и выровнен по центру страницы.

    Далее идут два меню. Первое из них по задумке будет располагаться вертикально, а второе горизонтально. Заметьте, что оба меню тоже заключены в своеобразные контейнеры из открывающего и закрывающего тегов. И в самом конце идет закрывающий тег общего контейнера , внутри которого находятся и шапка страницы (head) и тело страницы (body). В этом вся суть HTML-разметки.

    Скелет страницы создан. Я включил в него гиперссылки на основные выполняемые моей “малиной” как сервером функции – , и . Поскольку эти функции на сервере будут задействованы часто, то доступ к ним будет удобно организован с помощью вертикального меню.

    За вертикальным меню идет меню горизонтальное, отображающееся одной строкой.

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

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

    Теперь настало время прописать в пунктах меню конкретные ссылки вместо заглушек “ССЫЛКА1”, “ССЫЛКА2” и т.п., которые я написал в примере кода выше.

    И тут появляется небольшая проблема.

    Дело в том, что веб-доступ к некоторым запущенным на Raspberry Pi процессам осуществляется через обращение к портам, которые они прослушивают. , например, доступен по адресу http://ip-адрес-raspberry-pi:8888 , на 9091 порту подвешен веб-интерфейс , а по адресу http://ip-адрес-raspberry-pi/web/index.html:32400 находится интерфейс .

    Стандартными средствами HTML сделать обращение к порту невозможно. Поэтому придется задействовать яваскрипты, которые будут подставлять номер порта в ссылку непосредственно в момент клика по ней.

    В общем, вертикальное меню после прописывания ссылок в моем случае будет выглядеть так:

    Медиасервер Plex Электронная библиотека RPi-Monitor Transmission Nextcloud

  • Внесите эти поправки в тело страницы index.html, и на этом процесс создания скелета веб-интерфейса можно будет считать законченным.

    Добавление иконки (favicon) для веб-интерфейса

    Теперь добавим нашему интерфейсу иконку (favicon), которая будет отображаться в закладках и в заголовке вкладки в браузере.

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

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

    Слишком сложно? Просто скачайте готовые файлы

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

    Если описанные мною действия по-прежнему непонятны и вызывают вопросы – можете просто скачать готовые файлы с Яндекс.Диска. Архив нужно просто распаковать в папку /var/www/html на Raspberry Pi чтобы все заработало.

    Пользуйтесь моими наработками, адаптируйте их под себя и свои нужды. Мне не жалко.

    Добавляем иконку для доступа к веб-интерфейсу прямо на рабочий стол смартфона

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

    На примере iOS и браузера Safari это выглядит так:

    Аналогичным способом ярлык помещается на рабочий стол в случае использования Android и Google Chrome.

    Заключение

    Вот таким образом можно создать одну страницу, с которой можно легко получать доступ ко всем функциям нашей Raspberry Pi как с компьютера, так и со смартфонов/планшетов.

    Посредством PHP-команд можно удаленно управлять и подключенными к GPIO “малины” устройствами. Но об использовании GPIO я напишу подробнее в следующих статьях цикла.



    Загрузка...