Моя плата Raspberry Pi 3 Model B и сейчас на установленную операционную систему я разберу, как установить Web–интерфейс, точнее фреймворк WebIOPi,
pi@raspberrypi:~ $ uname -a && lsb_release -a
Linux raspberrypi 4.4.48-v7+ #964 SMP Mon Feb 13 16:57:51 GMT 2017 armv7l GNU/Linux
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
Release: 8.0
Codename: jessie
для доступа к портам GPIO посредством которого можно будет контролировать состояние и управление всеми портами GPIO как локально так и удаленно.
А что же умеет данный фреймворк WebIOPi:
- REST API через HTTP и CoAP с поддержкой мультикаста;
- работа с GPIO, Serial, I 2 C, SPI, 1-Wire;
- встроенная поддержка более чем 30 устройств, включая ЦАП, АЦП, датчики;
- совместимость с Python 2 и 3;
- защита логином/паролем;
- множество примеров.
Проект имеет свой сайт: http://webiopi.trouch.com/
Скачиваю и устанавливаю на систему Raspbian:
pi@raspberrypi:~ $ wget http://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz
pi@raspberrypi:~ $ tar xzf WebIOPi-0.7.1.tar.gz
pi@raspberrypi:~ $ cd WebIOPi-0.7.1/
pi@raspberrypi:~/WebIOPi-0.7.1 $ sudo ./setup.sh
Do you want to access WebIOPi over Internet ? [y/n] y
WebIOPi successfully installed
pi@raspberrypi:~/WebIOPi-0.7.1 $ cd ~
Файлы с примерами можно найти здесь:
/home/pi/WebIOPi-0.7.1/examples
Запускаю WebIOPi вместе с загрузкой системы:
pi@raspberrypi:~ $ sudo update-rc.d webiopi defaults
Запускаю установленный фреймворк как сервис:
pi@raspberrypi:~ $ sudo /etc/init.d/webiopi start
[….] Starting webiopi (via systemctl): webiopi.serviceFailed to start webiopi.service: Unit webiopi.service failed to load: No such file or directory.
Failed!
pi@raspberrypi:~ $ cd WebIOPi-0.7.1/
pi@raspberrypi:~/WebIOPi-0.7.1 $ sudo /etc/init.d/webiopi start
[ ok ] Starting webiopi (via systemctl): webiopi.service.
pi@raspberrypi:~/WebIOPi-0.7.1 $ sudo /etc/init.d/webiopi status
webiopi.service – LSB: WebIOPi initscript
Loaded: loaded (/etc/init.d/webiopi)
Active: active (running) since Sat 2017-02-18 17:44:46 MSK; 5s ago
Process: 2337 ExecStart=/etc/init.d/webiopi start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/webiopi.service
└─2345 /usr/bin/python3 -m webiopi -l /var/log/webiopi -c /etc/web…
Feb 18 17:44:46 raspberrypi systemd[1]: Started LSB: WebIOPi initscript.
Затем открываю в браузере (со своей рабочей станции под управлением Ubuntu Trusty Gnome Classic) Raspberry Pi 3 Model B URL ссылку на доступ к Web-оснастке взаимодействия с GPIO: http://IP&DNS:8000/webiopi/
и вижу, что для доступа нужно авторизоваться введя логин и пароль, где дефолтные:
- Login: webiopi
- Password: raspberry
И вот Web-панель по управлению:
Походя по различным меню наблюдаю, что да, это будет полезно мне в дальнейшем и хорошо что такой инструмент придумали.
Чтобы в панель управления WebIOPi не мог зайти ни кто из не идентифицированных в локальной сети, доступ следует обезопасить заменой дефолтных логина и пароля на свои:
pi@raspberrypi:~ $ sudo webiopi-passwd
WebIOPi passwd file generator
Enter Login:
ekzorchik
Enter Password:
712mbddr@
Confirm password:
712mbddr@
Hash: dbd0084d653fee62f1c15a8ae00480c850cdc131e98191fb32e9783ec3360efa
Saved to /etc/webiopi/passwd
Чтобы изменения вступили в силу прямо сейчас, перезапускаю сервис webiopi:
pi@raspberrypi:~ $ sudo /etc/init.d/webiopi restart
[....] Restarting webiopi (via systemctl): webiopi.serviceWarning: Unit file of webiopi.service changed on disk, 'systemctl daemon-reload' recommended.
. ok
Если же при вводе своей пары логина и пароля Вы что-то напортачили, то сбрасываем все путем когда еще раз ставим логин и пароль на запрос просто ничего не вводим, а нажимаем клавишу Enter, хотя проще удалить файл /etc/webiopi/passwd:
pi@raspberrypi:~ $ sudo rm /etc/webiopi/passwd
pi@raspberrypi:~ $ sudo /etc/init.d/webiopi restart
Дабы не загромождать заметку я завершу свое повествование, путь намечен. В следующих заметках я покажу что-нибудь еще по работе с интерфейсом GPIO, а пока прощаюсь, с уважением Олло Александр aka ekzorchik.