2022-08-15に更新

OpenBlocks IoTをWEBサーバにする

OpenBlocks IoT をWEBサーバにする方法です。
OpenBlocks IoT をセンサー類のゲートウェイとして使用し、さらにWEBサーバとすることができれば、OpenBlocks IoT 1台でセンサーからのデータを入力しモニターする等のシステムを稼働させることも可能となります。

image

FW4搭載の OpenBlocks IoT を対象とした解説です。FW4非搭載の OpenBlocks IoT については、汎用OSが裸で搭載されているため、それぞれのOSに応じた手段でWEBページの実装と配信が可能であり、それは難しいことではないためわざわざ解説する必要はないでしょう。

FW4とは?という方はこのサイトを参照してください。
IoTゲートウェイソフトウェア FW4

一方、FW4搭載の OpenBlocks IoT の場合は、FW4 が HTTP/HTTPS を使用しており、ユーザがWEBページを実装しようとする場合に「さて、どうしたものか」と悩むかもしれません。

FW4 にはNode-REDが付随しており、Node-REDを用いたWEBシステム実装が可能です。ただし、以下の解説では、Node-REDを使用せずにWEBシステムを実装する方法を述べています。

FW4のHTTPサーバを利用する

前述のとおり、FW4 は HTTP/HTTPS を使用しています。FW4 のマンマシン・インターフェースはGUIですが、これはWEBで実装されています。このため、FW4 は自身のGUIを処理するためにHTTPサーバを使用しています

Debian Linux FW4 WEB-UIガイド

FW4 が使用するHTTPサーバをユーザも使用することができます。FW4 のHTTPサーバに相乗りするわけです。
OpenBlocks のメーカーがこれを許しているわけではありません。以下に述べる方法でWEBアプリケーションを構築する場合は自己責任でお願いします。

FW4のGUIはどこにいるのか

FW4 の GUI に使用されているWEBページは、ファイル・システム中のどこにいるのか、これがわかれば FW4 のHTTPサーバに容易に相乗りすることができます。
これを探すのは簡単です。OpenBlocks の Debian にログインしコマンドを使用すればわかります。

OpenBlocks の Debian にログインするには、FW4の設定でSSHを有効にする必要があります。
Debian Linux FW4 スタートアップガイド 初期設定

FW4 の GUI を処理しているのは PHP です。FW4 のログインのページを見ると、login.phpとなっている。
image
login.php を探すと、/var/webui/docrootと出てくる。わかりやすいですね。

root@obsiot:~# find / -name login.php -print
/var/webui/docroot/system/login.php
root@obsiot:~# 

/var/webui/docroot

/var/webui/docrootはというと。

root@obsiot:~# ls -l /var/webui/docroot
total 112
-rw-r--r-- 1 www-data www-data  1524 Dec 21  2021 _ctrl_datacollect.php
-rw-r--r-- 1 www-data www-data  1284 Dec 20  2021 _file_del.php
-rw-r--r-- 1 www-data www-data  1412 Jan 26  2022 _nodered_ctl.php
-rw-r--r-- 1 www-data www-data  1076 Dec 20  2021 _ppp_con.php
drwxr-xr-x 2 www-data www-data  4096 Apr 29 16:15 airmanage
drwxr-xr-x 6 www-data www-data  4096 Apr 10  2020 apps
drwxr-xr-x 4 www-data www-data  4096 Apr 29 16:16 css
drwxr-xr-x 2 www-data www-data  4096 Apr 29 16:15 extension
drwxr-xr-x 4 www-data www-data  4096 Apr 29 16:15 images
-rw-r--r-- 1 www-data www-data 18740 Dec 20  2021 index.php
-rw-r--r-- 1 www-data www-data  4548 Dec 21  2021 index_datacontroller.php
-rw-r--r-- 1 www-data www-data  3652 Jan 26  2022 index_nodered.php
drwxr-xr-x 3 www-data www-data  4096 Apr 29 16:16 js
drwxr-xr-x 3 www-data www-data  4096 Apr 29 16:16 lib
drwxr-xr-x 2 www-data www-data  4096 Apr 29 16:15 maintenance
drwxr-xr-x 2 www-data www-data  4096 Apr 29 16:15 network
-rw-r--r-- 1 www-data www-data    21 Oct 12  2020 phpinfo.php
drwxr-xr-x 2 www-data www-data  4096 Apr 29 16:15 service
drwxr-xr-x 2 www-data www-data  4096 Apr 29 16:16 system
drwxr-xr-x 2 www-data www-data  4096 Apr 29 16:15 technical
drwxrwxrwt 2 www-data www-data  4096 Apr 29 17:54 tmp
-rw-r--r-- 1 www-data www-data   884 Dec 20  2021 unsupport.php
root@obsiot:~# 

phpinfo.phpで見てみると。
image
万全の体制です。
ユーザ用のディレクトリを作成します。その下にテスト用のページを作成します。

root@obsiot:/var/webui/docroot# mkdir hoge
root@obsiot:/var/webui/docroot# cd hoge
root@obsiot:/var/webui/docroot# vi test.php
root@obsiot:/var/webui/docroot/hoge# ls -l
total 4
-rw-r--r-- 1 root root 32 Aug 14 16:48 test.php
root@obsiot:/var/webui/docroot/hoge# cat test.php
<?php
    echo "Hello, World.";
?>
root@obsiot:/var/webui/docroot/hoge# 

image
狙いどおりです。

ツイッターでシェア
みんなに共有、忘れないようにメモ

COOL MAGIC PRODUCTS

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント