1

我正在尝试使用 WebIOPi,但在让它与我的项目一起工作时我很迷茫。

背景:我正在使用运行 Wheezy 的 Raspberry Pi B+。我正在开发一个只能在本地访问的基于 Web 的应用程序。我在 /var/www 中有一堆在 Apache 上运行的 php 文件。现在我需要让我的硬币接受器参与这个项目。硬币接收器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 状态的信息,而不是监听中断。谁能指出我正确的方向?

任何帮助将不胜感激。谢谢!

4

1 回答 1

0

所以,你似乎有两个问题:1.我如何在服务器上检测到一个新的硬币事件 2.然后我如何将它推送到客户端浏览器。

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

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

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)从您的客户端页面轮询该值。

于 2015-03-01T13:25:30.723 回答