สื่อสารข้อมูลแบบไร้สายด้วยโมดูล TLP434/RLP434

ในปัจจุบัันการส่งข้อมูลแบบไร้สายจำแนกได้เป็น 2 อย่าง 1. สื่อสารทางแสง อาจจะเป็นแสงไฟหรือแสงอินฟราเรด 2. การสื่อสารผ่านทางคลื่นวิทยุ เช่น Bluetooth

สำหรับไมโครคอนโทรลเลอร์ก็เช่นกันสามารถสื่อสารทางแสงหรือคลื่นวิทยุได้เหมือนกัน เมื่อประมาณปี 2548 ได้ลองเล่นโมดูลรับส่งชุดนึง สามารถต่อโดยตรงกับไมโครคอรโทรลเลอร์ได้่เลย ตอนนั้นงานผมจะใช้ PIC16F ซะเป็นส่วนใหญ่ เลยเอามาต่อเป็นตัวรับตัวส่ง ก็ใช้งานได้ดีพอสมควร สมราคาโมดูล RF

Frequency : 433.92 MHz

Modulation : ASK

Voltage Operation : 2-12V

RF Output Power : 8mW@3.6V

ขนาดตัวส่งโดยประมาณ : 10×15 mm

ขนาดตัวรับโดยประมาณ : 43×10 mm

?

รูปที่ 1 โมดูลรับส่ง RF TLP/RLP434 (ด้านหลัง)

รูปที่ 2 โมดูลรับส่ง RF TLP/RLP434 (ด้านหน้า)

อยู่มาวันนึงผมก็เกิดไอเดียว่าจะเอาโมดูลรับส่งมาทำอะไรดี เลยเอามาลองใช้เป็นออดไร้สายเรียกคนในบ้้าน ให้ช่วยเปิดประตู เวลาจะขับรถเข้าบ้าน ระบบไร้สายถ้าจะให้คล่องตัวก็ต้องใส่ถ่าน ถ้าจะใช้พวก MCS-51 มันก็คงจะกินไฟมากกว่า เลยเอามาต่อกับ USART ของ PIC16F628A ทำเป็นภาคตัวส่ง

ส่วนภาครับก็ใช้ 16F628A มารับสัญญาณจาก RLP434 หลังจากรับสัญญาณแล้วก็ทำการเช็คความถูกต้องของข้อมูล ตรงนี้จะสำคัญมาก เพราะเจ้าตัวรับ (RLR434) จะรับข้อมูลขยะเข้ามาตลอดเวลา ถ้าไม่มีการเช็คความถูกต้องของข้อมูลก็จะมีการรับข้อมูลขยะมาประมวลผลได้

โปรโตคอลรับ/ส่ง

ผมใช้วิธีแบบง่ายๆและได้ผลคือส่ง Start byte ไปก่อน แล้วตามด้วยข้อมูล แล้วจบด้วย CRLF เมื่อฝั่งรับเจอ Start byte ก็จะทำการรับข้อมูลไปเรื่อยๆ จนกระทั่ง buffer ของฝั่งรับเต็มหรือเจอ CRLF ถ้าเจอ CRLF ก็จะนำข้อมูลไปตรวจสอบความถูกต้อง เช่น ฝั่งส่งส่ง :CMD01<CR> ถ้าฝั่งรับรับได้ข้อมูล “CMD01″ ก็จะ enable การทำงานนั่น

สำหรับโปรโตคอลที่ซับซ้อนขึ้นเราจำเป็นต้องมี Error Checking ตรวจสอบข้อมูลเช่น Check Sum หรือ CRC16 แต่จากการทดลองรับส่งการใช้ Check Sum ก็เพียงพอ และยังใช้ Cycle ในการคำนวณไม่มากเท่า CRC16

การสร้าง

สำหรับการสร้าง จะมีฝั่งรับ/ฝั่งส่ง ทางฝั่งส่งผมออกแบบให้ใช้กับถ่าน 9V แล้วมี IC 7805 แปลงเป็นไฟ 5V เพื่อเอาไปเลี้ยงวงจร ทางฝั่งส่งไม่ค่อยจะมีปัญหาเท่าไหร่ เนื่องจากไม่จำกัดเรื่องขนาด และไฟเลี้ยง

เพื่อให้ง่ายต่อการสร้าง ผมเลยใช้แผ่นปริ๊นอเนกประสงค์แล้ว wire สายเอา

รูปที่ 3 วงจรภาคส่ง (คล๊กเพื่อดูภาพใหญ่)

รูปที่ 4 วงจรภาครับ (คล๊กเพื่อดูภาพใหญ่)

หลังจากหลังขดหลังแข็ง wire สายมาก็จะได้ชุดรีโมทภาคส่งมาทดลองกัน สำหรับกล่องที่ใส่ก็เป็นกล่องอเนกประสงค์ทั่วไปครับ อย่าลืมต่อสายไฟทำเป็นเสาอากาศด้วยนะครับเพือเพิ่มระยะทางการส่ง

รูปที่ 5 ภาคส่ง

ส่วนของภาครับ ผมจะใช้่ฝาของกล่องอเนกประสงค์ ทำเป็นฐานรองแผ่นปริ๊นแล้วใช้สายไฟต่อเป็นเสาอากาศ

รูปที่ 6 ภาครับ

Source Code

Compiler : Hi-tech 8.02 + MPLAB V7.0

ถ้าต้องการ Compiler มาทดลองใช้สามารถ Download ตัว Demo ได้ที่นี่ครับ

Download Code สื่อสารข้อมูลแบบไร้สายด้วยโมดูล TLP434/RLP434

ขั้นตอนการลงโปรแกรม HI-TECH C COMPILER

หลังจากที่ Download ตัว Demo มาทดลองใช้ ให้ลง MPLAB ก่อน จากนั้นทำการลงโปรแกรม HI-TECH ที่ Download มา

รูปที่ 1?

รูปที่ 2

หลังจากอ่านข้อตกลงของโปรแกรม (Software License Agreement) แล้ว ให้คลิก Yes

รูปที่ 3

เลือก Folder ที่ต้องการลงโปรแกรม โดยทั่วไปจะอยู่ที่ C:\HT_PIC

รูปที่ 4

รูปที่ 5

?

รูปที่ 6

?

รูปที่ 7

เมื่่อมาถึงขั้นตอนสุดท้ายจะต้องทำการ Restart คลิก Yes เพื่อ Restart

รูปที่ 8

โปรเจคแรกกับ HI-TECH C COMPILER

ทำการสร้่าง Project โดยเลือก Project –> Project Wizard… ตัว Wizard นี้จะช่วยให้สร้างโปรเจคได้ง่ายขึ้น

รูปที่ 1

เจอข้อความต้อนรับให้กด Next > ไป

รูปที่ 2

เลือกเบอร์ PIC ที่ใช้ ผมเลือก 16F873A

รูปที่ 3

เลือก Language toolsuite หรือเลือกตัว Compiler นั่นเอง ให้เลือก HI-TECH PICC Toolsuit ในกรณีที่เป็นกากบาทสีแดงให้ Browse… หา ณ ตำแหน่งที่เราลงโปรแกรมไว้

รูปที่ 4

ตั้งชื่อโปรเจคและระบุตำแหน่ง Directory

รูปที่ 5

ในกรณีที่มี File .c, .h แล้ว สามารถ add มาได้จากทางซ้ายมือ ถ้าไม่มีก็ Next > ไปเลย

รูปที่ 6

Wizard จะทำงานถึงขั้นสุดท้าย จากนี้เราต้องเขียน code ต่อเอง

รูปที่ 7

รูปที่ 8