如何在现有网站中使用WebIOPi


How to use WebIOPi in existing website

我正在尝试使用WebIOPi,但我很难将其用于我的项目。

背景:我正在使用Raspberry Pi B+运行Wheezy。我正在开发一个只能在本地访问的基于web的应用程序。我在/var/www中有一堆php文件,它们在Apache上运行。现在我需要让我的硬币接收器与项目。硬币接收器http://www.adafruit.com/products/787发送单个脉冲(我只需要一个硬币)。我首先尝试了使用中断的python脚本的硬币接收器,它运行良好。

GPIO.setup(PIN_COIN_INTERRUPT,GPIO.IN)
GPIO.add_event_detect(PIN_COIN_INTERRUPT,GPIO.FALLING,callback=coinEventHandler)

但现在我需要能够捕捉这些脉冲并将其显示在php页面上,更新每个硬币插入的金额。我已经研究WebIOPi好几个小时了,但我只能找到关于读取pin状态的信息,而不能监听中断。有人能给我指正确的方向吗?

如有任何帮助,我们将不胜感激。非常感谢。

因此,您似乎有两个问题:1.如何在服务器上检测新的硬币事件2.然后如何将其推送到客户端浏览器。

我根本不了解webiopi,所以我不能说没有办法同时使用它来解决这两个问题,但作为一种替代方案:

对于第1部分:您有一个python程序,您说它有效;我建议作为后台服务运行,让它做一些简单的事情,比如将铸币的最新价值写入文件:

GPIO.setup(PIN_COIN_INTERRUPT,GPIO.IN)
GPIO.add_event_detect(PIN_COIN_INTERRUPT,GPIO.FALLING,callback=coinEventHandler)
def coinEvenHandler(*arguments):
 try:
   f = open("coin.txt","rt")
   cnt = int(f.read())
   f.close()
 except: # handle file doesn't exist and file doesn't contain an int
   cnt = 0
 f = open("coin.txt","wt")
 f.write(str(cnt))
 f.close()

对于第2部分:1.创建一个返回"coin.txt"值的页面2.使用Ajax(例如jquery)从客户端页面轮询该值。