Forgotten 发表于 2023-1-9 17:11:56

如何通过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')




















云天 发表于 2023-1-9 17:44:01

好分享,收藏了

三春牛-创客 发表于 2023-1-10 12:42:35

厉害厉害

三春牛-创客 发表于 2023-1-10 12:43:38

不错,懂了。

rzegkly 发表于 2023-1-13 12:19:58

喜欢,收藏了

花生编程 发表于 2023-1-13 12:22:55

感谢分享

花生编程 发表于 2023-1-13 12:25:19

赞!!!

怀若谷 发表于 2023-2-2 22:16:04

干货,学习了
页: [1]
查看完整版本: 如何通过Python代码让行空板连接WiFi?