was successfully added to your cart.

มาควบคุม Relay ผ่าน Network เบื้องต้นด้วย Raspberry PI กัน ( ตอนที่ 1 )

By December 25, 2013RaspberryPI, tutorial

 

มาควบคุม Relay ผ่าน Network เบื้องต้นด้วย Raspberry PI กัน ( ตอนที่ 1 )

บทความนี้เน้นสำหรับผู้เริ่มต้นในการออกแบบระบบควบคุมอุปกรณ์ผ่านเครือข่าย สำหรับผู้ที่ต้องการนำใช้งานในระดับที่มากกว่าการทำใช้เองหรือทำเล่น ย่อมต้องศึกษาวิธีการที่มากกว่าบทความนี้ทั้งด้านการออกแบบซอฟแวร์ โพรโตคอลที่ใช้ในการจัดการเป็นต้น

ก่อนจะเริ่มควบคุมอุปกรณ์ผ่าน network เราต้องเข้าใจไดอะแกรมของโครงงานนี้ก่อนว่าจะทำอะไร
ในระบบตัวอย่างที่จะนำมาสาธิตถ้าวาดรูปออกมาจะได้คร่าวๆ ว่า

Untitled 

เริ่มต้นเตรียมอุปกรณ์ที่จำเป็นต้องใช้เลยก่อนอื่นคือ Raspberry PI และ Computer ที่ใช้ในการทดสอบติดต่อสื่อสารโดยในที่นี้ให้ตั้งค่า IP address ของ Raspberry PI เป็นอะไรก็ได้ หรือจะเอาตามตัวอย่างก็ไม่ว่ากัน

ขั้นตอนที่ 1 Ping ระหว่าง Computer และ Raspberry PI ให้ได้ก่อน

ขั้นตอนแรกเป็นวิธีที่ง่ายที่สุดที่จะทดสอบว่า Computer ของเรา และ Raspberry PI สามารถติดต่อสื่อสารกันได้แล้วหรือไม่ นั่นคือการ ping โดยก่อนจะ ping ได้ต้องมั่นใจก่อนนะครับว่า Raspberry PI เสียบสาย LAN และอยู่ในวงเดียวกันกับ Computer แล้ว

Screen Shot 2556-12-26 at 1.02.10 AM 

ถ้าเกิดมีการตอบรับจาก Raspberry PI ก็เรียกว่าใช้ได้แล้วครับ

ขั้นตอนที่ 2 เข้าใจสถาปัตยกรรมที่ออกแบบ พร้อมโพรโตคอลที่ใช้งานแบบง่ายๆ กันก่อน

 หลังจากเราทดสอบ ping แล้วมั่นใจว่าคุยกันได้แน่นอนก็จะมาทำความเข้าใจกับการติดต่อสื่อสารของเรากันครับ ในการติดต่อสื่อสารเราจะกระทำผ่านสถาปัตยกรรมแบบ client/server

 

– Raspberry PI
เป็น Server รอรับการเชื่อมต่อจาก Client อย่างเดียวและเมื่อได้รับข้อมูลจาก Client จะไปประมวลผลและทำคำสั่งต่อไป


– Computer
เป็น Client มีหน้าที่ร้องขอเข้าไปเชื่อมต่อกับ Server และเราจะใช้ในการส่งชุดคำสั่งที่ต้องการไปหา Server 


ในตัวอย่างของเรานี้ จะใช้วิธีการคุยกันโดยการเปิด Port เชื่อมต่อระหว่าง Raspberry PI และ Computer และคุยผ่าน TCP protocol ดังนั้นเรื่องของ Application layer ที่ควรใช้ในการจัดการอุปกรณ์เช่น snmp เป็นต้นนี้ลืมไปได้เลย เพราะว่าเราจะทำแบบ simple ที่สุดครับ

** แนะนำให้ศึกษาเพิ่มเติมเรื่อง Mac address, IP address, Socket, TCP, UDP, สถาปัตยกรรม Server/Clientซึ่งเรื่องพวกนี้ค่อนข้างมีแหล่งข้อมูลที่กว้างและเยอะพอสมควร

 

ขั้นตอนที่ 3 เริ่มต้นพัฒนาซอฟแวร์บน Raspberry PI กัน

ในการพัฒนาซอฟแวร์บน Raspberry PI เราจะใช้ภาษา Python และเน้นไปที่โมดูลที่ชื่อว่า socket
เจ้าโมดูล socket จะถูกติดตั้งมาพร้อมกับ Python อยู่แล้วดังนั้นจึงไม่จำเป็นต้องลงซอฟแวร์อะไรเพิ่ม , แล้วโมดูลนี้มันคืออะไร

โมดูล socket จะสามารถทำให้เราเชื่อมต่อ BSD socket interface ซึ่งเป็น API มาตรฐานสำหรับระบบ internet socket เป็นต้นโดย BSD socket interface จะมีบน Modern Unix system, Linux, Window, Mac Os และบนระบบปฏิบัติการอีกหลายๆ ตัวที่ไม่ได้กล่าวถึง

 3.1 เริ่มต้นให้สร้างไฟล์ที่ชื่อว่า simple_server.py บน Raspberry PI กันก่อนโดยการพิมพ์คำสั่งดังนี้ไปบน Command line

nano simple_server.py

 3.2 เริ่มต้นทดลองใส่ซอร์สโค้ดลงไปดังนี้

 

Screen Shot 2556-12-26 at 1.27.28 AM 

 

ตัวแปร HOST_NAME ให้ปล่อยเป็น ” ส่วน HOST_PORT ให้ปรับเปลี่ยนเป็น port ที่ต้องการใช้การติดต่อสื่อสารระหว่าง Computer และ Raspberry PI

ต่อมาให้ทดลองเชื่อมต่อระหว่าง Raspberry PI และคอมพิวเตอร์โดยการรันซอฟแวร์ simple_server.py บน Raspberry PI กันก่อน

sudo python simple_server.py

หลังจากรันโปรแกรมทางด้านบนแล้ว Raspberry PI จะทำตัวเป็น Server ที่เปิด Socket หมายเลข 1111 รอการเชื่อมต่อจาก client อยู่เบื้องต้นให้ทดลองใช้ซอฟแวร์ที่มี โพรโตคอล telnet แล้วเลือกพอร์ตเป็น 1111 จะสามารถเชื่อมต่อกับ RaspberryPI server ได้ และเมื่อพิมพ์อะไรจาก client จะมีการตอบกลับจาก Server มาเสมอ

*** ซอฟแวร์ที่แนะนำ putty, hyperterminal, teraterm ( Window ), Mac terminal ( Mac ), Linux terminal ( Linux )

รอพบบทความตอนต่อไปเรื่องการเชื่อมต่อระหว่างซอฟแวร์รอบนี้กับ Relay

 

Join the discussion 2 Comments

Leave a Reply

*