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參數)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章