数か月前、Arduino マイクロコントローラー用のシリアル接続ライブラリーを C で作成しました。ライブラリの PHP ラッパーを作成できたらどんなに素晴らしいだろうと考えていました。
「acm_get_door()」と呼ばれる関数を 1 つだけ含む PHP 拡張機能を作成しました。これは、Arduino の特定のピンの状態に応じて、-1、0、または 1 を返す必要があります。-1 が返された場合は、接続が設定されていないことを意味します。
そのため、カスタム拡張機能をロードし、両方の php.ini ファイルを変更して、他のすべてを再起動した後、CLI を介してこのテストを実行しました。
$ php -r 'echo acm_get_door();'
「1」を返しました。私は興奮していたので、回路をいじって、「0」が得られるかどうかを確認しました。よくやったし、拡張機能は完璧に機能していると思いました。
次に、テスト Web サーバー (同じコンピューター) の .php ファイルに移動し、関数を実行しようとしました。それから「-1」の結果を得ました。拡張機能はロードされますが、Arduino への接続を開始できないようです。
特定のファイルへのアクセスに関する許可の問題ではないかと思います。関数は、CLI バージョンで可能な「/dev/ttyACM0」というファイルにアクセスする必要があります。私の Apache Web サーバーがそのファイルにアクセスする権限を持っていない可能性があります。
お時間をいただきありがとうございます。