シリアル ポート (シリアル = USB。USB を XBEE デバイスに接続しているため、イーサネット シールドは使用したくない) を使用して、web 経由で arduino からデータを制御および受信しようとしています。
調査した結果、最善のアプローチは JavaScript であると考えているようです (PHP は、arduino からシリアル経由でデータを読み取る際に問題があるようです)。
現在、Processing を使用して arduino とやり取りしようとしています。
私は、処理 (Java) から実行されたときに正常に動作する arduino からセンサー データを読み取る簡単なスクリプトから始めました。Web ブラウザーを介して (処理中に JavaScript を使用して) エクスポートして表示しようとすると、センサー データ自体を除くすべてがブラウザーに表示されます。
私の理解 (推測のようなもの) は、何らかの理由で、Web ブラウザーから呼び出されたときに COM ポートが開かないということです (おそらくセキュリティ上の問題?)。PC(WIN7)でもMAC(OSX)でも同じ現象が発生します。
助けていただければ幸いです。
コードは次のとおりです:(コメントは削除されました)
import processing.serial.*;
Serial myPort;
int xPos = 1;
void setup () {
size(400, 300);
println(Serial.list());
myPort = new Serial(this, Serial.list()[0], 9600);
myPort.bufferUntil('\n');
background(0);
}
void draw () {
}
void serialEvent (Serial myPort) {
String inString = myPort.readStringUntil('\n');
if (inString != null) {
inString = trim(inString);
float inByte = float(inString);
inByte = map(inByte, 0, 1023, 0, height);
stroke(127,34,255);
line(xPos, height, xPos, height - inByte);
if (xPos >= width) {
xPos = 0;
background(0);
}
else {
xPos++;
}
}
}