Skip to main content

WebGPIO API や WebI2C API を Node.js から使う

Node.js から GPIO や I2C を扱う方法を説明します。

Node.js とは

Node.js は、オープンソース・クロスプラットフォームな JavaScript 実行環境です。 パッケージマネージャー npm を利用して膨大なパッケージにアクセスでき、IoT プロトタイピングだけでなく幅広いアプリケーションを作るために使われています。

準備

プログラムを実行するには Raspberry Pi に Node.js をインストールします。CHIRIMEN を利用する場合はあらかじめ Node.js がインストールされているので不要です。 もし CHIRIMEN の microSD カードを作成する方法を知りたい場合は SD カードイメージの作成方法を参照してください。

新しいディレクトリの作成

実際にアプリケーションを作る前にプログラムを実行するための環境を整えます。作業用のディレクトリを作り、そのディレクトリの中でプログラムを実行します。

ターミナルを起動して以下のコマンドを実行します。

npm のためのファイル package.json を作成します。

作業用のディレクトリの中に npm パッケージ node-web-gpio node-web-i2c をインストールします。

これで Node.js から WebGPIO API と WebI2C API を使う準備は完了です。

Hello Real World

Raspberry Pi に接続した LED を点滅させるプログラムを書きます。

次の図のとおりに配線します。

{% cloudinary imgs/section1/k.png alt=“LEDの点滅回路の配線図” %}

空のテキストファイル main.js を作成し、Node.js のための JavaScript のプログラムを書きます。

テキストエディターで main.js を次のように書きます。

書き終えたら保存します。

Node.js で main.js を実行するには、次のコマンドを実行します。

LEDが点滅すれば完成です 🎉

いろいろなデバイスを試す

CHIRIMEN ブラウザーから利用できるいろいろなデバイスはすべて同じように Node.js から扱うことができます。

たとえば、次のコードは温度センサー ADS1015を利用して温度を表示するプログラムです。

コマンド npm i @chirimen/adt7410 を実行すると、温度センサー ADT7410 を利用するための @chirimen/adt7410 パッケージをインストールできます。

デバイスを扱うためのパッケージについてさらに知りたい場合は CHIRIMEN Drivers を参照してください。

CHIRIMEN ブラウザー版との差異

CHIRIMEN ブラウザー版Node.js
navigator.requestGPIOAccessconst { requestGPIOAccess } = require("node-web-gpio"); requestGPIOAccess
navigator.requestI2CAccessconst { requestI2CAccess } = require("node-web-i2c"); requestI2CAccess
sleepconst sleep = require("util").promisify(setTimeout); sleep

後付

Edit this page on GitHub
Docs
Tutorials
Blog
Showcase