検索
ホームページウェブフロントエンドjsチュートリアルnode.jsを使用してArduino LCDにWeb APIを表示します

node.jsを使用してArduino LCDにWeb APIを表示します

キーテイクアウト

  • この記事では、node.jsを使用してArduinoのLCDにWeb APIからデータを表示する方法について説明します。著者は、IoT Sydney Meetupでランダム賞の抽選の例を使用しています。ここでは、Arduino LCDセットアップがMeetup.comイベントRSVP情報をプルし、メンバーをランダムに選択します。
  • 著者はnode.jsを使用して、Meetup APIにHTTP要求を行うスクリプトを作成し、返されたJSONデータを解析し、ArduinoのLCDにランダムに選択されたメンバーの名前を表示します。著者はまた、node.jsサーバーをセットアップし、HTTPリクエストを作成し、返されたデータを処理する方法に関する段階的なガイドを提供します。
  • 著者は、Johnny-Five Libraryを使用してnode.jsを介してArduinoを制御するために使用され、要求モジュールを使用してnode.jsサーバーからMeetup APIへのHTTP要求を行うと述べています。アンダースコアライブラリは、返されたJSONデータを解析するために使用されます。
  • 著者は、不気味なメッセージの表示、NBAプレーオフスコアのタブを維持する、またはWeb APIから取得したその他のデータなど、このセットアップの他の潜在的な用途を提案することで締めくくります。著者はまた、読者がこのコードに基づいて自分のプロジェクトを共有することを奨励しています。
  • lcds。彼らは楽しいです。それは、輝くテキストを通して話すように、あなたのarduinoに声をもたらす最もクールな方法の1つです。この記事では、node.jsを使用してArduinoのLCDにWeb APIからデータを持ち込む方法を検討します。
  • ここシドニーでの毎月の私のお気に入りのミートアップは、IoT Sydney Meetupです。それは素晴らしいミートアップです(あなたは一緒に来るべきです!)。すべてのミートアップの終わりには、RSVPedがランダムな賞品の魅力があります。これが真のIoTスタイルで行われた時期だと思ったので、Meetup.comイベントRSVP情報を引き込み、ランダムにラッキーメンバーを選択するクイックArduino LCDセットアップをまとめました。帽子から名前を描くよりも、それは素晴らしい驚きであり、はるかに簡単だと思った!
  • また、ここで書いている現在の一連のモノの記事にもきちんと落ちます。さまざまなデバイスを使用して、さまざまなIoTの可能性を調査しています。先週、UnityゲームエンジンでIoTデータの使用を検討しましたが、その前に、Jawboneからデータを引き上げる方法を調べました。
始めましょう!

あなたのarduinoスケッチ

この例で使用するスケッチはそうです:

SparkFun Inventorsキットにあるもののわずかに変更されたバージョンです。物事が接続されているが同じように機能する方法を再配置するオンラインで見つけるLCDスケッチには、他のバリエーションがあります。以下のJavaScriptで定義するピンを調整する必要があるかもしれません。

javaScriptコード

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にかなり締められている場合、そのコードの多くはすでに意味があります。全員が同じページにいることを確認し、セットアップする必要がある他のものについてガイダンスを提供するために、各ビットを説明します。

最初に、ポート5000でローカルホストサーバーを実行する準備をしてExpressサーバー変数を設定します:

<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を介してArduinoを制御するために必要な機能へのアクセスを提供するNPMライブラリです。

その後、リクエストモジュールを含めます。これを使用して、node.jsサーバーからMeetup APIにHTTPリクエストを作成します。

five <span>= require('johnny-five'),</span>
物事を非常に清潔でシンプルに保つために、アンダースコアを使用してデータの配列を調べます。

最後の2つの変数は、Johnny-Fiveが作成するArduinoオブジェクトを保存するために使用するボードとLCD変数です。
request <span>= require('request'),</span>

Arduinoボードがアクセスできるようになるのを待つことから始めます。ジョニーファイブは、ボードが準備ができているときに「準備ができた」イベントを送信します。

_ <span>= require('underscore'),</span>
ボードが準備ができたら、ジョニーファイブにどのようなLCDを接続したかを知らせました。アレイでピンを上から下に定義します:

また、LCDが持っている行と列の数を定義します。私の場合、それは2×16 LCDです。これはすべてそうです:
board <span>= new five<span>.Board</span>(),
</span>	lcd<span>;</span>

それから、オプションのコードがあります(ただし、含めるのが便利です)。これにより、実行中のコマンドラインからLCD関数にアクセスできます(記事の後半でこれを説明します)board.on('ready', function() {

それから、設定した唯一のリクエストがあります。このリクエストでは、URL内のイベントIDが期待されています。例:http:// localhost:5000/choosemember/221960710。イベントIDは、イベントのページにアクセスするときにアドレスバーにあるものです。 node.jsを使用してArduino LCDにWeb APIを表示します

このIDを探しているGet Requestは次のように見えます:

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>

その後、コードの複雑なビットに到達します! Meetup APIへの実際のHTTP要求。リクエスト関数を介してこれにアクセスします。ここでは、リクエストのHTTPオプションとコールバック関数の2つのことを渡します。

HTTPコールのオプションには、URLとブール値が含まれており、JSONオブジェクトを期待していることをリクエストに知らせます。これはそうです:
<span>this.repl.inject({
</span>	<span>lcd: lcd
</span><span>});</span>

鋭いオブザーバーは、req.params.event_idを使用してURL文字列からリクエストURLにイベントIDを渡すことに気付くでしょう。しかし、そこには別の一連の文字列がありますが、私は説明していません。 Meetup APIにアクセスするには、APIキーが必要です。これらのいずれかをhttps://secure.meetup.com/meetup_api/key/:node.jsを使用してArduino LCDにWeb APIを表示しますで見つけることができますnode.jsを使用してArduino LCDにWeb APIを表示します

最後に、返されたJSONデータを使用するコールバック関数があります。エラー処理なしでシンプルに保ちましたが、これが深刻な生産レベルの作成である場合は、エラー変数のチェックを追加します。

コールバックが私たちの体の変数に戻る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()関数を使用して、その多くを除外します。これは、APIの重要なビット、つまりRSVPeedのメンバーに集中するのに役立ちます。 _.pluck()関数は結果アレイを通過し、各情報のみをメンバー情報のみを取得します。

次に、_.members()アンダースコア関数を使用して、結果の配列からメンバーをランダムに選択します。
<span>var express = require('express'),
</span>	app <span>= express(),
</span>	server <span>= require('http').<span>Server</span>(app),
</span>	port <span>= 5000,</span>

getリクエストに対するJSON応答としてExpressサーバーを介してそのデータを返し、コンソールの名前を記録して、誰が選ばれたかを確認できます。

five <span>= require('johnny-five'),</span>
次に、以前に設定したLCD Johnny-Fiveオブジェクトを使用して、メンバーの名前をLCDに印刷します。 LCD.CLEAR()を使用して、現在その上にあるもののLCDをクリアしてから、LCD.Print()を使用して名前を印刷します。

これを実行すると、他の行に包むのではなく、長い名前が遮断されることがわかります。物事を2行目にラップしたい場合は、randommmmber.name.nameを2つの16文字の文字列に分けて、最初の文字列を印刷してから、lcd.cursor(1、0)を使用してください。 2番目の行を印刷する前に2番目の行に移動します。私の場合、私たちが本当に必要なのは誰の名前が描かれているかを伝えることができるので、それは必要ではありませんでした - いくつかの欠落したキャラクターは通常、ここで問題を引き起こしません。
request <span>= require('request'),</span>
arduinoで実行する

を実行します

node.jsコードの準備が整いました。次に、Arduinoを接続し、StandardFirmataのスケッチがアップロードされていることを確認してください:
_ <span>= require('underscore'),</span>

また、すべての依存関係が整理されていることを確認する必要があります。私のpackage.jsonファイルは次のようになります:

それを自分のプロジェクトに自由に適応させてください、あなたが望む主なことはそれらの依存関係です。

その後、package.jsonファイルが整理されたら、コンソールを開いてコードの場所に移動します。この素晴らしいコマンドを実行します:node.jsを使用してArduino LCDにWeb APIを表示します

これに続いて、これに続いて:

board <span>= new five<span>.Board</span>(),
</span>	lcd<span>;</span>
その実行で、http:// localhost:5000/choosemember/221960710(もちろん独自のイベントIDを置き換える)にアクセスできるようになり、結果としてランダムなRSVPが表示されます。 >

もう一度実行すると、新しいRSVPが表示されます。すべてが順調に進んでいる場合、これらの名前はあなたのArduinoのLCDに表示されるはずです!node.jsを使用してArduino LCDにWeb APIを表示します

私たちが言及したことを再生します

node.jsサーバーにthis.repl.Injectを言ったコードを少し含めました。これができることは、node.jsサーバーがLCD画面に表示されている内容を設定するために実行中に端末内からコマンドを実行できることです。

node.jsを使用してArduino LCDにWeb APIを表示します lcd.print()を入力すると、魔法が起こることができます:

node.jsを使用してArduino LCDにWeb APIを表示しますまあ…私たちのメッセージは少なくともほとんど!

node.jsを使用してArduino LCDにWeb APIを表示します結論

LCDに登場するイベントグループのランダムに選択されたメンバーを正常に獲得しました!この同じアイデアは、他の多くのAPIに適用できます。リクエストコールとデータの処理方法を調整するだけです。ハウスメイトのLCDに不気味なメッセージを残し、最新のNBAプレーオフスコアなどのタブを監視してください。

このコードに基づいて何か楽しいものを作りますか?コメントにメモを残して共有してください、私はそれを見たいです!

arduino lcd

のWeb APIに関するよくある質問(FAQ)

Arduino LCDをインターネットに接続するにはどうすればよいですか?

​​

Arduino LCDをインターネットに接続するには、ESP8266のようなWi-Fiモジュールが必要です。このモジュールにより、ArduinoはWi-Fiネットワークに接続し、HTTPを使用して簡単なデータリクエストを作成できます。 SPIインターフェイスを使用して、ESP8266をArduinoボードに接続する必要があります。接続したら、ESP8266Wifiライブラリを使用してWi-Fi接続とESP8266HTTPCLIENTライブラリを管理してHTTPリクエストを作成できます。 (アプリケーションプログラミングインターフェイス)は、異なるソフトウェアアプリケーションが相互に通信できるようにする一連のルールです。 Arduino LCDのコンテキストでは、APIを使用してインターネットからデータを取得します。このデータは、天気の更新、株価、または独自のカスタムデータなど、何でもかまいません。 APIはこのデータを取得し、Arduinoボードに送信します。これはLCDに表示されます。 Arduino LCDのAPIには、いくつかのステップが含まれます。まず、Wi-Fiモジュールを使用してArduinoをインターネットに接続する必要があります。次に、HTTPプロトコルを使用してAPIにリクエストを行う必要があります。 APIは要求されたデータで応答し、LCDで解析して表示できます。 LiquidCrystalライブラリを使用して、LCDディスプレイを管理できます。

arduino lcdでAPIを使用できますか?

はい、HTTPプロトコルをサポートする限り、Arduino LCDでAPIを使用できます。ただし、一部のAPIには認証が必要になる場合があることに留意してください。これは、セットアップするのが少し複雑になる場合があります。また、APIによって返されたデータは、Arduinoが理解できる形式で、通常はJSONまたはXMLである必要があります。 🎜> Arduino LCDのデータをリアルタイムで更新するには、APIに定期的にリクエストする必要があります。 Delay()関数を使用して、プログラムの実行を一定の時間一時停止できます。たとえば、毎分データを更新する場合は、loop()関数の最後に遅延(60000)を追加できます。これにより、ループの次の反復の前にプログラムが60000ミリ秒、または1分間、ARDUINOでAPIを使用することの制限は何ですか?多くの可能性、いくつかの制限があります。第一に、Arduinoボードにはメモリが限られているため、大量のデータを処理する場合に問題になる可能性があります。第二に、すべてのAPIが自由に使用できるわけではなく、使用制限がある場合もあります。最後に、HTTPリクエストと解析データを作成することは複雑で、プログラミングとネットワーキングを十分に理解する必要があります。インターネットに接続できるArduinoコンポーネント。これには、LCDだけでなく、LED、モーター、その他のセンサーも含まれます。プロセスは同じです:ArduinoはAPIにリクエストを行い、データを受信し、このデータを使用してコンポーネントを制御します。 > Arduino LCDとAPIのトラブルシューティングの問題は困難な場合がありますが、できることがいくつかあります。まず、配線を確認し、Arduinoがインターネットに適切に接続されていることを確認してください。次に、シリアルモニターを使用してコードをデバッグし、APIからの応答を確認します。最後に、特定の要件または制限についてはAPIドキュメントを確認してください。

Arduino LCDとAPIを使用して、独自のプロジェクトを作成できますか? Arduino LCDとAPIを使用して、幅広いプロジェクトを作成できます。たとえば、リアルタイムの気象データを表示する気象観測所、最新の株価を表示するストックティッカー、またはインターネットからのデータに基づいてデバイスを制御するホームオートメーションシステムを作成できます。

ArduinoでAPIを使用することについて詳しく知るためのいくつかの良いリソースは何ですか?

ArduinoでAPIの使用について詳しく知るために利用できるリソースがたくさんあります。 Arduinoの公式ウェブサイトとフォーラムは、開始するのに最適な場所です。また、YouTube、Udacity、CourseraなどのWebサイトで利用できるオンラインチュートリアルやコースもたくさんあります。最後に、Simon Monkの「プログラミングArduino:Getering of Stackes」などの本は、APIを使用するなど、Arduinoプログラミングの包括的な紹介を提供します。

以上がnode.jsを使用してArduino LCDにWeb APIを表示しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptの起源:その実装言語の調査JavaScriptの起源:その実装言語の調査Apr 29, 2025 am 12:51 AM

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

舞台裏:JavaScriptをパワーする言語は何ですか?舞台裏:JavaScriptをパワーする言語は何ですか?Apr 28, 2025 am 12:01 AM

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

PythonとJavaScriptの未来:傾向と予測PythonとJavaScriptの未来:傾向と予測Apr 27, 2025 am 12:21 AM

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

Python vs. JavaScript:開発環境とツールPython vs. JavaScript:開発環境とツールApr 26, 2025 am 12:09 AM

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

JavaScriptはCで書かれていますか?証拠を調べるJavaScriptはCで書かれていますか?証拠を調べるApr 25, 2025 am 12:15 AM

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

JavaScriptの役割:WebをインタラクティブでダイナミックにするJavaScriptの役割:WebをインタラクティブでダイナミックにするApr 24, 2025 am 12:12 AM

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScript:接続が説明しましたCおよびJavaScript:接続が説明しましたApr 23, 2025 am 12:07 AM

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

Webサイトからアプリまで:JavaScriptの多様なアプリケーションWebサイトからアプリまで:JavaScriptの多様なアプリケーションApr 22, 2025 am 12:02 AM

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません