【Micropython 8266】AP模式下通过HTTP网页获取GPIO引脚状态

【Micropython 8266】AP模式下通过HTTP网页获取GPIO引脚状态


  • ✨本案例基于Thonny平台开发。✨
    -📌通过 访问页面获取ESP8266引脚状态信息
    在这里插入图片描述
  • 🌿横向排版显示
    在这里插入图片描述

⛳连接和访问

  • 📍程序运行后,通过电脑或手机连接micropython设备的WiFi。
    在这里插入图片描述
  • 📌Shell调试窗口将打印被连接上的设备IP地址.
    在这里插入图片描述

📝示例代码

from machine import Pin
import network
# 设置要读取的GPIO引脚,并设置为输入模式
pins = [Pin(i, Pin.IN) for i in (0, 2, 4, 5, 12, 13, 14, 15)]

# 访问端返回的信息
html = """<!DOCTYPE html>
<html>
    <head> <title>ESP8266 Pins</title> </head>
    <body> <h1>ESP8266 Pins</h1>
        <table border="1"> <tr><th>Pin</th><th>Value</th></tr> %s </table>
    </body>
</html>
"""
# 设置Ap模式下的WiFi信息
ap_ssid = "ESP8266AP"
ap_password = "12345678"
ap_authmode = 3  # 加密方式:WPA2
 
wlan_ap = network.WLAN(network.AP_IF)
wlan_ap.active(True)
wlan_ap.config(essid=ap_ssid, password=ap_password, authmode=ap_authmode)

import socket
addr = socket.getaddrinfo('192.168.4.1', 80)[0][-1]

s = socket.socket()
s.bind(addr)
s.listen(1)

print('listening on', addr)

while True:
    cl, addr = s.accept()
    print('client connected from', addr)
    cl_file = cl.makefile('rwb', 0)
    while True:
        line = cl_file.readline()
        if not line or line == b'\r\n':
            break
    rows = ['<tr><td>%s</td><td>%d</td></tr>' % (str(p), p.value()) for p in pins]
    response = html % '\n'.join(rows)
    cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
    cl.send(response)
    cl.close()

⛳横向排版显示代码

from machine import Pin
import network
# 设置要读取的GPIO引脚,并设置为输入模式
pins = [Pin(i, Pin.IN) for i in (0, 2, 4, 5, 12, 13, 14, 15)]

# 访问端返回的信息
html = """<!DOCTYPE html>
<html>
    <head> <title>ESP8266 Pins</title> </head>
    <style>
		body {text-align: center;} table {margin: auto;}
	</style>
    <body> <h1>ESP8266 Pins</h1>
        <table border="1" align="center"><tr> %s </table>
    </body>
</html>
"""
# 设置Ap模式下的WiFi信息
ap_ssid = "ESP8266AP"
ap_password = "12345678"
ap_authmode = 3  # 加密方式:WPA2
 
wlan_ap = network.WLAN(network.AP_IF)
wlan_ap.active(True)
wlan_ap.config(essid=ap_ssid, password=ap_password, authmode=ap_authmode)

import socket
addr = socket.getaddrinfo('192.168.4.1', 80)[0][-1]
#s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s = socket.socket()
s.bind(addr)

s.listen(1)

print('listening on', addr)

while True:
    cl, addr = s.accept()
    print('client connected from', addr)
    cl_file = cl.makefile('rwb', 0)
    while True:
        line = cl_file.readline()
        if not line or line == b'\r\n':
            break
    rows = ['<th>%s</th>' % str(p) for p in pins]
    str1 ="""</tr><tr>"""
    rows_Value = ['<td>%d</td>' %p.value() for p in pins]
#    rows=rows_Pin.extend(rows_Value)
    rows.append(str1)
    rows.extend(rows_Value)
    rows.append("""</tr>""")
    print(rows)
    response = html % '\n'.join(rows)
    cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
    cl.send(response)
    cl.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值