情報技術の四方山話

AI、IoT、ヤマハルータ、VPN、無線LAN、Linux、クラウド、仮想サーバと情報セキュリティのよもやま話

Linux,Groovy-IoT, Arduino,GroveでSensorネット-温度計をつくってみる(2)

2019-01-20 09:22:50 | AI,IoT,SensorNetworking

いつもアクセスありがとうございます。匠技術研究所の谷山 亮治です。
様々なセンサーからの情報をLinuxに集めることを試しています。

今回は「Linux,Groovy-IoT, Arduino,GroveでSensorネット-温度計をつくってみる」の第二回。


■できてしまいました

中程の小さなセンサーで気温を取得して、LCDディスプレイに温度を表示しています。
温度センサーはアナログーデジタル変換端子に、LCDディスプレイはI2C端子に繋いでいます。

マイコンのプログラムは、温度センサーのサンプルプログラムをまず動かし、開発環境のLinuxで温度を読み取れることを確認した後、LCDディスプレイのサンプルプログを動かし、表示の仕方を確認しました。

温度計は、この2つの機能をソフトで組み合わせ、一つのソフトにして実現しています。

システムの開発環境の使い方は、事前に概ね理解できていたので、デバイスを使うためのライブラリを開発元サイトで探し、インストールして動かしています。例題もライブラリと一緒に付いてきます。

ハードウエア接続は、正しいコネクタ接続ができれば簡単です。どのコネクタにつなぐかは、開発元サイトに写真付きで紹介してあり、使うまでの手順も書いてあります。


■パーツなど

前回の記事で詳しく紹介しています。


■感想

開発言語は"Arduino C言語"とでも呼ぶべきC言語風の言語です。私は、C言語の経験があるので、サンプル・プログラムを読むことができたので、ソフトウエアの作り込みは、楽しい作業でした。

サンプル・プログラムは簡明に書いてあるので、何処を変えれば良いのかは判りやすく、プログラムを少しでも経験したことがある方なら、直ぐに楽しむことができるようになります。

 

コメント

Linux,Groovy-IoT, Arduino,GroveでSensorネット-温度計をつくってみる(1)

2019-01-19 10:49:51 | AI,IoT,SensorNetworking

Linux,Groovy-IoT, Arduino,GroveでSensorネット-温度計をつくってみる(1)

 

いつもアクセスありがとうございます。匠技術研究所の谷山 亮治です。
様々なセンサーからの情報をLinuxに集めることを試しています。

■温度計をつくってみよう

最終的には、簡便な方法法で温湿度計などの情報を集めたいのですが、先ずは温度計デバイスから温度データを読み取り、表示することに挑戦します。

■ArduinoとGROVEを使う

センサーその他様々なデバイスをつなぐ仕組みとしてArduinoマイクロコンピュータボードがあります。
Arduino公式ページ(En)はこちら



このボードには「Hat(帽子)」と呼ばれる、様々な機能拡張ボードを取り付けることができます。
Hatを使うことで、電気的な特性など知らなくても、いろいろなデバイスをつなぎ、使うことができます。

特に、GROVE規格はArduino、Raspberry Piなど様々なコンピュータボードに簡単に接続できるように策定(正規化)されており、写真のようなGROVE端子が沢山ついたHatと組み合わせることで、容易にArduinoやRaspberry Piと接続ができます。
GROVE公式ページ(En)はこちら

 

■材料

先の写真の通りですね。

Arduino UNOマイコンボード x 1
GROVE Hat (Arduino用)x 1
GROVE温度計 x1
GROVE LCDパネル x 1
GROVEパーツ間接続ケーブル x 2
USB2ケーブル x 1

(*)GROVE Hat、温度計、LCDパネル、パーツ間接続ケーブルは、GROVE Starterkit for Arduinoに含まれています。
(*)USB2ケーブルはArduinoを接続し、電源供給と通信を行います。私の場合はArduino UNO互換ボードについてきました。

■開発環境
OS:macOSまたはLinux。Windowsでも可ですが試していません。
各OSともJava実行環境が必須です。

開発用IDE:Arduinoプロジェクトから無償でダウンロードが可能です。
オンライン版、デスクトップ版があります。私はデスクトップ版を使っており、オンライン版はまだ試していません。
公式開発案内ページはこちら

開発言語:Arduino版C言語
基本はC言語の文法ですが、マイコンプログラミングなので、OS上で使う公式C言語のように豊富なライブラリは整っていません。これは、マイコンプログラミングの一般的な特徴ですね。

プログラム例:開発環境に標準で沢山ついています。
先ずは"Blink"を読みだしてコンパイルしロード・実行すればArduino基盤上のLEDが点滅し、使い方の基本がすぐわかります。

■Arduinoマイコンへのプログラムのロードと起動

開発環境とArduinoがつながれば、あとは開発環境でマイコンソフトをコンパイルし、Arduinoへロード、起動することができます。つながってしまえばびっくりするほど簡単です。

■ArduinoマイコンプログラムとGROVEデバイスのソフト的な接続
開発環境には、Starter Kit用の例題が含まれています。まずはそこからいろいろ試すことができます。

 

コメント

Linux,Groovy-IoT, Arduino,GroveでSensorネット-Arduino互換ボード

2019-01-18 07:59:36 | AI,IoT,SensorNetworking

Linux,Groovy-IoT, Arduino,GroveでSensorネット-Arduino互換ボード

 

いつもアクセスありがとうございます。匠技術研究所の谷山 亮治です。
様々なセンサーからの情報をLinuxに集めることを試しています。

センサーその他様々なデバイスをつなぐ仕組みとしてArduinoマイクロコンピュータボードがあります。
Arduinoはオープン・ハードウエアとして知られており、誰でもどう作られているのかを知り複製することができます。

そのため、たくさんの互換品、発展品があります。
私が購入したものも「Arduino UNO互換品」です。

■全体写真

名刺より大きいボードです。CPU=マイコンが乗っており、ソフトウエアを動かすことで、たくさん付いているピンと情報をやり取りします。
ピンの先にはセンサー、モーター、表示、通信など、様々なものがつながります。
ソフトウエアの開発はPCとUSB接続してPC上で行います。電源供給もUSBから受けます。

開発にはWindows、macOS、Linuxを使うことができ、私はmacOSとLinuxを使っています。
Linuxを使うことで、Respberry Pi等様々なコンピュータと連携することができます。

このボードには、プログラムで制御できるLEDが一つ付いているので、最初のLチカ(LEDをチカチカさせること)までは取り組みやすいものです。

マイコン上のソフトができれば、開発用PCとは切り離して動作させることもできます。
その際は5Vアダプタから給電できますが、今は安価になったUSB2の電源アダプタで電源供給したほうが簡単です。

■表

Arduinoにはたくさんのコネクタがあります。何でもできるようにはなっていますが、初心者にはよく判りません。
マイコンとハードウエアを接続する知識が必要だからです。

 

■裏

何もありません。

 

■よくわからないので

私は、よくわからないので以下のものを合わせて買いました。
当面のゴールは、温度計を作ろうとしています。

 

■マルチファンクション・シールド

理解しやすいものをと思い、マルチファンクション・シールドを買いました。
Arduino UNOに重ねて使います。開発環境に、本格的にマルチファンクション・シールドを使うためのライブラリをセットし、例題の”24時刊アラーム時計”を動かしています。
プログラム制御できるLEDが4つ付いており、最初はその明滅や、ブザーを鳴らしたりしてみました。その部分は標準開発環境付属の例題があるので、意外と簡単です。

コメント

Linux,Groovy-IoT, Arduino,GroveでSensorネット-Arduinoを試す

2019-01-17 09:00:12 | AI,IoT,SensorNetworking

Linux,Groovy-IoT, Arduino,GroveでSensorネット-Arduinoを試す

 

いつもアクセスありがとうございます。匠技術研究所の谷山 亮治です。
様々なセンサーからの情報をLinuxに集めることを試しています。

センサーその他様々なデバイスをつなぐ仕組みとしてArduinoマイクロコンピュータボードがあります。
Arduinoを使ってセンサ、制御、表示装置をつなぐ規格としてGROVEがあり、既に普及しています。
GROVE対応デバイスの使い方を知るためにGROVE Starter Kit for Arduinoを購入してみました。

私はこのキットにはArduinoマイクロコンピュータが含まれているものだと思い込んでいましたが、含まれていません。
そこで、Arduino本体と、Arduinoに重ねて使うことができる「Multifunction Shield」というデバイスを一緒に購入してみました。
Arduino本体だけでは視覚的に動作を確認することができないと思った次第です。

上の写真の箱に乗っているデバイス、下の写真の一番下にあるデバイスは同じもので、やはりGroovy-IoTでStarter Kitには含まれません。
Groovy-IoTについては前回の記事で概要を説明しています。


■ArduinoとMultifunction Shieldが動いているところ

これは、私のMacとUSB接続しているArduino上に装着したMultifunction Shieldを時計にして動かしている様子です。
Multifunction Shieldの開発元が配布しているライブラリと実装例が提供されているので、Arduinoの開発環境の使い方が判れば、時計を動かすことは簡単でした。

Arduinoも初心者、その機能を拡張するモジュールの追加も初心者でしたので、ここまで一日半ほどかかりました。大半はArduino開発環境をこさえる時間、使い方を知るためにLEDを点滅させるプログラムを作った時間になります。プログラムはサンプルが沢山あるので、それを使って変形して作りました。


■ArduinoとMultifunction Shield

Ardiunoは検索すると何種類も出てきます。メーカーもいろいろあるので「模造品」かと思って調べていると「正規の模造品」でした。
Ardiunoの仕様は公開されており、だれでもつくって良いそうです。オープン・ハードウエアとして普及しています。
そのため、目的に応じて様々な形をしたものがあり、様々な機能を載せたものがあります。

一番典型的なものはArdiuno UNOとして発売されたものです。これも、本家以外は”UNO Like”で、UNOの機能を備えていますが、ちょっとだけ違うところもあります。初心者の私には違いも何も判らず、正規版があることも知らなかったので、とにかく最初のArdiuno基板は”UNO”を目印に選びました。

「きっと失敗して壊す」と思って「二枚でいくら」の安価なArduino基板を選び、結果としては”UNO Like”品でした。問題があるかどうかも判りませんが「期待通り」動いています。購入品は電源が入るとLEDランプが点き、直感的に通電していることが判るので便利です。またこのLEDをプログラムで点滅させることができ、最初の一歩に適しています。

Multifunction Shieldの写真を見ると、Ardiuno本体と大きさがそっくりなので、重ねて使えそうです。
仕様も、どう使うかも全く知らずに購入しました。使い方マニュアルや、使い方の紹介Youtubeも購入後に見つけています。

手に入れてみると、四つの赤色LED、LED数字表示パネル、スイッチ、可変抵抗(いわゆるボリューム)、センサー、制御装置、通信装置などをつなぐ端子がついています。使うためには以下のマニュアルが必須です。

Multifunction ShieldのPDFのマニュアルはこちら(En)


■Ardiunoの電源は?

ArduinoとPC間をUSB接続するだけです。ArduinoはUSB接続から電力をもらいます。最初の一歩はそれで十分です。
Arduino基板に電源供給用のコネクタがついていますが、これを使う機会は少ないと思います。


Aduinoアプリが完成し、PC無しでArduinoを動かす場合、USB2規格以上の電力が必要な開発や稼働環境では電源アダプタによる電力の供給が必要です。PC無しでArduinoを使う場合も、USB2規格のUSB充電器を電源にすれば簡単に動きます。

 

コメント

Linux,Groovy-IoT, Arduino,GroveでSensorネット-Groveを試す(1)

2019-01-16 07:59:57 | AI,IoT,SensorNetworking

Linux,Groovy-IoT, Arduino,GroveでSensorネット-Groveを試す(1)

 

いつもアクセスありがとうございます。匠技術研究所の谷山 亮治です。
様々なセンサーからの情報をLinuxに集めることを試しています。

センサーその他様々なデバイスをつなぐ仕組みとしてGroveがあります。
Grove対応デバイスの使い方を知るためにGrove Starter Kit for Arduinoを使ってみます。

箱に乗っているデバイスはGroovy-IoTでStarter Kitには含まれません。
Groovy-IoTについては前回の記事で概要を説明しています。

■Arduinoとは
Arduinoは様々なセンサーや制御装置を利用することを目的とし、マイクロコンピュータと接続端子を取りまとめて一つにしたものです。
Arduinoを使うことで、ハードウエアとマイクロコンピュータ上のソフトウエアをつなぐことが容易になります。
ArduinoはUSB経由で他のコンピュータ、一般的にはPC、MacやRaspbery Pi等と接続し、通信することができます。
この機能を用いてArduinoマイクロコンピュータのプログラムを開発し、Ardiuno基盤に繋いだセンサーデータをUSBで接続したコンピュータに送ったり、コンピュータから制御装置への命令を実行することができます。

Ardiunoのハードウエア仕様はオープンに公開されているので、本家以外の様々なメーカー製のものがあります。

■GROVE Starter Kit for Arduinoとは
Ardiunoには様々なデバイス(センサー、制御、通信)がつながりますが、その物理的な接続方法を整理し規格化したものがGROVEです。
GROVE規格対応のデバイスであれば、簡単なケーブリングだけでArduinoとデバイスがつながります。

代表的なGROVEデバイスをひとまとめにしたものが、GROVE Starter Kit for Arduinoです。

箱の中央一番下に乗っているデバイスはGroovy-IoTでStarter Kitには含まれません。
写真には見えませんが、Arduino用のGROVE接続基盤が右側のLEDディスプレイの下に入っています。
また、GROVE接続用のケーブルや電源ケーブルも箱の底に入っています。

■Arduino本体はGROVE Starter Kit for Arduinoに含まれない
そうです。このキットを使うにはArdiuno本体が必要です。キットには含まれていません。かつArduinoのプログラムを作る環境、動かす環境が必要です。
私は、やはりキットに含まれないGroovy-IoTを使ってGROVEデバイスを接続するのでArdiunoは不要だと思っていましたが、あったほうが様々なGROVEデバイスを楽しく理解することができます。

Groovy-IoTについては前回の記事で概要を説明しています。

 

コメント

Linux,Groovy-IoT, Arduino,GroveでSensorネット-とにかくつなぐ

2019-01-15 04:41:57 | AI,IoT,SensorNetworking

Linux,Groovy-IoT, Arduino,GroveでSensorネット-とにかくつなぐ

 

いつもアクセスありがとうございます。匠技術研究所の谷山 亮治です。
様々なセンサーからの情報をLinuxに集めることを試しています。
いろいろな方法があろうかと思いますが、既に広がり始めているGrove規格を使ってみます。

Grove規格のデバイスをLinuxに接続するには、Linuxとつながるインターフェイスに変換する必要があります。
まずは、大宮技研が開発し、発売中のGroovy-IoTを使ってみました。

これはGroveインターフェイスをUSBに変換する小さなボードです。右側にmicro USBのインターフェイスがあります。スマホの充電などで広く普及しているケーブルを使うことができます。
Linux側は当然USBに接続します。写真上側には白いGrove規格のインターフェイスが4つ並んでいます。写真は表と裏です。

I2C
UART
GPIO1
GPIO2

があり、接続するGroveデバイスに応じて接続します。

LinuxからはUSBの/dev/ttyACMxデバイスに見えます。このデバイスを通じてGroovy-IoT上のGroveコネクタに接続されたGroveデバイスと通信します。
Groveデバイスにアクセスするには、オープンソースとして公開されているKikoriミドルウエアを使い、KikoriのWebAPI(RESTful API)でセンサーと通信できます。

Groovy-IoT+Kikoriで膨大なハードウエア接続の知識を、既知のソフトウエア・インターフェイス(RESTful API, WebSocket)に変換できるというわけです。
これまでの常識を大きく変えるもので、センサーハードウエアとのインターフェイスの設計がLinuxとRESTful APIの知識で可能になります。

Groovy-IoT + kikori (0. 導入前の前提情報)

接続環境を構築後、Groovy-IoT/Grove/温度計、Groovy-IoT/Grove/LED明滅を試し、期待通りの動作を確認しました。
私はハードウエアの知識は全く持ちませんが、センサーがつながり、値を読み取ることと、LEDを明滅させることができました。これは素晴らしい環境です。

Kikoriが対応するハードウエアであれば簡単なプログラムはLinux上のbashでできます。
また、もっと判りやすい開発環境enebular-editorを利用することでGUIによるセンサーの接続設計が可能です。いずれ取り組みたいと思います。

 

コメント

Ubuntu/LXCで構築できるLinuxディストリビューションの一覧とコンテナ作成手順

2019-01-11 15:15:23 | Linux/Ubuntu

Ubuntu/LXCで構築できるLinuxディストリビューションの一覧とコンテナ作成手順

 

いつもアクセスありがとうございます。匠技術研究所の谷山 亮治です。
今回は「Ubuntu/LXCで構築できるLinuxディストリビューションの一覧とコンテナ作成手順」です。
LXC環境では、とても沢山の種類のLinuxをインストールして使うことができます。
サーバ系のテストで重宝しています。LXCは便利です!

■実行環境

$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 16.04.5 LTS
Release:    16.04
Codename:    xenial
$

■LXCで構築できるLinuxの一覧とコンテナ作成手順

コマンド実行後、表示された一覧を基に、作成するLinuxの種類とCPUアーキテクチャを指定します。

$ sudo lxc-create -t download -n dlub00
Setting up the GPG keyring
Downloading the image index

---
DIST    RELEASE    ARCH    VARIANT    BUILD
---
alpine    3.4    amd64    default    20180627_17:50
alpine    3.4    armhf    default    20180627_17:50
alpine    3.4    i386    default    20180627_17:50
alpine    3.5    amd64    default    20190110_13:01
alpine    3.5    arm64    default    20190110_13:02
alpine    3.5    armhf    default    20190110_13:03
alpine    3.5    i386    default    20190110_13:00
alpine    3.6    amd64    default    20190110_13:00
alpine    3.6    arm64    default    20190110_13:02
alpine    3.6    armhf    default    20190110_13:02
alpine    3.6    i386    default    20190110_13:01
alpine    3.7    amd64    default    20190110_13:01
alpine    3.7    arm64    default    20190110_13:03
alpine    3.7    armhf    default    20190110_18:06
alpine    3.7    i386    default    20190110_13:01
alpine    3.8    amd64    default    20190110_13:00
alpine    3.8    arm64    default    20190110_13:02
alpine    3.8    armhf    default    20190110_18:06
alpine    3.8    i386    default    20190110_13:01
alpine    3.8    ppc64el    default    20190110_13:01
alpine    3.8    s390x    default    20190110_13:01
alpine    edge    amd64    default    20190110_13:01
alpine    edge    arm64    default    20190110_13:02
alpine    edge    armhf    default    20190110_13:04
alpine    edge    i386    default    20190110_13:01
alpine    edge    ppc64el    default    20190110_13:02
alpine    edge    s390x    default    20190110_13:01
archlinux    current    amd64    default    20190111_01:27
centos    6    amd64    default    20190111_02:16
centos    6    i386    default    20190111_02:16
centos    7    amd64    default    20190111_02:16
debian    buster    amd64    default    20190110_05:25
debian    buster    arm64    default    20190110_05:26
debian    buster    armel    default    20190110_05:27
debian    buster    armhf    default    20190110_05:26
debian    buster    i386    default    20190110_05:25
debian    buster    ppc64el    default    20190110_05:25
debian    buster    s390x    default    20190110_05:25
debian    jessie    amd64    default    20190110_05:25
debian    jessie    arm64    default    20180626_05:25
debian    jessie    armel    default    20190110_05:27
debian    jessie    armhf    default    20190110_05:27
debian    jessie    i386    default    20190110_05:25
debian    jessie    powerpc    default    20180626_05:25
debian    jessie    ppc64el    default    20180626_05:25
debian    jessie    s390x    default    20180626_05:25
debian    sid    amd64    default    20190110_05:24
debian    sid    arm64    default    20190110_05:26
debian    sid    armel    default    20190110_05:27
debian    sid    armhf    default    20190110_05:27
debian    sid    i386    default    20190110_05:25
debian    sid    powerpc    default    20180708_05:25
debian    sid    ppc64el    default    20190110_05:25
debian    sid    s390x    default    20190110_05:25
debian    stretch    amd64    default    20190110_05:25
debian    stretch    arm64    default    20190110_05:27
debian    stretch    armel    default    20190110_05:26
debian    stretch    armhf    default    20190110_05:27
debian    stretch    i386    default    20190110_05:25
debian    stretch    ppc64el    default    20190110_05:25
debian    stretch    s390x    default    20190110_05:25
debian    wheezy    amd64    default    20180627_05:24
debian    wheezy    armel    default    20180627_05:27
debian    wheezy    armhf    default    20180627_05:26
debian    wheezy    i386    default    20180627_05:25
debian    wheezy    powerpc    default    20180627_05:25
debian    wheezy    s390x    default    20180627_05:25
fedora    26    amd64    default    20181102_01:27
fedora    26    i386    default    20181102_01:27
fedora    27    amd64    default    20190111_01:27
fedora    27    i386    default    20190111_01:27
fedora    28    amd64    default    20190111_01:27
fedora    28    i386    default    20190111_01:27
fedora    29    amd64    default    20190111_01:49
fedora    29    i386    default    20190111_01:27
gentoo    current    amd64    default    20190110_14:12
gentoo    current    i386    default    20190110_14:12
opensuse    15.0    amd64    default    20190111_00:53
opensuse    42.3    amd64    default    20190111_00:53
oracle    6    amd64    default    20190110_11:40
oracle    6    i386    default    20190110_11:40
oracle    7    amd64    default    20190110_11:40
plamo    5.x    amd64    default    20180816_21:36
plamo    5.x    i386    default    20180816_21:36
plamo    6.x    amd64    default    20190110_21:36
plamo    6.x    i386    default    20190110_21:36
plamo    7.x    amd64    default    20190110_21:36
ubuntu    bionic    amd64    default    20190110_07:43
ubuntu    bionic    arm64    default    20190110_07:44
ubuntu    bionic    armhf    default    20190110_07:45
ubuntu    bionic    i386    default    20190110_07:43
ubuntu    bionic    ppc64el    default    20190110_07:43
ubuntu    bionic    s390x    default    20190110_07:43
ubuntu    cosmic    amd64    default    20190110_07:42
ubuntu    cosmic    arm64    default    20190110_07:44
ubuntu    cosmic    armhf    default    20190110_07:45
ubuntu    cosmic    i386    default    20190110_07:43
ubuntu    cosmic    ppc64el    default    20190110_07:44
ubuntu    cosmic    s390x    default    20190110_07:43
ubuntu    disco    amd64    default    20190110_07:42
ubuntu    disco    arm64    default    20190110_07:44
ubuntu    disco    armhf    default    20190110_07:45
ubuntu    disco    i386    default    20190110_07:43
ubuntu    disco    ppc64el    default    20190110_07:44
ubuntu    disco    s390x    default    20190110_07:43
ubuntu    trusty    amd64    default    20190110_07:42
ubuntu    trusty    arm64    default    20190110_07:44
ubuntu    trusty    armhf    default    20190110_07:45
ubuntu    trusty    i386    default    20190110_07:43
ubuntu    trusty    powerpc    default    20180824_07:43
ubuntu    trusty    ppc64el    default    20190110_07:44
ubuntu    xenial    amd64    default    20190110_07:43
ubuntu    xenial    arm64    default    20190110_07:44
ubuntu    xenial    armhf    default    20190110_07:45
ubuntu    xenial    i386    default    20190110_07:43
ubuntu    xenial    powerpc    default    20180824_07:44
ubuntu    xenial    ppc64el    default    20190110_07:44
ubuntu    xenial    s390x    default    20190110_07:43
---

Distribution: ubuntu
Release: bionic
Architecture: amd64

The cached copy has expired, re-downloading...
Downloading the image index
Downloading the rootfs
Downloading the metadata
The image cache is now ready
Unpacking the rootfs

---
You just created an Ubuntu bionic amd64 (20190110_07:43) container.

To enable SSH, run: apt install openssh-server
No default root or user password are set by LXC.
$

■作成したLXC/Ubuntuのバージョンを確認

$ sudo lxc-attach -n dlub00
root@dlub00:/# lsb_relaease -a         
bash: lsb_relaease: command not found
root@dlub00:/# lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:    18.04
Codename:    bionic
root@dlub00:/#




コメント

センサーネットワークの構築に取り組んで-第一回

2019-01-07 15:13:01 | AI,IoT,SensorNetworking

センサー・ネットワークの構築に取り組んでー第一回

 

いつもアクセスありがとうございます。匠技術研究所の谷山 亮治です。
今日から数回に分けて、センサーネットワークへの取り組みについてまとめてみます。

■センサーネットワークとは
いわゆるIoTを実現するための通信網ですね。これなしではつながりません。
一方で、IoTネットワークには大きく二つの通信要素があります。

1.デバイスとデータ読み取り機器間の通信
デバイス、例えば温度計は、それそのものではデーターを受け渡すことができません。
何らかの形で、コンピュータなどデーター読み取り機器に情報を渡す必要があります。

ここの通信の仕組みはハードウエアとも密接に関わり、一般に経験者が極端に少ない分野です。ただ規格化も進みつつあり数年前より遥かに取り組みやすくなりました。しかし、センサーデバイスを使うには、センサーの特性や取得できるデータの意味について理解することは不可避です。

2.データ読み取り機器と情報処理用コンピュータ間の通信
デバイスから取り出したデータを読み取り、情報処理用のコンピュータに渡し、人に役立つ形に情報を加工します。
温度センサーのデータも、いきなり人が判る数値情報ではなく、何らかの係数で変換して人が判るセ氏や華氏の温度を算出します。これは、全てのセンサーで同じです。

人に判るデータから、人が理解しやすい表現型で情報として表示します。情報の表示部分はデータの利用目的に応じて、それぞれ適した形になります。場合によっては生のデータが必要なのか、ある期間と属性を指定したデータが必要なのか、さらに、データを平均化したり、相関を見出したりと調整したデータが必要なのか、様々です。

情報の表現型が決まれば、それをコンピュータ間や利用者との間でやり取りする部分は既存の通信技術を使います。

■センサー・ネットワークの特徴
センサーネットワークでは、微小なデーターが沢山発生します。これを効率よく収集する仕組みが必要です。
これまでのマルチメディアの情報を受信する方向、すなわち「下り」とは逆方向の通信すなわち「上り」が重要になります。また、通信費用が高くなると利用が難しくなります。適切なデータ量=通信費用で実現できるセンサーネットワークをどう作っていくかは、IoTの現実的な課題です。特に広域の無線通信網をどう作っていくかは大きな課題です。

IoT用の広域無線ネットワークの整備は5Gの登場とともに進みますが、数年先です。でも、今でもできることもあります。次世代を見据えて試作を重ねることはとてもたいせつなことです。

■センサー・ネットワークを実現するために
通信網は当然自社で組めるものではありませんが、通信事業者様と協業することで通信網を構築します。これは全てのセンサーネットワークの利用者に当てはまります。通信網の変化に柔軟に適応するためにどうシステムを構築すればよいのか。これには理屈より経験が必要です。

なぜなら、現場は理屈通りに動ないのです。通信が途絶えることがある中で自律性をもって、データを失うことなく通信をするには、単に通信網の話ではなく、アプリケーションの設計から取り組む必要があります。

つづく。

コメント

観測用フィールド監視エッジ・システムを再設計しました

2019-01-02 16:23:07 | AI,IoT,SensorNetworking

フィールド監視エッジ・システムを再設計しました


いつもアクセスありがとうございます。匠技術研究所の谷山です。
観測用フィールド監視エッジ・システムを再設計し、一新しました。これまでより圧倒的に柔軟になります。

弊社の観測用フィールド監視システムは、通信とLinuxの経験を活かして開発しています。
フィールドでの計測は、人が住んでいないところでも正確な情報にする必要があります。

今回再設計したシステムは、機能モジュールを更新し、最新の技術で再構築しました。
それにより、日本国内のみならず、多くの国でクラウドへの通信を使うことができます。

エッジ・コンピュータの性能も選択可能となり、フィールドデーターの「前処理」を安心して行うことができます。「前処理」により、クラウドに伝送するデーターも適正化。また伝送前圧縮も可能です。

フィールド・コンピュータはデジタルI/Oを直収し、デジタルI/Oチャンネル数も拡張可能です。
フィールド計測データーはI2C、シリアルなどこれまでのシステムを活かした接続が可能です。

エッジ・システムの既成概念を一新する、スケーラブルで、目的に特化させやすい柔軟なプラットフォームになりました。
様々な用途でお使いいただけます。

コメント

Linuxでタイムゾーンを調整し時刻を日本時間に合わせる

2019-01-02 15:54:00 | Linux/Ubuntu

Linuxでタイムゾーンを調整し時刻を日本時間に合わせる


いつもアクセスありがとうございます。匠技術研究所の谷山 亮治です。
今回は、Linuxでタイムゾーンを調整し日本時刻に合わせます。
クラウドサーバーなどLinux立ち上げ時に必要ですね。

■現在設定を確認
タイムゾーンはUTCです。

$ timedatectl
      Local time: 水 2019-01-02 06:51:16 UTC
  Universal time: 水 2019-01-02 06:51:16 UTC
        RTC time: n/a
       Time zone: Etc/UTC (UTC, +0000)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

■タイムゾーンを日本に変更

$ sudo timedatectl set-timezone Asia/Tokyo

■現在設定を確認
タイムゾーンはJSTになりました。

$ timedatectl
      Local time: 水 2019-01-02 15:52:05 JST
  Universal time: 水 2019-01-02 06:52:05 UTC
        RTC time: n/a
       Time zone: Asia/Tokyo (JST, +0900)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no
root@syslog144:~/cron$

コメント

システムの遠隔監視を構築中

2018-12-18 13:41:30 | ヤマハルータ
システムの遠隔監視を構築中


いつもアクセスありがとうございます。匠技術研究所の谷山です。
システム管理用Windows Workstationの設定中です。

LANを直収し、多数のセグメントと直接接続します。
ここが、弊社らしい提案になります。

大規模な映像音響系システム機器の構築のネットワーク部分を、お手伝いしています。
映像音響機器は機能単位に分離した閉域ネットワークを持ちます。
機器の管理ワークステーションは統合したいのですが、ネットワークが分離されることで、これまでは各セグメントに一台ずつ管理端末を設置していました。
今回の設計では、それを一台に統合しています。

ネットワーク機器は、弊社の遠隔監視サービスで監視します。
ネットワークはマルチベンダなので、弊社が遠隔監視を行うことになりました。
こちらも多数のLANを直収して、各セグメントごとに独立して運用管理を行います。
今回の設計では、それを一台の管理ハードウエアに統合し、クラウド連携して安全な監視を実現しています。
コメント

11月15日(木)のつぶやき

2018-11-16 02:50:50 | Weblog
コメント

11月14日(水)のつぶやき

2018-11-15 02:52:00 | Weblog
コメント

11月13日(火)のつぶやき

2018-11-14 02:52:52 | Weblog
コメント

愛媛県松山市と東京間でIP-VPNを開通します

2018-11-13 09:12:38 | ヤマハルータ
愛媛県松山市と東京間でIP-VPNを開通します


ヤマハルータとIP-VPNを組み合わせて、企業の基幹ネットワークをつくりはじめました。IP-VPNはデーターセンターにも引き込んでいます。フレッツ・VPNワイドとは異なり通信事業者のIP-VPNをつかうことで、東西接続を意識しない、極めて柔軟でシンプルなネットワークになります。

今日は愛媛県松山市と東京間の開通を行い、その後、新ネットワークに各拠点の接続替えを行います。

今回は、回線の選択、契約のご支援、広域ネットワークの設計、広域網を収容するルーターの設定など、広域側のリニューアルをご支援しています。

通信事業者様、回線販売事業者様とのコラボレーションで、お客様に提案し、採用いただいたものです。
お客様には、コストメリットだけではなく、ルーターの設定も全て開示する、自己管理が行き届くネットワークになっています。

このお客様は、弊社で開催している技術研修へのご参加をきっかけに、その後、ネットワークの運用のご支援を行なっているものです。

コメント