1

欲望: 私は、ソケットを使用して Web ページ ボタンがクリックされたときに通信する必要があるデバイスまたはマイクロコントローラーを mc と呼びます。

MC1
<button id ='on1' name='mc1'>On</button>
<button id ='off1' name='mc1'>off</button>

詳細: 私が達成しようとしているのは、ボタンがクリックされたときに情報を mc に渡すことです。

試したこと: 現在、ポートをリッスンし、データを mc に書き込んだり、データを受信したりできます。これを行うには、サーバー php cli を介してファイルを開始します。このファイルには、これらの基本的なソケット関数が含まれています。

 $socket = @socket_create_listen("port#");
 $client = socket_accept($socket);
 socket_write($client, $msg);
 socket_read ($client, 256);

次に、MC はポート番号でサーバーに接続します

問題: PHP Web ページとボタンの間のギャップを埋める方法と、ボタンがクリックされたというデータを MC に渡す方法を理解するのが困難です。

解決策の試み: ポートをリッスンするファイルを実行してから、別のファイルにクライアントに書き込むことはできますか?

追記:ポートフォワーディングの設定は避けたいMC LANで外部IPが時々変わる。これらの理由から、MC にサーバーへの接続を確立させることを選択し、サーバーがポート転送や変更されない IP アドレスを必要とせずに MC に書き込むことができるようにしました。

ありがとうございます

4

2 に答える 2

1

最も簡単な方法は、Web サーバー (Apache など) で実行される単純なプログラム (php で問題ありません) を作成することです。呼び出されるたびに、MC へのソケットを同期的に開き、データを送信します。

リッスン ソケットを開くコードは記述しませんが、PHP はsocket_connectを使用して MC へのクライアント ソケットを開き、データを送信してからソケットを閉じます。その後、ステータスを Web クライアントに返すことができます。

于 2013-08-24T02:31:10.300 に答える
0

Web サーバーは MC への接続を直接開くことができず、MC は静的 IP へのアウトバウンド接続しか作成できないという前提に基づいています。php cli コードにループが必要な場合は、http://www.php.net/manual/en/function.socket-read.php#73509 を参照してください- sleep コマンドに変更usleep (1000000);してから、データベース (または存在) を確認します。 sleep(1);MC にメッセージを送信する必要があるかどうかを示します。POST次に、フロントエンド php スクリプト (html) で、データベースに書き込むか、ユーザーがボタンのクリックに戻ったときにファイルを作成できます。

于 2013-08-24T02:39:29.843 に答える