-
從文件讀取配置信息連接WIFI,若連接成功打印成功提示並進入主程序,若連接失敗提示剩餘輸入次數和新的WIFI信息,不管輸入對錯打印連接提示並更新WIFI配置文件。連接成功或剩餘次數爲0進入主程序。
from machine import I2C, Pin, UART
import at24c256n
import ubinascii
import time
wifi_uart = UART(4, 115200)
wifi_k = Pin('PB8',Pin.OUT_PP)
#wifi_rst = Pin('PB3',Pin.OUT_PP)
wifi_sta = Pin('PD2',Pin.IN)
i2c = I2C(-1,scl=Pin('PB6'), sda=Pin('PB7'), freq=400000)
print(i2c.scan())
eeprom = at24c256n.AT24C256N(i2c)
#漢楓LPT130WIFI模塊連接網絡並進入TCP透傳
def connect_wifi(wifi_ssid, wifi_key):
wifi_k.value(1)#關閉WIFI電源
time.sleep(1)
wifi_k.value(0)#打開WIFI電源
time.sleep(3)
wifi_uart.write('+++')
time.sleep(0.5)
wifi_uart.write('a')
time.sleep(1)
wifi_uart.write('AT\n')
#time.sleep(3)
#wifi_uart.write('AT+UART=19200,8,1,None,NFC\n')
time.sleep(3)
wifi_uart.write('AT+WMODE=sta\n')
time.sleep(3)
wifi_uart.write('AT+WSSSID='+wifi_ssid+'\n')
time.sleep(3)
wifi_uart.write('AT+WSKEY=WPA2PSK,AES,'+wifi_key+'\n')
time.sleep(3)
wifi_uart.write('AT+NETP=TCP,CLIENT,****端口****,****ip****\n')
time.sleep(3)
wifi_uart.write('AT+ENTM\n')
wifi_k.value(1)#斷電重啓
time.sleep(1)
wifi_k.value(0)
time.sleep(5)#等待WIFI連網
def do_connect():
max_connect = 3
wifi_k.value(0)
f = open('wifi_config.txt', "rb")
wifi_config_bytes = f.read()
f.close()
wifi_config_str = (str(wifi_config_bytes)[2:-1]).split(',')
#print(wifi_config_str)
wifi_ssid = wifi_config_str[0]
wifi_key = wifi_config_str[1]
connect_wifi(wifi_ssid, wifi_key)
while(wifi_sta.value() == 1 & max_connect > 0):
print('WIFI未連接失敗!')
print('請輸入正確的WIFI信息:')
wifi_ssid = input('WIFI名:')
wifi_key = input('WIFI密碼:')
f = open('wifi_config.txt', "wb")
f.write(wifi_ssid+','+wifi_key)
f.close()
connect_wifi(wifi_ssid, wifi_key)
max_connect = max_connect - 1
if wifi_sta.value() == 0:
print('WIFI已連接!')
else:
print('WIFI連接失敗!')
do_connect()
- 若需要設置WIFI信息,可使用putty等串口調試軟件。
- 擴展下很容易應用到ESP8266和ESP32的MicroPython應用上(後期準備在ESP8266和ESP32上利用網頁設置WIFI參數)。