我在 ESP32 芯片上構建了一個網頁,負責創建一個訪問點,允許我的計算機連接以訪問此頁面。
目前我只能通過在瀏覽器中輸入 ESP 的 IP 來訪問它,但這可能非常麻煩。
我想知道是否可以使用單詞而不是 ESP 的 IP 來更改頁面的 url。
也許我錯過了一些技術術語,但我在互聯網上沒有找到任何解決方案。
PS:我正在使用帶有套接字的micropython來提供板上的 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
uj5u.com熱心網友回復:
解決您的問題需要兩個部分:
- 發布名稱(使用 mdns)
- 從客戶端決議該名稱
MicroPython 自 v1.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()))
資料來源:MicroPython 論壇
uj5u.com熱心網友回復:
當然。最簡單的選擇是啟用mDNS。這允許同一本地網路中的主機將設備的名稱(例如espressif.local)決議為其 IP。僅適用于本地網路,并且需要在計算機上安裝 mDNS 客戶端(Mac、Linux 和 Windows 都傾向于在這些天內置它)。
不過,不知道如何在 Micropython 中做到這一點。試試谷歌吧。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/434926.html
