MicroPython从文件读取配置信息配置汉枫WIFI模块(AT指令)进入TCP透传

  • 文件保存的WIFI配置信息。

  • 从文件读取配置信息连接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参数)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章