如何在现有网站中使用WebIOPi

时间:2015-03-01 12:27:43

标签: php python raspberry-pi gpio webiopi

我正在尝试使用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,但我只能找到有关读取引脚状态的信息,而不是在听中断。有人能指出我正确的方向吗?

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

所以,你似乎有两个问题:  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)从客户端页面轮询此值。