私はphp Webアプリを持っています。
アナログセンサーからデータを収集してWebアプリに値を表示したい(温度など)
SPI または IIC アナログ - デジタル コンバーターを使用してデータを収集できますが、ADC からデータを取得して php に渡す最も合理的な方法 (ソフトウェア) は何ですか?
私はphp Webアプリを持っています。
アナログセンサーからデータを収集してWebアプリに値を表示したい(温度など)
SPI または IIC アナログ - デジタル コンバーターを使用してデータを収集できますが、ADC からデータを取得して php に渡す最も合理的な方法 (ソフトウェア) は何ですか?
HTTP は同時アクセスがすべてですが、AD コンバーターは特定のデバイスに制約されます。つまり、アクセスを制御するために、ある種のミューテックスまたはキューイング メカニズム (HTTP ベースのアプリではキューイングは悪い考えですが) が必要になりますが、より良い解決策です。 cron ジョブまたはデーモンを実行してデバイスをポーリングし、その結果を Web アプリケーションが (同時に) 取得できるデータベースに公開します。
1 つの方法は、ADC を読み取り、値をシステム出力に返す C/C++ アプリケーションを作成することです。その後、PHP は関数http://php.net/manual/en/function.exec.phpを使用してアプリケーションを実行し、出力を取得できます。
10 年間データ監視を行ってきたので、これは私が行う方法ではありませんが、これは PHP で実現する簡単な方法だと思います!
アナログ センサーと ADC を選択しますか? それ以外の場合は、両方のジョブを実行できる統合ソリューションがあります。一例がこのフォーラムにあります。
そのビルディング ブロック (環境データを監視し、シリアル接続で出力するもの) を取得したら、最も合理的な方法は、数秒ごとにデバイスをポーリングし、データを読み取り、サーバーに記録するデーモンを作成することです。PHP バインディングを備えた RRDtool 。
PHP ページでは、単にrrd_lastupdate()
現在のデータを取得するために使用するか、アーカイブされたデータも使用して、より洗練されたものを構築したい場合があります。
それ以外の場合、サーバーとセンサーが近くにない場合は、Arduino などのプラットフォームを使用して、センサー、おそらく ADC、イーサネット ポート、および HTTP を話す C/C++ コードを備えた独自のデバイスを構築することをお勧めします (そのためのライブラリがあります)。 )、現在の値を出力します。