精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于IoT和Arduino構建一個IPL記分板

科技觀察員 ? 來源:circuitdigest ? 作者:Debasis Parida ? 2022-08-02 17:29 ? 次閱讀

今天我們將使用 NodeMCU 和 P10 顯示模塊構建一個基于 IoTArduino 的 IPL 記分板,它足夠大,可以顯示實時比分,而且制作起來非常簡單。

構建物聯網計分板所需的組件

項目比較簡單,需要的組件也不多。只需收集下面列出的物品。

Arduino納米

ESP8266 NodeMCU

性能板

男性和女性標題

9V 直流,2 安培電源

5 安培、3 安培 SMPS

連接線

基于節點 MCU 和 Arduino 的物聯網記分板工作

poYBAGLo7geAekDiAACat3XEeRo060.png

該項目的完整工作如上面的框圖所示。在這里,“ CRICAPI ”API 服務用于獲取實時 IPL 分數,然后由 ESP8266 nodeMCU 解碼并再次發送到控制顯示的Arduino Nano 。在這里,串行通信用于將信息從NodeMCU發送到 Arduino Uno。然后Arduino將需要顯示的所需信息發送到p10顯示器。

P10 LED矩陣模組基本工作原理

poYBAGLo7gGABeZzAAkj-923jXc222.png

P10 LED 顯示模塊是一種非常流行的矩陣顯示器,用于宣傳戶外或室內條件。每個 p10 顯示模塊共有 512 個高亮度 LED,安裝在塑料外殼上,旨在實現最佳顯示效果。任何數量的此類面板可以組合成任何行和列結構,以設計 LED 通知/廣告板。32*16 模塊尺寸意味著每行有 32 個 LED,每列有 16 個 LED。因此,每個模塊單元中有 512 個 LED。

這個模塊有很多特點,比如它總共有512個LED,這使得制作廣告牌非常酷,并且在我們需要展示的地方都需要它。它的總亮度為 3500-4500 尼特,因此您可以在光天化日之下非常清楚地看到它。它有一個最大值。功耗為 20W,因此可以由小型開關電源模塊供電。它還需要一個單獨的 5V 電源為邏輯部分供電。它具有 IP65 防水等級,因此可以在潮濕和雨天的戶外輕松使用。

P10顯示模塊引腳說明:

pYYBAGLo7fyAbQbaAAfiatymTMU552.png

Enable:此引腳用于通過向 LED 面板提供 PWM 脈沖來控制 LED 面板的亮度。

A、B:這些稱為多路復用選擇引腳。它們采用數字輸入來選擇任何多路復用行。

移位時鐘 (CLK)、存儲時鐘 (SCLK) 和數據:這些是正常的移位寄存器控制引腳。這里使用移位寄存器74HC595。

poYBAGLo7fiAPe1VAACGua4Mlrc918.png

P10顯示模塊接線圖:

Arduino UNO 和 P10 顯示模塊按照如下所示的引腳映射互連:

poYBAGLo7fKAc-_iAAARSHufrIY314.png

重要的提示:

將 P10 模塊的電源端子單獨連接到 5V DC SMPS。建議將 5V、3 Amp 直流電源連接到單個 P10 LED 模塊。如果您計劃連接更多模塊,請相應提高您的 SMPS 額定值。

基于 NodeMCU 和 IoT 的實時計分板 - 示意圖

pYYBAGLo7e6AapOSAAGsHXVhxLw325.png

基于物聯網的實時計分板的完整示意圖如上所示。如電路圖所示,首先將一個 9V 直流電源連接到 Arduino Nano,然后將來自 Arduino 的穩壓 5V 直流電源提供給 NodeMCU。對于 Arduino 和 NodeMCU 之間的通信,使用 TX 和 RX 引腳,如圖所示連接。最后,按照上圖所示的電路圖,將 P10 顯示器連接到 Arduino。

在這個項目中,所有的連接都按照上圖進行并焊接在穿孔板上。完成電路圖后,電路板如下圖所示:

pYYBAGLo7emAWDLEAASsYnk6_G0136.png

連接成功后,我已將板子連接到 p10 顯示器并將電路封裝在外殼中,如下圖所示:

poYBAGLo7eWAeOeWAAY8Ox-ZKa4429.png

基于物聯網的記分板的軟件設置

在成功設置硬件之后,現在是時候在編寫代碼之前設置軟件部分了。首先,需要完成 API 設置。為此,請訪問 URL:https ://www.cricapi.com/并注冊以創建一個新帳戶。我們也可以使用我們的 Google 帳戶登錄。

登錄您的 CricAPI 帳戶,每天最多可免費獲得 100 次點擊。儀表板如下所示:

pYYBAGLo7eCAf6ChAAE-G-vtVO4300.png

單擊“ Test CricAPI ”選項并轉到“ Cricket score ”選項。將出現一個窗口,如下所示,其中包含 URL 和示例輸出。復制 URL 以供我們將來參考。我在印度,我喜歡板球,所以我將其配置為顯示板球得分。如果您希望它為任何其他目的配置它,您可以通過稍微更改代碼來輕松完成。

poYBAGLo7dyAX_R5AAGe7A0g814090.png

基于 NodeMCU 和 IoT 的 Live Cricket Board 代碼

在本節中,我們將討論從 HTTP 網站獲取數據并將其顯示到 P10 顯示器所需的代碼,因為我們使用的是 NodeMCU 和 Arduino,因此這些將分為兩個部分。第一個 Arduino 代碼配置 NodeMCU,第二個配置 Arduino Nano。

設置 NodeMCU 以上傳代碼:

如果您是第一次將代碼上傳到 nodeMCU,那么您必須先包含板,使用以下步驟。

要將代碼上傳到 NodeMCU,請按照以下步驟操作:

1.打開 Arduino IDE,然后轉到File–》Preferences–》Settings。

pYYBAGLo7daAEBXyAAAn54RZfaw114.png

2.在 “Additional Board Manager URL ”字段中輸入https://arduino.esp8266.com/stable/package_esp8266com_index.json并單擊“Ok”。

pYYBAGLo7dOAO2rKAADjLhJNu0g680.png

3.現在,轉到工具 》 板 》 板管理器。在 Boards Manager 窗口中,在搜索框中鍵入ESP 8266,選擇最新版本的開發板,然后單擊安裝。

poYBAGLo7c-AIo_HAAFvRy7DM14246.png

4.安裝完成后,進入Tools -》 Board -》 選擇NodeMCU 1.0(ESP-12E Module)?,F在您可以使用 Arduino IDE 對 NodeMCU 進行編程

完成上述步驟后,現在可以將代碼上傳到 NodeMCU,完整的代碼需要上傳到 NodeMCU。首先,所有必需的庫文件都將包含在代碼中。這里,在這個項目中,ESP8266WiFi.h和ESP8266HTTPClient.h用于使用 ESP8266 NodeMCU Wi-Fi 模塊,ArduinoJson.h用于使用 JSON 庫,用于從 CricAPI 接收信息。

#include  
#include  
#include 

現在,定義了網絡憑據,即 SSID 和密碼。需要將 NodeMCU 連接到互聯網。

const char* ssid = "管理員"; 
const char* 密碼 = "123456789";

然后,為了將 nodeMCU 連接到互聯網,調用 WiFi.begin并將 SSID 和密碼作為其參數。此外,使用波特率 = 115200 初始化串行通信。

Serial.begin(115200); 
WiiFi.begin(ssid,密碼);

在 loop() 內部,傳遞我們之前記下的 API URL,以獲取實時板球比分。在http.begin() 函數中獲取信息。

http.begin("http://cricapi.com/api/cricketScore?apikey=rd0uOcJvvxUCbNlzlsGWyJt3gP53&unique_id=1254075");

現在,通過讀取并在串行監視器上打印 JSON 數據來驗證接收到的 JSON 文件。然后如果接收到的數據是正確的,將其打印在 Serial 上以將其發送到 Arduino。

int httpCode = http.GET(); 
      if (httpCode > 0) 
      {
        字符串負載 = http.getString(); 
        const size_t bufferSize = JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(3) + JSON_OBJECT_SIZE(5) + JSON_OBJECT_SIZE(8) + 370;
        DynamicJsonBuffer jsonBuffer(bufferSize); 
        JsonObject& root = jsonBuffer.parseObject(http.getString()); 
        const char* name1 = root["description"]; 
        序列號.println(name1); 
        延遲(10000);
      }

代碼完成后,編譯代碼并上傳到NodeMCU。成功上傳后,現在是時候為 Arduino 編寫代碼了。

對 Arduino Nano 進行編程:

與 NodeMCU 類似,我們需要先對 Arduino 進行編程,然后才能繼續前進并完成代碼。

對于 Arduino Nano,我們必須包含應用程序中使用的所有庫。這里,代碼中使用了“DMD.h”庫和“TimerOne.h”,這兩個庫都可以通過下面給出的鏈接下載。

從 GitHub 下載 DMD.h 庫

從 GitHub 下載 TimerOne.h 庫

下載并包含這兩個庫后,通過包含所有必需的庫來啟動代碼。

#include  
#include  
#include  
#include "SystemFont5x7.h" 
#include "Arial_black_16.h"

在下一步中,為 LED 矩陣定義行數和列數。這里本項目只用到了一個模塊,所以ROW值和COLUMN值都可以定義為1。

#define ROW 1 
#define COLUMN 1 
#define FONT Arial_Black_16 
DMD led_module(ROW, COLUMN);

定義了一個函數scan_module(),它通過 SPI 終端持續檢查來自 Arduino Nano 的任何傳入數據。如果是,那么它將觸發中斷以執行用戶在程序中定義的某些事件。

無效 scan_module() 
{ 
  led_module.scanDisplayBySPI(); 
}

在setup()內部,定時器被初始化,中斷被附加到函數scan_module,這在前面已經討論過了。最初,使用函數clear screen(true) 清除屏幕,這意味著所有像素都定義為 OFF。

在這里,串行通信也啟用了串行功能。begin(115200)其中 115200 是串行通信的波特率。

無效設置()
{ 
  Serial.begin(115200);
  Timer1.initialize(2000); 
  Timer1.attachInterrupt(scan_module); 
  led_module.clearScreen(真);
}

在這里,檢查串行數據的可用性,是否有來自 nodeMCU 的有??效數據。接收到的數據存儲在一個變量中,然后打印在 p10 顯示器上。

無效循環()
{
  如果(Serial.available())
{
數據=Serial.readString();
} 
Serial.println(數據); 
(String("Score:")+String(data)).toCharArray(cstr1, 100); 
    led_module.selectFont(字體);

然后,為了在模塊中顯示信息,使用selectFont()函數選擇字體。然后drawMarquee()函數用于在 p10 板上顯示所需的信息。

led_module.drawMarquee(cstr1,100, (32 * ROW), 0); 
    長開始 = 毫秒();
    長時間的計時=開始;
    布爾標志 = 假;

最后,由于我們需要滾動消息顯示,我們編寫了一個代碼,使用一定的周期將整個消息從右向左移動。

    while (!flag) 
    { 
      if ((timming + 30) < millis()) 
      { 
        flag = led_module.stepMarquee(-1, 0); 
        計時 = 毫秒();
      } 
   } 
}

節點單片機代碼:


#include

#include

#include

const char* ssid = "admin";

const char* 密碼 = "123456789";

整數計數 = 0;

無效設置()

{

Serial.begin(115200);

WiFi.begin(ssid, 密碼);

而(WiFi.status()!= WL_CONNECTED)

{

延遲(1000);

}

}

void loop()

{

if (WiFi.status() == WL_CONNECTED)

{

HTTPClient http;

http.begin(" http://cricapi.com/api/cricketScore?apikey=rd0uOcJvvxUCbNlzlsGWyJt3gP53… ");

int httpCode = http.GET();

如果(http代碼>

{

字符串負載 = http.getString();

const size_t bufferSize = JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(3) + JSON_OBJECT_SIZE(5) + JSON_OBJECT_SIZE(8) + 370;

DynamicJsonBuffer jsonBuffer(bufferSize);

JsonObject& root = jsonBuffer.parseObject(http.getString());

const char* name1 = root["description"];

序列號.println(name1);

延遲(10000);

}

http.end();

}

}


Arduino代碼:


#include

#include

#include

#include "SystemFont5x7.h"

#include "Arial_black_16.h"

#define ROW 1

#define COLUMN 1

#define FONT Arial_Black_16

字符輸入;

整數a = 0,b = 0;

整數標志 = 0;

字符 cstr187d072d946209c12755dc9eb28d72c4554dd7f3a55f83672124217d4d3168939QzpcVXNlcnNcQWRtaW5pc3RyYXRvclxBcHBEYXRhXFJvYW1pbmdcRGluZ1RhbGtcZGVmRW1vdGlvblxlbW90aW9uXzEwOC5wbmc=;

DMD led_module(行,列);

字符串數據="";

無效 scan_module()

{

led_module.scanDisplayBySPI();

}

void setup()

{

Serial.begin(115200);

Timer1.initialize(2000);

Timer1.attachInterrupt(scan_module);

led_module.clearScreen(真);

}

無效循環()

{

if (Serial.available())

{

data=Serial.readString();

}

Serial.println(數據);

(String("Score:")+String(data)).toCharArray(cstr1, 100);

led_module.selectFont(字體);

led_module.drawMarquee(cstr1,100, (32 * ROW), 0);

長開始 = 毫秒();

長時間的計時=開始;

布爾標志 = 假;

while (!flag)

{

if ((timming + 30) < millis())

{

flag = led_module.stepMarquee(-1, 0);

計時 = 毫秒();

}

}

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 顯示模塊
    +關注

    關注

    1

    文章

    48

    瀏覽量

    23560
  • Arduino
    +關注

    關注

    187

    文章

    6464

    瀏覽量

    186682
  • IOT
    IOT
    +關注

    關注

    186

    文章

    4181

    瀏覽量

    196278
收藏 人收藏

    評論

    相關推薦

    如何使用Arduino構建計算器

    在本教程中,我們將使用 Arduino 構建自己的計算器。這些值可以通過鍵盤(4×4 鍵盤)發送,結果可以在 LCD 屏幕上查看(16×2 點陣)。該計算器可以執行簡單的運算,例如整數的加法,減法,乘法和除法。但是旦你理解了這
    的頭像 發表于 11-21 17:43 ?5873次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>計算器

    如何構建Arduino官方開發環境

    本系列教程將向大家講述,在自己的計算機上構建完善的嵌入式系統開發環境的方法。本文將向大家講述構建Arduino官方開發環境的方法。Arduino簡介:
    發表于 12-24 06:44

    使用Arduino Nano Every和Adafruit NeoPixel Matrix的數字Cribbage

    樣。每只手都有不同的分數,并使用傳統的木板記錄分數。木制記分板通常是長方形,上面鉆孔。這些通常有四輪 60 孔。這支持各種游戲類型,我專注于我父母玩的三款游戲,即 2 人短、2
    發表于 08-04 07:23

    使用Arduino構建數字羅盤

    方向。在本文中,您將學習如何使用 Arduino 構建自己的數字羅盤。通過它,您將能夠了解HMC5883L傳感器的完整操作,來檢測它的方位方向。此外,您將學習如何構建自己的電子羅盤
    發表于 08-25 06:11

    如何使用Arduino構建電子動畫眼睛

    在這個項目中,我們將使用 Arduino 構建動畫眼睛。在網上尋找新的項目創意時,我萌生了制作動畫眼睛的想法,這個項目立即引起了我的注意。
    的頭像 發表于 07-10 09:52 ?2545次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>電子動畫眼睛

    構建藍牙控制的無線記分

     電子記分牌是任何人在任何體育比賽中都可以擁有的最重要的小工具之。使用傳統方法的舊手動記分牌非常耗時且容易出錯,因此在需要實時更改顯示單元的情況下,必須使用計算機記分牌。這就是為什么
    的頭像 發表于 08-06 16:36 ?3433次閱讀
    <b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>藍牙控制的無線<b class='flag-5'>記分</b>牌

    如何使用Arduino構建無線門鈴

     在這個項目中,我們將使用 Arduino 構建無線門鈴。我們將有按鈕,按下該按鈕將無線
    發表于 08-19 15:57 ?1771次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>無線門鈴

    使用Arduino構建摩爾斯電碼轉換器

    在本教程中,我們將使用 Arduino 構建摩爾斯電碼轉換器,它將任何字符作為串行監視器的輸入,并通過蜂鳴器將其轉換為等效的摩爾斯電碼蜂鳴聲。
    發表于 08-29 16:46 ?3954次閱讀
    使用<b class='flag-5'>Arduino</b><b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>摩爾斯電碼轉換器

    使用Arduino開發構建室內花園

    電子發燒友網站提供《使用Arduino開發構建室內花園.zip》資料免費下載
    發表于 10-19 09:38 ?0次下載
    使用<b class='flag-5'>Arduino</b>開發<b class='flag-5'>板</b><b class='flag-5'>構建</b>室內花園

    構建Arduino交通燈模塊

    電子發燒友網站提供《構建Arduino交通燈模塊.zip》資料免費下載
    發表于 12-13 10:39 ?0次下載
    <b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>Arduino</b>交通燈模塊

    構建溫度傳感設備并將其連接到Arduino IOT

    電子發燒友網站提供《構建溫度傳感設備并將其連接到Arduino IOT云.zip》資料免費下載
    發表于 12-14 11:40 ?1次下載
    <b class='flag-5'>構建</b>溫度傳感設備并將其連接到<b class='flag-5'>Arduino</b> <b class='flag-5'>IOT</b>云

    使用Arduino創建電子記分

    電子發燒友網站提供《使用Arduino創建電子記分牌.zip》資料免費下載
    發表于 12-16 10:24 ?0次下載
    使用<b class='flag-5'>Arduino</b>創建電子<b class='flag-5'>記分</b>牌

    使用Arduino Nano和Adafruit NeoPixel

    Cribbage。紙牌游戲是種紙牌游戲,就像撲克樣,玩家根據手牌得分。每只手都會獲得各種分數,并使用傳統的木板記錄分數。木制的記分板通常是
    發表于 01-05 16:31 ?0次下載

    構建Arduino代碼的顏色檢測器電路

    在這篇文章中,我們將構建可以檢測顏色并觸發相應分配繼電器的電路。該項目是使用 TCS3200 顏色傳感器和 Arduino 完成的。
    的頭像 發表于 07-27 11:23 ?953次閱讀
    <b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>帶<b class='flag-5'>Arduino</b>代碼的顏色檢測器電路

    如何使用Arduino構建數字電容表電路?

    在這篇文章中,我們將使用Arduino構建數字電容表電路,該電路可以以合理的精度測量從1微法拉到4000微法拉的電容器的電容。
    的頭像 發表于 07-27 11:49 ?1594次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>數字電容表電路?