我使用HTML页面将pigpiod shell命令发送到我的Raspberry Pi 3,以使用pigpiod更改RGB条带的颜色,并且它可以正常工作。 现在我想使用相同的php / shell脚本实现文本到语音,但它不能作为pigpiod脚本。
我认为问题出现在变量中,但我不知道在哪里。
我设置变量并在index.php文件的最开头查找它们
<?php
$c=$_GET['c'];
$r=$_GET['r'];
$g=$_GET['g'];
$b=$_GET['b'];
$testo=$_GET['testo'];
if($c == 1)
{
$execute = shell_exec("pigpiod");
$execute = shell_exec("pigs w 12 0");
sleep(1);
$execute = shell_exec("pigs w 12 1");
header('Location: http://192.168.2.123/cancello/');
}
if($r != "" AND $g != "" AND $b != "")
{
$execute = shell_exec("pigpiod");
$execute = shell_exec("pigs p 22 $r");
$execute = shell_exec("pigs p 27 $g");
$execute = shell_exec("pigs p 17 $b");
header('Location: http://192.168.2.123/cancello/');
}
if($testo != "")
{
$execute = shell_exec("./speech.sh $testo");
header('Location: http://192.168.2.123/cancello/');
}
?>
然后在其他代码之后我得到RGB输入(有效)和文本到语音一(不是)
<a href="index.php?r=0&g=100&b=100" class="button0 buttonacqua"></a>
<a href="index.php?r=100&g=100&b=100" class="button0 buttonbianco"></a>
<form action="index.php" method ="get">
<br>
<input type="text" value="text" name="text">
<br>
<input type="submit" value="Submit">
</form>
我看到表单,我可以输入文字,但是当我确认它不起作用时。
这是当我通过控制台使用“./speech.sh和一些文字说话”来运行时运行的speech.sh代码
#!/bin/bash
INPUT=$*
STRINGNUM=0
ary=($INPUT)
for key in "${!ary[@]}"
do
SHORTTMP[$STRINGNUM]="${SHORTTMP[$STRINGNUM]} ${ary[$key]}"
LENGTH=$(echo ${#SHORTTMP[$STRINGNUM]})
#echo "word:$key, ${ary[$key]}"
#echo "adding to: $STRINGNUM"
if [[ "$LENGTH" -lt "100" ]]; then
#echo starting new line
SHORT[$STRINGNUM]=${SHORTTMP[$STRINGNUM]}
else
STRINGNUM=$(($STRINGNUM+1))
SHORTTMP[$STRINGNUM]="${ary[$key]}"
SHORT[$STRINGNUM]="${ary[$key]}"
fi
done
for key in "${!SHORT[@]}"
do
#echo "line: $key is: ${SHORT[$key]}"
NEXTURL=$(echo ${SHORT[$key]} | xxd -plain | tr -d '\n' | sed 's/\(..\)/%\1/g')
mpg123 -q "http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=$NEXTURL&tl=It-it"
done