- Node.jsとは何ですか?
- 必要なコンポーネント
- 回路図
- Node.jsフレームワークの設定
- Johnny-Fiveライブラリのインストール
- ArduinoとNode.jsでLEDが点滅
- ArduinoとNode.jsWebサーバーを使用したLEDの明るさの制御
さまざまなマイクロコントローラーとさまざまなプログラミング言語を使用してLEDを点滅させる例を数多く見てきました。今日は、非常に人気のあるJavaScriptフレームワークNode.jsを使用して、 ArduinoUnoに接続されているLEDを制御します。また、Node.jsを使用して、Arduinoを使用してWebページからLEDの明るさを制御します。いくつかの調整とESP8266の使用により、これをIoTプロジェクトに変換して、どこからでもLEDを制御できます。
Node.jsとは何ですか?
Node.jsのは、 Google ChromeのJavaScriptのV8エンジンの上に構築され広く使われているJavaScriptベースのフレームワークであり、そのような単一ページのアプリケーション、ビデオストリーミングサイト等のI / O集中型のWebアプリケーションを開発する際に適用されます
LEDを制御するためのNode.jsとRaspberryPiの使用開始については、以前に有益なチュートリアルを実行しました。このチュートリアルでは、同様のアプローチに従います。つまり、LEDは次の2つの方法を使用して制御されます。
- Node.jsフレームワークでJavaScriptコードを記述することにより、単純なLEDが点滅します。
- Node.jsフレームワークと任意のブラウザーからのWebインターフェイスを使用したLED輝度制御: Arduino UNOはWebサーバーとして機能し、HTMLWebページはPCまたはラップトップでホストされます。
必要なコンポーネント
ハードウェア:
- ArduinoUNOボード
- 導いた
- 抵抗器
ソフトウェア:
- Arduino IDE:スケッチをArduinoUNOボードにアップロードするため。
- Firmata:コンピューター、スマートフォンなどのソフトウェアからさまざまなマイクロコントローラーと通信するためのプロトコルです。Firmataファームウェアは、任意のマイクロコントローラーボード(Arduino、Teensyなど)にロードでき、任意のラップトップ、PC、またはスマートフォンと通信できます。FirmataLibraryにはArduinoIDEが付属しているため、どこからでもダウンロードする必要はありません。pyFirmataを使用してRaspberryPiでArduinoを制御するチュートリアルを行いました。
- Johnny-Five: Johnny-Fiveは、JavaScriptでコードを記述するために使用され、Arduinoボードとコンピューター間のブリッジを作成するために使用されるJavaScriptベースのロボット工学およびIoTプラットフォームです。Johnny-Fiveは、Arduino UNO、NANO、ProminiなどのさまざまなArduino互換ボードでテストされています。このチュートリアルでは、すべての機能を使用するためにJohnny-Fiveライブラリをダウンロードする必要があります。インストールガイドについては、このチュートリアルの後半で説明します。
回路図
回路図は非常に基本的なもので、LEDをArduinoに接続するだけです。Node.jsフレームワークの設定
コーディングと開発を開始する前に、Node.jsをダウンロードしてセットアップする必要があります。Node.js環境をダウンロードするには、簡単な手順に従ってください。
ステップ1:-公式ウェブサイトからNode.jsの.exeファイルをダウンロードします。
ステップ2:-。exeを実行し、インストーラーで指定された指示に従います。
ステップ3: -Node.jsドキュメントで推奨されているように、またNode.jsのすべての機能を使用するために、コンピューターを再起動します
手順4:-ノードがインストールされているかどうかを確認するには、コマンドプロンプトを開き、Node –vと入力します。
ステップ5: -Node.jsがインストールされていることを示すNode.jsバージョンが表示されます。
Johnny-Fiveライブラリのインストール
Node.jsをダウンロードした後、ドキュメントに「LED_Control」という名前の新しいフォルダーを作成して、すべてのプロジェクトファイルを1か所に保存します。すべてのプロジェクトファイルは「LED_Control」フォルダに保存されます。次に、「LED_Control」フォルダにあるJohnny-Fiveライブラリをダウンロードします。ダウンロードするには、以下の手順に従ってください。
ステップ1:-コマンドプロンプトを開く
ステップ2:-「cd」コマンドに従って、「LED_Control」フォルダに移動します。
ステップ3:-コマンドを実行します ' npm install johnny-five'
ステップ4:-これにより、Johnny-Fiveのすべての依存関係がインストールされます。
ステップ5: -LEDの明るさを制御するためにこのチュートリアルで使用される必要なライブラリもインストールします。ここで使用されるライブラリは3つあります。
- Express:
- socket.i o:WebSocketsライブラリ
- serialpor t:シリアルポートラッパー
ステップ5:-以下のコマンドを1つずつ実行して、これら3つのライブラリをインストールします。
npm install express npm install socket.io npm install serialport
前に述べたように、プロジェクトは2つの部分に分かれています。
- まず、 Node.jsでLEDを点滅させるArduino
- 次に、 ArduinoとNode.jsを使用してWebインターフェイスからLEDの明るさを制御します。
ArduinoとNode.jsでLEDが点滅
LEDを点滅させるには、Arduinoをコンピューターと通信するように設定する必要があります。
LEDを点滅させるためのArduinoUNOのセットアップ:
Arduino UNOがラップトップからLEDを制御するコマンドを受け入れるようにするには、FirmataファームウェアをArduinoUNOにロードする必要があります。Firmataファームウェアをロードするには、次の簡単な手順に従ってください。
- 接続USBケーブルを使用して、ArduinoのUNOを
- Arduino IDEを開き、ツールからArduino UNOボードを選択します(他のボードを使用している場合は、それぞれを選択します)。
- 接続されているArduinoUNOのそれぞれのCOMポートを選択します
- 次に、[メニュー]-> [ファイル]-> [例]-> [ Firmata ]-> [StandardFirmata]を使用してFirmataスケッチを見つけます。
- 「ファイル」-> 「アップロード」に移動して、「StandardFirmata」スケッチをアップロードします。
これにより、FirmataSketchがArduinoUNOに読み込まれ、ArduinoUNOはコンピューターからのコマンドを受け入れる準備が整います。
LEDを点滅させるためのNode.jsプログラムの作成:
Node.jsプログラムを作成するには、任意のテキストエディター(メモ帳、メモ帳++など)を開き、このチュートリアルの最後に添付されている「blink_led」コードを貼り付けて、拡張子「.js」を付けて保存します。つまり(blink_led.js)以前に作成した「LED_Control」フォルダにあります。flash_led.jsコードファイルで重要な手順について説明します。
LEDが接続されているマイクロコントローラのピンを最初に定義します。この例では、LEDはArduinoUNOのピン5に接続されています。Node.jsの「var」は変数宣言を表します。
var led_pin = 5;
ジョニー・5 モジュールが含まれる必要があるとボードを選択する必要があります。Node.jsのモジュールはライブラリです。関数 ' require() 'はモジュールにアクセスします。
var johnny_five = require( "johnny-five"); var arduino_board = new johnny_five.Board();
console.log文はprint文に似ており、それはメッセージを出力します。また、LEDピンは出力モードに設定され、定義された遅延がLEDの点滅に与えられます。
console.log( "LEDが点滅を開始しました!"); var led = new johnny_five.Led(led_pin); led.blink(100);
プログラムを実行するには、以下の手順に従います。
- コマンドプロンプトを開く
- 「cd」コマンドに従って「LED_Control」フォルダを見つけます
- 'Nodeled_blink.js'コマンドを実行します。正常に実行されると、「LEDが点滅を開始しました!」と表示されます。下の画像に示すように。
- LEDはArduinoUNOピン5で点滅し始めます。
- これで、チュートリアルの最初の部分、つまりNode.jsでLEDを点滅させることは終了です。
ArduinoとNode.jsWebサーバーを使用したLEDの明るさの制御
Node.jsでLEDを点滅させるのと同様に、このセクションにもいくつかの部分があります。つまり、Arduino UNOのセットアップ、Webインターフェイスのセットアップ、Node.jsプログラムの作成です。
LEDの明るさを制御するためのArduinoUNOのセットアップ:
Arduino UNOをセットアップするには、スケッチ「 arduino_control.ino 」を ArduinoUNO ボードにアップロードするだけです。これにより、Arduinoボードがセットアップされます。ここからHTMLファイルを含む完全なコードをダウンロードできます。「 arduino_control.ino」 コードには、次の重要な手順が含まれています。
当初、ボーレートは9600に設定されています。
Serial.begin(9600);
シリアルポートは常に着信バイトを探し、そのバイトはPWMピンであるピン5に書き込まれます。
while(!Serial.available()); AnalogWrite(5、Serial.read());
それでおしまい。これにより、バイトをPWMピンにラッチするようにArduinoが設定され、LEDの明るさが変更されます。
Webインターフェイスの設定:
Webインターフェイスを使用してLEDの明るさを制御するために、ブラウザにインターフェイスを持つように1つの小さなHTMLコードが記述されています。インターフェイスを使用するには、以下の簡単な手順に従います。
- 前に作成した「LED_Control」フォルダ内に「public」という名前の新しいフォルダを作成します。
- 次に、「index.html」ファイルと「style.css」ファイルをダウンロードし、上記の最初の手順で作成した「public」フォルダー内に両方のファイルを移動します。ここからファイルをダウンロードできます。
これにより、Node.jsとArduinoを使用してLEDの明るさを制御するためのスライダーがWebページに作成されます。
WebページからLEDを制御することは興味深いことであり、Webサーバーを作成し、WebサーバーでWebページをホストすることにより、他のマイクロコントローラーで実行できます。ここですべてのWebサーバー関連プロジェクトを確認してください。
LEDの明るさを制御するNode.jsプログラムの作成:
次のステップは、Node.jsを使用して「brightness_control.js」スケッチを作成し、コードを実行することです。コードの実行は、Node.jsでLEDを点滅させるのと少し似ています。
Node.jsプログラムを作成するには、任意のテキストエディター(メモ帳、メモ帳++など)を開き、このチュートリアルの最後に添付されている「brightness_control」コードを貼り付けて、拡張子「.js」を付けて保存します。つまり(brightness_control.js)以前に作成した「LED_Control」フォルダにあります。ここからコードをダウンロードすることもできます。
Blink Led Node.jsプログラムと同様に、このセクションでもモジュール(ライブラリ)を使用します。'express'、 'http'、および 'serialport'モジュールを含めます。
var express = require( 'express'); app = express(); server = require( 'http')。createServer(app); io = require( 'socket.io')。listen(server); var SerialPort = require( "serialport")//。SerialPort
次に、COMポートとボーレートを設定します。Windowsでは、常に番号の拡張子が付いたCOM(COM6、COM4、COM24など)になるため、必要に応じて「/」の後に以下を設定してください。また、buadrateを設定します。
var serialPort = new SerialPort( "/ COM4"、{baudRate:9600});
ポート8080でサーバーのリッスンを開始します。
server.listen(8080);
最初は明るさを0に設定します。次に、WebSocketモジュールであるsocketsモジュールを使用して輝度データをIOにラッチします。データは、ソケットプロトコルを使用してWebインターフェイスで受信します。
io.sockets.on( 'connection'、function(socket){ socket.on( 'led'、function(data){ brightness = data.value; var buf = new Buffer(1); buf.writeUInt8(brightness、0 ); serialPort.write(buf);
次に、ソケットから取得したLED輝度値をLEDピンに放出します。
io.sockets.emit( 'led'、{値:明るさ}); }); socket.emit( 'led'、{値:明るさ}); });
デバッグするために、最後にprintステートメントを追加します。Console.logは、Node.jsのprintステートメントです。
console.log( "Webサーバーが開始されました。ブラウザで「http:// localhost:8080」に移動します。");
次に、以下の手順に従ってプログラムを実行します。
- コマンドプロンプトを開く
- 「cd」コマンドに従って「LED_Control」フォルダを見つけます
- 'Nodebrightness_control.js'コマンドを実行します。正常に実行されると、「Webサーバーが開始されました。ブラウザで「http:// localhost:8080」に移動してください」と表示されます。コマンドのすぐ下。
- 次に、ブラウザに移動して、URLに「localhost:8080」と入力します。
- 明るさを変更するには、スライダーを0〜255の値に移動します。
両方のセクションの完全なコードと作業ビデオを以下に添付します。また、疑問や提案がある場合は、以下のフォーラムまたはコメントを通じて私たちに連絡することができます。すべてのコードファイルもここからダウンロードできます。