【普中ESP32开发攻略--基于MicroPython】--第26章 WIFI实验-连接路由器

(1)实验平台:
普中ESP32开发板https://item.taobao.com/item.htm?id=693779703604(2)资料下载:普中科技-各型号产品资料下载链接


        如今物联网市场异常火爆,WIFI是物联网中非常重要的角色,现在基本上家家户户都有 WIFI 网络,通过 WIFI 接入到互联网,成了智能家居产品普遍的选择。ESP32内部已集成WIFI功能,可以说它就是为WIFI无线连接而生的。本章来学习ESP32的WIFI,使用MicroPython开发WIFI是非常简单而美妙的,让大家在学习物联网中变的简单有趣。本章分为如下几部分内容:

 

26.1 实验介绍

26.1.1 实验简介

26.1.2 实验目的

26.1.3 MicroPython函数使用

26.2 硬件设计

26.3 软件设计

26.4 实验现象


26.1 实验介绍

26.1.1 实验简介

        WIFI 是物联网中非常重要的角色,现在基本上家家户户都有 WIFI 网络,通过 WIFI 接入到互联网,成了智能家居产品普遍的选择。而要想上网,首先需要连接上无线路由器。本章我们就来学习如何通过 MicroPython 编程连上路由器。

        连接路由器上网是我们每天都做的事情,日常生活中我们只需要知道路由器的账号和密码,就能使用电脑或者手机连接到无线路由器,然后上网冲浪。

26.1.2 实验目的

        连接无线路由器,将ESP32的IP地址等相关信息通过软件Shell控制台输出显示。

26.1.3 MicroPython函数使用

        MicroPython 已经集成了 network 模块,开发者使用内置的 network 模块函数可以非常方便地连接上路由器。但往往也有各种连接失败的情况,如密码不正确等。这时我们只需再加上一些简单的判断机制,避免陷入连接失败的死循环即可我们先来看看 network 基于 WiFi(WLAN 模块)的构造函数和使用方法。

        模块包含热点 AP 模式和客户端 STA 模式,热点 AP 是指电脑或手机端直接连接 ESP32 发出的热点实现连接,如果电脑连接模块AP热点,这样电脑就不能上网,因此在使用电脑端和模块进行网络通信时,一般情况下都是使用 STA 模式。也就是电脑和设备同时连接到相同网段的路由器上。

        使用方法如下:

import network

wlan = network.WLAN(network.STA_IF) # 创建 station 接口
wlan.active(True)    # 激活接口
wlan.scan()          # 扫描允许访问的SSID
wlan.isconnected()   # 检查创建的station是否已经连接到AP
wlan.connect('essid', 'password') # 连接到指定ESSID网络
wlan.config('mac')   # 获取接口的MAC地址
wlan.ifconfig()      # 获取接口的 IP/network(子网掩码)/gw(网关)/DNS 地址

ap = network.WLAN(network.AP_IF) # 创建一个AP热点接口
ap.config(essid='ESP-AP') # 激活接口
ap.config(max_clients=10) # 设置热点允许连接数量
ap.active(True)      # 设置AP的ESSID名称
def do_connect():
    import network
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print('connecting to network...')
        wlan.connect('essid', 'password')
        while not wlan.isconnected():
            pass
    print('network config:', wlan.ifconfig())

26.2 硬件设计

        由于ESP32内置WIFI功能,所以直接在开发板上使用即可,无需额外连接。

26.3 软件设计

        下面我们打开“\4--实验程序\1--MicroPython实验\1--基础实验\25-WIFI实验-连接无线路由器”程序。控制代码全部都在main.py中,代码如下:

'''
深圳市普中科技有限公司(PRECHIN 普中)
技术支持:www.prechin.net
PRECHIN
 普中

实验名称:WIFI实验-连接无线路由器
接线说明:LED模块-->ESP32 IO
         (D1)-->(15)
         
实验现象:程序下载成功后,软件shell控制台输出当前IP、子网掩码、网关的地址信息
         
注意事项:ESP32 WIFI作为客户端连接路由器热点,然后电脑也连接路由器,此时可连接成功输出信息

'''

#导入Pin模块
from machine import Pin
import time
import network

#定义LED控制对象
led1=Pin(15,Pin.OUT)

#路由器WIFI账号和密码
ssid="puzhong88"
password="PUZHONG88"

#WIFI连接
def wifi_connect():
    wlan=network.WLAN(network.STA_IF)  #STA模式
    wlan.active(True)  #激活
    start_time=time.time()  #记录时间做超时判断
    
    if not wlan.isconnected():
        print("conneting to network...")
        wlan.connect(ssid,password)  #输入 WIFI 账号密码
        
        while not wlan.isconnected():
            led1.value(1)
            time.sleep_ms(300)
            led1.value(0)
            time.sleep_ms(300)
            
            #超时判断,15 秒没连接成功判定为超时
            if time.time()-start_time>15:
                print("WIFI Connect Timeout!")
                break
    else:
        led1.value(0)
        print("network information:", wlan.ifconfig())
            

#程序入口
if __name__=="__main__":
    wifi_connect()

        程序中ssid和password为所要连接路由器的WIFI账号和密码,按照自己路由器账号密码自行修改即可。

26.4 实验现象

        将程序下载到开发板内(可参考第2章节“2.2.5 程序下载运行”),实验现象:软件Shell控制台上输出当前模块的IP、子网掩码、网关和DNS域地址。如下:

        成功连接上无线路由器后,就可以做socket 等相关网络通信的应用了。

        注意:程序中ssid和password为所要连接路由器的WIFI账号和密码,按照自己路由器账号密码自行修改即可。如下所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值