yywudao 发表于 2019-6-25 21:36:03

掌控板制作可访问网页

本帖最后由 yywudao 于 2019-6-25 21:41 编辑

掌控板主芯片ESP32自带WiFi功能,利用micropython的socket模块,可以进行TCP通讯。
掌控板连接已知的WiFi,分配到一个ip地址,用浏览器进入这个ip地址,可以打开一个预制在主程序里的网页。

import socket
import network, time
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>Hello World!</h1>
      </body>
</html>
"""

addr_info = socket.getaddrinfo(mywifi.sta.ifconfig(), 80)
print("Bind address info: ", addr_info)
addr = addr_info[-1]
# 上面的代码可组合为:
# addr = socket.getaddrinfo(mywifi.sta.ifconfig(), 80)[-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)
oled.fill(0)
oled.DispChar('Connect on', 0, 0)
oled.DispChar('http://%s'%addr, 0, 16)# 掌控板显示分配到的ip地址
oled.show()
while True:
    res = s.accept()
    client_s = res
    client_addr = res
    print("Client address: ", client_addr)
    print("Client socket: ", client_s)
    req = client_s.recv(4096)
    print("Request: ")
    print(req)
    client_s.send(CONTENT)   # 当访问掌控板分配到的ip地址时,显示预制作的网页
    client_s.close()

效果如下:


rzyzzxw 发表于 2019-6-26 10:39:11

哇哦,小豪老师很棒棒哦。

sunkf 发表于 2019-6-26 13:56:03

掌控新玩法

laai 发表于 2019-6-27 11:16:28

yywudao 发表于 2019-6-25 21:36
掌控板主芯片ESP32自带WiFi功能,利用micropython的socket模块,可以进行TCP通讯。
掌控板连接已知的WiFi, ...

很棒,希望指导下开关控制方法!

yywudao 发表于 2019-6-27 17:15:08

laai 发表于 2019-6-27 11:16
很棒,希望指导下开关控制方法!

你可以参考这个帖子。https://mc.dfrobot.com.cn/thread-289909-1-1.html

gada888 发表于 2019-7-13 14:46:30

新玩法哦

pedpan 发表于 2020-4-7 12:59:55

怎么用Mind+玩http

KkQ1VrB7W776 发表于 2022-1-24 13:25:19

哈啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

KkQ1VrB7W776 发表于 2022-1-24 13:25:52

我哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇

赤星三春牛! 发表于 2022-1-24 20:38:40

怎么用mind+做?

小企鹅 发表于 2022-3-15 20:19:27

厉害厉害
页: [1]
查看完整版本: 掌控板制作可访问网页