www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

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

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

硬件:

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

軟件:

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

操作系統(tǒng)已經安裝了該板的驅動程序(CP2102)。

Spotify API提供了各種API端點來檢索信息或實現用戶交互。要檢索標題、藝術家、專輯和進度等數據,可以使用Get Current Playing Track API。

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

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

保存這兩條信息。

2.授權

現在使用上一步中的ID在瀏覽器中打開鏈接。

一段時間后,一個窗口打開請求同意。同意后,瀏覽器現在提供一個響應,看起來像這樣:

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

ESP32包中包含的HTTPclient庫適合通過Arduino與API通信。作為json格式的服務器響應,解碼為明文需要使用ArduinoJson庫進行明文解碼。

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

3.請求刷新和訪問令牌

初始調試時,授權令牌由最終程序中的API查詢,程序代碼如下:

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

4.更新訪問令牌

由于訪問令牌僅在一小時的有限時間內有效,因此必須在過期后再次更新。與請求令牌的第一個請求一樣,基本程序保持不變,只是現在使用第一步中的請求令牌而不是授權碼。

5.請求數據

現在已經確保了當前訪問令牌始終可用,您可以切換到查詢相關信息。在文檔頁面的右側是來自服務器的響應,其中包含您帳戶的當前數據。這些數據可以使用以下程序從ESP32中檢索:

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

6.最終方案

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

如果有任何問題,請將HTTP響應代碼與文檔中的各種代碼進行比較。

程序說明:在setup()中檢索保存的令牌。如果沒有可用的令牌,則必須在串行監(jiān)視器中輸入它。因此,程序將等待,直到創(chuàng)建條目,然后將此代碼保存在SPIFFS中。如果請求令牌已經存在,則使用它來請求訪問令牌。使用上面生成的訪問令牌在loop()中檢索信息。接收到的數據然后在串行監(jiān)視器中輸出。如果HTTP請求返回代碼401,這意味著訪問令牌已經過期,必須更新;這是自動完成的。

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

本文編譯自hackster.io

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

在物聯(lián)網設備數量突破千億級的今天,開發(fā)者對核心芯片的訴求已從單一功能轉向“全棧集成+生態(tài)協(xié)同”。樂鑫科技推出的ESP32憑借其獨特的“雙核架構+無線雙模+開源生態(tài)”組合,成為智能家居、工業(yè)監(jiān)控、可穿戴設備等領域的首選方案...

關鍵字: ESP32 物聯(lián)網

作為飛行員,在空中和地面上,在飛行和飛行前的許多方面保持“安全第一”是很重要的,其中之一就是避免碰撞。過去幾年,即使是小型航空、自由飛行的飛機,如滑翔機、滑翔傘、懸掛式滑翔機等,在未來的無人機中,也開始采用儀器來觀察和讓...

關鍵字: Arduino ESP32 LED

用c++編程似乎是讓你的Arduino項目起步的障礙嗎?您想要一種更直觀的微控制器編程方式嗎?那你需要了解一下Visuino!這個圖形化編程平臺將復雜電子項目的創(chuàng)建變成了拖動和連接塊的簡單任務。在本文中,我們將帶您完成使...

關鍵字: Visuino Arduino ESP32 STM32

嘿,無線探索者!歡迎回來,我非常興奮地介紹nRFBOX v2.7.2,這是我們開源,ESP32驅動的掃描,干擾,掌握2.4GHz頻譜工具包的最新發(fā)展。

關鍵字: nRFBOX ESP32 SD卡

衛(wèi)塞節(jié)是世界上最重要的宗教節(jié)日之一,紀念佛祖的誕生、覺悟和去世。從孩提時代起,我就在衛(wèi)塞節(jié)看到了美麗的燈光展示,而開發(fā)自己的版本一直是我很久以來的夢想。這款LED顯示屏是6個月研發(fā)的成果。

關鍵字: WS2812B LED ESP32
關閉