實現在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-心知天氣獲取
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章