Git Product home page Git Product logo

iotomato's Introduction

IoTOMATOのロゴ

概要

IoTOMATOはオープンなハードウェアとソフトウェアを使用した栽培用モニタリングシステム開発プロジェクトです。
センシングデバイスを容易に追加することが可能なスケーラブルでシームレスなIoTシステムを目指しています。
IoTOMATOを利用して植物や野菜の栽培を始めましょう。

IoTOMATOのユースケース

システム構成

特徴

  • センサデータを蓄積し、可視化することができる
  • センサデバイスの追加や取り外しが容易である
  • システムの運用や管理を意識する必要がない

IoTアーキテクチャ

本システムは下記に示されているIoTアーキテクチャに基づいて構成されています。
IoTアーキテクチャは3つのコンポーネントから構成されています。

IoTアーキテクチャ

デバイス部

 デバイス部では、センサやアクチュエータを搭載したデバイスが現実世界の現象に対して収集を行ったり、ある対象物の制御などを行います。
現実世界の現象に対して収集を行うデバイスをセンシングデバイス呼び、対象物の制御などを行うデバイスをアクチュエーティングデバイスと呼びます。

ゲートウェイ部

 センシングデバイスやアクチュエーティングデバイスがインターネットにアクセスするためのネットワーク機能を有さない場合、インターネットとデバイス部との間にゲートウェイ部を介在させる場合があります。
というのもIoTとはあらゆるモノがインターネットにつながることと考えられており、それらのモノ一つひとつがデバイスとして機能する場合、デバイス単体でサービス部にあるサーバに対してデータを送信すると回線接続や切断を制御する制御用回線に対して過負荷を与えることになります。
また、IoTデバイスは通常のモバイルトラフィックに比べると送受信するデータ量が小さく、通信頻度が少ないにもかかわらず、それらのネットワークにアクセスするためには通信機能や消費電力において必要以上の能力を要してしまうためコストの観点から好ましいと考えられていません。
このような背景から、ゲートウェイ部はデバイス部とサービス部との間に介在し、データの集約や中継を行う役割を持ちます。

 ゲートウェイ部はデバイス部の機能によって振る舞い(役割)が異なります。
センシング機能の場合、センシングデバイスから送られたセンシングデータをいったん集約し、アクセスネットワークを通じてサービス部で稼働されているサーバへデータを送信する役割を担います。
一方、アクチュエーティング機能の場合、アクセスネットワークを介してサービス部から受け取ったある種の操作データをエリアネットワークを通じてアクチュエーティングデバイスに送信する役割を担います。

サービス部

 サービス部はデバイス部からゲートウェイ部を経由して収集したデータをもとにユーザ対して何らかのサービス(価値提供)を行います。
 サービス部は全体のシステムとしての機能(振る舞い)とユーザに対する機能(振る舞い)の二面性があると考えています。
システムとしての機能とはセンサデータを蓄積したり、分析したりする機能のことです。また、デバイス部のアクチュエータに対して操作を行うための機能なども含まれます。
一方でユーザに対する機能とはシステムがユーザに対して提供するの価値(サービス)のことです。
ユーザはそのシステムを利用することで何ができるようになるのか・何を得ることができるのかということです。
通常、ユーザはインターネットを介してサービスを使用します。したがってWebに関する技術が使われます。

システムアーキテクチャ

下記に本プロジェクトのシステムアーキテクチャを示します。

IoTOMATOのシステムアーキテクチャ

iotomato's People

Contributors

sosomasox avatar kp047i avatar

Forkers

kp047i

iotomato's Issues

デバイス部に関するドキュメントの作成

目的

本システムにおけるデバイス部の役割とその周辺にあるシステムコンポーネントとの関連性を理解を助け、 ドキュメントを閲覧することで デバイスの作成を行うことができるようにする

期待すること

  • [デバイス] - [ゲートウェイ] 間のアーキテクチャを把握することができる
  • デバイスの作成に必要なものがわかり、 作成手順に従うことでデバイスが作成できる

ドキュメントの項目

[デバイス部 ] - [エリアネットワーク] - [ゲートウェイ部] に対するアーキテクチャの詳細
X-CTUのインストール方法
XBeeの設定方法

ローカルサービス部に対するCI/CDパイプラインの構築

目的

ローカルサービス部に対してCI/CDパイプラインを構築し、ソフトウェア開発プロセスにおけるリリースプロセスを自動化することで、手作業でのリリースによるエラーを取り除き、サービス提供に関する信頼性の向上を目指す。

* CI/CDに関しては CI/CDとは を参照して下さい。

期待する機能

  • ローカルサービス部においてアプリケーションの本番環境へのデプロイが自動化されること
  • 新規機能の追加や機能変更に対して自動テストの実行、ステージング環境またはプロダクション環境へのデプロイをシームレスに行うことができる
  • リリースに問題があった場合、簡単に以前の状態に戻せることができる

Mysqlの接続に必要な設定がファイル上に記載されている

問題の詳細

リモートのMysqlサーバーにアクセスするために必要な情報がファイル上に記載されている。

期待される結果

Mysqlにアクセスするためのパスワードやユーザーを環境変数に加えるか別のファイルに記載してgitの管理から外す。

service部分のJavaScriptのリファクタリングとエラー対応

問題の詳細

  • environment.jsないのコードが重複している
  • varで定義している変数が存在するため、スコープの誤認識や巻き上げなどの問題が発生する可能性がある
  • エラー処理をしていない

修正内容

  • 重複したコードを関数化
  • 変数をletかconstで定義
  • エラー処理を加える

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.