使用ESP8266连接中文wifi
2024-10-21 09:09:56
使用XCOM串口调试助手调试ESP8266时,想要连接学校的wifi,通过AT+CWLAP可以显示出附近所有wifi的列表,可是XCOM以ascii码格式显示文本,所以中文就乱码了.
一开始我不知道这是什么编码格式,所以我特意在Notepad++中以utf8编码格式输入中文wifi名,然后改变为ascii编码显示就是这个乱码了.我原本还打算看XCOM的源码,想看看能不能改改,让XCOM可以处理中文,毕竟ESP8266的固件可以识别到中文wifi,然后串口发送的也都是字节数据,所以只要有办法把中文转成ESP8266处理中文所用的编码格式就行.因为不会逆向,所以只好自己写个串口调试的Python脚本了.原本以为很简单的事,却有一个小坑,坑了我一天,就是所谓发送新行,即发送的内容后要加\r\n(回车换行)
import serial
import re
if __name__ == "__main__":
portx = "COM3"
bps = 115200
#esp_obj = Serial_Handler(portx, bps, timeout)
esp_obj=serial.Serial(portx,bps,timeout=0.5)
time.sleep(0.5)
print(esp_obj.name)
print(esp_obj.baudrate)
print(esp_obj.stopbits)
print(esp_obj.bytesize)
print(esp_obj.parity)
while(1):
command=input("send: ")
if(command=='exit'):
break esp_obj.write(command.encode('utf-8'))
esp_obj.write("\r\n".encode('utf-8'))
esp_obj.flush()
size=esp_obj.inWaiting()
recv_byte=esp_obj.read(size)
esp_obj.flushInput()
recv_str=recv_byte.decode('utf-8')
pattern=re.compile('(?<=\\r\\n)[^\\r\\n]+(?=\\r\\n)')#接收的数据都带有\r\n所以需要用正则获取回车换行之间的数据
recv=pattern.findall(recv_str)
for i in recv:
print(i)
esp_obj.close()
exit(0)
最后连接,效果图
最新文章
- @寒冬winter 大神的css作业问题
- Unity Aspect
- SPSS数据分析—基于最优尺度变换的典型相关分析
- 使用ADO.NET执行SQL脚本
- Android之ADB指令
- C语言--指针问题_1
- Be a person
- xml数据读 swift
- First 5 minutes of SQLite
- linux下C++开发工具
- jQuery_第四章_思维图
- 利用浏览器调试APP中的H5页面
- dubbo+zookeeper伪集群配置
- Python文件读写模式
- 【一天一道LeetCode】#15 3Sum
- 课程一(Neural Networks and Deep Learning),第三周(Shallow neural networks)—— 1、两层神经网络的单样本向量化表示与多样本向量化表示
- HTTP URL 字符转义 字符编码 、 RFC 3986编码规范
- 深度学习基础系列(九)| Dropout VS Batch Normalization? 是时候放弃Dropout了
- Android Studio 1.5 注解配置
- <;2014 05 09>; Lucida:我的算法学习之路