国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
鑰匙要點
我們提到的
>如何將我的Arduino LCD連接到Internet?
>

>我可以在我的Arduino LCD上使用任何API?但是,請記住,某些API可能需要身份驗證,這可能會更復雜。另外,API返回的數(shù)據(jù)需要以您的Arduino可以理解的格式,通常是JSON或XML。 ??>實時更新Arduino LCD上的數(shù)據(jù)需要對API進行定期請求。您可以使用delay()函數(shù)在一定時間內暫停程序的執(zhí)行。例如,如果您想每分鐘更新數(shù)據(jù),則可以在loop()函數(shù)末尾添加延遲(60000)。這將在循環(huán)的下一次迭代之前暫停60000毫秒或一分鐘的程序。

>我如何對我的Arduino LCD和API進行故障排除? >解決Arduino LCD和API的故障排除問題可能具有挑戰(zhàn)性,但是您可以做一些事情。首先,檢查布線并確保您的Arduino正確連接到Internet。其次,使用串行顯示器調試代碼,并查看API的響應。最后,檢查API文檔是否有任何特定要求或限制。
>關于將API與Arduino一起使用的更多資源是什么? Arduino官方網(wǎng)站和論壇是一個不錯的起點。 YouTube,Udacity和Coursera等網(wǎng)站上也有許多在線教程和課程。最后,西蒙·蒙克(Simon Monk)諸如“編程Arduino:開始草圖”之類的書提供了全面的Arduino編程介紹,包括使用API??。
首頁 web前端 js教程 使用node.js在Arduino LCD上顯示W(wǎng)eb API

使用node.js在Arduino LCD上顯示W(wǎng)eb API

Feb 20, 2025 am 08:24 AM

使用node.js在Arduino LCD上顯示W(wǎng)eb API

鑰匙要點

  • >本文介紹了如何使用node.js在Arduino的LCD上顯示W(wǎng)eb API的數(shù)據(jù)。作者以在IoT悉尼聚會上進行隨機抽獎的示例,Arduino LCD設置在Meetup.com event rsvp信息中引入RSVP信息并隨機選擇成員。
  • >
  • 作者使用node.js創(chuàng)建一個腳本,該腳本向Meetup API提出HTTP請求,解析返回的JSON數(shù)據(jù),并在Arduino的LCD上顯示一個隨機選擇的成員名稱。作者還提供了有關如何設置node.js服務器,制作http請求并處理返回數(shù)據(jù)的分步指南。>
  • 作者提到約翰尼五庫用于通過node.js來控制arduino,并且請求模塊用于從node.js服務器向Meetup API發(fā)出HTTP請求。下劃線庫用于解析返回的JSON數(shù)據(jù)。
  • >作者結束時,提出了此設置的其他潛在用途,例如顯示怪異的消息,保留NBA季后賽分數(shù)或從Web API獲取的任何其他數(shù)據(jù)。作者還鼓勵讀者根據(jù)此代碼共享自己的項目。
  • > lcds。他們很有趣。這是通過發(fā)光文字說話時向您的Arduino發(fā)出聲音的最酷方法之一。在本文中,我們將探討如何使用node.js.
  • 從Web API中引入數(shù)據(jù)并在Arduino的LCD上顯示。
>我在悉尼每個月最喜歡的聚會是悉尼的物聯(lián)網(wǎng)聚會。這是一次很棒的聚會(您應該來?。T诿看尉蹠Y束時,RSV的人都會隨機抽獎。我以為是時候以真實的IoT樣式完成了,所以我整理了一個快速的Arduino LCD設置,該設置將在Meetup.com event RSVP Info中提取,然后隨機選擇一個幸運的成員。認為這可能比用帽子繪制名字更容易!

>它也與我在Sitepoint上寫的一系列物品文章相同。我正在探索帶有各種設備的許多不同的物聯(lián)網(wǎng)可能性。上周,我研究了Unity游戲引擎中使用的IoT數(shù)據(jù),在此之前,我研究了如何從Jawbone Up中獲取數(shù)據(jù)。

>

>讓我們開始!

您的arduino素描

我們將在此示例中使用的草圖看起來像:

>這是您在Sparkfun Inventors套件中會發(fā)現(xiàn)的版本的略微修改版本。您會在網(wǎng)上找到其他LCD草圖的其他變體,可以重新排列事物的連接方式,但可以以相同的方式工作。您可能只需要調整下面JavaScript中定義哪個引腳。

>

我們的JavaScript代碼使用node.js在Arduino LCD上顯示W(wǎng)eb API 在我們的node.js javascript文件中,我們包括以下內容:
<span>var express = require('express'),
</span>	app <span>= express(),
</span>	server <span>= require('http').<span>Server</span>(app),
</span>	port <span>= 5000,
</span>	five <span>= require('johnny-five'),
</span>	request <span>= require('request'),
</span>	_ <span>= require('underscore'),
</span>	board <span>= new five<span>.Board</span>(),
</span>	lcd<span>;
</span>
board<span>.on('ready', function() {
</span>	lcd <span>= new five<span>.LCD</span>({
</span>		<span>pins: [12, 11, 5, 4, 3, 2],
</span>		<span>rows: 2,
</span>		<span>cols: 16
</span>	<span>});
</span>
	<span>this.repl.inject({
</span>		<span>lcd: lcd
</span>	<span>});
</span><span>});
</span>
app<span>.get('/chooseMember/:event_id', function(req<span>, resp</span>) {
</span>	<span>request({
</span>		<span>url: 'https://api.meetup.com/2/rsvps?key=474cc9332345ea7d7e135f50653c&event_id='+req.params.event_id,
</span>		<span>json: true
</span>	<span>}, function(error<span>, response, body</span>) {
</span>		<span>var members = _.pluck(body.results, 'member'),
</span>			randomMember <span>= members[_.random(members.length - 1)];
</span>		
		resp<span>.json(randomMember);
</span>
		<span>console.log(randomMember.name);
</span>
		lcd<span>.clear().print(randomMember.name);
</span>	<span>});
</span><span>});
</span>
server<span>.listen(port, function() {
</span>  <span>console.log('Listening on ' + port);
</span><span>});</span>

>逐步設置此此操作

如果您非常了解Node.js,那么大部分代碼已經(jīng)對您來說很有意義。我將解釋每一項,只是為了確保每個人都在同一頁面上,并在我們需要設置的其他任何內容方面提供指導。>

首先,我們設置了Express Server變量,以準備在端口5000上運行LocalHost服務器:>

>然后,我們有一個相當重要的事情要包括約翰尼五。這是NPM庫,它使我們可以訪問通過Node.js.

來控制Arduino的功能。
<span>var express = require('express'),
</span>	app <span>= express(),
</span>	server <span>= require('http').<span>Server</span>(app),
</span>	port <span>= 5000,</span>
在那之后,我們包括請求模塊。我們將使用它來從我們的node.js服務器到METUP API。

要保持非常干凈和簡單,我們將使用下劃線來瀏覽數(shù)據(jù)陣列。
five <span>= require('johnny-five'),</span>

最終兩個變量是板和LCD變量,我們將用來存儲Johnny-Five創(chuàng)建的Arduino對象。
request <span>= require('request'),</span>

我們首先要等待我們的Arduino董事會準備好訪問,Johnny-Five在我們的董事會準備就緒時發(fā)出了“準備”活動。
_ <span>= require('underscore'),</span>

>我們的董事會準備就緒后,我們讓Johnny-Five知道我們已經(jīng)連接了哪種LCD。我們在數(shù)組中定義了從上到下的引腳:
board <span>= new five<span>.Board</span>(),
</span>	lcd<span>;</span>

>我們還定義了LCD有多少行和列。就我而言,它是2×16 LCD。所有這些看起來都這樣:
board<span>.on('ready', function() {</span>

然后,我們有可選的代碼(但要包括在內),這將使我們能夠從命令行運行時從命令行訪問LCD功能(我將在文章后面在操作中顯示此操作):

使用node.js在Arduino LCD上顯示W(wǎng)eb API 然后,我們有一個,只有一個我們已經(jīng)設置的請求。在此請求中,我們期望在URL中有一個事件ID。例如:http:// localhost:5000/choosemember/221960710。訪問事件頁面時,事件ID是您在地址欄中找到的ID:

>

lcd <span>= new five<span>.LCD</span>({
</span>	<span>pins: [12, 11, 5, 4, 3, 2],
</span>	<span>rows: 2,
</span>	<span>cols: 16
</span><span>});</span>
我們的Get請求查找此ID看起來像:

然后,我們進入代碼的復雜位!我們對METUP API的實際HTTP請求。我們通過請求功能訪問此功能。我們在這里傳遞兩件事,我們的HTTP選項和我們的回調功能。
<span>this.repl.inject({
</span>	<span>lcd: lcd
</span><span>});</span>
>我們的HTTP調用選項包含我們的URL和布爾值,以使請求知道我們期望將JSON對象重新回來??雌饋砗苓@樣:

使用node.js在Arduino LCD上顯示W(wǎng)eb API敏銳的觀察者會注意到,我們使用req.params.event_id將事件ID從URL字符串傳遞到請求URL。但是,我還沒有解釋過另一串字符。為了訪問METUP API,您需要一個API密鑰。您可以在https://secure.meetup.com/meetup_api/key/上找到其中之一:

>使用node.js在Arduino LCD上顯示W(wǎng)eb API

>最后,我們獲得了使用返回的JSON數(shù)據(jù)的回調函數(shù)。我一直保持簡單且沒有錯誤處理,但是如果這是一個嚴肅的生產(chǎn)級別的創(chuàng)建 - 添加了錯誤變量的檢查。

>

json輸出,回調將在我們的身體變量中返回,看起來像:

>
<span>var express = require('express'),
</span>	app <span>= express(),
</span>	server <span>= require('http').<span>Server</span>(app),
</span>	port <span>= 5000,
</span>	five <span>= require('johnny-five'),
</span>	request <span>= require('request'),
</span>	_ <span>= require('underscore'),
</span>	board <span>= new five<span>.Board</span>(),
</span>	lcd<span>;
</span>
board<span>.on('ready', function() {
</span>	lcd <span>= new five<span>.LCD</span>({
</span>		<span>pins: [12, 11, 5, 4, 3, 2],
</span>		<span>rows: 2,
</span>		<span>cols: 16
</span>	<span>});
</span>
	<span>this.repl.inject({
</span>		<span>lcd: lcd
</span>	<span>});
</span><span>});
</span>
app<span>.get('/chooseMember/:event_id', function(req<span>, resp</span>) {
</span>	<span>request({
</span>		<span>url: 'https://api.meetup.com/2/rsvps?key=474cc9332345ea7d7e135f50653c&event_id='+req.params.event_id,
</span>		<span>json: true
</span>	<span>}, function(error<span>, response, body</span>) {
</span>		<span>var members = _.pluck(body.results, 'member'),
</span>			randomMember <span>= members[_.random(members.length - 1)];
</span>		
		resp<span>.json(randomMember);
</span>
		<span>console.log(randomMember.name);
</span>
		lcd<span>.clear().print(randomMember.name);
</span>	<span>});
</span><span>});
</span>
server<span>.listen(port, function() {
</span>  <span>console.log('Listening on ' + port);
</span><span>});</span>

我們通過在下劃線中使用_.pluck()函數(shù)來濾除很多。這將有助于我們專注于API的重要一點 - RSV的成員。 _.pluck()函數(shù)通過結果陣列,僅從每個成員信息中獲取成員信息。

>
<span>var express = require('express'),
</span>	app <span>= express(),
</span>	server <span>= require('http').<span>Server</span>(app),
</span>	port <span>= 5000,</span>
然后,我們使用_.members()下劃線函數(shù)從結果數(shù)組中隨機選擇一個成員。

five <span>= require('johnny-five'),</span>
>我們通過Express Server返回該數(shù)據(jù)作為對GET請求的JSON響應,并在控制臺中記錄名稱,以便我們可以查看選擇誰:

然后,我們使用LCD Johnny-Five對象,我們之前設置的對象將成員的名稱打印到我們的LCD上。我們首先使用lcd.clear()清除當前所有內容的LCD,然后使用lcd.print()打印出名稱字符。
request <span>= require('request'),</span>

>當您運行此操作時,您會注意到一些長名將被切斷,而不是包裹到另一行。如果您想將物品包裹在第二行上,請嘗試將您的randommember分開。名稱為兩個16個字符字符串,打印第一個字符串,然后使用lcd.cursor(1,0);在打印第二條之前,移至第二行。就我而言,不需要,因為我們真正需要的就是能夠分辨出繪制誰的名字 - 一些缺少的字符通常不會在這里引起問題。

>
_ <span>= require('underscore'),</span>
在您的arduino上跑步

>我們已經(jīng)準備好了node.js代碼?,F(xiàn)在,連接您的arduino,并確保已上載了標準firmata素描:

>我們還需要確保已經(jīng)整理了所有依賴項。我的軟件包。json文件看起來像:

使用node.js在Arduino LCD上顯示W(wǎng)eb API

隨時可以將其適應您自己的項目,您想要的主要是這些依賴性。

board <span>= new five<span>.Board</span>(),
</span>	lcd<span>;</span>
>然后,一旦完成了一個軟件包。JSON文件,打開控制臺,然后轉到代碼的位置。運行這個出色的命令:

之后是一個:

>
board<span>.on('ready', function() {</span>

>在該運行中,您現(xiàn)在應該能夠訪問http:// localhost:5000/choosemember/221960710(當然可以替換自己的事件ID),結果您會出現(xiàn)隨機的RSVP:

lcd <span>= new five<span>.LCD</span>({
</span>	<span>pins: [12, 11, 5, 4, 3, 2],
</span>	<span>rows: 2,
</span>	<span>cols: 16
</span><span>});</span>
如果您再次運行它,將會出現(xiàn)新的RSVP。如果一切順利,這些名稱應該出現(xiàn)在您的Arduino的LCD上!

>使用node.js在Arduino LCD上顯示W(wǎng)eb API

我們提到的

>我們在Node.js Server中提供了一些代碼。這樣做的是,您可以在node.js服務器運行時從終端內運行命令,以設置LCD屏幕上顯示的內容:

> 使用node.js在Arduino LCD上顯示W(wǎng)eb API

如果我們輸入lcd.print(),我們可以得到一些魔術:>

使用node.js在Arduino LCD上顯示W(wǎng)eb API好吧……我們的信息至少幾乎很合適!

>

使用node.js在Arduino LCD上顯示W(wǎng)eb API結論

>我們成功地在我們的LCD上出現(xiàn)了活動組的隨機選擇!可以將同樣的想法應用于那里的任何其他API,只需調整請求調用以及如何處理數(shù)據(jù)即可。在LCD上留下怪異的郵件供室友,請保留最新的NBA季后賽分數(shù)或其他任何您喜歡的東西!

>

根據(jù)此代碼使某些有趣的事情?在評論中留下便條并分享,我很想看到它!

>

經(jīng)常詢問有關Arduino LCD上的Web API的問題(常見問題解答)

>如何將我的Arduino LCD連接到Internet?

>將您的Arduino LCD連接到Internet需要像ESP8266這樣的Wi-Fi模塊。該模塊允許您的Arduino連接到Wi-Fi網(wǎng)絡,并使用HTTP發(fā)出簡單的數(shù)據(jù)請求。您需要使用SPI接口將ESP8266連接到Arduino板。連接后,您可以使用ESP8266WIFI庫來管理Wi-Fi連接和ESP8266HTTPCLCCLIENT庫來制作HTTP請求。

>

api在arduino lcd中的作用是什么? (應用程序編程接口)是一組規(guī)則,允許不同的軟件應用程序相互通信。在Arduino LCD的背景下,API用于從Internet獲取數(shù)據(jù)。這些數(shù)據(jù)可以是天氣更新,股價甚至您自己的自定義數(shù)據(jù)中的任何內容。 API獲取此數(shù)據(jù)并將其發(fā)送給您的Arduino板,然后在LCD上顯示它您的Arduino LCD上的API涉及幾個步驟。首先,您需要使用Wi-Fi模塊將Arduino連接到Internet。然后,您需要使用HTTP協(xié)議向API提出請求。 API將使用請求的數(shù)據(jù)響應,然后您可以在LCD上解析并顯示它們。 LiquidCrystal庫可用于管理LCD顯示。

>

>我可以在我的Arduino LCD上使用任何API?但是,請記住,某些API可能需要身份驗證,這可能會更復雜。另外,API返回的數(shù)據(jù)需要以您的Arduino可以理解的格式,通常是JSON或XML。 ??>實時更新Arduino LCD上的數(shù)據(jù)需要對API進行定期請求。您可以使用delay()函數(shù)在一定時間內暫停程序的執(zhí)行。例如,如果您想每分鐘更新數(shù)據(jù),則可以在loop()函數(shù)末尾添加延遲(60000)。這將在循環(huán)的下一次迭代之前暫停60000毫秒或一分鐘的程序。

>

>在將API與Arduino一起使用Arduino時,將API與Arduino一起使用API??是什么限制很多可能性,存在一些局限性。首先,Arduino板的內存有限,在處理大量數(shù)據(jù)時,這可能是一個問題。其次,并非所有API都可以免費使用,有些API可能具有使用限制。最后,制作http請求和解析數(shù)據(jù)可能很復雜,需要對編程和網(wǎng)絡進行良好的了解。

>

>我可以與其他Arduino組件一起使用API??嗎?

是的,是的,可以與任何API一起使用??梢赃B接到Internet的Arduino組件。這不僅包括LCD,還包括LED,電動機和其他傳感器。該過程是相同的:Arduino向API提出請求,接收數(shù)據(jù)并使用此數(shù)據(jù)來控制組件。

>

>我如何對我的Arduino LCD和API進行故障排除? >解決Arduino LCD和API的故障排除問題可能具有挑戰(zhàn)性,但是您可以做一些事情。首先,檢查布線并確保您的Arduino正確連接到Internet。其次,使用串行顯示器調試代碼,并查看API的響應。最后,檢查API文檔是否有任何特定要求或限制。

>我可以使用Arduino LCD和API來創(chuàng)建自己的項目嗎?使用Arduino LCD和API,您可以創(chuàng)建各種項目。例如,您可以創(chuàng)建一個顯示實時天氣數(shù)據(jù)的氣象站,一個顯示最新股價的股票股票或根據(jù)Internet數(shù)據(jù)控制設備的家庭自動化系統(tǒng)。

>關于將API與Arduino一起使用的更多資源是什么? Arduino官方網(wǎng)站和論壇是一個不錯的起點。 YouTube,Udacity和Coursera等網(wǎng)站上也有許多在線教程和課程。最后,西蒙·蒙克(Simon Monk)諸如“編程Arduino:開始草圖”之類的書提供了全面的Arduino編程介紹,包括使用API??。

以上是使用node.js在Arduino LCD上顯示W(wǎng)eb API的詳細內容。更多信息請關注PHP中文網(wǎng)其他相關文章!

本站聲明
本文內容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

Java vs. JavaScript:清除混亂 Java vs. JavaScript:清除混亂 Jun 20, 2025 am 12:27 AM

Java和JavaScript是不同的編程語言,各自適用于不同的應用場景。Java用于大型企業(yè)和移動應用開發(fā),而JavaScript主要用于網(wǎng)頁開發(fā)。

如何在JS中與日期和時間合作? 如何在JS中與日期和時間合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和時間處理需注意以下幾點:1.創(chuàng)建Date對象有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設置時間信息可用get和set方法,注意月份從0開始;3.手動格式化日期需拼接字符串,也可使用第三方庫;4.處理時區(qū)問題建議使用支持時區(qū)的庫,如Luxon。掌握這些要點能有效避免常見錯誤。

為什么要將標簽放在的底部? 為什么要將標簽放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScript與Java:開發(fā)人員的全面比較 JavaScript與Java:開發(fā)人員的全面比較 Jun 20, 2025 am 12:21 AM

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)

什么是在DOM中冒泡和捕獲的事件? 什么是在DOM中冒泡和捕獲的事件? Jul 02, 2025 am 01:19 AM

事件捕獲和冒泡是DOM中事件傳播的兩個階段,捕獲是從頂層向下到目標元素,冒泡是從目標元素向上傳播到頂層。1.事件捕獲通過addEventListener的useCapture參數(shù)設為true實現(xiàn);2.事件冒泡是默認行為,useCapture設為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委托,提高動態(tài)內容處理效率;5.捕獲可用于提前攔截事件,如日志記錄或錯誤處理。了解這兩個階段有助于精確控制JavaScript響應用戶操作的時機和方式。

JavaScript:探索用于高效編碼的數(shù)據(jù)類型 JavaScript:探索用于高效編碼的數(shù)據(jù)類型 Jun 20, 2025 am 12:46 AM

javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)

如何減少JavaScript應用程序的有效載荷大??? 如何減少JavaScript應用程序的有效載荷大小? Jun 26, 2025 am 12:54 AM

如果JavaScript應用加載慢、性能差,問題往往出在payload太大,解決方法包括:1.使用代碼拆分(CodeSplitting),通過React.lazy()或構建工具將大bundle拆分為多個小文件,按需加載以減少首次下載量;2.移除未使用的代碼(TreeShaking),利用ES6模塊機制清除“死代碼”,確保引入的庫支持該特性;3.壓縮和合并資源文件,啟用Gzip/Brotli和Terser壓縮JS,合理合并文件并優(yōu)化靜態(tài)資源;4.替換重型依賴,選用輕量級庫如day.js、fetch

JavaScript模塊上的確定JS綜述:ES模塊與COMPORJS JavaScript模塊上的確定JS綜述:ES模塊與COMPORJS Jul 02, 2025 am 01:28 AM

ES模塊和CommonJS的主要區(qū)別在于加載方式和使用場景。1.CommonJS是同步加載,適用于Node.js服務器端環(huán)境;2.ES模塊是異步加載,適用于瀏覽器等網(wǎng)絡環(huán)境;3.語法上,ES模塊使用import/export,且必須位于頂層作用域,而CommonJS使用require/module.exports,可在運行時動態(tài)調用;4.CommonJS廣泛用于舊版Node.js及依賴它的庫如Express,ES模塊則適用于現(xiàn)代前端框架和Node.jsv14 ;5.雖然可混合使用,但容易引發(fā)問題

See all articles