-
从文件读取配置信息连接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参数)。