如何通过Python代码让行空板连接WiFi?
本帖最后由 Forgotten 于 2023-4-20 18:22 编辑问题来源
根据行空板的官方文档,行空板连接wifi是通过访问板载的网页来配置的:
如果不用浏览器,是否可以通过板子上运行的python程序来让行空板连接指定的wifi呢?
解决问题
根据这个页面在扫描、连接和查看ip的时候的信息,可以看到它提供了三个接口,分别是:
/wifi/scan 扫描周围的wifi,GET请求
/wifi/connect?ssid=xxx&password=xxx 连接对应wifi,传入wifi的名字和密码,GET请求
/wifi/status 查看wifi状态 ,GET请求
那么我们就可以通过网络通信中最常用的requests库进行请求即可,测试代码如下:
注:其中ssid和password改成需要连接的wifi名字和密码。import requests
print("扫描WIFI:")
my_variable = requests.get("http://10.1.2.3/wifi/scan")
print(my_variable.text)
print("连接WiFi:")
my_variable = requests.get("http://10.1.2.3/wifi/connect?ssid=yourSSID123&password=yourPASSWD") # ssid和password后面改为需要连接的wifi名字密码
print(my_variable.text)
print("查看WiFi连接情况:")
my_variable = requests.get("http://10.1.2.3/wifi/status")
print(my_variable.text)
查看结果:
可以看到ip就是连接成功了,如果一次运行不行就多运行几次,如果需要更稳定,可以根据返回的结果来判断多次运行。
图形化也可以加载request库实现:
完。
---------------------------------------------------------------
方法二:
以上方法使用的是行空板的web服务接口,比较麻烦,还可以直接使用其他wifi配置工具,例如nmcli进行配置,更加灵活,例如可以配置无密码的wifi。
终端指令:
扫描周围的wifi
nmcli dev wifi
连接WiFi热点,其中给你wifi_name和wifi_password改为需要连接的
nmcli dev wifi connect "wifi_name" password "wifi_password" ifname wlan0断开当前连接的WiFi热点
nmcli dev disconnect iface wlan0
Python代码:
在Python中可以使用os.system来运行终端命令
#-*- coding: UTF-8 -*-
import os
# 让行空板连接yourSSID123的热点,密码是yourPASSWD
os.system('nmcli dev wifi connect "yourSSID123" password "yourPASSWD" ifname wlan0')
好分享,收藏了 厉害厉害 不错,懂了。 喜欢,收藏了
感谢分享 赞!!! 干货,学习了
页:
[1]