如何在现有网站中使用 WebIOPi

How to use WebIOPi in existing website

我正在尝试使用 WebIOPi,但我完全无法将其用于我的项目。

背景: 我正在使用 Raspberry Pi B+ 运行ning 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. 创建一个页面,其中 returns 的值为 "coin.txt" 2. 使用 Ajax(例如 jquery)从您的客户端页面轮询此值。