本記事のポイント

「NEQTO Engine Linux版」(以降、NEQTO Linux) は、Linux OSが搭載された多様なデバイスに対し、遠隔からデバイス自体の設定や操作が可能となるIoT汎用向けソフトウェアシリーズです。

本ブログでは、NEQTO Linuxの説明と実際に動作させた際の様子をお見せしながらNEQTO Linuxについてご理解を深めていただくことを目的としています。



1. はじめに

皆様の中ですでにRaspberry Pi等のLinuxデバイスでPoCを進めており、なるべくそのまま商用利用へ移行したいが、デバイス管理やソフトウェアアップデートなど機能面での課題があるというお悩みをお持ちの方もいらっしゃると思います。

そこで今回は、2022年9月1日にリリースしたLinuxデバイス向けNEQTO Engineである「NEQTO Linux※」をご紹介します!

なお、MCU組み込みソフトウェアとして提供してきた「NEQTO Engine」は、「NEQTO Linux」のリリース後、「NEQTO Engine RTOS (以降、NEQTO RTOS)」という名称に変更しますので、本記事でもNEQTO RTOSと記載します。

記事前半ではNEQTO Linuxについての説明、後半ではNEQTO Linuxを使用したデモの様子をお伝えするので、是非ご覧ください!

※ オンラインでフリーミアムのお申込みが可能となっており、より多様なビジネスユーザーに「サービスの評価とご利用の機会」を提供することを目的とした、第一弾サービスのリリースとなります。
    フリーミアムは 基本的なサービスや機能を無料でご利用いただき、高度なサービスや機能を有料(今後)で利用するモデルです。

2. NEQTO Linuxの特徴

NEQTO Linuxの特徴は以下7点です。

① デーモンアプリケーション

  • Systemd下のバックグランドで動作するデーモンアプリケーションで構成

② 簡単インストール&登録

  • 通常使われるようなパッケージ形式は不要であり、コンソールからダウンロードしてきたNEQTO Linuxインストール用シェルスクリプトを実行するだけで、インストールが完了
  • インストールと同時にデバイス登録が完了

③ 軽量

  • RTOSベースの設計思想で設計されており、コードサイズが約2MBと軽量のため、リソースの少ない組み込み用Linuxでも動作が可能 (小フットプリント)

④ 簡単接続

  • ユーザーアプリケーションとLinux標準のトンネリング機能で接続し、IoT化を実現
  • デバイス管理用NEQTO Consoleへの接続
  • 第三サーバーへの接続

⑤ 簡単アップデート

  • ユーザーアプリの遠隔アップデート
  • 外部機器のアップデート (Machine Driver)

⑥ 互換性問題がない

  • ハードウェア、ディストリビューションに依存がない ( = 移植性が高い)

    ※現在動作確認済みのLinuxデバイスにつきましては、こちらをご参照ください。

⑦ NEQTO RTOSとの共通利用

  • NEQTO RTOSと互換性のあるneqto.jsで移植性が高い
  • 共通のプラットフォームでNEQTO RTOSとNEQTO Linuxの管理が可能

    ※将来的に共通プラットフォームで管理可能とする予定ですが、現時点ではNEQTO LinuxとNEQTO RTOSのアカウントを別々に取って頂く都合上同じアカウント上での管理は提供時期が来るまでお待ちください。

3. NEQTO LinuxのインストールおよびLinuxデバイスのデバイス登録

続いて、NEQTO EngineをLinuxデバイスにインストールする方法を説明します。 今回は、「Raspberry Pi」を使用して実際のインストールを説明します。


① NEQTO Engine Linux版インストーラーのダウンロード

curlもしくはwgetで「NEQTO Engine Linux版インストーラー」をダウンロードします。
下図はcurlコマンドを使用した例で、curlコマンドは以下の通りです。

curl␣-O␣”NEQTO Engine Linux版インストーラーのダウンロードリンク”
curlコマンドを使用

”NEQTO Engine Linux版インストーラーのダウンロードリンク”は、NEQTO Consoleの「Linuxデバイス用APIキー管理」から「NEQTO Engine Linux版インストーラー」の「ダウンロードリンク」をコピーして「curl␣-O␣」の後ろに貼り付けてください。

ダウンロードリンクをコピー

NEQTO Engine Linux版のインストーラー (neqto-daemon-install.latest.sh) のダウンロードが完了すると下図のような表示となります。

ダウンロードの完了画面


② NEQTO Engine Linux版のインストール

NEQTO Engine Linux版のインストールを実行する前に、ダウンロードしたインストーラー (neqto-daemon-install.latest.sh) の実行権限をchmodコマンドにて変更する必要があります。

chmod 755 neqto-daemon-install.latest.sh

インストーラーのシェルスクリプトを実行するために./の後ろに「neqto-daemon-install.latest.sh」と「kオブション」を入力します。

sudo ./neqto-daemon-install.latest.sh␣-k␣” NEQTO Engine Linux版インストール用APIキー”
シェルスクリプトを実行

”NEQTO Engine Linux版インストール用APIキー”は、NEQTO Consoleの「Linuxデバイス用APIキー管理」から「NEQTO Engine Linux版インストール用APIキー」をコピーして「sudo ./neqto-daemon-install.sh␣-k␣」の後ろに貼り付けてください。

APIキーをコピー

「If you agree and want to continue, please enter “agree” >>」という表示が出るので「agree」を入力し、インストールを完了してください。

インストール完了後、デバイスが自動で登録されていることをNEQTO Console上で確認することができました。

デバイスが自動で登録されていることをNEQTO Console上で確認

4. デモ

この章では、NEQTO Linuxの特徴で説明しました「簡単接続」の中の「ユーザーアプリケーションと簡単に接続し、IoT化を実現」と「デバイス管理用NEQTO Consoleへの接続」にフォーカスしたデモをご紹介します。
Raspberry Piに熱電対を接続し、温度情報を取得するPythonコードを使用します。
このPythonコードがユーザーアプリケーションであるとお考えください。
NEQTO EngineからそのPythonコードを実行し、実行結果をNEQTO Consoleに転送するデモを紹介します。

まず、Raspberry Piに熱電対を下図のように接続します。

Raspberry Piに熱電対を接続

熱電対をコントロールするPythonコードを作成し、Pythonコード「max31855.py」をターミナルコンソール上で実行します。

Pythonコードを作成、実行

温度情報として26.5 ~ 27.0℃をリードすることができました。

26.5 ~ 27.0℃をリード

次に、先ほどターミナルコンソール上から実行したPythonコードをNEQTO Linux上で実行し、実行結果をNEQTO Consoleへ転送する動作を確認します。
今回、Pythonコードを実行、実行結果を取得する方法として、Linux標準トンネリング機能を使用した「SubProcessオブジェクト」を使用します。

その他、NEQTO Linuxが提供しているLinux標準のトンネリング機能を使用したオブジェクトとしては、「UNIXSocket」と「FileSystem」があります。

コード実行と温度情報受領

以下に作成したJavaScriptコードの一部を示します。 実行するコマンドとしてPythonコード「max31855.py」を登録し、標準出力 (stdout) から受信したデータをNEQTO Consoleに転送するJavaScriptコードを作成します。

NEQTO Consoleに転送するJavaScriptコードを作成

JavaScriptコードを実行することで、ターミナルコンソール上で実行した際と同様に26.5~27.0℃の温度情報をNEQTO Console上で確認することができました。

温度情報をNEQTO Console上で確認

結果として、Linux上にあるPythonコード (ユーザーアプリケーション) をNEQTO Engineから制御し、その結果を読み取ってNEQTO Consoleへ転送することを確認することができました。

このように、ユーザーアプリケーションをNEQTO Engineで制御することが容易に実現できます。

5. まとめ

今回は、NEQTO Linuxをご紹介しました。

NEQTO Linuxは、Linuxデバイスにインストールして頂くだけで、デバイス管理用NEQTO Console (NEQTO API) をご利用頂けます。

今回ご紹介できなかったNEQTO Linuxの特徴である機能については、また別なBlogでご紹介します!

NEQTO RTOSで実現が難しかった高速処理や画像処理のような重たい処理に対しても、NEQTO Linuxが選択肢として選べるようになったことから、NEQTO Engineの適用範囲が広くなります。

アンインストールの際、NEQTO Linuxのインストーラーで提供しているアンインストーラーを実行するだけで、その他、アプリ、ライブラリのアンインストールが不要なため、ユーザー様の環境を壊さないことも特徴の一つです。 是非、お気軽にNEQTO Linuxをご使用してみてください!


今回使用したデバイス

Raspberry Pi 3 Model B: Raspberry Pi

MAX31855使用 K型熱電対アンプモジュール: 秋月電子通商

モールド型表面センサー[MF-O-K]: モノタロウ