实现在MSH命令行中,输入命令获取指定城市天气信息 ---- STM32&&RT-thread

  • Carrying my full memory, you’re far away.
    载着我满满的怀念,你渐行渐远。
一、需求

实现在RT-thread的MSH命令行中,输入命令获取指定城市天气信息。

二、实现

-1、利用《何志杰 – RT-thread入门课程–16.RT-Thread Nano-CJSON-心知天气获取》的例程修改,可以得到天气实况的数据包。

  • 2、然后使实现是使获取城市温度的MSH命令能够指定城市这个参数。
void weathercmd(int argc,char **argv)
{
	ESP8266_Link_Server(enumTCP, (char*)WEATHER_IP, (char*)WEATHER_PORT,Single_ID_0);//TCP
	ESP8266_UnvarnishSend ();//传输模式为:透传	

	macESP8266_Usart ( "GET https://api.seniverse.com/v3/weather/now.jsonkey=ragjskuzlv5jzerq&location=%s\r\n\r\n",argv[1]);//以福州天气为例子获取

	strEsp8266_Fram_Record .InfBit .FramLength = 0;  //重新开始接收新的数据包

	rt_thread_mdelay(1000);
	
	strEsp8266_Fram_Record .Data_RX_BUF [ strEsp8266_Fram_Record .InfBit .FramLength ]  = '\0';
	printf("Receive now data:%s\r\n",strEsp8266_Fram_Record .Data_RX_BUF);
	

	cJSON_NowWeatherParse((char*)strEsp8266_Fram_Record .Data_RX_BUF, &weather_data);	

	ESP8266_ExitUnvarnishSend ( );//退出透传HZJ
    ESP8266_Close_Link (  );//关闭TCP或UDP连接HZJ
	
}
MSH_CMD_EXPORT(weathercmd, Weather Data Get.);
  • 这里为了简要,输出到终端的数据只有name、timezone、temperature。结果如下。(不知道什么原因,putty的中文显示不出来,显示是乱码)
    在这里插入图片描述
三、参考资料
  • 《何志杰 – RT-thread入门课程》–16.RT-Thread Nano-CJSON-心知天气获取
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值