Maritime Data Serverは、 Maritimeデータ用の中央データ(クラウド)サーバーです。 Exmaple MDC (Maritime Data CollectorまたはLora-BootsMonitor、またはその他のデバイス)からのデータをデータベースに保存し、ユーザーにデータを表示して構成を行うためのGUIを提供します。
最初のアイデアは、ボートに乗っていない間に、いくつかの海上データ(温度、バッテリー電圧、ビルジアラーム)を見ることができる可能性があることでした。
MDCは、ESP32といくつかのセンサーを備えた小さなボードで、センサーデータを収集し、これらのデータをMDSに転送します。 https://github.com/bytecrusher/maritimedatacollectorsmallの下にMDCドキュメントがあります
Maritime Data Serverは、ユーザーのデータを保存し、データを表示するためのWebアプリケーションです。データを保存するためのMySQLデータベースと、データを使用して情報を表示するためのPHPサポートを備えたWebサーバーを再Quersしています。 MDSは、グラフ/ゲージまたはチャートのセンサーからのデータを表示できます。また、ボードとセンサーを構成することも可能です。
サーバーは、バックエンド(コレクターとTTNからデータを受信するためのAPI、電子メールの送信)とユーザーブラウザーにデータを表示するフロントエンドで編成されています。
バックエンドはデータをDBに保存します。また、データが有効であり、ボードとセンサーがDBに存在しているかどうかを確認します。そうしないと、新しいDBレコードが作成されます。
フロントエンドの場合、ユーザーはログインする必要があります。これで、ユーザーはいくつかの構成を実行したり、データを表示したりできます。
すべてのMDSファイルを「SRC」フォルダーからHTDOCS DIRにコピーします。新しいデータベース(phpmyAdminを使用)を作成し、このデータベースに特権を書き込む新しいユーザーを作成します。 http://yourdomain/maritimedataserver/install/index.phpをブラウザで開き、Instalationステップを踏み出します。インストールが終了したら、「インストール」という名前のdirを削除します(セキュリティ上の理由から)。
これで、 MDSはhttp:// yourdomain/maritimedataserverで利用できます



MDSを実行するには、PHPサポートとMySQL DBを備えた(Apache)Webサーバーが必要です。
ローカルネットワークの外でMDCを実行する場合、 MDSは公開する必要があります(TTNはこのサーバーに到達できるはずです)。
開発には、さまざまなソリューションを使用します。最初は、コーディングコンピューターで実行されるローカルドッカーコンテナです。第二に、サブドメインをWebホーストしているので、Guthubから「開発」ブランチを引っ張ります。
########私の現在のウェイファーストウェーブ:4つのコンテナをセットアップします(各サービスに1つ):
Apacheの場合、htdocsフォルダーで直接作業できるようにVSCを構成しました。そのため、必要なファイルの手動同期はありません。
Second Wave:Webホーストサブドメインでは、Respositoryをセットアップするため、Pleskパネルからプルリクエストを実行し、WebSpaceに最新の開発ブランチを作成できます。
PHPデバッグには、Xdebugを使用します。 MAMPの構成は、**/applications/xampp/xamppfiles/etc/php.iniおよびルックスで行われます:
[xdebug]
zend_extension = "/usr/local/cellar/php/8.1.1/pecl/20210902/xdebug.so"
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = "9000"
Firefoxでは、「Xdebugヘルパー」(IDEキー:VSCODE)を使用します。
Safariでは、「XdebugtoggleExtension 1.2」を使用します。
デバッグの場合、「Ausführen」 - 「Debugger Starte」とグリーンプレイボタン(F5)に移動する必要があります。
さまざまな種類のセンサーがあり、WiFi(およびその後のLORA)を介して転送されるデータの量を減らすことを試みます。センサーがデータを転送するスキーマを用意することをお勧めします。また、値の名前を配信する必要はありません。
すべての値が正しい順序で配信される場合、どの値がWICHかは明確です。
スキーマ#:1
名前:DS18B20
Deschription:Tempsensor
センサーのNR(接続されている):1
値の数:1
値の名前:#1温度
値のタイプ:#1 uint8(?)
スキーマ#:2
名前:DS2438
Deschription:Batteriemonitor
センサーのNR(接続されている):1
値の数:4
値の名前:#1 CH1電圧、2#CH1電流、#3 CH2電圧、#4 CH2電流
値のタイプ:#1 uint8(?)、#2 uint8(?)、#3 uint8(?)、#4 uint8(?)
スキーマ#:3
名前:DHT11
Deschription:気温センサーと湿度
センサーのNR(接続されている):1
値の数:2
値の名前:#1温度、#2湿度
値のタイプ:#1 uint8(?)、#2 uint8(?)
スキーマ#:4
名前:デジタル入力
Deschription:デジタル入力
センサーのNR(接続されている):1
値の数:1
値の名前:#1デジタル入力
価値の種類:#1 bool(?)
スキーマ#:5
名前:GPS
Deschription:GPS受信機からのデータ
センサーのNR(接続されている):1
値の数:4
値の名前:#1緯度、#2経度、#3コース、#4速度
値のタイプ:#1 uint8(?)、#2 uint8(?)、#3 uint8(?)、#4 uint8(?)