สารบัญ:

การสื่อสารไร้สายโดยใช้โมดูล RF 433MHz ราคาถูกและไมโครคอนโทรลเลอร์ Pic ตอนที่ 2: 4 ขั้นตอน (พร้อมรูปภาพ)
การสื่อสารไร้สายโดยใช้โมดูล RF 433MHz ราคาถูกและไมโครคอนโทรลเลอร์ Pic ตอนที่ 2: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การสื่อสารไร้สายโดยใช้โมดูล RF 433MHz ราคาถูกและไมโครคอนโทรลเลอร์ Pic ตอนที่ 2: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การสื่อสารไร้สายโดยใช้โมดูล RF 433MHz ราคาถูกและไมโครคอนโทรลเลอร์ Pic ตอนที่ 2: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: การใช้งาน 433Mhz Wireless RF Transmitter and Receiver Module 2024, กรกฎาคม
Anonim
การสื่อสารไร้สายโดยใช้โมดูล RF 433MHz ราคาถูกและไมโครคอนโทรลเลอร์ Pic ตอนที่ 2
การสื่อสารไร้สายโดยใช้โมดูล RF 433MHz ราคาถูกและไมโครคอนโทรลเลอร์ Pic ตอนที่ 2

ในส่วนแรกของคำแนะนำนี้ ฉันสาธิตวิธีตั้งโปรแกรม PIC12F1822 โดยใช้คอมไพเลอร์ MPLAB IDE และ XC8 เพื่อส่งสตริงอย่างง่ายแบบไร้สายโดยใช้โมดูล TX/RX 433MHz ราคาถูก

โมดูลตัวรับสัญญาณเชื่อมต่อผ่านอะแดปเตอร์สายเคเบิล USB กับ UART TTL กับพีซี และข้อมูลที่ได้รับจะแสดงบน RealTerm การสื่อสารดำเนินการที่ 1200 บอด และช่วงสูงสุดที่ทำได้คือประมาณ 20 เมตรผ่านผนัง การทดสอบของฉันแสดงให้เห็นว่าสำหรับแอปพลิเคชันที่ไม่ต้องการอัตราข้อมูลสูงและระยะไกล และสำหรับการส่งข้อมูลอย่างต่อเนื่อง โมดูลเหล่านี้ทำงานได้ดีเป็นพิเศษ

ส่วนที่สองของโครงการนี้สาธิตวิธีการเพิ่มไมโครคอนโทรลเลอร์ PIC16F887 และโมดูล LCD ขนาด 16 × 2 อักขระบนเครื่องรับ ยิ่งไปกว่านั้น บนตัวส่งสัญญาณ โปรโตคอลอย่างง่ายจะถูกตามด้วยการเพิ่มตัวอย่างไบต์สองสามตัวอย่าง ไบต์เหล่านี้จำเป็นสำหรับโมดูล RX เพื่อปรับอัตราขยายก่อนที่จะรับน้ำหนักบรรทุกจริง ที่ฝั่งผู้รับ PIC มีหน้าที่รับและตรวจสอบข้อมูลที่แสดงบนหน้าจอ LCD

ขั้นตอนที่ 1: การปรับเปลี่ยนเครื่องส่งสัญญาณ

การปรับเปลี่ยนเครื่องส่งสัญญาณ
การปรับเปลี่ยนเครื่องส่งสัญญาณ
การปรับเปลี่ยนเครื่องส่งสัญญาณ
การปรับเปลี่ยนเครื่องส่งสัญญาณ
การปรับเปลี่ยนเครื่องส่งสัญญาณ
การปรับเปลี่ยนเครื่องส่งสัญญาณ

ในส่วนแรก ตัวส่งกำลังส่งสตริงอย่างง่ายทุกๆ สองสาม ms โดยใช้บิตข้อมูล 8 บิต บิตเริ่มต้น และบิตหยุดที่ 1200 บิตต่อวินาที เนื่องจากการรับส่งข้อมูลเกือบจะต่อเนื่อง ผู้รับจึงไม่มีปัญหาในการปรับการรับข้อมูลที่ได้รับ ในส่วนที่สอง เฟิร์มแวร์จะได้รับการแก้ไขเพื่อให้ส่งได้ทุกๆ 2.3 วินาที สิ่งนี้ทำได้โดยใช้การขัดจังหวะตัวจับเวลาจ้องจับผิด (ตั้งค่าเป็น 2.3 วินาที) เพื่อปลุกไมโครคอนโทรลเลอร์ ซึ่งอยู่ในโหมดสลีประหว่างการส่งแต่ละครั้ง

เพื่อให้ผู้รับมีเวลาปรับแต่งค่าเกน ไบต์นำสองสามไบต์ที่มีเวลา LO สั้น ๆ "(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xfa)" จะถูกส่งก่อนข้อมูลจริง จากนั้นเพย์โหลดจะถูกระบุด้วยไบต์เริ่มต้น '&' และไบต์หยุด '*'

ดังนั้น โปรโตคอลอย่างง่ายจึงมีคำอธิบายดังนี้:

(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xfa)&สวัสดี InstWorld!*

นอกจากนี้ ตัวเก็บประจุแทนทาลัมตัวแยกส่วน 10uF ยังถูกเพิ่มระหว่าง V+ และ GND ของโมดูล RF เพื่อกำจัดการกระเพื่อมที่เกิดจากโมดูลสเต็ปอัพ dc-dc

อัตราบอดยังคงเท่าเดิม แต่การทดสอบของฉันพบว่าที่ 2400 บอด การส่งก็มีประสิทธิภาพเช่นกัน

ขั้นตอนที่ 2: การปรับเปลี่ยนตัวรับสัญญาณ: การเพิ่ม PIC16F887 และ HD44780 LCD

การปรับเปลี่ยนตัวรับสัญญาณ: การเพิ่ม PIC16F887 และ HD44780 LCD
การปรับเปลี่ยนตัวรับสัญญาณ: การเพิ่ม PIC16F887 และ HD44780 LCD
การปรับเปลี่ยนตัวรับสัญญาณ: การเพิ่ม PIC16F887 และ HD44780 LCD
การปรับเปลี่ยนตัวรับสัญญาณ: การเพิ่ม PIC16F887 และ HD44780 LCD
การปรับเปลี่ยนตัวรับสัญญาณ: การเพิ่ม PIC16F887 และ HD44780 LCD
การปรับเปลี่ยนตัวรับสัญญาณ: การเพิ่ม PIC16F887 และ HD44780 LCD

การออกแบบเครื่องรับมีพื้นฐานมาจาก PIC16F887 แต่คุณสามารถใช้ PIC อื่นได้โดยมีการดัดแปลงเล็กน้อย ในโครงการของฉัน ฉันใช้ μC 40 พินนี้ เนื่องจากฉันต้องการหมุดเพิ่มเติมสำหรับโครงการในอนาคตตามการออกแบบนี้ เอาต์พุตของโมดูล RF เชื่อมต่อกับพิน UART rx ในขณะที่ LCD อักขระ 16x2 (HD44780) เชื่อมต่อผ่านพิน PORTB b2-b7 เพื่อแสดงข้อมูลที่ได้รับ

เช่นเดียวกับส่วนที่ 1 ข้อมูลที่ได้รับจะแสดงบน RealTerm ด้วย ทำได้โดยใช้พิน UART tx ซึ่งเชื่อมต่อผ่านอะแดปเตอร์สายเคเบิล USB เป็น UART TTL กับพีซี

เมื่อพิจารณาถึงเฟิร์มแวร์ เมื่อมีการขัดจังหวะ UART โปรแกรมจะตรวจสอบว่าไบต์ที่ได้รับเป็นไบต์เริ่มต้น ('&') หรือไม่ ถ้าใช่ จะเริ่มบันทึกไบต์ถัดไป จนกว่าจะตรวจพบไบต์หยุด ('*') ทันทีที่ได้รับทั้งประโยค และหากเป็นไปตามโปรโตคอลอย่างง่ายที่อธิบายไว้ก่อนหน้านี้ ประโยคนั้นจะถูกส่งไปยังหน้าจอ LCD เช่นเดียวกับพอร์ต UART tx

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

ในส่วนของฮาร์ดแวร์ ตัวรับจำเป็นต้องมีส่วนประกอบบางส่วน:

1 x PIC16F887

1 x HD44780

1 x โมดูล RF Rx 433Mhz

ตัวเก็บประจุแทนทาลัม 1 x 10 μF (ดีคัปปลิ้ง)

ทริมเมอร์ 1 x 10 K (ความสว่างแบบอักษร LCD)

ตัวต้านทาน 1 x 220 Ω 1/4 W (แสงไฟ LCD)

1 x 1 KΩ 1/4 W

1 x เสาอากาศ 433Mhz, 3dbi

ในทางปฏิบัติ เครื่องรับทำงานได้ดีเป็นพิเศษในระยะสูงสุด 20 เมตรผ่านผนัง

ขั้นตอนที่ 3: ข้อมูลอ้างอิงบางส่วน…

มีบล็อกมากมายบนเว็บที่ให้คำแนะนำเกี่ยวกับการเขียนโปรแกรม PIC และการแก้ไขปัญหานอกเหนือจากเว็บไซต์ทางการของ Microschip ฉันพบว่าสิ่งต่อไปนี้มีประโยชน์มาก:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

ขั้นตอนที่ 4: บทสรุปและงานในอนาคต

ฉันหวังว่าคำแนะนำนี้จะช่วยให้คุณเข้าใจวิธีใช้โมดูล RF และไมโครคอนโทรลเลอร์ Pic คุณสามารถปรับเฟิร์มแวร์ให้เข้ากับความต้องการของคุณเอง รวมทั้ง CRC และการเข้ารหัส หากคุณต้องการทำให้การออกแบบของคุณซับซ้อนยิ่งขึ้น คุณอาจใช้เทคโนโลยี Keeloq ของ Microschip ในกรณีที่แอปพลิเคชันของคุณต้องการข้อมูลแบบสองทิศทาง คุณจะต้องมี TX/RX หนึ่งคู่ที่ไมโครคอนโทรลเลอร์ทั้งสอง หรือคุณสามารถใช้ตัวรับส่งสัญญาณที่มีความซับซ้อนมากขึ้น โมดูล อย่างไรก็ตาม การใช้โมดูล 433MHz ราคาถูกประเภทนี้ การสื่อสารแบบ half duplex เท่านั้นที่สามารถทำได้ นอกจากนี้ เพื่อให้การสื่อสารมีความน่าเชื่อถือมากขึ้น คุณจะต้องมีการจับมือกันระหว่าง TX และ RX

ในคำแนะนำถัดไป ฉันจะแสดงแอปพลิเคชันที่ใช้งานได้จริงซึ่งมีการเพิ่มเซ็นเซอร์สิ่งแวดล้อมพร้อมอุณหภูมิ ความดันบรรยากาศ และความชื้นบนเครื่องส่งสัญญาณ ที่นี่ข้อมูลที่ส่งจะรวม crc และจะมีการเข้ารหัสพื้นฐาน

เซ็นเซอร์จะใช้พอร์ต i2c ของ PIC12F1822 ในขณะที่การใช้งานทั้งตัวส่งและตัวรับจะถูกเปิดเผยผ่านไฟล์แผนผังและ pcb ขอบคุณที่อ่าน

แนะนำ: