Arduino Web Sever (ควบคุม LED ด้วย Button)
🔻
บทความนี้จะใช้เครื่องมือ 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
");
");
}
}
ความคิดเห็น
แสดงความคิดเห็น