用VB控制arduino應該有不少範例才對,不過我想透過網頁來控制我的arduino,所以先來做一個簡單的範例測試。
首先先把arduino接上usb跟電腦相連
然後燒錄
const int ledPin = 13; // the pin that the LED int incomingByte; // a variable to read incoming serial data into void setup() { // initialize serial communication: Serial.begin(9600); // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); } void loop() { // see if there's incoming serial data: if (Serial.available() > 0) { // read the oldest byte in the serial buffer: incomingByte = Serial.read(); // if it's a capital H (ASCII 72), turn on the LED: if (incomingByte == 'H') { digitalWrite(ledPin, HIGH); } // if it's an L (ASCII 76) turn off the LED: if (incomingByte == 'L') { digitalWrite(ledPin, LOW); } } }
燒完後 你可以到 COM的界面去輸入H或是L 你應該可以看到ARDUINO板上的LED燈被打開或關閉,要是會亮就代表目前為止都沒問題
接下來就是PHP部分拉
首先我們程式是連9600的 所以PHP裡面也是寫9600 然後我的電腦ARDUINO目前是連接到COM7 這個每個人電腦都不一樣 你的可能是COM3之類的 就要修改一下PHP程式
然後因為我們ARDUINO程式設定說打上H 就是開LED 打上L就是關閉LED 所以PHP這邊就會有 openSerial(“H”); 這個東西出來
<?php function openSerial($command) { $openSerialOK = false; try { exec("mode com4: BAUD=9600 PARITY=n DATA=8 STOP=1 to=off dtr=off rts=off"); $fp =fopen("com7", "w"); //$fp = fopen('/dev/ttyUSB0','r+'); //use this for Linux $openSerialOK = true; } catch(Exception $e) { echo 'Message: ' .$e->getMessage(); } if($openSerialOK) { fwrite($fp, $command); //write string to serial fclose($fp); } } openSerial("Without this line, the first control will not work. I don't know way."); if(isset($_POST['submit1'])) { openSerial("H"); } if(isset($_POST['submit2'])) { openSerial("L"); } ?> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <input type="submit" name="submit1" value="1 on"><br> <input type="submit" name="submit2" value="1 off"><br> </form>
就這樣 就可以透過php去執行