好久沒(méi)更新文章了,看看又做了什么些好玩的東西。 文章目錄 前言 開(kāi)發(fā)板的選擇 獲取疫情數(shù)據(jù)API接口 ESP8266發(fā)送HTTPS請(qǐng)求 LCD顯示 代碼下載 在其他MCU上的實(shí)現(xiàn) 前言 2020,新冠肺炎疫情在全球蔓延,國(guó)內(nèi)得到了有效的控制,最近國(guó)內(nèi)部分地區(qū)的疫情形勢(shì)又緊張起來(lái)。不知道大家是否了解我之前做的一個(gè)新冠肺炎疫情監(jiān)控平臺(tái),基于跨平臺(tái)Qt實(shí)現(xiàn),從桌面Qt,到嵌入式Qt,相關(guān)文章:
基于桌面Qt環(huán)境的疫情監(jiān)控平臺(tái)開(kāi)發(fā)筆記 :
[開(kāi)源]基于桌面Qt的肺炎疫情監(jiān)控平臺(tái) [開(kāi)源]基于桌面Qt的肺炎疫情監(jiān)控平臺(tái)1.1版本 基于嵌入式Qt環(huán)境的疫情監(jiān)控平臺(tái)開(kāi)發(fā)筆記 :
[開(kāi)源]我用STM32 MP1做了個(gè)疫情監(jiān)控平臺(tái)1—交叉編譯環(huán)境搭建 [開(kāi)源]我用STM32MP1做了個(gè)疫情監(jiān)控平臺(tái)2—Qt環(huán)境搭建 [開(kāi)源]我用STM32MP1做了個(gè)疫情監(jiān)控平臺(tái)3—疫情監(jiān)控平臺(tái)實(shí)現(xiàn) [開(kāi)源]我用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,但一直都沒(méi)有找到一個(gè)合適的API接口,直到最近發(fā)現(xiàn)了一個(gè)數(shù)據(jù)量比較小,連接比較穩(wěn)定的API。于是,設(shè)計(jì)了這個(gè)基于STM32 MCU的疫情監(jiān)控平臺(tái),STM32通過(guò)串口和ESP8266進(jìn)行AT指令交互,連接互聯(lián)網(wǎng)獲取最新的疫情數(shù)據(jù),并顯示在LCD顯示屏上,可以直觀方便的了解到最新的疫情數(shù)據(jù)信息。最終效果如下:
顯示效果 主板拆分 開(kāi)發(fā)板的選擇 開(kāi)發(fā)板用的是我在大四時(shí)自己設(shè)計(jì)的STM32開(kāi)發(fā)板——NiceDay,基于
STM32 F103RET主控。前幾天看大佬說(shuō)有學(xué)生在大一就自己畫(huà)板打樣了,我感到自愧不如?。?/p>這是我設(shè)計(jì)的第二塊板子(第一塊是畢業(yè)設(shè)計(jì)兩輪平衡車(chē)主板),是在大四快畢業(yè)時(shí),畢設(shè)實(shí)物和論文完成之后還有點(diǎn)時(shí)間,就設(shè)計(jì)了這款板子,最開(kāi)始是準(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è)人都開(kāi)發(fā)了實(shí)時(shí)疫情地圖平臺(tái),騰訊新聞、丁香園、網(wǎng)易、新浪等等,這些數(shù)據(jù)大小都在幾百KB,對(duì)于PC和嵌入式Linux來(lái)說(shuō),不用在意數(shù)據(jù)量的大小,但是對(duì)于存儲(chǔ)非常有限的MCU來(lái)說(shuō),數(shù)據(jù)量的大小是不得不考慮的一個(gè)問(wèn)題,而且對(duì)于ESP8266來(lái)說(shuō),AT指令的方式,SSL緩存最大只有4096個(gè)字節(jié)的緩存!經(jīng)過(guò)網(wǎng)上一番搜索,找到了幾個(gè)數(shù)據(jù)量小的API,但是有的接口連接不穩(wěn)定,剛連上就掉線了,最后終于找到了一個(gè)連接穩(wěn)定,數(shù)據(jù)量小,數(shù)據(jù)齊全的接口:
https://lab.isaaclin.cn/nCoV/zh
這是一位國(guó)人使用服務(wù)器爬蟲(chóng)獲取了丁香園的數(shù)據(jù),然后開(kāi)放了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,打開(kāi)開(kāi)發(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開(kāi)頭的,一般是選擇TCP連接類型,80端口;如果是https開(kāi)頭的,一般是選擇SSL連接類型,443端口。這個(gè)信息在后面會(huì)用到。
API獲取 ESP8266發(fā)送HTTPS請(qǐng)求 WiFi模塊選擇的是樂(lè)鑫的ESP8266-01S模組,支持AP、Station和AP