วันพฤหัสบดีที่ 16 กุมภาพันธ์ พ.ศ. 2560

     บทความนี้จะใช้เครื่องมือ Button ในการควบคุมการเปิดปิดไฟ LED ครับ เมื่อเรากด Button มันจะส่งค่ามาให้ทาง Server เราก็จะเอาค่านั้นมาใช้ในการประมวลผลครับ ในCode ของบทความนี้เมื่อเรากด Button มันจะไปทำให้ขา 5 เกิดการ HIGH ขึ้นมา แล้วผมก็ตรวจสอบต่อว่าถ้าขา 5 HIGH ให้แสดงคำว่า ON ในหน้าเว็บ  Ethernet Shild W5100
 
ตัวอย่าง Code
#include "SPI.h"
#include "Ethernet.h"
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
EthernetServer server(80); //server port
String readString; 
//////////////////////
int LED1 = 5;
int val_LED1 = 0 ;
void setup(){
 Serial.begin(9600);
 pinMode(LED1, OUTPUT); //pin selected to control
 digitalWrite(LED1, LOW);
 //start Ethernet
 Ethernet.begin(mac);
 Serial.println("ArduinoAll server LED test"); // so I can keep track of what is loaded
}
void loop(){
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        //read char by char HTTP request
        if (readString.length() < 100) {
          //store characters to string 
          readString += c; 
          //Serial.print(c);
        } 
        //if HTTP request has ended
        if (c == '\n') {
          ///////////////
          Serial.println(readString); //print to serial monitor for debuging 
          client.println("HTTP/1.1 200 OK"); //send new page
          client.println("Content-Type: text/html");
          client.println();
          client.println("");
          client.println("");
          client.println("Myarduino Control LED");
          client.println("");
          client.println("");
          client.println("

Myarduino Control LED

");
          // DIY buttons
          client.println("Staate Led is :  "); 
          StateLED(client);
          Changetext(client);
          client.println("");
          client.println(" "); 
          client.println("");
          client.println(" "); 
          client.println("");
          client.println("");
          delay(1);
          //stopping client
          client.stop();
          ///////////////////// control arduino pin
          readString="";
        }
      }
    }
  }
}
void StateLED(EthernetClient cl)
{
          if(readString.indexOf("on1") >0)//checks for on
          {
            digitalWrite(LED1, HIGH);    // set pin 5 high
            Serial.println("Led On");
          }
          if(readString.indexOf("off2") >0)//checks for off
          {
            digitalWrite(LED1, LOW);    // set pin 5 low
            Serial.println("Led Off");
          } 
}
void Changetext(EthernetClient cl){
    val_LED1 = digitalRead(LED1);
    Serial.println(val_LED1);
    if(val_LED1 == HIGH){
        cl.println("ON
");
    }
    else {
        cl.println("OFF
");
    }  
}


นาย สุธรรม แสงทรง ปวส.2 เทคโนโลยีคอมพิวเตอร์ เลขที่ 12

อ้างอิง
http://www.myarduino.net/article/16/arduino-web-sever-ควบคุม-led-ด้วย-button

ไม่มีความคิดเห็น:

แสดงความคิดเห็น