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