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

當(dāng)前位置:首頁 > 工業(yè)控制 > 電路設(shè)計項目集錦
[導(dǎo)讀]M5Stack PaperS3是創(chuàng)建能夠顯示來自各種類型傳感器數(shù)據(jù)的信息面板的絕佳選擇。但它也可以可視化從互聯(lián)網(wǎng)上的多個來源提取的內(nèi)容,如天氣信息和預(yù)報,股票價格,新聞,和許多其他有用的(有時只是有趣的)數(shù)據(jù)。

M5Stack PaperS3是創(chuàng)建能夠顯示來自各種類型傳感器數(shù)據(jù)的信息面板的絕佳選擇。但它也可以可視化從互聯(lián)網(wǎng)上的多個來源提取的內(nèi)容,如天氣信息和預(yù)報,股票價格,新聞,和許多其他有用的(有時只是有趣的)數(shù)據(jù)。

為了訪問這類內(nèi)容,許多服務(wù)提供了所謂的api——一個允許我們與網(wǎng)站“對話”以發(fā)送或接收結(jié)構(gòu)化數(shù)據(jù)的接口。

在本文中,我將解釋什么是API,如何使用API,并作為一個實際示例,我們將構(gòu)建一個激勵語錄查看器,它每隔15分鐘自動下載鼓舞人心的語錄,并將它們顯示在PaperS3屏幕上。

如果您不熟悉PaperS3的特性,我建議您查看之前的這篇文章,在這篇文章中我做了全面的回顧,并展示了一個簡單的示例。

什么是API?

作為用戶,我們使用瀏覽器及其界面訪問網(wǎng)站及其服務(wù)。但是在計算機或微控制器上運行的應(yīng)用程序需要其他機制來交換數(shù)據(jù)。這就是api(應(yīng)用程序編程接口)發(fā)揮作用的地方:它們定義了一組規(guī)則,允許另一個應(yīng)用程序或服務(wù)(不是人)訪問網(wǎng)站并請求數(shù)據(jù)或執(zhí)行功能。

RESTful API

api可以通過多種方式實現(xiàn)。在web API的情況下,最常見的方法是通過HTTP協(xié)議使用GET或POST等方法。它們通常遵循一種稱為REST(具象狀態(tài)傳輸)的方法,這就是為什么它們被稱為RESTful api(或簡稱REST api)的原因。

REST API的主要特性包括:

?使用HTTP協(xié)議:web瀏覽器使用的HTTP協(xié)議。

?遵循客戶機-服務(wù)器模型:客戶機發(fā)出請求,服務(wù)器響應(yīng)。

?通過URL訪問資源:每個資源都有自己的地址,稱為端點。

?使用標(biāo)準(zhǔn)HTTP方法:GET、POST、PUT、DELETE。

?獨立處理每個請求:請求之間不存儲上下文(這稱為無狀態(tài))。

?服務(wù)器用狀態(tài)碼(例如,200 = OK)和可選的JSON等標(biāo)準(zhǔn)格式的數(shù)據(jù)進行應(yīng)答。

API的例子

如前所述,許多網(wǎng)站都可以通過REST api訪問。有些是付費的,有些是免費的,但需要注冊才能獲得訪問令牌或密鑰,還有一些是完全開放的。例子包括:

?OpenWeather:天氣數(shù)據(jù)

?Todoist:訪問任務(wù)和項目

?格言:勵志名言

?Cat API:隨機貓圖像

?股票數(shù)據(jù):財務(wù)信息

?ChuckNorris。有趣的查克·諾里斯故事

接下來,我將向您展示如何為M5Stack PaperS3創(chuàng)建一個應(yīng)用程序,該應(yīng)用程序可以使用ZenQuotes API全天下載激勵語錄。該過程非常通用,因此您也可以輕松地將其應(yīng)用于其他基于REST api的網(wǎng)站。

ZenQuotes

ZenQuotes是一個提供免費服務(wù)的網(wǎng)站,可以通過其API從各種作者和主題中獲取勵志名言。

基本功能是完全免費的,不需要注冊或令牌。但是,對于高級功能或大量使用,需要付費帳戶。

端點

其中mode可以為:

?random:返回一個隨機引號

?quotes:返回多個引號(非常適合緩存和本地顯示)

?today:返回當(dāng)天的特色報價

?author:根據(jù)作者篩選引用(與其他模式一起使用);溢價)

?image:返回一張圖片(僅限高級版)

響應(yīng)格式

對API的任何請求都以JSON格式返回數(shù)據(jù),其中包含以下關(guān)鍵字:

?q =引用文本

?a =作者姓名

?i =作者形象(僅限收費)

?c =引用的字符數(shù)

?h =引用HTML格式

響應(yīng)是這種格式的元素數(shù)組。當(dāng)調(diào)用/quotes時,響應(yīng)包含多個項目。在/random或/today這樣的端點中,它只包含一個。

來自/today端點的示例響應(yīng):

請求和響應(yīng)處理可以在Arduino或MicroPython中輕松編碼,但對于這個項目,我將使用UIFlow 2,使其更加可視化和初學(xué)者友好。

這個項目

該程序的結(jié)構(gòu)很簡單,由以下任務(wù)組成:

?初始化設(shè)備

?連接Wi - Fi網(wǎng)絡(luò)

?向ZenQuotes網(wǎng)站提出請求

?在屏幕上顯示引用及其作者

?15分鐘后,將設(shè)備下電并重啟

最復(fù)雜的部分是在屏幕上顯示文本的功能,因為我設(shè)計它是為了保持單詞分隔,避免單詞在中間劃線。我將一步一步解釋它是如何工作的。

初始化

在初始化期間(除了UIFlow執(zhí)行的默認設(shè)置之外),使用覆蓋整個顯示器的圖像小部件設(shè)置屏幕背景。

使用Web終端將圖像(名為FondoEPD16p.png的文件)上傳到PaperS3的閃存中,然后使用代碼中的Set image0 Show塊使其可見。

接下來,設(shè)置字體大小、文本顏色和背景顏色。在坐標(biāo)20,80處也為即將打印的文本定義了光標(biāo)位置。

連接Wi - Fi

Wi - Fi連接是通過調(diào)用ConnectWifi函數(shù)建立的,該函數(shù)使用以下代碼塊定義:

此功能將Wi - Fi設(shè)置為STA(站)模式,并連接到您的家庭網(wǎng)絡(luò)。記住用實際的網(wǎng)絡(luò)詳細信息替換隱藏的SSID和密碼。該函數(shù)返回連接狀態(tài),允許您驗證連接是否成功。

發(fā)送請求到ZenQuotes

如果Wi - Fi網(wǎng)絡(luò)連接失敗,則會顯示錯誤信息。如果成功,則向ZenQuotes網(wǎng)站發(fā)送請求。

在屏幕顯示文本

在程序的這一部分中,將處理服務(wù)器響應(yīng)。如果沒有錯誤,則使用PrintLargeText函數(shù)將引用和作者顯示在屏幕上。

如上圖所示,第一步是檢查來自服務(wù)器的響應(yīng)代碼是否為200(這意味著一切正常)。如果不是200,則顯示一條錯誤消息。如果是,則解析接收到的信息。

首先,服務(wù)器返回的JSON數(shù)據(jù)存儲在變量ResponseData中。

接下來,使用get鍵塊,我們在ResponseData的元素0(一個列表,盡管它只包含一個元素)中查找鍵q,它對應(yīng)于引號。該鍵的值存儲在變量Text中,并作為參數(shù)傳遞給PrintLargeText函數(shù),該函數(shù)將其顯示在屏幕上。

重復(fù)相同的過程來查找與作者姓名對應(yīng)的鍵a。該值再次存儲在Text中,并使用PrintLargeText打印。

現(xiàn)在讓我們看看這個函數(shù)是做什么的:

這個想法是打印引用的完整單詞,而不會在屏幕邊緣破壞它們。

要做到這一點,要打印的文本被分割成一個稱為單詞的單詞列表。然后,使用count循環(huán)逐個打印這些單詞,同時確保字符總數(shù)加上空格不超過20個——這是我設(shè)置的最大寬度。如果下一個單詞將超過這個限制,則從更低的位置開始新的一行,并重復(fù)此過程,直到打印所有單詞。

設(shè)備下電

為了節(jié)省電池,在顯示文本后,程序暫停2秒,然后關(guān)閉PaperS3電源,并計劃在15分鐘內(nèi)喚醒它。

上面的所有操作都是在Setup塊中完成的,Loop塊中沒有任何操作。

這是PaperS3的樣子,上面有鼓舞人心的名言,用內(nèi)置的磁鐵貼在我的冰箱上

結(jié)論

M5Stack PaperS3不僅因其低功耗EPD屏幕而脫穎而出,而且還因其成為數(shù)字世界窗口的能力而脫穎而出——顯示有用的、有趣的或僅僅是鼓舞人心的信息。

在這個項目中,我們學(xué)習(xí)了如何使用REST API連接到像ZenQuotes這樣的web服務(wù),檢索JSON格式的內(nèi)容,并在屏幕上清晰地顯示出來。我們使用UIFlow 2完成了所有這些,這表明您不需要編寫太多代碼來創(chuàng)建連接和視覺上引人入勝的應(yīng)用程序。

除了這個勵志語錄的例子,同樣的結(jié)構(gòu)可以很容易地適應(yīng)顯示:

?每天的天氣,

?待辦事項清單,

?財務(wù)數(shù)據(jù),

?新聞標(biāo)題

?或任何其他可通過API訪問的數(shù)據(jù)。

與UIFlow 2編程環(huán)境相結(jié)合,PaperS3以簡單直觀的方式成為進入物聯(lián)網(wǎng)和網(wǎng)絡(luò)連接編程世界的絕佳工具。它的易用性使其成為教育項目的理想選擇-其目標(biāo)是學(xué)習(xí)api,傳感器和自動化-以及家庭制造項目,如信息面板,日常計劃或數(shù)字板,為您的家庭帶來功能和風(fēng)格。

本文編譯自hackster.io

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

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

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