美文网首页
Esp8266/Esp32+wifi无线联网、校时过程+micr

Esp8266/Esp32+wifi无线联网、校时过程+micr

作者: 我开心0536 | 来源:发表于2020-09-25 21:54 被阅读0次
    image.png

    方法一:简单的联网程序

    #如何使用Esp8266/ESP32上的MicroPython连接Wi-Fi网络
    #首先导入network模块,以获取建立Wi-Fi网络连接所需的所有功能
    import network
    
    #以工作站 (station) 模式运行,需要创建一个工作站Wi-Fi接口的实例
    #工作站模式(ESP32连接到路由器), AP模式提供接入服务(其他设备连接到ESP32)。
    station = network.WLAN(network.STA_IF)
    
    #在工作站对象上调用激活方法并以True作为输入值传递来激活网络接口
    station.active(True)
    
    #使用connect方法连接到Wi-Fi网络。该方法以SSID(网络名称)和密码作为输入值
    station.connect("此处改为你的无线网名称", "无线网密码")
    
    #调用isconnected方法确认连接,如果设备已连接Wi-Fi网络,则返回true
    station.isconnected()
    
    #调用ifconfig方法返回IP地址、子网掩码、网关和DNS作为输出参数
    IP_info=station.ifconfig()
    
    print("IP地址:"+IP_info[0])
    print("子网掩码:"+IP_info[1])
    print("网关:"+IP_info[2])
    print("DNS:"+IP_info[3])
    

    上面的代码结果如图:


    image.png

    方法二:带自动判断的联网程序,超过15秒连接不上即停止

    #使用ESP32上的MicroPython连接Wi-Fi网络
    #首先导入network模块,以获取建立Wi-Fi网络连接所需的所有功能
    from machine import Pin
    import network
    import time
    
    def wifi_connect():
      wifi_led=Pin(2,Pin.OUT)             # 板载指示灯初始化
      wlan = network.WLAN(network.STA_IF)  # 以工作站 (wlan) 模式运行,需要创建一个工作站Wi-Fi接口的实例
      wlan.active(True)                    # 在工作站对象上调用激活方法并以True作为输入值传递来激活网络接口
      start_time=time.time()               # 记录开始时间
      
      if not wlan.isconnected():              # 如果尚未联网成功
        print("当前无线未联网,正在连接中....")  
        wlan.connect("此处改为你的无线网名称", "无线网密码")   # 无线网SSID、密码,开始联网
        while not wlan.isconnected():         # 如果还未连接成功,则LED灯闪烁提示
          wifi_led.value(1)
          time.sleep_ms(1000)
          wifi_led.value(1)
          time.sleep_ms(1000) 
          print("正在尝试连接到wifi....")
          print(time.time())
          
          if time.time()-start_time>15:       # 如果超过15秒还不行,就退出
            print("连接失败!!!无线网连接超过15秒,请检查无线网名称和密码是否正确..")
            break
            
      if wlan.isconnected():                  # 如果联接成功
        wifi_led.value(1)                     # LED灯常亮
        IP_info=wlan.ifconfig()    
        print("无线网已经连接,信息如下:")
        print("IP地址:"+IP_info[0])
        print("子网掩码:"+IP_info[1])
        print("网关:"+IP_info[2])
        print("DNS:"+IP_info[3])
    
    #开始执行联网模块
    wifi_connect()
    

    上面的代码结果如图:


    image.png

    micropython 从NTP服务器获取时间,校时程序(东八区,中国时间)

    # micropython 校时程序  (注意,必须先联网成功后,才能校时成功!!!)
    import time
    import ntptime
    
    print("同步前本地时间:%s" %str(time.localtime()))
    
    ntptime.NTP_DELTA = 3155644800    # 设置  UTC+8偏移时间(秒),不设置就是UTC0
    ntptime.host = 'ntp1.aliyun.com'  # 可选ntp服务器为阿里云服务器,默认是"pool.ntp.org"
    ntptime.settime()                 # 修改设备时间,到这就已经设置好了
    
    print("同步后本地时间:%s" %str(time.localtime()))
    

    上面的代码结果如图:


    image.png

    相关文章

      网友评论

          本文标题:Esp8266/Esp32+wifi无线联网、校时过程+micr

          本文链接:https://www.haomeiwen.com/subject/qfrquktx.html