使用ESP8266連接中文wifi


使用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)

最后連接,效果圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM