RE:如何让Flask使用GPIO引脚通过BeagleBone Black在Linux上更改LED亮度?
我正在使用Python,Adafruit_BBIO用于GPIO和PWM,Flask和BeagleBone Black。借助所有这些工具和信息,我一直在关注“BeagleBone入门”一书(Richardson,2014)。RE:如何让Flask使用GPIO引脚通过BeagleBone Black在Linux上更改LED亮度?
考虑到这一点,这里是从文本我的软件:
from flask import Flask, render_template
app = Flask(__name__)
import Adafruit_BBIO.GPIO as GPIO
import Adafruit_BBIO.PWM as PWM
PWM.start("P8_13", 0.0)
@app.route("/")
def hello():
if GPIO.input("P8_11"):
doorStatus = "open"
else:
doorStatus = "closed"
templateData = {
'doorStatus': doorStatus,
}
return render_template('main-door.html', **templateData)
@app.route('/ledLevel/<level>')
def pin_state(level):
PWM.set_duty_cycle("P8_13", float(level))
return "LED level set to " + "."
if __name__ == "__main__":
app.run(host='192.168.7.2', port=5000, debug=True)
所以...我有:
瓶:v0.12.2 的Python:v2.7.13
我正在使用Debian Distro,Stretch中的4.9.x内核。
这是我打印出来的信息。运行软件时出现错误:
终端进入调试器在线。我检查在线调试器,上面的链接是生成的。
Seth
P.S. NameError:未定义全局名称P8_11。
from flask import Flask, render_template
app = Flask(__name__)
import Adafruit_BBIO.GPIO as GPIO
import Adafruit_BBIO.PWM as PWM
GPIO.setup("P8_19", GPIO.OUT)
PWM.start("P8_11", 0.0)
@app.route("/")
def hello():
if GPIO.input("P8_19"):
doorStatus = "open"
else:
doorStatus = "closed"
templateData = {
'doorStatus': doorStatus,
}
return render_template('main-door.html', **templateData)
@app.route('/ledLevel/<level>')
def pin_state(level):
PWM.set_duty_cycle("P8_11", float(level))
return "LED level set to " + "."
if __name__ == "__main__":
app.run(host='192.168.7.2', port=5000, debug=True)
这个更新的软件应该工作。我没有听到足够的在线调试器。
Seth
P.S.如果您需要额外支持Adafruit_BBIO,请查询https://github.com/adafruit/adafruit-beaglebone-io-python。
我将软件上的P8_针脚编号顶起来。它实际上是倒退的。 GPIO.setup是GPIO.setup(“P8_11”,GPIO.OUT),PWM.start是PWM.start(“P8_19,0.0)。对不起。 –
Debad Stretch上的PWM引脚对Adafruit_BBIO有一个错误。
Seth
P.S.备份到内核4.4.x而不是使用内核4.9.x.
有什么不清楚这个错误?你已经写了一个你没有在任何地方定义过的变量'P8_11'的名字。你是否想要传递字符串“P8_11”? – davidism
你好...对不起。是的,这是我的特定电路板的一串“P8_11”。 –
您在问题中提供的源代码与回溯中显示的摘录不匹配。 – duskwuff