Веб-контроль Raspberry Pi GPIO

в 18:37, , рубрики: gpio, mysql, php, Raspberry Pi, веб-контроль

Доброго времени суток! В этом посте я хочу показать, как управлять электроникой через Интернет используя Raspberry Pi. Выглядеть это будет примерно вот так.

Веб контроль Raspberry Pi GPIO

Краткое описание:

  • Серверная программа, которая работает на Raspberry Pi, для того чтобы читать переменные
  • Базы данных MySQL для хранения переменных
  • Веб-страница Apache2, для того чтобы контролировать переменные

Шаг 1. База знаний

Это уже должно быть на вашем Raspberry Pi:

  • Веб-сервер Apache
  • PHP5
  • Сервер MySQL
  • phpMyAdmin

Если хотите узнать, как всё это настроить, вам сюда (инструкция на английском языке).

Шаг 2. Создание root аккаунта

Пропустите это, если у вас уже есть аккаунт, а если нет — продолжайте прочтение :)

Войдите в Raspberry Pi используя следующую команду:
sudo -i
passwd root

Теперь введите и подтвердите пароль для учётной записи.
Затем нужно закрыть SSH сессии и перезапустить его, войдя в систему как root.

Веб контроль Raspberry Pi GPIO

Шаг 3. Настройка баз данных и phpMyAdmin

Это решение основано на базах данных MySQL, сейчас мы их и настроем.

Итак, для начала скачайте этот файл.

Залогиньтесь в панели управления phpMyAdmin и нажмите кнопку "Import" в верхнем меню.
Теперь, в пункте "File to Import", нажмите кнопку "Choose File" и выберите файл, который скачали до этого (gpio.sql).
И в завершении нажмите кнопку "Go" внизу страницы.
Это позволит создать все необходимые таблицы.

Веб контроль Raspberry Pi GPIO
Веб контроль Raspberry Pi GPIO

Теперь вам нужно добавить нового пользователя в базы данных используя phpMyAdmin. Для того чтобы это сделать, вам следует:

  • Кликнуть на "Users" вверху страницы.
  • Теперь жмите на ссылку "Add User".
  • В поле "User name" введите нужное вам имя пользователя. У ввёл "gpio".
  • В поле "Host" введите "localhost".
  • Затем в двух полях введите подходящие пароли. (Без пробелов, переносов или специальных символов). Я ввёл "pr03ND2".
  • Все остальное остальное оставьте по умолчанию, а затем нажмите кнопку "Add User" кнопку в правом нижнем углу.

Веб контроль Raspberry Pi GPIO

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

  • Нажмите на кнопку "Users" в верхнем меню, затем пролистывайте вниз до тех пор, пока вы не увидете только что добавленного вами пользователя в таблице "Users Overview".
  • Напротив имени пользователя нажмите на ссылку "Edit Privileges".
  • Листайте внизу к пункту "Database-specific privileges" и выберите "gpio" из выпадающего списка, нажмите кнопку "Go".
  • Отметьте ВСЕ флажки и нажмите кнопку "Go" слева снизу.

Веб контроль Raspberry Pi GPIO
Веб контроль Raspberry Pi GPIO
Веб контроль Raspberry Pi GPIO

Шаг 4. Shell Script

Это та часть, которая запускает проверку значений в базе данных MySQL на Raspberry Pi.
Этот сценарий довольно прост, но требует настройки.

Сперва скачайте скрипт, введя следующие команды (на Raspberry Pi):

  • sudo -i и нажмите Return / Enter
  • wget http://raspberrypi-gpio.googlecode.com/files/GPIOServer.sh и нажмите Return / Enter

После того, как он это скачает, введите

  • chmod +x GPIOServer.sh и нажмите Return / Enter
  • nano GPIOServer.sh и нажмите Return / Enter

Это позволит вам изменить сценарий.

Веб контроль Raspberry Pi GPIO

Вы должны изменить следующие переменные в начале файла:

  • mysqlusername="ЗДЕСЬ ИМЯ ПОЛЬЗОВАТЕЛЯ"
  • mysqlpassword="ЗДЕСЬ ПАРОЛЬ"

Их нужно изменить на имя пользователя и пароль, которые вы создавали ранее в phpMyAdmin.

Веб контроль Raspberry Pi GPIO

После того как всё изменили, удерживайте клавишу Ctrl и нажмите X, затем отпустите Ctrl и нажмите Y. Нажмите Return / Enter.

Шаг 5. Настройка веб-страницы

Финальный шаг, перед тем как вы сможете использовать это, — настройка веб-страницы.

Для этого, напишите следующие команды, убедившись, что вы залогинены (если нет — напечатайте sudo -i).:

  • wget http://raspberrypi-gpio.googlecode.com/files/control.php и нажмите Return / Enter
  • wget http://raspberrypi-gpio.googlecode.com/files/off.jpg и нажмите Return / Enter
  • wget http://raspberrypi-gpio.googlecode.com/files/on.jpg и нажмите Return / Enter

Веб контроль Raspberry Pi GPIO

Когда они скачаются, напишите вот это:

  • mv control.php /var/www/control.php и нажмите Return / Enter.
  • chmod 755 /var/www/control.php и нажмите Return / Enter.
  • mv off.jpg /var/www/off.jpg и нажмитеReturn / Enter.
  • chmod 755 /var/www/off.jpg и нажмите Return / Enter.
  • mv on.jpg /var/www/on.jpg и нажмите Return / Enter.
  • chmod 755 /var/www/on.jpg и нажмите Return / Enter.

Веб контроль Raspberry Pi GPIO

Теперь вам нужно изменить пару переменных перед использованием файла, поэтому напишите nano /var/www/control.php и нажмите Return / Enter.

Измените следующие переменные:

  • $MySQLUsername = "ЗДЕСЬ ИМЯ ПОЛЬЗОВАТЕЛЯ";
  • $MySQLPassword = "ЗДЕСЬ ПАРОЛЬ";

Веб контроль Raspberry Pi GPIO

Сейчас через браузер зайдите на страницу control.php (у меня raspberryPi/control.php, где raspberryPi — имя хоста.)

Там потребуется ввести следующие данные:
Имя пользователя: admin
Пароль: gpio

Веб контроль Raspberry Pi GPIO

Я рекомендую нажать на ссылку «Change Password» сверху страницы и сменить пароль по очевидным причинам.

Веб контроль Raspberry Pi GPIO
Веб контроль Raspberry Pi GPIO

Шаг 6. Использование

Чтобы запустить программы GPIO, сделайте следующее:
Начните SSH сессию на Raspberry Pi и залогиньтесь как root, затем напечатайте ./GPIOServer.sh и нажмите Return / Enter.

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

Веб контроль Raspberry Pi GPIO

Готово! Теперь войдите в панель управления (http://ИМЯ ХОСТА/control.php) и наслаждайтесь!

Для безопасности следует удалить root аккаунт.

Автор: VladMax

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js