从“亚马逊回声语音控制家庭自动化”Instructables,下载启动代码(包括fauxmo)并将它复制到PI的地方你会记得。例如,“/家/ PI /”是一个很好的地方。
我们将开始与“例如最小。py脚本和插入我们的代码。首先,复制脚本命名新的东西是有道理的,像“回声fauxmo卧室。py。其次,提出以下的新剧本的修改。
在顶部,添加rpi.gpio导入模块的列表。
进口rpi.gpio GPIO
在main方法中,将下面的代码添加到顶部。当脚本运行在启动,这将设置GPIO引脚作为输出放高,以用于NPN晶体管…是低销的例外。
#设置GPIO引脚GPIO高
。集合依模(GPIO。板)
GPIO设置(40,GPIO。,初始= 0)
GPIO设置(33,GPIO。,初始= 1)
GPIO设置(35,GPIO。,初始= 1)
设置(GPIO。36、GPIO,初始= 1)
GPIO设置(37,GPIO。,初始= 1)
GPIO设置(38,GPIO。
现在我们修改device_handler类。你想要的按钮名称更新触发器列表。你会在语音命令中使用这个名字。例如,如果您选择的名称“卧室灯”您的语音命令将“Alexa,打开/关闭卧室的灯。“每个名字也挑1024和49151之间的一个独特的端口号。
触发= {“卧室灯”:3360、
“卧室迷”:3361、
“卧室风扇低”:3362、
“卧室扇中”:3363、
“卧室扇高
下一步我们改写法。这就是每当收到语音命令。“名字”的说法将匹配的语音名称表彰收到,我们将使用哪个GPIO引脚设置。“国家”的说法是真的或假的取决于如果语音命令或关闭。使用这两个论点,我们将确定哪些按钮需要1秒的GPIO引脚设置为低压,然后把它回到高。但首先我们打开电源的遥控板通过设置GPIO引脚连接到晶体管高放低时,我们结束了。
def act(self, client_address, state, name):
print "State", state, "from client @", client_address, "name", name
# Turn RF remote on
GPIO.output(40,1)
# Loop through triggers
if name == "bedroom lights":
GPIO.output(33,0)
time.sleep(1)
GPIO.output(33,1)
elif name == "bedroom fan":
if state:
# using fan low as default for fan on
GPIO.output(35,0)
time.sleep(1)
GPIO.output(35,1)
else:
GPIO.output(38,0)
time.sleep(1)
GPIO.output(38,1)
elif name == "bedroom fan low":
GPIO.output(35,0)
time.sleep(1)
GPIO.output(35,1)
elif name == "bedroom fan medium":
GPIO.output(36,0)
time.sleep(1)
GPIO.output(36,1)
elif name == "bedroom fan high":
GPIO.output(37,0)
time.sleep(1)
GPIO.output(37,1)
GPIO.output(40,0)
return True
Python脚本完成,但我们需要在启动时运行的根。我们通过将其添加到“/etc/rc.本地文件。你只能编辑rc.local根所以不要忘记“sudo”时打开它。输入下面的线(S)到rc.local但改变路径和/或文件到您的Python脚本的位置和文件名匹配。
#开始我们的fauxmo Python脚本
Python /家/ PI /主/ echo-fauxmo-bedroom.py回声
重新启动和PI是准备去。