LINUX.ORG.RU

Доступ к GPIO с веба (nginx+php-fpm)

 ,


0

1

Приветствую.

Есть скрипт, включающий свет в комнате. Только не ржите.

#!/usr/bin/python  
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.OUT)
GPIO.output(23, GPIO.LOW)

Все работает норм. Как под рутом, так и в консоли под другим юзером (pi на Raspbian, если точнее).

Теперь он должен выполняться с ПоХаПе через функцию system или exec или чо-то там pass - не суть важно.

<?php
system("python /home/pi/wattmeter/room_on.py");
?>

с консоли работает. С веба нет. Подозреваю потому что php-fpm работает под юзером www-data, а этот юзер не имеет права в GPIO.

Чем это можно пофиксить?

Заранее спасибо!

не имеет права в GPIO.

Чем это можно пофиксить?

Дать права на GPIO, добавьте пользователя в группу что имеет доступ к GPIO или поставьте права 777.

anonymous ()
pi@retropie:~ $ groups
pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi transmission

Интересует gpio, для камеры/экрана spi. На адруине дешевле в несколько раз, я малину на такое не рассматривал даже. Счас тоже в раздумиях. ESP8266 для нескольких помещений накрути (есть варианты со встроенным реле), а сервак повесить на малину мб для них общий (они могут быть как клиентом так и сервером и решения готовы).

fehhner ★★★★ ()
Ответ на: комментарий от fehhner

Дело же не только в gpio для spi, а в обработке того, что ты будешь выводить на этот экран. В общем лучше взять HDMI-экран.

Нет. Готовые решения не позволяют гибко делать то, что я хочу.

ESP8266 у меня уже есть. Там свои косяки, и их очень много (начиная от дерьмового качества пайки которая начинает окисляться в помещениях типа кухни или туалета, продолжая не очень стандартным питанием и заканчивая периодически отваливающимся или не подключающимся вай-фаем).

У меня самодельная платка с несколькими релюшками, и оно все должно взаимодействовать с другими элементами дома (в том числе по WiFi). Включился электрочайник, RPI увидела превышение потребления мощности, щелкнула релюшкой, отключила бойлер. Не хватило мощности - послала через curl команду отключения на конвектор. Прошло пять минут, проверила потребление, упало - включила заново бойлер, посчитала температуру в каждой комнате, включила конвектор там где холоднее всего. Сработал датчик движения перед воротами - щелкнула релюхой освещения и сделала фотко с rtsp-камеры в файл. И все это время считывать потребляемую мощность и раскидывать в БД с целью последующей постройки графиков и оптимизаций потребления питания.

И это уже упрощенная версия. Раньше там был еще и MiniITX компьютер =)

windows10 ()