如何解决获取自己的Esp32设备的IP地址
我有一个Esp32函数作为TCP套接字接收器/服务器。
可能无法始终在设备上设置静态IP 所以我想找出答案:
-
如何使用micropython从Esp32获取本地IP地址。
-
Alternativeley我想应该从客户端扫描设备了吗? 客户端正在Python 2.7上运行...所以也许您可以给我一些技巧来解决这个问题。
解决方法
来自PybD V 1.13的Micropython文档,但对于大多数(如果不是全部)端口都是通用的。
WLAN.ifconfig([(ip,subnet,gateway,dns)])
Get/set IP-level network interface parameters: IP address,subnet mask,gateway and DNS server.
When called with no arguments,this method returns a 4-tuple with the above
information.
To set the above values,pass a 4-tuple with the required information,for example:
nic.ifconfig(('192.168.0.4','255.255.255.0','192.168.0.1','8.8.8.8'))
总是最好按照其他人的建议先检查文档。
,也许使用主机名也可以帮助您的客户端连接到设备。 因此,您可以从客户端连接到“ mydevice.local”,而不用硬编码“ 10.1.2.3”
类似下面的内容应该可以大大缓解这种情况。
import network
from config import homenet,CLIENT_ID
wlan = network.WLAN(network.STA_IF)
if not wlan.active():
wlan.active(True)
if not wlan.isconnected():
wlan.config(dhcp_hostname=CLIENT_ID)
log.info("Activating Wlan {0}".format(homenet['SSID']))
wlan.connect(homenet['SSID'],homenet['password'])
config.py
from ubinascii import hexlify
# Base SSID to connect to
homenet = {'SSID': 'ThisIsHome','password': 'MicroPython'}
CLIENT_ID = b'mydevice' # + hexlify(unique_id())[-6:]