使用Arduino和P10 LED顯示屏的covid - 19實(shí)時(shí)數(shù)據(jù)跟蹤器
掃描二維碼
隨時(shí)隨地手機(jī)看文章
公眾必須定期獲得有關(guān)危機(jī)的最新情況,以便他們能夠了解任何特定地區(qū)的感染病例和康復(fù)人數(shù)。所以在這里我們將做一個(gè)設(shè)備,它可以顯示現(xiàn)場(chǎng)電暈更新在P10 DMD LED矩陣顯示使用Arduino和ESP32。
組件使用
?ESP32 Wi-Fi模塊
?Arduino納米
?邏輯轉(zhuǎn)換器(5至3.3V)
?32*16 P10 DMD矩陣顯示
?16針FRC連接器-1
?5v dc, 3安培SMPS
?連接器
P10 LED矩陣顯示模塊
P10是一個(gè)32*16的LED矩陣模塊,用于顯示大型廣告。P10 LED模組的每個(gè)單元有512個(gè)高強(qiáng)度LED,每排32個(gè),每列16個(gè)。
P10 LED模塊可以多路復(fù)用,以構(gòu)建更大尺寸的顯示器。P10模塊有兩個(gè)端口:輸入端口和輸出端口。輸入端口用于從Arduino端輸入數(shù)據(jù),輸出端口用于將模塊連接到另一個(gè)LED P10模塊。
P10 LED模塊引腳說明:
?使能:該引腳用于控制LED面板的亮度,通過給它一個(gè)PWM脈沖。
?A, B:這些被稱為多路選擇引腳。它們采用數(shù)字輸入來選擇任何多路行。
?移位時(shí)鐘(CLK),存儲(chǔ)時(shí)鐘(SCLK)和數(shù)據(jù):這些是正常的移位寄存器控制引腳。這里使用移位寄存器74HC595。
covid - 19實(shí)時(shí)數(shù)據(jù)跟蹤器電路圖
Corona Live數(shù)據(jù)跟蹤器連接Arduino UNO和P10顯示模塊,如下表所示:
注:P10 LED顯示模塊需要單獨(dú)的5V, 3A直流電源。如果連接多個(gè)顯示器,請(qǐng)相應(yīng)地增加SMPS的電源。
獲取covid - 19實(shí)時(shí)數(shù)據(jù)的API
這里我們需要使用API從互聯(lián)網(wǎng)獲取數(shù)據(jù),然后通過串行通信發(fā)送給Arduino Nano,在P10顯示器上顯示。為此,發(fā)出一個(gè)HTTP get請(qǐng)求來讀取網(wǎng)站上可用的JSON數(shù)據(jù)。該API由冠狀病毒疾病GIS Hub提供,可以輕松配置為獲取查詢URL,以顯示印度的總感染病例和恢復(fù)病例。國(guó)家/地區(qū)也可以更改,如果你想使用這個(gè)不同的國(guó)家。
如圖所示,進(jìn)入上述鏈接所示的網(wǎng)站,按如下所示設(shè)置參數(shù)。例如,在“where”下拉菜單中,設(shè)置國(guó)家名稱,在我的例子中是“India”。您可以根據(jù)您的要求設(shè)置另一個(gè)國(guó)家。類似地,在輸出字段復(fù)選框中,選中所需的輸出參數(shù),這些參數(shù)在我的例子中是確認(rèn)和恢復(fù)的。
設(shè)置完所有這些參數(shù)后,點(diǎn)擊“Try it out”按鈕。之后,在右上角復(fù)制“Query URL”的內(nèi)容,并粘貼到瀏覽器的另一個(gè)選項(xiàng)卡中,你會(huì)得到如下所示的輸出屏幕:
在獲得JSON數(shù)據(jù)之后,現(xiàn)在生成反序列化代碼,我們需要在ESP32編程中添加它。為此,轉(zhuǎn)到ArduinoJson助手并在輸入部分粘貼JSON數(shù)據(jù)。
現(xiàn)在轉(zhuǎn)到解析程序并復(fù)制應(yīng)用程序所需的代碼部分。在我的案例中,我只使用了印度確診和康復(fù)的病例。
covid - 19實(shí)時(shí)跟蹤器ESP32編程
這里使用Arduino IDE對(duì)ESP32進(jìn)行編程。完整的代碼在程序的末尾給出。在這里,我們將解釋它的幾個(gè)重要部分。此外,要了解有關(guān)ESP32 Wi-Fi模塊以及如何使用它構(gòu)建物聯(lián)網(wǎng)項(xiàng)目的更多信息,請(qǐng)關(guān)注我們基于ESP32的物聯(lián)網(wǎng)項(xiàng)目。
一開始,包括所有必需的庫文件。HTTPClient庫用于從HTTP服務(wù)器獲取數(shù)據(jù)。ArduinoJson庫用于短語數(shù)據(jù)數(shù)組。
現(xiàn)在,聲明網(wǎng)絡(luò)憑據(jù)——即SSID和密碼。需要將ESP32連接到互聯(lián)網(wǎng)。
要將ESP32連接到互聯(lián)網(wǎng),請(qǐng)調(diào)用WiFi。開始并傳遞網(wǎng)絡(luò)SSID和密碼作為參數(shù)。使用WiFi.status()檢查網(wǎng)絡(luò)連接是否成功,連接成功后,在Serial Monitor上打印一條消息。
現(xiàn)在使用StaticJsonDocument類創(chuàng)建一個(gè)JSON對(duì)象,我們將使用它將串行參數(shù)發(fā)送到Arduino Nano以在P10模塊上顯示。
現(xiàn)在輸入API URL鏈接,我們將使用該鏈接獲得印度的確診病例和恢復(fù)病例總數(shù)。您可以根據(jù)自己的需要更改URL中的國(guó)家名稱。
現(xiàn)在在void loop()函數(shù)中,通過讀取ESP32接收到的JSON文件并在串行監(jiān)視器上打印JSON數(shù)據(jù)來驗(yàn)證它。
然后,編寫我們已經(jīng)從ArduinoJson助理網(wǎng)站獲得的代碼。具體如下:
最后,聲明兩個(gè)JSON對(duì)象,它們將使用串行通信發(fā)送到Arduino Nano。這些可以使用serializjson完成,如下所示:
Arduino Nano的編程
現(xiàn)在,編寫接收器部分的代碼,其中使用Arduino Nano在P10 Matrix顯示器上顯示參數(shù)。我們之前將Arduino Uno與P10 LED顯示屏連接。
通過包含要使用的所有必要的庫文件來啟動(dòng)代碼。這里TimerOne庫用于顯示滾動(dòng)時(shí)間屬性,LedP10庫用于P10矩陣顯示。ArduinoJson庫用于短語數(shù)據(jù)數(shù)組。最后給出了完整的代碼。
然后,定義連接到P10顯示器的Arduino引腳。
在loop()中,使用StaticJsonDocument類創(chuàng)建一個(gè)JSON對(duì)象,使用該對(duì)象,我們將從ESP32接收串行參數(shù),以便在P10模塊上顯示。
現(xiàn)在對(duì)接收到的JSON數(shù)據(jù)進(jìn)行反序列化,并將它們分配給單獨(dú)的變量,這些變量將顯示在P10顯示器上。
現(xiàn)在定義了一個(gè)函數(shù)show1(),其中聲明了字符串并傳遞了兩個(gè)變量(在我的例子中是no。確診病例,無。(已康復(fù)病例)。然后使用toCharArray將其轉(zhuǎn)換為常量char數(shù)組,然后使用showmsg_single_scroll函數(shù)將其顯示在P10顯示器上。
這就是P10 LED顯示屏可以用來顯示任何特定地區(qū)或全球冠狀病毒病例的實(shí)時(shí)數(shù)據(jù)更新的方式。
本文編譯自iotdesignpro