资源简介
正点原子精英版,使用WIFI模块ESP8266获取网络天气,在此分享,共同学习
代码实现连接特定热点或者WIFI,通过天气接口API获取网络时间和天气并用图片显示(需要用到显示屏)
代码实现连接特定热点或者WIFI,通过天气接口API获取网络时间和天气并用图片显示(需要用到显示屏)
代码片段和文件信息
#include “weather.h“
#include “wifista.h“
#include “usart.h“
#include “malloc.h“
#include “usart3.h“
#include “delay.h“
#include “text.h“
#include “parsejson.h“
//天气连接端口号:80
#define WEATHER_PORTNUM “80“
//天气服务器IP
#define WEATHER_SERVERIP “api.seniverse.com“
//时间端口号
#define TIME_PORTNUM “80“
//时间服务器IP
#define TIME_SERVERIP “www.beijing-time.org“
typedef struct //结构体。
{
vu16 year;
vu8 month;
vu8 date;
vu8 hour;
vu8 min;
vu8 sec;
}nt_calendar_obj;
//定义结构体变量
nt_calendar_obj nwt; //定义结构体变量
//获取一次实时天气
//返回:0---获取成功,1---获取失败
u8 get_current_weather(void)
{
u8 *p;
u8 res;
// u8 ipbuf[16]; //IP缓存
p=mymalloc(SRAMIN40); //申请40字节内存
sprintf((char*)p“AT+CIPSTART=\“TCP\“\“%s\“%s“WEATHER_SERVERIPWEATHER_PORTNUM); //配置目标TCP服务器
res = atk_8266_send_cmd(p“OK“200);//连接到目标TCP服务器
if(res==1)
{
myfree(SRAMINp);
return 1;
}
delay_ms(300);
atk_8266_send_cmd(“AT+CIPMODE=1““OK“100); //传输模式为:透传
// atk_8266_get_wanip(ipbuf);//获取WAN IP
USART3_RX_STA=0;
atk_8266_send_cmd(“AT+CIPSEND““OK“100); //开始透传
printf(“start trans...\r\n“);
u3_printf(“GET https://api.seniverse.com/v3/weather/now.json?key=SchJgYiyf8da4yV7j&location=beijing&language=zh-Hans&unit=c\n\n“);
//u3_printf(“GET https://api.seniverse.com/v3/weather/now.json?key=x3owc7bndhbvi8oq&location=beijing&language=zh-Hans&unit=c\n\n“);
delay_ms(20);//延时20ms返回的是指令发送成功的状态
// atk_8266_at_response(1);
USART3_RX_STA=0; //清零串口3数据
delay_ms(1000);
// atk_8266_at_response(0);
if(USART3_RX_STA&0X8000) //此时再次接到一次数据,为天气的数据
{
USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//添加结束符
}
parse_now_weather();
atk_8266_quit_trans();//退出透传
atk_8266_send_cmd(“AT+CIPCLOSE““OK“50); //关闭连接
myfree(SRAMINp);
return 0;
}
//获取3天的天气
u8 get_3days_weather(void)
{
u8 *p;
u8 res;
u8 ipbuf[16]; //IP缓存
p=mymalloc(SRAMIN40); //申请40字节内存
sprintf((char*)p“AT+CIPSTART=\“TCP\“\“%s\“%s“WEATHER_SERVERIPWEATHER_PORTNUM); //配置目标TCP服务器
res = atk_8266_send_cmd(p“OK“200);//连接到目标TCP服务器
if(res==1)
{
myfree(SRAMINp);
return 1;
}
delay_ms(300);
atk_8266_send_cmd(“AT+CIPMODE=1““OK“100); //传输模式为:透传
atk_8266_get_wanip(ipbuf);//获取WAN IP
sprintf((char*)p“IP地址:%s 端口:%s“ipbuf(u8*)WEATHER_PORTNUM);
// Show_Str(306520012p120); //显示IP地址和端口
USART3_RX_STA=0;
atk_8266_send_cmd(“AT+CIPSEND““OK“100); //开始透传
printf(“start trans...\r\n“);
u3_printf(“GET https://api.seniverse.com/v3/weather/daily.json?key=SchJgYiyf8da4yV7j&location=beijing&language=zh-Hans&unit=c&start=0&days=5\n\n“);
// u3_printf(“GET https://api.seniverse.com/v3/weather/daily.json?key=x3owc7bndhbvi8oq&location=beijing&language=zh-Hans&unit=c&start=0&days=5\n\n“);
delay_ms(20);//延时20ms返回的是指令发送成功的状态
// atk_8266_at_response(1);
USART3_RX_STA=0; //清零串口3数据
delay_ms(1000);
// atk_8266_at_response(0);
if(USART3_RX_S
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-01-02 16:41 ESP8266获取网络天气\ATK-ESP8266\
文件 8226 2019-04-23 12:38 ESP8266获取网络天气\ATK-ESP8266\weather.c
文件 192 2017-09-19 17:11 ESP8266获取网络天气\ATK-ESP8266\weather.h
文件 5565 2019-04-11 13:15 ESP8266获取网络天气\ATK-ESP8266\wifista.c
文件 682 2017-09-18 17:32 ESP8266获取网络天气\ATK-ESP8266\wifista.h
目录 0 2020-01-02 16:41 ESP8266获取网络天气\cJSON\
文件 28578 2017-09-21 14:42 ESP8266获取网络天气\cJSON\cJSON.c
文件 7526 2015-02-13 18:53 ESP8266获取网络天气\cJSON\cJSON.h
文件 1091 2013-08-14 14:02 ESP8266获取网络天气\cJSON\LICENSE
文件 24451 2018-07-28 13:16 ESP8266获取网络天气\cJSON\parsejson.c
文件 142 2017-09-13 16:58 ESP8266获取网络天气\cJSON\parsejson.h
文件 8751 2009-10-28 23:48 ESP8266获取网络天气\cJSON\README
文件 6702 2015-02-13 19:06 ESP8266获取网络天气\cJSON\test.c
目录 0 2020-01-02 16:41 ESP8266获取网络天气\cJSON\tests\
文件 583 2009-08-23 23:46 ESP8266获取网络天气\cJSON\tests\test1
文件 242 2009-08-23 23:46 ESP8266获取网络天气\cJSON\tests\test2
文件 605 2009-08-23 23:46 ESP8266获取网络天气\cJSON\tests\test3
文件 3467 2009-08-23 23:47 ESP8266获取网络天气\cJSON\tests\test4
文件 873 2009-08-23 23:47 ESP8266获取网络天气\cJSON\tests\test5
文件 149970 2017-09-21 15:18 ESP8266获取网络天气\cJSON\utf8togbk.c
目录 0 2020-01-02 16:41 ESP8266获取网络天气\CORE\
文件 17273 2010-06-07 10:25 ESP8266获取网络天气\CORE\core_cm3.c
文件 85714 2011-02-09 14:59 ESP8266获取网络天气\CORE\core_cm3.h
文件 15514 2018-07-28 11:02 ESP8266获取网络天气\CORE\startup_stm32f10x_hd.s
文件 12765 2011-03-10 10:52 ESP8266获取网络天气\CORE\startup_stm32f10x_md.s
目录 0 2020-01-02 16:41 ESP8266获取网络天气\FATFS\
目录 0 2020-01-02 16:41 ESP8266获取网络天气\FATFS\doc\
文件 3425 2015-02-11 12:11 ESP8266获取网络天气\FATFS\doc\css_e.css
文件 3840 2015-02-12 20:17 ESP8266获取网络天气\FATFS\doc\css_j.css
文件 125 2015-02-11 12:11 ESP8266获取网络天气\FATFS\doc\css_p.css
目录 0 2019-10-19 13:20 ESP8266获取网络天气\FATFS\doc\en\
............此处省略373个文件信息
相关资源
- Examples.zip
- STM32读取VL53激光传感器
- 04 canOpen PDO非循环同步.zip
- 单片机STM32 MODBUS RTU通讯 功能码很全
- STM32 控制步进电机程序
- 基于STM32的智能小车研究 20181125
- STM32F1xx芯片型号选型驱动
- 无外部基准电压时STM32L151精确采集A
- 野火stm32-库开发高级篇-例程part1
- Keil.STM32F1xx_DFP.1.1.0.pack
- STM32读写MPU6050例程
- 超级牛的STM32 BLDC直流电机控制器设计
- STM32驱动OV2640
- 2017年电子设计竞赛板球系统源码
- 基于STM32音乐播放器设计 SD卡文件
- STM32L151-ADC例程
- VisualGDBSuitVS2017.rar
- FreeRTOS源码详解与应用开发 基于STM3
- STM32_Min.zip
- 零死角玩转STM32_PDF教程
- STM32_UCGUI
- 用s3c2440开发板和r301指纹模块做指纹识
- 基于STM32单片机与12864液晶的万年历时
- 基于stm32和TLC2543的数字电压表
- 正点原子stm32f429 cubemx sdram工程
- stm32f030 051青风全套教程和程序例程
- 基于STM32的车牌识别手持移动终端的设
- 基于STM32L151的物联网LORA程序
- STM32上实现12864液晶二维码的显示,
- stm32f0官方标准库
评论
共有 条评论