2026/5/22
私はPloigiプロジェクトと命名し、実際の運用を目指した個人開発を行っています。今見ていただいているこのWebアプリケーションもこのプロジェクトの一環です。このシステムの概要としてはログインすると紐づいた環境制御が行えるというものです。
この着想は、ある夏のハウス農家さんでの夏季バイトの経験をもとにしています。実際に作業した中での経験から、思いついたことや考えたことを調べた情報で始めたのがこのプロジェクトです。
”遠隔でどこからでも環境制御ができるようにしたい”これがざっくりとしたこのシステム開発の主なテーマです。
このWebアプリケーションも、構想をもとに開発と運用する物の一端を担っています。
環境制御を行うユーザインターフェースとして機能する役割、加えて情報発信の場としたいとも考え作成しました。
情報発信というと大げさなので読んでいただいている皆さんには、私が学習したことの復習を行う場、あった出来事などInstagramで載せるのも手間だなというものを備忘録的に忘れないようにと乗せる程度の物だと思っていただければ幸いです。
前述のとおり、”ログインすると紐づいた環境のダッシュボードがあるのでそこから操作ができる”ものです。Ploigiプロジェクトと命名し、担う役割ごとに開発を分けています。
領域は大きく分けて3つです。
操作画面やユーザ認証を担うPloigi-Web、
物理デバイスとのやり取りとユーザインターフェースをつなぐ環境制御エッジサーバPloigi-Dev、
実際に環境制御の役割を担うIoT機器の開発です。
ブラウザ(どこからでも)
│
│ HTTPS(暗号化された通信)
▼
ユーザインタフェスWebアプリ(Ploigi-Web)
│
│ VPN
▼
環境制御エッジサーバ(Ploigi-Dev)
│
│ MQTT(IoT デバイス向け通信プロトコル)
▼
センサー・ポンプなどのIoT物理デバイス
React をベースにしたフルスタック Web フレームワークであるNext.jsを用います。選定理由は主に学習コストと開発効率の効率です。開発するにあたってWebアプリケーションのフロント、バックエンドともに共通して開発できるため学習コストが低いかなというのが主な選定理由です。
開発のスタート地点がこの環境制御エッジサーバの開発です。Raspberry Pi上でUbuntu Server LTSを使用しています。使用言語はPython、フレームワークはFastAPIを使用しています。これはPythonになじみがあったこと、また将来的な機能拡張において画像処理や統計処理もできたらと考え、ここから始めようと出発しました。その中で非同期通信の必要性と親和性の観点からFastAPIを採用しました。
使用言語はC++、物理デバイスにOSOYOO NodeMCU開発ボードなどを用いて開発しています。まずは極小規模での運用を目指すことを考え、WiFiで動けばいいというものを選定しました。ただ将来的には消費資源効率を考え、LoRa通信に対応できるようデバイスの機能拡張も自分で行いたいと考えています。LoRaを用いるタイミングで実際ののうち環境で通信を行っていきたいと考えています。
ただ今後拡張していった場合、デバイスの採用は市場にある既製品の使用を考えています。
ここまでお読みいただきありがとうございます。情報発信は書く内容を大きく2種類に分けて書き溜める場所を変えています。
1つ目は、技術ブログとして運用するここで書き溜めるものです。実装するために調べたこと、見つけたアイデア、情報理工学として学んだことなど主にこのプロジェクトの技術・知識面の学習ノートを書いていきます。
もう一方はnoteブログサービスを使用し、それ以外のトピックを扱おうと考えています。ここでは今までの出来事やストレージに残っている画像にまつわる話など書いていければと思います。
どちらもこのWebアプリケーションから閲覧できますので今後ともお読みいただければ幸いです。