我正在研究一个项目,它检查数据库中的LEDSTATUS是否值为“0”,然后led熄灭,如果值为“1”,led点亮。 我搜索并发现有一个叫做UDF的东西可以运行脚本,但不确定如果数据库不是本地的(在服务器上),是否有可能。 有可能吗?如果是,怎么做?你知道吗
我创建了两个python脚本,一个打开led,另一个关闭led。你知道吗
我将创建一个带有一个表LEDSTATUS的数据库,并将创建一个触发器,当LEDSTATUS的值发生更改时将运行该触发器,如果该值为0,则运行关闭led的python脚本,如果该值为1,则运行另一个脚本。你知道吗
数据库触发器用于DELETE、INSERT和updatesql查询。不能用它触发python脚本。你知道吗
在某个时候,可以使用updatesql查询将数据库字段设置为0或1。你知道吗
基于事件的方法是在执行sql update查询之前或之后运行相应的python脚本。Python可以在pi上作为web服务器运行,您可以通过GET或POST发送值。你知道吗
轮询方法是使用python脚本或类似脚本每隔x(mili)秒查询一次数据库,并相应地执行打开/关闭函数。你知道吗
如果您没有访问远程数据库服务器的权限,那么可能没有。你知道吗
您可以运行cronjob(或任何计划任务),定期检查数据库并运行相应的脚本,但数据库更改与脚本运行之间会有延迟,具体取决于它运行的频率。你知道吗
编辑(4/2/2019)
我认为trigger不是正确的解决方案。触发器用于在执行某些操作时在内部运行查询,而不是触发外部脚本。可能有办法做到这一点,但我不熟悉任何,所以我不能给任何建议。你知道吗
我推荐两种选择之一:
编写一个python脚本,定期检查数据库(称为polling)中的LED状态,并与raspberry pi交互以更新LED。
把你的数据库放在一个API后面,这个API可以同时更新数据库和LED,并且改变任何正在直接更新LED状态数据库的东西来代替与API交互。Flask是一个很好的pythonweb框架,可以使用requests包与之交互。
我建议选择1,但选择2更容易实施。两种解决方案都可以从你的树莓皮。你知道吗
相关问题 更多 >
编程相关推荐