情報技術の四方山話

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

IoT実装:Arduinoでのセンサーデータ取得:三軸加速度第一回

2021-11-25 06:01:07 | AI,IoT,SensorNetworking
IoTの実装に取り組んでいます。ArduinoにGrove規格でつながるセンサーでいろいろなデーターを拾ってみています。まずは、生データを数字として表示するまでのデータの流れを作ります。

Arduinoでセンサー・デバイスのデータを読み取り、取得したデータの前処理とデータ伝送、人への情報提供はLinuxで行います。

センサーとソフトウエア間のAPIを決めるための試作を行い、データの取得部分と、データの処理=人にわからせるためのデータの情報化を完全に分けて開発することを目指します。

■三軸加速度センサーとArduino

写真のArduinoには、Grove規格の端子があり、センサーを挿すだけ。電気回路の知識ゼロでセンサーデータをピックアップできます。

センサー・データの読み取りはWindows上のArduino IDEとサンプル・プログラムで可能です。Arduino IDEのサンプル・プログラムはC言語に準拠した記述です。サンプル・プログラムのセンサーの読み取り間隔と、データの表現型を変更し、可読な数字で、一行で三要素をUSBシリアルに出力しました。

Arduino上でデータを可読化できれば、あとは簡単です。ArduinoはUSBシリアルにセンサー・データを出力し、PCではUSBシリアルからのデータを単純に表示します。TeraTermでつなぐと、一行が三軸の一塊のデータとして到着します。これでOSに依存せずセンサー・データが読み取れました。

PC上のUSBシリアル通信の内容を表示するプログラムで、到着したデータを表示します。新しいArduino IDEには、USBシリアルのデータを読み取りグラフ化する機能があり、変動をリアルタイムで可視化できます。データ変動のイメージ把握に、とても便利です。

システム連携の開発をするときに「データの表現型=データの受け渡しのAPI」を先に決めます。APIが決まれば、センサーがなくても、プログラムで疑似的にデータを生成し、その後の処理を開発できます。


いつもアクセスありがとうございます。センサー・データのピックアップからブラウザ上に表示するまでを、共有します。引き続きよろしくお願いします。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

IoTデバイスTWELITEネットワークで屋内外通信を試し始めました

2021-11-15 05:54:31 | AI,IoT,SensorNetworking
IoTネットワークのLast One Mileには様々な方法があり、様々な規格があります。もちろん条件が良ければ身近なWi-Fiを使うことができますが、消費電力が大きいので工場など電力確保が容易な場所に適します。

一方、IoTデバイスは屋外に置かれることのほうが多く、IoTデバイスそのものの消費電力を微小化する必要があります。多くの場合電池駆動で長期間利用するので、通信に使うことができる電力は少なければ少ないほど良いわけです。

実際の環境は、スペックを測定した環境のように理想的ではありません。当然に、いくつかの通信方法を組み合わせます。屋内でのデバイス間通信と、屋外でのデバイス間通信は組み合わせが異なります。

TWELITEとは、屋外でも屋内でも使えるIEEE802.15.4無線規格を用いた、無線機能つきマイコンです。TWELITEマイコンにセンサーが付き、センサー・データを無線に乗せ収集するプラットフォームです。



この、数日でTWELITEでの、モデル・ケースとなる通信が動き始め、家の外に置いたデバイス間で通信ができています。通信の仕組みの検証は、その通信上のアプリケーションがないとできません。通信の仕組みは必ず相手がいないと開発ができないので、対で動く環境を作ることから始めます。


いつもアクセスありがとうございます。引き続き、TWELITEを使ったデバイスネットワークを育てていきます。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

IoTの画面表示・Webフロントの試作が進みました

2021-10-31 18:40:58 | AI,IoT,SensorNetworking
IoTの画面表示・Webフロントの試作が進みました。期待の表示機能を実現し、コードを大きくクリーニングしています。もう一度、査読・クリーニングしてから、中間層と連動するようにします。

IoTの場合のシステム・アーキテクチャは、いわゆる業務系とは大きく異なります。システムのイベントドリブンですから、実装技術も異なります。
よく「クラウドに上げて」といいますが、生産現場では表示が必達なので、通信障害を加味した実装が必要になります。

システム監視系は、1980年代から取り組んでいます。この分野はプロトタイピング開発が必須です。技術的に実現できるのか否か判然としないものを接続するわけですから、仕様ありきの開発はしません。

今回は、監視対象機器上のデータを取得し、表示します。



いつもアクセスありがとうございます。IoT用のWebフロントの開発を楽しんでいます。だんだん内側に進んでいく様子を共有していきます。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

IoTの画面表示・Webフロントを試作しています

2021-10-29 07:53:54 | AI,IoT,SensorNetworking
IoTの仕事にも取り組んでいます。表示系はとても大切です。
時計のサンプルプログラムから派生して、IoT監視機器の状態表示の「画面のみ」を試作中。データ連携はこれからです。
概ねリアルタイムでデーターの現在値を表示します。

表示系はWeb系で、様々なデバイスで表示します。
ゴールは関係者の「自分のスマホからデータが見える」こと。
ブラウザはページを開くだけで、リロードは不要とし常時表示を可能にします。




いつもアクセスありがとうございます。IoTプログラミングのデーター表示系=フロントのプロトタイプを共有します。引き続き宜しくお願いします。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Arduino IDE 2.0 Betaを起動し"Blink"してみました

2021-04-15 10:01:57 | AI,IoT,SensorNetworking
Arduinoの次期開発環境IDE 2.0を起動してみました。
Visual Studio Codeでの開発をしているので、よく似たインターフェイスに見えます。

早速"Hello World!"相当の"Blink"を試しました。Arduino UNO互換機をUSBケーブルでCOM6としてつなぎ、サンプルスケッチを開いて、プログラムをコンパイルしてロード。何の問題もなく"Blink"し、成功です。

ここまででは、IDE 1.0との違いはありません。IDE 1.0に慣れているので、ドキュメントを見る必要もなく使うことができています。



いつもアクセスありがとうございます。現在様々なセンサーを評価していますが、開発環境を移行していきます。引き続き、よろしくお願いします。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Ardiuno IDE 2.0 Betaが公開されています

2021-04-14 13:48:59 | AI,IoT,SensorNetworking
今日はArduinoの開発環境の「Ardiuno IDE 2.0 Betaが公開」についての共有です。

Arduino IED 2.0は1.0の機能を引き継いでいますが、IDEソフトとしては完全な更改です。OpenSourceで開発が続くEclips Theira frameworkを基礎に、フロントはTypeScript、バックエンドのほとんどがGolangで書かれているとのこと。ソフト開発方法も「今風」で、IDEの作り方そのものにも興味があります。

素晴らしいことに、リアルタイム・デバッガ機能が付加されています。これでブレークポイントを指定して、その時点での変数値を開発画面上で、読み取ることができます。デバッグ用途でのserial.println()の記述を減らすことができ、たいへん助かりますね。




いつもアクセスありがとうございます。Arduinoの新しい開発環境を紹介していきます。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

自律型システムの試作を始めました(第三回)-いろいろなセンサーを集めています

2021-03-08 19:33:55 | AI,IoT,SensorNetworking
自律型システムの試作を進めています。いろいろな「動きセンサー」を集めています。加速度計、振動計、衝突検知計などなど。このようなセンサーの動きが理解しつつ、観測するデータの適切な分析処理を目指します。

センサーはArdiunoにGrove経由で接続しています。こうすることで電子回路の知識が無くても、データを収集できます。またArduinoのデータは容易にRaspberry Piなど、上流のコンピュータにUSB-Serial経由で送ることができます。Raspberry PiなどLinux機で受信できればデータ分析や、さらに上流へのデータ伝送は極めて容易になります。

まずは、とにかくいろいろなセンシング・データを集めてみます。

いつもアクセスありがとうございます。データ集め面白く楽しいです。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

自律型システムの試作を始めました(第二回)-センサーの値を可視化

2021-02-25 08:34:33 | AI,IoT,SensorNetworking
Arduinoを使うと、様々なセンサーのデータを取り込むことができます。今は、三軸の加速度センサーの値を読み取っています。
最近のArduino IDE(Integrated Development Environment)には、USB-シリアルに送られてくるデータをグラフ化して表示する機能があります。生データの動きをリアルタイムで簡単にグラフ化。とても便利です。




いつもアクセスありがとうございます。リアルタイムのデータの可視化は手がかかることでしたが、この機能で直ぐに確認することができました。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

自律型システムの試作を始めました(第一回)-AI+IoTの実装

2021-02-22 09:37:57 | AI,IoT,SensorNetworking
ふと気づいたことが、できるかどうか確認するために試作を始めました。

自律的にシステムが動作することで、厳しい状況を緩和できることは多々あります。少しの自律性で、状況に順応する角の取れた仕組みが実現できそうです。

自律システムには、状況を把握するためのセンサーが必要です。スマホの普及とIoT化の波でセンサーの半導体化が進み、様々なセンサーが入手しやすくなりました。

試作の第一段階は、いくつかのセンサーの情報を読み取ることです。今回は、まだ経験のない、加速度センサーからのデータを読んでいます。

■センサーを付けたArduinoマイコン基盤
Arduinoはオープンなハードウエアで、基板上には小さなマイコンといろいろなデバイスと接続するための端子が付いています。
オリジナルな基盤設計を、目的に応じて改変した基盤の一つが以下のもので、直接Groveを接続できるのでとても便利。センサーはI2Cでつながっています。

■センサー周りは既製品を使いイメージ固め
今回は加速度センサーの値を読み取ってみました。センサーはArduinoを経由してWindowsと接続。Windows上にArduinoマイコンソフトの開発環境があります。マイコン上の読み取りプログラムは、Arduinoライブラリとして公開してある例を基に、改変して使っています。まずはこれでイメージが固まりました。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

GPIOのPinの機能一覧を作成-RaspberryPiとGPIO

2021-02-15 08:43:27 | AI,IoT,SensorNetworking
RaspberryPiのGPIOを使う準備をしています。Pin番号と機能の一覧を作りました。同じような表がないので、自作したものです。

実際には、以下の基盤をRaspberry Piに乗せて使います。
図と基盤の配置は180度回します。



いつもアクセスありがとうございます。Raspberry PiのGPIOの役割表を作ってみました。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Raspberry Piをデスクトップコンピュータとして試す-第二回

2020-09-23 14:20:09 | AI,IoT,SensorNetworking
今回は「Raspberry Piをデスクトップコンピュータとして試す-第二回」です。

RaspBerry Pi 3B+までもデスクトップコンピュータとして使うことはできます。ただ、RAMが高々1Gで、RAMの増設はできません。

Raspberry Pi 4Bになり、RAMの搭載容量が大幅に増え、かつ通信の仕様が最新になったので、本格的なデュアル・ディスプレイのPCとして使うことを目指しています。使い方が判れば、これまで、PCハードウエアとLinuxで作ってきた「表示目的のアプリ」の実行環境を、Raspberry Piに置き換えていきます。

■Raspberry Pi OSの初期起動画面
これまでのRaspbianはRaspberry Pi OSに統合されています。32bitに加え64bit版が公式に配布されています。

これまでの32bit版OSももちろん動きますが、Rspberry Pi 4Bの4G/8G版を使うのであれば、64bit版が基本です。64bit版OSは搭載RAMの全域を使うことが可能で、4Gを超える大きなサイズのファイルを操作できます。

「4Gを超えるファイルはそうそうないだろう」と思いますが、OSのISOイメージの中には4Gを超えるファイルがあります。先般、32bitOSの上で、4Gを超えるISOファイルが正しく扱えない状況に遭遇しました。

本格的にデスクトップとして使うのであれば、64bit版のOSを選びます。


いつもアクセスありがとうございます。次回は物理的なインターフェイスの仕様確認です。引き続きよろしくお願いします。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

linux/snapはアプリインストールの標準化を目指しています

2020-09-17 21:19:22 | AI,IoT,SensorNetworking
今日は「linux/snapはアプリインストールの標準化を目指しています」です。
Linuxはアプリケーションを導入する仕組みがディストリビューション(配布仕様)毎に異なります。やりたいことは同じなのに違うのです。

私は、UbuntuとCentOSを使いますが、よく使うシステム管理のツールは共通化します。そうしないと、操作性が異なりより多くのことを知ることになります。

その中で、ソフトウエア・パッケージのインストール等管理方法は共通化できないのです。似てて非なるもので管理する必要があります。

一方、Pythonを使うとPythonで走るソフトウエア・パッケージはpipを使ってインストールするとどのディストリビューションでも同じです。これは便利です。

snapはUbuntuを開発するCANONICALが支援して開発されているLinuxのディストリビューションに関係なく同じ手順でソフトウエアを管理する仕組みです。

まだ、沢山のソフトがあるわけではありませんが、とても便利です。CentOSもsnapをyumでインストールすれば使うことができるようになります。

開発環境をインストールするときに便利に使っています。


(base) takumi@tanistd:~$ snap list
Name Version Rev Tracking Publisher Notes
android-studio 4.0.1.0 91 latest/stable snapcrafters classic
arduino-mhall119 1.8.12 7 latest/stable mhall119 -
core 16-2.46.1 9993 latest/stable canonical✓ core
core18 20200724 1885 latest/stable canonical✓ base
deployer 0.2.2 45 latest/stable keygenqt -
gnome-3-28-1804 3.28.0-17-gde3d74c.de3d74c 128 latest/stable canonical✓ -
gtk-common-themes 0.1-36-gc75f853 1506 latest/stable canonical✓ -
gtk2-common-themes 0.1 13 latest/stable canonical✓ -
nextcloud 19.0.3snap1 23171 19/stable nextcloud✓ -
powershell 7.0.3 139 lts/stable microsoft-powershell✓ classic
snap-store 3.31.1+git187.84b64e0b 415 latest/stable canonical✓ -
spotify 1.1.26.501.gbe11e53b-15 41 latest/stable spotify✓ -
vlc 3.0.11 1700 latest/stable videolan✓ -
(base) takumi@tanistd:~$ sudo snap install hello-world
[sudo] takumi のパスワード:
hello-world 6.4 from Canonical✓ installed
(base) takumi@tanistd:~$ hello-world
Hello World!
(base) takumi@tanistd:~$

いつもアクセスありがとうございます。続きは不定期に投稿していきます。引続きよろしくお願いします。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Android Studio 4.01をLinux UbuntuStudioで立ち上げてみました

2020-09-15 07:48:48 | AI,IoT,SensorNetworking
今日は「Android Studio 4.01をLinux UbuntuStudioで立ち上げてみました」の話題です。IoT用途でAndroid上でのアプリ開発を始めました。

開発環境が立ち上がったので、紹介します。
私は日常的にLinux/Ubuntu Studioをデスクトップ環境として使っています。

■Andoidアプリの開発環境
Android Studioを選択しています。Windows、Mac、Linuxで使うことができます。

Android Studioでは開発言語としてKotlinとJavaを使うことができます。Andriod開発は、新しい言語であるKotlinに移行しつつあります。


Android Studioには画面開発環境、仮想マシンでのデバック環境が含まれています。仮想マシンには代表的なスマートフォンがあり、選択してインストールすることで立ち上がります。



いつもアクセスありがとうございます。続きは不定期に投稿していきます。引続きよろしくお願いします。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

AndroidでのIoT開発を始めます

2020-09-14 17:55:05 | AI,IoT,SensorNetworking
今日は「AndroidでのIoT開発を始めます」の話題です。

■AndroidとIoT
Androidはスマートフォン用のOSとして広く普及しています。
ハードウエアはスマートホンやタブレットですから、画面がついていますし、携帯電話網、Wi-Fi、Bluetooth、GPSなどがついています。
IoT分野でも、タッチ画面のついたスマホやタブレットの方が良い場合も多々あります。

周辺装置とはBluetooth、Wi-Fi、USB等で接続します。
機器単体でSIMを使ってモバイル通信ができるので、周辺装置からのデータ収集ができれば、IoTデータをインターネット経由でクラウドに集約できます。

■AndroidはLinuxが起源
AndroidはLinuxをスマートフォン用に作り込んだOSで、Googleが配布しています。そのため、Linuxと親和性が高く、bashが動き、Pythonを使うこともでき、sshサーバやHttpサーバを動かすこともできます。

■Andriodの開発言語と開発ツール
Androidの標準の開発言語はJavaかKotolinです。開発はAndroid Studioを使います。Android Studioの中で仮想のデバイスを立ち上げて動作を確認できます。もちろん、スマホやタブレットを直接USBに接続して、実機デバッグも可能です。

■センサーデバイスとの連携
センサーデバイスからのデータ収集を行うには、Rspaberry PiとArdiunoを経由します。Raspberry Pi 4から処理能力が良くなりました。Ardiunoを使ってデータを収集し、そのデータを正規化するなどの前処理も十分可能です。


■Raspberry Piとモバイル網通信
匠技術研究所ではPCにモバイル通信用のSIMをつけて通信できるようにしています。同じ方法で、Raspberry Piもモバイル網と通信ができるようにしています。弊社はSIMも提供しているので、画面表示が不要なシステムは簡明なモバイル網直結型Raspberry Piを実装しています。


いつもアクセスありがとうございます。この情報は不定期に投稿していきます。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

IoTデータ収集の軽量実装を始めました[第三回]

2020-08-14 07:37:01 | AI,IoT,SensorNetworking
今日は「IoTデータ収集の軽量実装を始めました[第三回]」。センサーの話題です。

■IoT観測機器そのものの稼働環境測定
IoTシステムでは、観測対象の機器のデータ収集と並行して、観測機器が自身の稼働環境監視を行います。周辺環境の気温、湿度、気圧等を計ります。半導体センサーは、一括してデータを出してくれるもので取集します。


いつもアクセスありがとうございます。引き続きよろしくお願いします。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする