Funpack3-5:用网页控制板载LED
该项目使用了BeagleBone® Black,实现了网页控制LED的设计,它的主要功能为:通过网页控制板载LED灯的开关及闪烁。。
标签
开发板
网页
点灯
Funpack
BBB板卡
ljz
更新2025-01-13
8

项目描述

这个项目使用BeagleBone® Black开发板,实现通过网线连接开发板,用电脑通过网页控制板载LED灯的开关及闪烁。

软件流程图及各功能对应的主要代码片段及说明

由于需要使用网线进行连接,因此需要将板子接入加入的路由器。

image.png

代码使用python编写,网页搭建我使用的是flask,控制LED使用的是Adafruit_BBIO.GPIO。代码很短,简单的html直接作为字符串写入到主程序中,按钮通过post方法来触发led控制。

# -*- coding: utf-8 -*-
import Adafruit_BBIO.GPIO as GPIO
from flask import Flask, redirect, url_for
import time

led = "USR0"
GPIO.setup(led, GPIO.OUT)

app = Flask(__name__)

@app.route("/")
def main_page():
return """
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="/on" method="post">
<button type="submit">开灯</button>
</form>

<form action="/off" method="post">
<button type="submit">关灯</button>
</form>

<form action="/blink" method="post">
<button type="submit">闪烁</button>
</form>
</body>
</html>
"""

@app.route('/on', methods=['POST'])
def on():
GPIO.output(led, GPIO.HIGH)
return redirect(url_for('main_page'))

@app.route('/off', methods=['POST'])
def off():
GPIO.output(led, GPIO.LOW)
return redirect("/")

@app.route('/blink', methods=['POST'])
def blink():
for i in range(10):
GPIO.output(led, GPIO.HIGH)
time.sleep(0.1)
GPIO.output(led, GPIO.LOW)
time.sleep(0.1)
return redirect("/")

if __name__ == "__main__":
app.run("0.0.0.0", 8089)

功能展示及说明

先使用ssh连接上板子,通过ifconfig指令来查看IP地址。

image.png

通过python3命令运行代码。

image.png

在电脑上使用刚才获取到的IP地址,以及代码中编写的端口号,这里是8089,就可以进入控制页面。

image.png

接着,就可以通过这些按钮来控制板上的LED灯了。

对本活动的心得体会

这次活动的开发板BeagleBone® Black藏平常的MCU升级到SBC水平,性能,可玩性都大大提高。希望以后的活动能多一些这样强大的开发板。

附件下载
web_led.py
团队介绍
个人
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号