我在一个ESP32芯片上建立了一个网页,负责创建一个接入点,允许我的计算机连接以访问这个页面。
目前,我只能通过在浏览器中输入ESP的IP来访问它,但这可能非常麻烦。
我想知道是否可以用单词而不是ESP的IP来更改页面的url。
也许我错过了一些技术术语,但我没有在互联网上找到任何解决方案。
PS:我使用带套接字的微蟒从板上提供html文件:
def handleClient(client_socket):
headers, data = loadRequest(client_socket.recv(1024).decode('utf-8'))
# print('[*] Received:\n%s\n%s\n' % (headers, data))
if headers['method'] == 'GET' and '/connect' == headers['route']:#'/connect' in headers['route']:
ssid, password, status, code = connect(headers)
client_socket.sendall(RESPONSE_TEMPLATE % (code, status, {'ssid': ssid, 'password': password}, code))
return ssid, password
elif headers['method'] == 'GET' and headers['route'] == '/':
renderWebPage(client_socket)
client_socket.close()
return None, None发布于 2022-02-27 16:06:49
有两个部分需要解决你的问题:
MicroPython从1.12版本开始就内置了对mdns的支持。基本代码是使用以下代码分配主机名:
wlan.config(dhcp_hostname="prettyname")请注意,您的客户端还需要有mdns支持才能解析该地址。这可能/将取决于你的客户。
完整的样本如下:
import network
wlan = network.WLAN(network.STA_IF)
if not wlan.isconnected():
wlan.active(True)
mac = wlan.config('mac')
host = "prettyname"
wlan.config(dhcp_hostname = host)
wlan.connect('myssid', 'mypassword')
while not wlan.isconnected():
pass
host = wlan.config('dhcp_hostname')
print('Wifi connected as {}/{}, net={}, gw={}, dns={}'.format(
host, *wlan.ifconfig()))发布于 2022-02-26 19:31:46
当然。最简单的选择是启用mDNS。这允许同一本地网络中的主机将设备的名称(例如espressif.local)解析为其IP。只在本地网络中工作,并且需要计算机上的mDNS客户端(Mac、Linux和Windows都倾向于在最近构建它)。
不过,我不知道如何在Micropython中这样做。给谷歌一个尝试。
https://stackoverflow.com/questions/71276214
复制相似问题