- 必要な材料
- RaspberryPiへのNode.jsのインストール
- Node.jsを使用してLEDを点滅させる
- Node.jsLED点滅スクリプトと説明
- Node.jsを使用してLEDを点滅させるための回路図
- ラズベリーパイ
以前のRaspberryPiチュートリアルでは、Python、組み込みC、Flaskなどを含むRaspberry Piを制御するために、さまざまなプログラミング言語とソフトウェアを使用しました。強力なRaspberry Piボードの範囲を拡大するために、今日は非常に人気のあるJavaScriptベースの環境(ノード.js)Raspberry Pi GPIOをWebサーバーとして設定することにより、ローカルおよびグローバルに制御します。Node.jsは当初GoogleChrome用に開発されましたが、後にGoogleによってオープンソース化されました。
このチュートリアルでは、2つの方法を使用して、RaspberryPiに接続されたLEDを制御します。
- まず、Node.jsを使用してJavaScriptコードを記述し、LEDを点滅させます。
- 2番目の方法では、LEDをオンまたはオフにする2つのボタンを備えたHTMLページを作成します。このHTMLWebページはraspberrypiでホストされ、任意のWebブラウザーで開くことができます。したがって、ここではRaspberryPiがWebサーバーとして機能します
必要な材料
- RaspbianがインストールされたRaspberrypiボード
- 導いた
このチュートリアルでは、HDMIケーブルを使用した外部モニターを使用してRaspberryPiに接続しています。モニターがない場合は、SSHクライアント(Putty)またはVNCサーバーを使用して、ラップトップまたはコンピューターを使用してRaspberrypiに接続できます。問題が発生した場合は、RaspberryPiガイドをご覧ください。
RaspberryPiへのNode.jsのインストール
次のコマンドを使用して、Node.jsをボードにインストールします。
ステップ1:-まず、このコマンドを使用して、ラズベリーパイボードのアームバージョンを確認します。
うなめ-m
私の場合、バージョンは7です。
ステップ2:-ターミナルでこのリンクをコピーして、インストーラーをダウンロードします。以下のリンクでバージョンを変更することを忘れないでください。
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
ステップ3:-以下のコマンドを使用してファイルを抽出します
tar -xvfnode-v4.6.1-linux-armvl.tar.gz
ステップ4:-最後に、これらのコマンドを実行して、重要なファイルをローカルディレクトリにも追加します。
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.jsがRaspberryPiにインストールされました。このコマンドを使用して、ノードのバージョンを確認して確認してください。
ノード–バージョン
Node.jsサーバーを作成する前に、まずnode.js(npm onoffパッケージ)を使用してLEDを点滅させるスクリプトを作成する方法を説明します。
Node.jsを使用してLEDを点滅させる
Node.jsを使用してRaspberryPiのGPIOを制御するには、onoffモジュールを使用します。
私たちは、使用する NPM パッケージマネージャをコマンドの下に使用してモジュールをインストールするONOFF
npm install onoff
次に、LEDを点滅させるためのスクリプトを作成します。 nano エディターを開き、コマンドを使用してファイルに名前を付けます
nanoblink_led.js
Node.jsとそのパッケージの初心者の場合は、スクリプトをよりよく理解するためにnpmのドキュメントを参照できます。
Node.jsLED点滅スクリプトと説明
まず、led、delay、GPIOの変数を宣言します。Raspberry Pi GPIO4を使用してLEDを接続しています。
var Gpio = require( 'onoff')。Gpio; var LED = new Gpio(4、 'out'); var flashInterval = setInterval(blinkLED、500);
さて、まばたきを開始する機能を作ります。
関数blinkLED(){if(LED.readSync()=== 0){LED.writeSync(1); //出力を1に設定します。つまり、LEDをオンにします} else {LED.writeSync(0); //出力を0に設定します。つまり、LEDをオフにします }}
同様に、点滅を止める機能を作ります
function endBlink(){clearInterval(blinkInterval); LED.writeSync(0); LED.unexport(); // GPIOをアンエクスポートしてリソースを解放します} setTimeout(endBlink、10000);
LEDを点滅させるための完全なNode.jsコードは、このチュートリアルの最後にあります。したがって、 nano コマンドを使用して以前に作成したファイル led_blink.jsに コードをコピーして貼り付け、Ctrl + xを使用してファイルを保存し、Y キーを押してEnterキー を押します。
スクリプトを実行するには、ターミナルを開き、次のコマンドを入力します。
ノードblink_led.js
LEDが10秒間点滅し、その後点滅が停止することがわかります。このチュートリアルの最後にあるビデオで完全な作業を確認してください。
Node.jsを使用してLEDを点滅させるための回路図
ラズベリーパイ
ここで興味深い部分に来てください。ここでは、Webページを使用してRaspberrypiのGPIOを制御できる独自のWebサーバーを作成します。
このためには、最初にHTMLページを作成し、バックエンドタスクを実行するスクリプトを作成する必要があります。つまり、RPiGPIOを制御する必要があります。
ステップ1:-すべてのファイルを1か所に保存するディレクトリを作成します。
mkdir nodejs_server
ステップ2: -nodejs_server フォルダー内に、HTMLファイルを保存するためのフォルダーをもう1つ作成します。
cd nodejs_servermkdir ビュー
ステップ3: -HTML ページに画像を追加する場合は、メインディレクトリ内( nodejs_server フォルダー)にpublicという名前の別のフォルダーを作成する必要が あり ます。パブリックフォルダに画像フォルダを作成し、このフォルダにすべての画像を保存します。
ステップ4:-次に、HTMLページを作成します。これを行うには、viewsディレクトリに移動し、ファイル名 index.ejsで nano テキストエディタを開きます 。
スクリプトには特別なものは何もありません。オンとオフのボタンを作成するのは単なるHTMLファイルです。
以下のHTMLコードを nano テキストエディタにコピーして貼り付け、保存します。
Nodejsサーバーへようこそ
主導ステータス:<%=ステータス%>ステップ5:-次に、JavaScriptコードを作成する必要があります。ユーザーが実行したhttpリクエストに応答するために、nodeexpressフレームワークを使用しています。
リンクをたどると、NodeExpressの詳細を確認できます。
ターミナルを開き、 nodejs_server フォルダーにindex.jsファイル名を 指定 して nano テキストエディターを開き、以下の JavaScript コードとこのファイルをコピーして貼り付けます。
var express = require( 'express'); var app = express(); var path = require( 'path'); var gpio = require( 'rpi-gpio'); gpio.setup(7、gpio.DIR_OUT); app.set( 'ビューエンジン'、 'ejs'); app.use(express.static(path.join(__ dirname、 'public'))); console.log(path.join(__ dirname、 'public')); app.get( '/'、function(req、res){ res.render( 'index'、{status: "ボタンを押す"}); }); app.post( '/ led / on'、function(req、res){ gpio.write(7、true、function(err){ if(err)throw err; console.log( 'Written True to pin'); console.log(path.join(__ dirname、 'public')); return res.render( 'index'、{ステータス: "LEDはオンです"}); }); }); app.post( '/ led / off'、function(req、res){ gpio.write(7、false、function(err){ if(err)throw err; console.log( 'Written False to pin'); console.log(path.join(__ dirname、 'public')); return res.render( 'index'、{status: "Led is Off"}); }); }); app.listen(3000、function(){ console.log( 'サーバーがポートで 起動しました:3000!')})
ステップ6: -nodejs_server ディレクトリ内で、次のコマンドを実行してnode.jsのライブラリをインストールする必要があります
npmインストール
ステップ7:-これで、サーバーを動作させる準備が整いました。ローカルサーバーを起動するには、 nodejs_server ディレクトリ内で次のコマンドを実行します
ノードindex.js
サーバーが定義されたポートで起動されているというメッセージがターミナルに表示されます。
ステップ8:-ブラウザを開き、ポート番号が付いたRaspberry Pi URLを開きます(例:raspberrypi:3000)
ブラウザを開いているラズベリーパイとラップトップが同じネットワークに接続されていることを確認してください。
ブラウザに次のページが表示されます。
次に、 LEDオン ボタンを押して LED をオンにし、 LEDオフ ボタンを押して LEDをオフにし ます。