掌控板制作可访问网页控制板载RGB灯

2019-06-277127
AI 快速预览详细 收起
本文介绍了如何使用掌控板制作一个可通过网页按钮控制的板载RGB灯。首先,在网页内制作两个按钮,分别为“ON”和“OFF”,赋予特定属性。然后,在socket通讯程序内指定这些属性对应的点亮或关闭RGB灯的实际程序代码。最后,通过浏览器输入掌控板分配到的IP地址,点击网页内的按钮即可控制RGB灯的状态。这个项目适合STEM教育和少儿编程入门,能够激发孩子对编程的兴趣。


上篇文章有简单的介绍掌控板制作可访问网页,可以通过在网页内添加带超链接按钮的方式,来实现通过网页控制掌控的各引脚状态或者板载RGB灯。

总体思路为:
在网页内制作两个按钮,分别为“ON”和“OFF”,赋予"/?led=on"和“/?led=off”的属性。
在socket通讯程序内指定"/?led=on"和“/?led=off”对应的“点亮RGB灯”、“关闭RGB灯”的实际程序代码。
浏览器输入掌控板分配到的ip地址,在网页内点击“ON”、“OFF”按钮,控制板载RGB灯的状态。
代码示例如下:
[mw_shl_code=python,true]import socket
import network
from mpython import *

SSID = "输入WiFi名称"
PASSWORD = "输入密码"
mywifi = wifi()
mywifi.connectWiFi(SSID, PASSWORD)

CONTENT = """<!DOCTYPE HTML>
<html>
<head><meta charset = "utf-8">
<title>掌控Demo</title>
</head>
<body>
    <h1>掌控 Web Server</h1>
    <p><a href="/?led=on"><button class="button">ON</button></a></p>
    <p><a href="/?led=off"><button class="button button2">OFF</button></a></p>
</body>
</html>
"""

addr_info = socket.getaddrinfo(mywifi.sta.ifconfig()[0], 80)
print("Bind address info: ", addr_info)
addr = addr_info[0][-1]
# 上面的代码可组合为:
# addr = socket.getaddrinfo(mywifi.sta.ifconfig()[0], 80)[0][-1]
# 提取掌控版分配到的ip地址,端口号为80
s = socket.socket()
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(addr) # 绑定ip和端口号
s.listen(5)
print("Listening, connect to http://%s:80/" %addr[0])
oled.fill(0)
oled.DispChar('Connect on', 0, 0)
oled.DispChar('http://%s'%addr[0], 0, 16)
oled.show()
while True:
    conn, addr = s.accept()
    print('Got a connection from %s' % str(addr))
    request = conn.recv(1024)
    request = str(request)
    print('Content = %s' %request)
    led_on = request.find('/?led=on')
    led_off = request.find('/?led=off')
    if led_on == 6:
        print('LED ON')
        rgb[0] = (255, 0, 0)
        rgb.write()
    if led_off == 6:
        print('LED OFF')
        rgb[0] = (0, 0, 0)
        rgb.write()
    conn.send(CONTENT)
    conn.close()[/mw_shl_code]

效果如下:
掌控板制作可访问网页控制板载RGB灯图1

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(6)
gada888
gada888
不错的分享
rzegkly
rzegkly
我想到谢老师分享的视频,ppt点亮RGB灯
yywudao
yywudao
作者
回复rzegkly
跟谢老师那个应该是异曲同工
rzegkly
rzegkly
厉害了
gylgb
gylgb
实在太厉害了,我要做你坚定的粉丝。
rzyzzxw
rzyzzxw
大神无疑.鉴定完毕
laai
laai
大神,跟定你了!
yywudao
yywudao
作者
回复laai
萌新。我也是看国外教程改改在掌控板上验证验证
- 没有更多了 -