日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 電路設(shè)計(jì)項(xiàng)目集錦
[導(dǎo)讀]音樂(lè)伴隨著我們的日常生活,能夠讀出當(dāng)前的播放信息,如標(biāo)題、藝術(shù)家和專輯,直接打開(kāi)了在顯示器上顯示這些數(shù)據(jù)的可能性,從而為桌子創(chuàng)造了創(chuàng)造性的裝飾。有了ESP32和Spotify API,這些數(shù)據(jù)可以很容易地以各種方式檢索和使用。在這篇博客文章中,您將學(xué)習(xí)到從Spotify獲取當(dāng)前播放軌道API端點(diǎn)的API請(qǐng)求的基礎(chǔ)知識(shí)。

音樂(lè)伴隨著我們的日常生活,能夠讀出當(dāng)前的播放信息,如標(biāo)題、藝術(shù)家和專輯,直接打開(kāi)了在顯示器上顯示這些數(shù)據(jù)的可能性,從而為桌子創(chuàng)造了創(chuàng)造性的裝飾。有了ESP32和Spotify API,這些數(shù)據(jù)可以很容易地以各種方式檢索和使用。在這篇博客文章中,您將學(xué)習(xí)到從Spotify獲取當(dāng)前播放軌道API端點(diǎn)的API請(qǐng)求的基礎(chǔ)知識(shí)。

硬件:

主板采用ESP32芯片;例如:Dev Kit C V2或Dev Kit C V4 USB-C

軟件:

如果您是第一次在Arduino IDE中編程ESP32,請(qǐng)復(fù)制Arduino IDE中的以下鏈接:File->Preferences->Additional boards manager

操作系統(tǒng)已經(jīng)安裝了該板的驅(qū)動(dòng)程序(CP2102)。

Spotify API提供了各種API端點(diǎn)來(lái)檢索信息或?qū)崿F(xiàn)用戶交互。要檢索標(biāo)題、藝術(shù)家、專輯和進(jìn)度等數(shù)據(jù),可以使用Get Current Playing Track API。

1.創(chuàng)建一個(gè)Spotify應(yīng)用程序

為了能夠使用Spotify API,您必須在Spotify開(kāi)發(fā)者頁(yè)面上登錄您的Spotify帳戶并打開(kāi)儀表板(單擊右上角的帳戶)。在儀表板中,單擊按鈕Create App按鈕,然后輸入您選擇的名稱和描述。對(duì)于API類型,選擇Web API。在成功配置Spotify應(yīng)用程序后,您可以通過(guò)點(diǎn)擊“查看客戶端秘密”查看應(yīng)用程序設(shè)置下的客戶端ID和API密鑰。

保存這兩條信息。

2.授權(quán)

現(xiàn)在使用上一步中的ID在瀏覽器中打開(kāi)鏈接。

一段時(shí)間后,一個(gè)窗口打開(kāi)請(qǐng)求同意。同意后,瀏覽器現(xiàn)在提供一個(gè)響應(yīng),看起來(lái)像這樣:

在這里保存代碼(在搜索欄code=中)。此代碼是一個(gè)授權(quán)令牌?,F(xiàn)在您已經(jīng)收到了授權(quán)碼,必須通過(guò)API將其“交換”為請(qǐng)求令牌。您可以在文檔中找到有關(guān)這方面的一般信息。

ESP32包中包含的HTTPclient庫(kù)適合通過(guò)Arduino與API通信。作為json格式的服務(wù)器響應(yīng),解碼為明文需要使用ArduinoJson庫(kù)進(jìn)行明文解碼。

該庫(kù)可以通過(guò)鏈接下載為.zip文件,并添加到Arduino IDE中Sketch>Include library >Add.ZIP library ....如果你使用的是PlatformIO,將以下內(nèi)容復(fù)制到PlatformIO .ini文件中的lib_deps中:

3.請(qǐng)求刷新和訪問(wèn)令牌

初始調(diào)試時(shí),授權(quán)令牌由最終程序中的API查詢,程序代碼如下:

在第一步中接收到的授權(quán)令牌在最后的程序中通過(guò)串行監(jiān)視器傳送到電路板上。首先,根據(jù)文檔中的規(guī)范創(chuàng)建包含信息的HTTP標(biāo)頭和正文。然后通過(guò)POST將這些信息傳輸?shù)絊potify服務(wù)器;如果接收到響應(yīng)碼200,則表示請(qǐng)求成功,可以暫時(shí)存儲(chǔ)傳輸?shù)臄?shù)據(jù)并提取所需的信息。有關(guān)該過(guò)程的信息可以在以下文檔頁(yè)面上找到:Codeflow。

4.更新訪問(wèn)令牌

由于訪問(wèn)令牌僅在一小時(shí)的有限時(shí)間內(nèi)有效,因此必須在過(guò)期后再次更新。與請(qǐng)求令牌的第一個(gè)請(qǐng)求一樣,基本程序保持不變,只是現(xiàn)在使用第一步中的請(qǐng)求令牌而不是授權(quán)碼。

5.請(qǐng)求數(shù)據(jù)

現(xiàn)在已經(jīng)確保了當(dāng)前訪問(wèn)令牌始終可用,您可以切換到查詢相關(guān)信息。在文檔頁(yè)面的右側(cè)是來(lái)自服務(wù)器的響應(yīng),其中包含您帳戶的當(dāng)前數(shù)據(jù)。這些數(shù)據(jù)可以使用以下程序從ESP32中檢索:

首先,生成HTTP報(bào)頭,然后使用POST命令將其發(fā)送到服務(wù)器。響應(yīng)代碼401表示訪問(wèn)令牌不再有效,必須更新。對(duì)于代碼200,從JSON格式中提取接收到的數(shù)據(jù)并臨時(shí)存儲(chǔ)在相應(yīng)的變量中。為了更好的可讀性,時(shí)間被轉(zhuǎn)換成秒,然后所有信息(標(biāo)題、藝術(shù)家、專輯、持續(xù)時(shí)間、經(jīng)過(guò)的時(shí)間和進(jìn)度)都顯示在串行監(jiān)視器上。

6.最終方案

將最終程序加載到電路板上,并通過(guò)監(jiān)視器輸入授權(quán)令牌。串行監(jiān)視器應(yīng)該顯示當(dāng)前正在播放的歌曲的數(shù)據(jù)。

如果有任何問(wèn)題,請(qǐng)將HTTP響應(yīng)代碼與文檔中的各種代碼進(jìn)行比較。

程序說(shuō)明:在setup()中檢索保存的令牌。如果沒(méi)有可用的令牌,則必須在串行監(jiān)視器中輸入它。因此,程序?qū)⒌却?,直到?chuàng)建條目,然后將此代碼保存在SPIFFS中。如果請(qǐng)求令牌已經(jīng)存在,則使用它來(lái)請(qǐng)求訪問(wèn)令牌。使用上面生成的訪問(wèn)令牌在loop()中檢索信息。接收到的數(shù)據(jù)然后在串行監(jiān)視器中輸出。如果HTTP請(qǐng)求返回代碼401,這意味著訪問(wèn)令牌已經(jīng)過(guò)期,必須更新;這是自動(dòng)完成的。

該程序還包含三個(gè)輔助方法。base64Encode()方法將訪問(wèn)數(shù)據(jù)更改為API接口所需的base64格式。最后兩個(gè)函數(shù)是存儲(chǔ)和讀取令牌,它們用于在flash中存儲(chǔ)刷新令牌。存儲(chǔ)的令牌即使在程序重新閃現(xiàn)之后也會(huì)保留,因此只需要在程序第一次啟動(dòng)時(shí)進(jìn)行授權(quán)。

本文編譯自hackster.io

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉