好久沒更新文章了,看看又做了什么些好玩的東西。 文章目錄 前言 開發(fā)板的選擇 獲取疫情數(shù)據(jù)API接口 ESP8266發(fā)送HTTPS請(qǐng)求 LCD顯示 代碼下載 在其他MCU上的實(shí)現(xiàn) 前言 2020,新冠肺炎疫情在全球蔓延,國(guó)內(nèi)得到了有效的控制,最近國(guó)內(nèi)部分地區(qū)的疫情形勢(shì)又緊張起來。不知道大家是否了解我之前做的一個(gè)新冠肺炎疫情監(jiān)控平臺(tái),基于跨平臺(tái)Qt實(shí)現(xiàn),從桌面Qt,到嵌入式Qt,相關(guān)文章:
基于桌面Qt環(huán)境的疫情監(jiān)控平臺(tái)開發(fā)筆記 :
[開源]基于桌面Qt的肺炎疫情監(jiān)控平臺(tái) [開源]基于桌面Qt的肺炎疫情監(jiān)控平臺(tái)1.1版本 基于嵌入式Qt環(huán)境的疫情監(jiān)控平臺(tái)開發(fā)筆記 :
[開源]我用STM32 MP1做了個(gè)疫情監(jiān)控平臺(tái)1—交叉編譯環(huán)境搭建 [開源]我用STM32MP1做了個(gè)疫情監(jiān)控平臺(tái)2—Qt環(huán)境搭建 [開源]我用STM32MP1做了個(gè)疫情監(jiān)控平臺(tái)3—疫情監(jiān)控平臺(tái)實(shí)現(xiàn) [開源]我用STM32MP1做了個(gè)疫情監(jiān)控平臺(tái)4—功能完善界面重新設(shè)計(jì) 作為疫情監(jiān)控三部曲:
桌面PC > 嵌入式ARM Linux > MCU 。在前面兩個(gè)平臺(tái)上實(shí)現(xiàn)之后,就想著在內(nèi)存和性能都比較有限的MCU上實(shí)現(xiàn),比如STM32F103,但一直都沒有找到一個(gè)合適的API接口,直到最近發(fā)現(xiàn)了一個(gè)數(shù)據(jù)量比較小,連接比較穩(wěn)定的API。于是,設(shè)計(jì)了這個(gè)基于STM32 MCU的疫情監(jiān)控平臺(tái),STM32通過串口和ESP8266進(jìn)行AT指令交互,連接互聯(lián)網(wǎng)獲取最新的疫情數(shù)據(jù),并顯示在LCD顯示屏上,可以直觀方便的了解到最新的疫情數(shù)據(jù)信息。最終效果如下:
顯示效果 主板拆分 開發(fā)板的選擇 開發(fā)板用的是我在大四時(shí)自己設(shè)計(jì)的STM32開發(fā)板——NiceDay,基于
STM32 F103RET主控。前幾天看大佬說有學(xué)生在大一就自己畫板打樣了,我感到自愧不如?。?/p>這是我設(shè)計(jì)的第二塊板子(第一塊是畢業(yè)設(shè)計(jì)兩輪平衡車主板),是在大四快畢業(yè)時(shí),畢設(shè)實(shí)物和論文完成之后還有點(diǎn)時(shí)間,就設(shè)計(jì)了這款板子,最開始是準(zhǔn)備做桌面天氣時(shí)鐘的。
NiceDay NiceDay 拆分效果 如果你在百度上搜索:
ESP8266 關(guān)鍵字,其中就有我當(dāng)時(shí)的一個(gè)回答。
ESP8266 好了,言歸正傳,換個(gè)API就是疫情監(jiān)控平臺(tái)了:
最終效果 獲取疫情數(shù)據(jù)API接口 2020新冠疫情的爆發(fā),各大互聯(lián)網(wǎng)IT公司和個(gè)人都開發(fā)了實(shí)時(shí)疫情地圖平臺(tái),騰訊新聞、丁香園、網(wǎng)易、新浪等等,這些數(shù)據(jù)大小都在幾百KB,對(duì)于PC和嵌入式Linux來說,不用在意數(shù)據(jù)量的大小,但是對(duì)于存儲(chǔ)非常有限的MCU來說,數(shù)據(jù)量的大小是不得不考慮的一個(gè)問題,而且對(duì)于ESP8266來說,AT指令的方式,SSL緩存最大只有4096個(gè)字節(jié)的緩存!經(jīng)過網(wǎng)上一番搜索,找到了幾個(gè)數(shù)據(jù)量小的API,但是有的接口連接不穩(wěn)定,剛連上就掉線了,最后終于找到了一個(gè)連接穩(wěn)定,數(shù)據(jù)量小,數(shù)據(jù)齊全的接口:
https://lab.isaaclin.cn/nCoV/zh這是一位國(guó)人使用服務(wù)器爬蟲獲取了丁香園的數(shù)據(jù),然后開放了API接口供大家免費(fèi)使用,目前已經(jīng)被調(diào)用了2千萬(wàn)次,這個(gè)網(wǎng)站還包括了多個(gè)接口,我只使用到了其中的疫情數(shù)據(jù)這一個(gè)接口:
https://lab.isaaclin.cn/nCoV/api/overall,數(shù)據(jù)量大概為1300個(gè)字節(jié)。JSON數(shù)據(jù)內(nèi)容如下:
json數(shù)據(jù)格式 為了能使用ESP8266獲取這個(gè)API返回的內(nèi)容,我們還需要知道以下信息:TCP連接類型,端口號(hào),API地址。我們?cè)跒g覽器中按F12,打開開發(fā)者模式,在地址欄輸入
https://lab.isaaclin.cn/nCoV/api/overall這個(gè)接口地址,可以很容易的獲取到我們想要的信息:
服務(wù)器地址:47.102 .117 .253 端口號(hào):443 API地址:https://lab.isaaclin.cn/nCoV/api/overall 關(guān)于端口號(hào),如果API地址是http開頭的,一般是選擇TCP連接類型,80端口;如果是https開頭的,一般是選擇SSL連接類型,443端口。這個(gè)信息在后面會(huì)用到。
API獲取 ESP8266發(fā)送HTTPS請(qǐng)求 WiFi模塊選擇的是樂鑫的ESP8266-01S模組,支持AP、Station和AP