如何在现有网站中使用 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)从您的客户端页面轮询此值。
我正在尝试使用 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)从您的客户端页面轮询此值。