打印
[STM32C0]

【STM32C092RC 测评】STM32C092连接ESP8266获取天气预报

[复制链接]
2312|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 龙鳞铁碎牙 于 2025-5-22 18:52 编辑

#技术资源# #每日话题# #申请原创#
拿到[size=1em]STM32C092有一段时间了,一直想用它来做些高级的应用。手头上刚好有个ESP8266-01S模块,于是就拿来连接到,通过无线WIFI连接
[size=1em]后获取心知天气预报数据,然后通过串口助手打印输出来!!!!!!
整个模块架构如下所示:

对应板子上连接如下:

下面是原理图上的对应引脚,将USART1配置为中断,USART不配置中断


STM32C092和ESP8266-01S引脚连接图如下:

ESP8266连接流程如下:
[backcolor=rgba(255, 255, 255, 0.9)]依次利用串口向ESP8266输入以下命令。
  • AT\r\n
    检查ESP8266模块连接是否正常
  • AT+CWMODE=1\r\n
    配置模块为Sta模式
  • AT+CWJAP="WIFI名称","WIFI密码"\r\n
    连接指定WIFI,确保为自己的WIFI
  • AT+CIPMUX=0\r\n
    设置成单连接
  • AT+CIPSTART="TCP","api.seniverse.com",80\r\n
    创建TCP连接,IP地址为电脑的IP,串口为电脑监听的端口号
  • AT+CIPMODE=1\r\n
    进入透传模式,进入到透传模式后AT指令就会失效,需要退出后才能生效
  • AT+CIPSEND\r\n
    准备向服务器发送请求,前面都成功的前提下发送完这个指令后会出现一个>,此时输入发送信息即可
[backcolor=rgba(255, 255, 255, 0.9)]这里使用心知天气[backcolor=rgba(255, 255, 255, 0.9)]进行天气预报获取和测试!

[backcolor=rgba(255, 255, 255, 0.9)]核心代码如下:
[backcolor=rgba(255, 255, 255, 0.9)]        HAL_UART_Receive_IT(ESP8266_huart, (uint8_t*)&recvByte, (uint16_t)1);

        ESP8266_Clear();

        //while(ESP8266_SendCmd("AT+RST\r\n", "OK"))
        //HAL_Delay(500);

        
        while(ESP8266_SendCmd("AT\r\n", "OK"));
        //HAL_Delay(500);

        while(ESP8266_SendCmd("ATE1\r\n", "OK"));
        //HAL_Delay(500);

        while(ESP8266_SendCmd("AT+CWMODE=1\r\n", "OK"));
        //HAL_Delay(500);


        while(ESP8266_SendCmd(WIFI_Start, "OK"));
        //HAL_Delay(500);


        while(ESP8266_SendCmd("AT+CIPMUX=0\r\n", "OK"));

  printf("welcome \r\n");




  ESP8266_Init();


  while(ESP8266_SendCmd("AT+CIPSTART=\"TCP\",\"api.seniverse.com\",80\r\n", "OK"));
  
  //while(ESP8266_SendCmd("AT+CIPSTART=\"TCP\",\"api.openweathermap.org\",80\r\n", "OK"));
  
  while(ESP8266_SendCmd("AT+CIPMODE=1\r\n", "OK"));


  


  ESP8266_SendData(TX_Data,strlen(TX_Data));




  
  HAL_Delay(500);
  printf("%s\r\n",esp8266_buf);



  ESP8266_Send("+++");


ESP8266_Send("+++");这句必须要加上,不然获取天气信息后不退出,ESP8266会出问题!!


烧录大板子上进行测试,打开串口助手,查看打印信息!

可以看到成都天气预报和ESP8266上面的是一致的。

下面切换到深圳
"GET https://api.seniverse.com/v3/weather/now.json?key=SfobYEGioM5A6dRce&location=shenzhen&language=zh-Hans&unit=c\r\n";
改成上面语句

可以看到ESP8266获取的天气预报和深圳天气一致


加入cjson,解析天气信息

82277682ea445281c4.png (42.29 KB )

82277682ea445281c4.png

39655682ea69908468.png (107.11 KB )

39655682ea69908468.png

5829682ea6bc0db5e.png (92.15 KB )

5829682ea6bc0db5e.png

19495682ea6f9de83b.png (101.47 KB )

19495682ea6f9de83b.png

使用特权

评论回复
沙发
tpgf| | 2025-5-27 08:29 | 只看该作者
使用Arduino IDE或其他工具为ESP8266编写代码,使其连接到WiFi网络并从一个天气API

使用特权

评论回复
评论
龙鳞铁碎牙 2025-5-27 08:51 回复TA
这个也可以啊 
板凳
gejigeji521| | 2025-5-28 20:03 | 只看该作者
我觉得这就属于画蛇添足的应用。ESP本身可以直接就完成所有功能。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

13

帖子

0

粉丝