admin管理员组文章数量:1569329
最近想用esp32给电脑临时搭个远程开机,esp32需要连接WIFI,肯定不能放个手机在那开热点,校园网遍布整个学校,为此去研究一下怎么连接校园网了。esp32连接WIFI教程很多,也很简单,就不记录了,主要记录一下怎么进行校园网的登录认证。
我们先连接校园网,然后不要登录,再登录界面按键盘上的F12,调出开发人员界面。
点网络,然后勾选保留日志,最后点登录。
登录完成后后记录下来很多信息,我们找到login?callback开头的,点开把URL复制下来,同时也可知身份认证是通过GET请求实现的。
随便搜索一个URL在线解析工具,我用的是这个在线URL解码编码工具_蛙蛙工具 (iamwawa)
user_account是我们的账号,由 ,0,+ 学号构成
user_passwrd是密码
wlan_user_ip是IP地址
部分代码如下:
user_account直接填账号即可 ,0,已经在字符串中补上了。
user_passwrd注意不要直接填密码,即使是对的,响应也会显示账号密码错误。正确做法是把上 面URL解析的红圈第4点的一串字母复制过来。
user_ip不用填,在程序中会自动获取IP地址
wlan_user_mac可以复制上面的,我是用000000000000代替
下面就简单了,先是正常连接WIFI,校园网没有密码可以不填。连接成功后获取IP地址,并转换成字符串,然后进行GET请求进行身份认证。
void WifiConnect() //WIFI连接
{
WiFi.mode(WIFI_STA); //设置STA模式
Serial.println(); //换行
Serial.printf("Mode=%d\r\n",WiFi.getMode());//读取本机模式
// WiFi.begin(wifi_name,wifi_password); //初始化WIFI。ssid:ID,password:密码
WiFi.begin(wifi_name); //初始化WIFI。ssid:ID,password:密码
Serial.println("WIFI Connecting.....");
while(WiFi.status()!= WL_CONNECTED) //等待连接完成
{
WiFi.begin(wifi_name); //重新连接
delay(2000);
}
Serial.println("WIFI Connected!"); //打印连接完成
Serial.print("IP Address:"); //获取IP地址
Serial.println(WiFi.localIP()); //打印IP地址
IPAddress localip = WiFi.localIP();
My_ip = String(localip[0])+"."+String(localip[1])+"."+String(localip[2])+"."+String(localip[3]);
HTTPClient http; //创建HTTPClient类
//发送GET请求
http.begin(URL+"&user_account=,0,"+My_account+"&user_password="+My_password+"&wlan_user_ip="+My_ip+address_last);
int httpCode = http.GET();
Serial.printf("HTTP状态码:%d\n",httpCode);//获取状态码
//获取响应正文
String response = http.getString();
Serial.println("响应数据:");
Serial.println(response);
http.end();
}
连接服务器以及其他的内容就不展示了。
把代码下载到板子上验证,看到串口返回这一串响应数据,就表示已经登陆认证成功啦。
配合舵机和自己写的手机APP,通过云端服务器,就可以随时随地给电脑开机了,用平板远程操控电脑真的很方便。
版权声明:本文标题:esp32连接桂林电子科技大学问的校园网,并进行出校认证(登录认证) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1727652118a1123550.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论