วันพุธที่ 22 กุมภาพันธ์ พ.ศ. 2560

Ethernet Shield W5100 กับ Arduino

Ethernet Shield W5100 กับ Arduino 


ถ้าต้องการให้ Arduino สามารถติดต่อกับเครือข่าย หรือเชื่อมต่อกับอินเตอร์เน็ตได้ เพื่อที่จะได้สะดวกในการควบคุมและติดตามอุปกรณ์ต่าง ๆ เช่น การดึงค่าเซนเซอร์ต่าง ๆ ที่เราติดตั้งไว้ มาดูบนโทรศัพท์มือถือ หรือการเปิดปิดเครื่องใช้ไฟฟ้าผ่านทางอินเตอร์เน็ต เพียงแค่เสียบ Ethernet Shield W5100 ตัวนี้ลงไป ก็สามารถเชื่อมต่อ Arduino กับโลกกว้างภายนอกผ่านทาง Ethernet หรือ Internet ได้แล้ว
บอร์ด Module Ethernet Shield W5100 นี้ใช้งานง่าย เพียงแค่เสียบลงบนตัวบอร์ด Arduino Uno ก็สามารถใช้งานได้แล้ว มีช่องเสียบ SD Card มาให้ด้วยสะดวกในการบันทึกข้อมูลจำนวนมาก ๆ ลงบน SD Card มีไลบารีมาตรฐานมาให้พร้อมใช้งาน

สำหรับวิธีการใช้งาน
เสียบ Ethernet Shield W5100 ลงบนบอร์ด Arduino Uno จากนั้นเสียบสายแลนที่มีอินเตอร์เน็ต (สำหรับใช้ดึงข้อมูลจากอินเตอร์เน็ต) เข้ากับตัวบอร์ด Ethernet Shield W5100
การทดลองเล่น ขั้นที่ 1 ลองหา IP ของบอร์ด Module Ethernet Shield W5100 

หา IP ของบอร์ด Ethernet Shield W5100 ที่เราใช้งานก่อน  ในตัวอย่างนี้จะพบว่า IP คือ 192.168.0.4
วิธีการง่าย ๆ เพียงแค่ก็อปแล้ววาง โคดนี้ลงไปแล้วรัน ก็จะเห็นค่า IP ที่เราใช้อยู่ออกมา
#include "SPI.h"
#include "Ethernet.h"


byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte server[] = { 173,194,126,119 }; // www.google.co.th

EthernetClient client;

void setup()
{
Serial.begin(9600);
if(Ethernet.begin(mac) == 0) { // start ethernet using mac & DHCP
Serial.println("Failed to configure Ethernet using DHCP");
while(true) // no point in carrying on, so stay in endless loop:
;
}
delay(1000); // give the Ethernet shield a second to initialize

Serial.print("This IP address: ");
IPAddress myIPAddress = Ethernet.localIP();
Serial.print(myIPAddress);
if(client.connect(server, 80)>0) {
Serial.println(" connected");
client.println("GET /search?q=arduino HTTP/1.0");
client.println();
} else {
Serial.println("connection failed");
}
}

void loop()
{
if (client.available()) {
char c = client.read();
// uncomment the next line to show all the received characters 
// Serial.print(c);
}

if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
for(;;)
;
}
}
การทดลองเล่น ขั้นที่ 2 ทำโปรแกรม เปิด/ปิด ไฟ ผ่านอินเตอร์เน็ต
โดยตัวอย่างนี้จะใช้ LED ต่อกับขา 5 ของบอร์ด Arduino Uno จากนั้นอัพโหลดโคดนี้ลงไป

จากนั้น เปิดหน้าเว็บขึ้นมาแล้วพิมพ์ไปที่ ip ของ Arduino Ethernet ของเรา เช่นของผม IP คือ 192.168.0.4 ก็จะพบกับหน้าเว็บควบคุม เปิด/ปิด LED ผ่านทางอินเตอร์เน็ตได้แล้ว

การทดลองแบบที่ 3 ทดสอบอ่านค่าจาก Arduino แล้วนำมาแสดงบน internet ผ่านทาง Ethernet Shield Module W5100
ก็อปโคดนี้ลงไป จากนั้นเข้าไปที่ ip ของ arduino เรา ตัวอย่างนี้ ip ที่แจกมาคือ 192.168.0.4 ก็จะสามารถนำค่าจากบอร์ด arduino ไปแสดงบนหน้าเว็บได้แล้ว


โมดูลนี้มี SD Card มาให้ด้วย เราสามารถบันทึกข้อมูล ค่าต่าง ๆ ลงใน SD Card เพื่อแสดงผลผ่านทาง ethernet/internet ได้ โดยวิธีใช้ SD Card ดูได้จากตัวอย่างนี้ครับ https://www.arduinoall.com/b/9

สำหรับการใช้งาน Ethernet Shield w5100 จริง ๆ มีมากมาย อาจจะใช้ร่วมกับ php , ajax , jquery , bootstrap เพื่อให้ใช้งานได้อย่างหลากหลายและยื้ดหยุ่น หรืออาจจะลองหาตัวอย่างใน google ก็มีแบบสำเร็จรูป ให้เลือกใช้งาน หวังว่าบทความนี้คงจะพอให้เห็นภาพการใช้งาน Ethernet Shield และคงช่วยให้เริ่มต้นได้อย่างรวดเร็วนะครับ ขอบคุณครับ

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

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