先看结果图,如图所示:
1、硬件准备:如图所示,一个STM32最小系统板,一个esp8266wifi模块,一个oled显示屏以及一个USB转TTL模块即可。
2.注册一个心知天气的账号,心知天气网址https://www.seniverse.com/
申请一个免费的版本以及保存好自己的私钥,如下:
然后点击产品→天气数据→查看API文档→天气实况→点击API接口文档的天气实况即可看到自己的接口地址,如下:
3. 下载一个XCOM调试助手,用USB转TTL与ESP8266连接到电脑上进行串口AT指令测试(只需要接RX、TX、GND、VCC即可),按照下图进行AT指令测试;
结果如图所示: 4.主循环代码:
while (1)
{
if(sec >= 60)
{
sec = 0;
min ++;
}
if(min >= 60)
{
min = 0;
hour ++;
}
if(hour >= 24)
{
hour = 0;
}
OLED_ShowNum(0,0,hour,2,16); //显示小时
OLED_ShowString(16, 0, ":", 16);
OLED_ShowNum(24,0,min,2,16); //显示分钟
OLED_ShowString(40, 0, ":", 16);
OLED_ShowNum(48,0,sec,2,16); //显示秒
OLED_ShowCHinese(0, 3, 5); //天
OLED_ShowCHinese(18, 3, 6); //气
OLED_ShowString(40, 3, ":", 16);
OLED_ShowString(60, 3, results[0].now.text, 16);
OLED_ShowCHinese(0, 6, 9); //温
OLED_ShowCHinese(18, 6, 10); //度
OLED_ShowString(40, 6, ":", 16);
OLED_ShowString(60, 6, results[0].now.temperature, 16);
OLED_ShowCHinese(80, 6, 11); //摄氏度
KeyNum = Key_GetNum();
if (KeyNum == 1)
{
get_beijing_time(); //获取时间
hour = nwt.hour;
min = nwt.min;
sec = nwt.sec;
}
else if (KeyNum == 2)
{
get_current_weather();//获取天气、温度
}
}
在此天气时钟的基础上可添加各种外设,让它变成一个完整的项目,例如智能窗户等智能家居的开发,如需完整源码,创作不易,如需完整源码可三连私聊。
调试助手下载链接:http://链接:https://pan.baidu.com/s/1Z13Uf3J-6OctuxALIF9bKA?pwd=y0ha 提取码:y0ha