вторник, 6 ноября 2012 г.

Web-управление Raspberry Pi GPIO

В данной статье мы рассмотрим управление входами/выходами (GPIO) микрокомпьютера Raspberry Pi через Web-интерфейс. Это дает возможность управлять различными устройствами через интернет.
Особенности данного проекта:
- серверная программа, запущенная на Raspberry Pi для чтения значений GPIO
- использование MySQL базы данных для хранения состояния GPIO
- использование веб-сервера Apache2 для контроля GPIO через веб-браузер
Итак, первое, что вам необходимо установить на Raspberry Pi, это:
- Apache веб-сервер
- PHP5
- MySQL сервер
- phpMyAdmin (есть русская версия)
Т.к. микрокомпьютер Raspberry Pi работает на Linux-системах, то в интернете полно описаний на русском языке как устанавливать все эти пакеты. Поэтому зацикливаться на этом мы не будем. Есть неплохая инструкция применительно к Raspberry Pi, но на английском языке: почитать.
Полноценный root-доступ
Для получения полного root доступа необходимо в терминале набрать команду sudo -i, которая переводит пользователя в сессию под root-ом.


Если вы уже включили root эккаунт, то дальше можете пропустить, если нет, то после команды sudo -i необходимо задать пароль пользователю root, делается это командой passwd root. После чего введите 2 раза пароль. Теперь можно закрыть SSH-сессию и войти заново уже под root'ом.

Настройка базы данных

Для упрощения работы, все действия с MySQL будем делать из оболочки phpMyAdmin.
Для начала скачайте данный SQL файл. Он содержит команды для создания базы данных, таблиц и их содержимого. Затем, войдите в phpMyAdmin и в вкладках выберите Import (Импорт). Выберите файл gpio.sql на вашем диске и нажмите кнопку Go для импортирования. После этого, phpMyAdmin создаст БД, таблицы и данные в них.

Далее, необходимо создать и добавить пользователя к БД и установить права. Для этого переходим по вкладке Users (Пользователи) и нажимаем ссылку Add User (Добавить пользователя)

Вбиваем User name (Имя пользователя) gpio (желательно, чтобы оно совпадало с именем базы данных), Host - localhost, и 2 раза пароль.
Затем переходим к списку пользователей, находим нашего и нажимаем ссылку Edit Privileges (Редактировать права). В вкладке Database-specific privileges в выпадающем списке находим и выбираем нашу БД gpio. А затем нажимаем Go.

Нажимаем Check All (Выбрать все), чтобы назначить пользователю gpio все права на БД gpio.
На этом установка и настройка БД завершена.

Шелл скрипт

 качайте скрипт, введя следующие команды:
sudo -i
wget http://raspberrypi-gpio.googlecode.com/files/GPIOServer.sh

После того, как скрипт скачается, выполните команды установки прав на файл и редактирования скрипта в редакторе nano:
chmod +x GPIOServer.sh
nano GPIOServer.sh


В строки mysqlusername="USERNAME HERE" и mysqlpassword="PASSWORD HERE" вы должны вписать имя пользователя (gpio) и пароль к нему.
Затем сохраните изменения в файле нажав ctrl+x, а затем y и ввод.

Настройка Web-страницы

 

Теперь необходимо скачать файлы для работы веб-интерфейса. Войдите под root'ом и выполните следующие команды:
wget http://raspberrypi-gpio.googlecode.com/files/control.php
wget http://raspberrypi-gpio.googlecode.com/files/off.jpg
wget http://raspberrypi-gpio.googlecode.com/files/on.jpg

После того, как эти файлы скачаются, наберите:
mv control.php /var/www/control.php
chmod 755 /var/www/control.php
mv off.jpg /var/www/off.jpg
chmod 755 /var/www/off.jpg
mv on.jpg /var/www/on.jpg
chmod 755 /var/www/on.jpg

Этими командами мы переместим файлы в папку www и установим для них соответствующие права.
Далее, необходимо сделать правки в РНР-файле:
nano /var/www/control.php
Находим следующие строки:
$MySQLUsername = "USERNAME HERE";
$MySQLPassword = "PASSWORD HERE";

и вписываем имя пользователя и пароль.
Открываем в браузере файл control.php (у меня полный путь выглядит как http://raspberryPi/control.php)
Если спросит авторизацию, то:
Username: admin
Password: gpio
На этом установка и настройка закончены.

Использование

 

Для запуска ПО введите следующую команду:
./GPIOServer.sh
Теперь можно войти в веб-интерфейс http://HOSTNAME/control.php, авторизоваться и пользоваться.
Последнюю версию скриптов всегда можно найти на сайте Google.
Скачать файлы проекта
Оригинал статьи на английском языке (перевод Колтыков А.В. для сайта cxem.net)

Комментариев нет:

Отправить комментарий