www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 程序員小哈
[導(dǎo)讀]目錄: 調(diào)用天氣API接口獲取天氣信息 解析天氣信息字符串 測試結(jié)果 資料獲取 后臺(tái)網(wǎng)友留言,說參考這個(gè)鏈接 天氣數(shù)據(jù)解析1--JSON格式數(shù)據(jù) 處理天氣API接口返回的數(shù)據(jù),中間遇到了點(diǎn)問題,里面涉及到的知識(shí):串口通信、JSON字符串咱們之前都有介紹過,那我就借

目錄:

  • 調(diào)用天氣API接口獲取天氣信息

  • 解析天氣信息字符串

  • 測試結(jié)果

  • 資料獲取


后臺(tái)網(wǎng)友留言,說參考這個(gè)鏈接 天氣數(shù)據(jù)解析1--JSON格式數(shù)據(jù) 處理天氣API接口返回的數(shù)據(jù),中間遇到了點(diǎn)問題,里面涉及到的知識(shí):串口通信、JSON字符串咱們之前都有介紹過,那我就借此機(jī)會(huì),利用cJSON處理一下這個(gè)數(shù)據(jù)包吧。


調(diào)用天氣API接口獲取天氣信息


有時(shí)我們的應(yīng)用想要獲取天氣預(yù)報(bào)信息,網(wǎng)上有不少天氣預(yù)報(bào)API提供天氣數(shù)據(jù)服務(wù),我們以心知天氣提供的API為例,看看如何使用cJSON解析心知天氣API返回的數(shù)據(jù)包。


  • 心知天氣的官網(wǎng)

https://www.seniverse.com/


  • 申請注冊免費(fèi)版,登陸之后,在控制臺(tái)-->產(chǎn)品管理下面的我的API項(xiàng)目中,可以查看自己的API密鑰的私鑰。



  • 心知天氣api:https://api.seniverse.com/v3/weather/now.json?key=key&location=dalian&language=zh-Hans&unit=c


上面加粗的地方,key處替換為你自己的私鑰;dalian處替換為你要查詢的目標(biāo)城市;zh-Hans處替換為en就是英文的顯示方式了。


我們?yōu)榱薕LED顯示方便,先使用英文的顯示方式。


  • 瀏覽器中輸入API信息得到如下字符串:



{"results":[{"location":{"id":"WWYMRT0VRMUG","name":"Dalian","country":"CN","path":"Dalian,Dalian,Liaoning,China","timezone":"Asia/Shanghai","timezone_offset":"+08:00"},"now":{"text":"Cloudy","code":"4","temperature":"14"},"last_update":"2020-05-22T13:10:00+08:00"}]}


使用在線JSON校驗(yàn)格式化工具,格式化之后,得到如下格式:



解析天氣信息字符串

為了可以動(dòng)態(tài)顯示天氣信息,我們使用串口發(fā)送數(shù)據(jù)至STM32,用來模擬網(wǎng)絡(luò)獲請求到的數(shù)據(jù),然后單片機(jī)解析完之后顯示到OLED屏上,顯示城市信息和天氣溫度。

以后會(huì)寫一個(gè)使用網(wǎng)絡(luò)模塊實(shí)時(shí)調(diào)用網(wǎng)絡(luò)上天氣信息的例程,敬請留意。


解析過程中出現(xiàn)的問題:

  • 由于STM32F103C8T6單片機(jī)的RAM比STM32F103RET6單片機(jī)的小,所以按照Keil環(huán)境下STM32工程加入cJSON這篇文章添加cJSON庫的話,編譯會(huì)出現(xiàn)如下錯(cuò)誤:



解決辦法:
將malloc.h文件中的宏定義更改如下:
原來#define MEM_MAX_SIZE 35*1024
改為#define MEM_MAX_SIZE 16*1024



  • 另外串口緩沖區(qū)要大一點(diǎn),我串口接收緩沖區(qū)大小設(shè)置為500字節(jié)。

此參數(shù)的大小由返回的JSON數(shù)據(jù)包大小決定,緩沖區(qū)大小要比最大的包要大一些才可以。


測試結(jié)果

實(shí)現(xiàn)的功能:

  1. PC機(jī)的串口助手設(shè)置比特率為115200,拷貝心知天氣api返回的字符串直接串口發(fā)送;

  2. STM32F103C8T6單片機(jī)的串口1接收上面的字符串,使用cJSON解析此字符串;

  3. 解析之后的結(jié)果保存至結(jié)構(gòu)體中暫存;

  4. OLED顯示結(jié)構(gòu)體中天氣和溫度的值。



因?yàn)橐粋€(gè)字符寬度為8px,所以一行可以顯示128px/8px=16個(gè)字符,使用OLED_ShowStr來顯示字符串的話,注意控制字符串長度,如果格式化之后超過16個(gè)字符,那么顯示會(huì)有串行的現(xiàn)象。


資料獲取

微信公眾號(hào)后臺(tái)回復(fù)“心知天氣”,可以下載工程源碼。




推薦閱讀:

STM32F103 串口的使用方法

基于STM32固件庫的MDK5工程建立

修改Keil工程名稱并添加其他模塊文件

Keil環(huán)境下STM32工程加入cJSON

利用STM32F103C8T6最小系統(tǒng)板點(diǎn)亮流水燈

STM32驅(qū)動(dòng)0.96寸OLED液晶屏




六月份的“每月一練”活動(dòng)已經(jīng)開始投票了,六月份做什么,由你們決定。
感興趣的進(jìn)入下面鏈接投票哈。


2020.06 “每月一練”活動(dòng)開始投票了

 

活動(dòng)介紹及日程安排,詳見公眾號(hào)底部菜單欄“每月活動(dòng)”。





免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉