Я использую DialogFlow для создания чат-бота, и я подключил его к Raspberry Pi 3 Model B Vi.2. DialogFlow отправляет действие, которое index.php на Pi использует инструкцию switch-case, чтобы решить, какое действие предпринять. Я хотел бы получить доступ к выводам GPIO в определенное время, хотя именно здесь у меня возникают трудности. Пример показан ниже:
switch ($action) {
case "kitchenOn":
echo shell_exec('sh script.sh');
sendMessage(array(
"source" => $update["result"]["source"],
"speech" => "Kitchen light: on",
"displayText" => "Hello from",
"contextOut" => array()
));
break;
}
Файл «script.sh» содержит следующее:
#!/bin/bash
echo "gpio -1 mode 7 out" | at 20:00
echo "gpio -1 write 7 1" | at 20:00
Скрипт работает, когда я запускаю его непосредственно из моего Pi, но не когда он выполняется из скрипта PHP. Кто-нибудь может сказать мне, почему это?
Спасибо заранее.
Обновить
Я использовал exec () и печатает код выхода:
sh:0: Can't open script2.sh
Файл сценария находится в домашнем каталоге, поэтому он должен указывать прямо на это, есть идеи?
Задача ещё не решена.
Других решений пока нет …