开源项目:STM32+ESP8266水墨屏天气时钟-ESP8266连接心知天气获取数据

本文介绍了如何使用STM32F103C8T6微控制器配合ESP8266模块进行串口通信,实现WiFi连接,通过心知天气API获取实时天气数据的过程,包括设置WiFi模式、连接AP、发送API请求及数据解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目背景

利用STM32F103C8T6和ESP8266模块进行通信,获取心知天气的数据。
硬件设计为串口1(PA9和PA10)连接ESP8266.
串口2打印

一.ESP8266连接WIFI

ESP8266模块可以通过AT指令控制搭配使用源代码API函数开发,总体开发速度快,难度较低。
说明:下面仅列举一些最常用的AT指令及用法,指令的详细参数及使用说明请参考官方文档:ESP8266 AT指令集。
基础指令
AT 测试AT启动
AT+RST 重启模块
AT+GMR 查看版本信息
WiFi功能AT指令
AT+CWMODE 设置WiFi模式(sta/AP/sta+AP)
AT+CWLAP 扫描附近的AP信息
AT+CWJAP 连接AP
AT+CWQAP 与AP断开连接
AT+CWSAP 设置ESP8266 softAP配置
AT+CWLIF 获取连接到 ESP8266 softAP 的 station 的信息
关于WiFi模式这里要说明一下,sta模式下模块相当于客户端,像我们手机平板一样是要去连接路由器的,而AP模式下模块相当于路由器,是发射WiFi被别人连的。ESP8266支持两种模式并存(模块出厂默认的是AP模式) 。另外,扫描WiFi指令 AT+CWLAP 只能在sta模式下使用,否则会报ERRO错误, AT+CWJAP 和 AT+CWQAP 指令也同理。
ESP8266开启sta模式连接WiFi步骤

1.发送 AT+CWMODE=1 指令配置模块为sta模式(参数1,2,3分别对应模式sta,AP和sta/AP)。
2.发送 AT+CWLAP 指令扫描当前附近WiFi,模块会返回可用AP列表。
3.使用 AT+CWJAP=“WiFi名称”,“WiFi密码” 连接到指定的路由器,比如WiFi是 “ESP8266”,密码是“12345678”,实际连接WiFi发送的指令就是 AT+CWJAP=“ESP8266”,“12345678” 。
返回的“WIFI CONNECTED”说明连接成功,“WIFI GOT IP”代表模块分配到了IP。
4.最后可使用 AT+CWQAP 断开当前连接的WiFi。

//连接WIFI
//返回值:0,成功;1,失败
u8 esp8266_start_trans(void)
{
   
	u8 *p;
	u8 res=1; 
	int trans_time=0;
	p=mymalloc(SRAMIN,50);							//申请32字节内存,用于存wifista_ssid,wifista_password
	u2_printf("send:AT\r\n");	
	while(esp8266_send_cmd("AT","OK",20))//检查WIFI模块是否在线
	{
   
	} 
	//设置工作模式 1:station模式   2:AP模式  3:兼容 AP+station模式
	u2_printf("send:AT+CWMODE=1\r\n");	
	esp8266_s
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

点奶茶叫上我

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

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

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

打赏作者

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

抵扣说明:

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

余额充值