ESP32 Micropython编程(Thonny)03---- 连接Wifi

前面介绍了esp32环境搭建,以及IO基本功能,从这篇文章开始将要介绍有关网络方面的知识

一、概述

WiFi是ESP32的核心功能之一,作为一款专为IOT设计的芯片,ESP32的WIFI功能是非常完善的,可以作AP,也可以做STA,还可以同时作为STA和AP。
Access Point(AP) 无线接入点:提供无线接入的设备,家里的光猫就是结合WiFi和internet路由功能的AP。AP和AP可以相互连接。
Station(STA) 无线终端:连接到AP的装置,手机,电脑等需要联网的设备都是出于STA模式,这个模式不允许其他设备接入
总结来说STA模式就是连接别人的wifi,AP就是自己发出一个wifi,AP+STA也就是两者的结合喽,既可以发送也能够连接。

二、ESP32连接wifi

这里我们可以参考官方文档所提供的接口函数,如下。
在这里插入图片描述
而对应我们常用的esp连接网络,我们只需要用好官方提供的下面这个函数就好了

`def do_connect():
    import network #引入所需要的模块
    wlan = network.WLAN(network.STA_IF)#设置模式为AP
    wlan.active(True)#开启
    if not wlan.isconnected(): #是否连接
        print('connecting to network...') #如果没有就开始连接
        wlan.connect('essid', 'password') #填入你的wifi名称何密码
        while not wlan.isconnected(): #等待连接    
            pass 
    print('network config:', wlan.ifconfig()) #输出连接的信息

自此我们就实现了连接wifi的功能。

巴法云是一个便捷的物联网平台,能够轻松实现设备的数据上传与远程控制等功能。下面介绍如何将 ESP32 连接到该平台上,并借助 Thonny 编程环境完成整个过程。 首先确保已准备好如下事项: 1. 硬件准备 - 包含一个工作正常的ESP32模块; 2. 软件方面 - 下载并安装好支持MicroPython固件烧录工具以及Thonny IDE; 3. 注册账号登录到[巴法云](https://www.bafayun.com/)获取属于自己的产品ID和密钥等必要信息字段; 接下来按照步骤操作: ### 第一步: 配置ESP32微控制器 1. 将ESP32通过USB线缆连接至电脑端口。 2. 利用 esptool.py 把 MicroPython 固件刷入目标板卡内。(详情参阅官方文档说明) ```bash python esptool.py --port COMx erase_flash python esptool.py --chip esp32 --port COMx write_flash -z 0x1000 firmware.bin ``` *注意替换实际串口号及下载路径* --- ### 第二步: 设置网络参数并通过Wi-Fi联网 在 Thonny 中新建 .py 文件添加以下代码片段初始化无线通信状态: ```python import network sta_if = network.WLAN(network.STA_IF) if not sta_if.isconnected(): print('Connecting to WiFi...') sta_if.active(True) # 启动站模式 sta_if.connect('<your_SSID>', '<WiFi_password>')# 替换真实SSID密码值 while not sta_if.isconnected(): pass print("Connected! Network config:", sta_if.ifconfig()) ``` 检查是否成功连上互联网返回IP地址列表即表明设置无误。 --- ### 第三步: 实现MQTT协议交互对接服务端 继续补充必要的库依赖项进而建立订阅发布话题链接: ```python from umqtt.simple import MQTTClient import time SERVER="mqtt.bafayun.com" # 指定服务器域名 PORT=6002 # 默认端口号 CLIENT_ID=b"<unique_device_id>" TOPIC_PUB=b"/<product_key>/data" USER="<username>" # 登陆用户名 PASSWORD="<password>" # 对应账户密码 def connect_mqtt(): client = MQTTClient(CLIENT_ID, SERVER, PORT, USER, PASSWORD) try: client.connect() return client except Exception as e: raise ValueError(f'MQTT connection failed:{e}') client = connect_mqtt() for i in range(5): payload='{"value": %d}'%(i+1) client.publish(TOPIC_PUB,payload) print(f'Sent {payload}') time.sleep_ms(1000) client.disconnect() ``` 上述示例演示了怎样周期性的推送传感器采集数值给云端存储起来供后续访问查看图表趋势曲线之类的功能应用场合参考案例之一而已哦~
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

おもいね

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值