沒時間做獲取天氣的實驗 三分鍾! 給您看清如何通過HTTP GET請求 獲取天氣預報


 

 

1. 注冊心知天氣賬號,獲取私鑰

    下面這篇文章是圖示講解的,好東西,何不轉載為快?

    http://www.taichi-maker.com/homepage/iot-development/iot-platform/seniverse/preparation/

 

    "GET https://api.seniverse.com/v3/weather/now.json?key=這里加上你的私鑰&location=你要查詢的城市中文拼音&language=zh-Hans&unit=c\r\n\r\n"

    這串字符就是你的HTTP的GET請求。

   GET請求的詳細使用去新知天氣的官網,這里面可以玩的花樣也多的,支持最近幾天的天氣預報、濕度、風向風力等等,所以GET請求的復雜度也不一樣。

   但是如果只查詢一個城市的溫度值,那么上面這個GET請求一般就夠用了。這里為什么說一般夠用?因為也有特例,例如全國內肯定有兩個城市的名字的中文拼音是一樣的,那么前面還可以加上省份的拼音的,所以,具體詳情還是參考心知天氣的官網( https://www.seniverse.com )最權威了。

 

2.那么在不寫代碼的情況下,我們怎么來快速獲取天氣預報體驗一下呢?

 

方法1,笨方法 使用通信軟件發送GET請求

   打開通信貓軟件

   按圖示1處輸入和我一樣的IP地址和端口號,  2處勾選好,  3處填入上述GET請求,注意,最后要空兩行(敲兩個回車鍵)! 4處點擊發送, 然后就可以收到5處所示的信息了。

   我查詢了杭州溫度(location=hangzhou),可以看到返回的溫度(temperature)是8度。 GET請求內,unit=c表示返回的單位是攝氏度。

 

方法2,使用瀏覽器發送GET請求

    打開瀏覽器,以我當前實驗為例,輸入 https://api.seniverse.com/v3/weather/now.json?key=SwwwfskBjB6fHVRon&location=hangzhou&language=zh-Hans&unit=c

    就可以收到返回的天氣數據了。注意,這里就不需要前綴GET 和 后綴倆空行了, 就是普通的訪問網站而已,相比使用通信貓軟件就方便多了。

    PS:或者,你只要鼠標左鍵點擊上述網址就可以實時查看到杭州現在的溫度了。

 

3.寫代碼來獲取天氣預報

  我當前的實驗基於ESP32,只需要簡單修改ESP32的IDF內的一個Http的Demo就可以了。

  為什么只需要簡單修改就可以了?因為這個功能本來就很簡陋,我們剛才用瀏覽器獲取天氣預報的實驗,其實就是輸入了一個網址而已,然后就成事了,核心步驟就這么一步。

  所以說,基本上只要調通網絡,不管是什么平台,實現這個功能都是不復雜的。

  繼續正題,環境准備可以看這篇:

  ESP32的Linux開發環境搭建,將示例程序編譯、下載、運行 

  https://www.cnblogs.com/happybirthdaytoyou/p/13996072.html

 

 打開該虛擬機, 將上圖的http_request文件夾拷貝到下圖路徑內:

 

代碼修改三處,見下圖:

 

ESP32板子經過USB轉TTL接入到ubuntu虛擬機內,

然后執行make flash monitor  ,  即執行程序燒錄,打開串口

程序運行效果:

 

PS:心知天氣返回的數據是UTF-8編碼的

 

 

現在就收到了這串表示天氣的字符串了,這是JSON格式的,需要解析,常見的有cJSON庫。

 

江湖很大,你我相遇在此有一定緣分,可以考慮加個QQ群聊聊人生,技術離不開生活,生活離不開聊聊。
 
 

.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM