- ส่วนประกอบที่จำเป็น:
- โมดูล RF:
- คำอธิบายการทำงาน:
- คำอธิบายวงจร:
- การติดตั้ง WirePi Library ใน Raspberry Pi:
- คำอธิบายการเขียนโปรแกรม:
ในเซสชั่นนี้เราจะพัฒนาRF Remote Control โดยใช้ Raspberry Piซึ่งสามารถใช้ควบคุมอุปกรณ์แบบไร้สายได้ เราสามารถเปิดและปิดอุปกรณ์โดยใช้รีโมทคอนโทรล RF นี้ ก่อนหน้านี้เราได้พัฒนาโครงการมากมายโดยใช้โมดูล RF เช่น RF Controlled Robot, Hand Gesture Controlled Robot เป็นต้นตรวจสอบเพื่อทำความเข้าใจการทำงานของ RF Module
ส่วนประกอบที่จำเป็น:
ด้านเครื่องส่ง:
- เครื่องส่ง RF (ASK Hybrid Transmitter)
- HT12E IC
- 4 ปุ่มกด
- ตัวต้านทาน 750k
- แบตเตอรี่ 9 โวลต์
ด้านรับ:
- ราสเบอร์รี่ Pi
- 16x2 LCD
- 10K พอต
- กระดานขนมปัง
- ตัวต้านทาน 1K (ห้า)
- ตัวต้านทาน 33K
- HT12D ไอซี
- ตัวรับ RF (ASK Hybrid Receiver)
- ไฟ LED (ห้า)
- ตัวต้านทาน 10K (สี่)
- สายเชื่อมต่อ
- พาวเวอร์ซัพพลาย
โมดูล RF:
นี่คือโมดูลASK Hybrid Transmitter และตัวรับที่ทำงานที่ความถี่ 433Mhz โมดูลนี้มีออสซิลเลเตอร์ที่มีความเสถียรแบบคริสตัลเพื่อรักษาการควบคุมความถี่ที่แม่นยำสำหรับช่วงที่ดีที่สุด เราจำเป็นต้องใช้เสาอากาศภายนอกเพียงตัวเดียวสำหรับโมดูลนี้
โมดูลนี้ประหยัดค่าใช้จ่ายมากเมื่อต้องใช้การสื่อสาร RF ระยะไกล โมดูลนี้ไม่ได้ส่งข้อมูลโดยใช้การสื่อสาร UART ของพีซีหรือไมโครคอนโทรลเลอร์โดยตรงเนื่องจากมีสัญญาณรบกวนจำนวนมากที่ความถี่นี้และเทคโนโลยีอนาล็อก เราสามารถใช้โมดูลนี้ด้วยความช่วยเหลือของไอซีตัวเข้ารหัสและตัวถอดรหัสซึ่งดึงข้อมูลจากสัญญาณรบกวน
ช่วงของเครื่องส่งสัญญาณอยู่ที่ประมาณ 100 เมตรที่แรงดันไฟฟ้าสูงสุดและสำหรับ 5 โวลต์ช่วงของเครื่องส่งจะอยู่ที่ประมาณ 50-60 เมตรโดยใช้สายอากาศรหัสเดียวความยาว 17 ซม.
คุณสมบัติเครื่องส่งสัญญาณ RF:
- ช่วงความถี่: 433 Mhz
- กำลังขับ: 4-16dBm
- แหล่งจ่ายไฟเข้า: 3 ถึง 12 โวลต์ dc
คำอธิบายพินของ RF Tx:
- GND - แหล่งจ่ายภาคพื้นดิน
- ข้อมูลเข้า - พินนี้ยอมรับข้อมูลอนุกรมจากตัวเข้ารหัส
- Vcc - +5 Volt ควรเชื่อมต่อกับพินนี้
- เสาอากาศ - เชื่อมต่อกับพินนี้เพื่อการรับส่งข้อมูลที่เหมาะสม
คุณสมบัติตัวรับ RF:
- ความไว: -105dBm
- IF ความถี่: 1MHz
- การใช้พลังงานต่ำ
- ปัจจุบัน 3.5 mA
- แรงดันไฟฟ้า: 5 โวลต์
คำอธิบายพินของ RF Rx:
- GND - กราวด์
- ข้อมูลเข้า - พินนี้ให้ข้อมูลอนุกรมเอาต์พุตไปยังตัวถอดรหัส
- ข้อมูลเข้า - พินนี้ให้ข้อมูลอนุกรมเอาต์พุตไปยังตัวถอดรหัส
- Vcc - +5 Volt ควรเชื่อมต่อกับพินนี้
- Vcc - +5 Volt ควรเชื่อมต่อกับพินนี้
- GND - กราวด์
- GND - กราวด์
- เสาอากาศ - การเชื่อมต่อแบบห่อกับพินนี้เพื่อการรับข้อมูลที่เหมาะสม
คำอธิบายการทำงาน:
การทำงานของโครงการนี้ง่ายมาก ในโครงการนี้เราได้ใช้ปุ่มสี่ปุ่มที่ด้านเครื่องส่งสัญญาณ (ทำหน้าที่เป็นรีโมท) เพื่อควบคุมไฟ LED สี่ดวงที่ปลายเครื่องรับ เมื่อเรากดปุ่มใดปุ่มหนึ่งในสี่ปุ่มจากนั้น Encoder IC จะเข้ารหัสสัญญาณและส่งไปยังเครื่องส่งRFและเครื่องส่งสัญญาณ RF จะส่งสัญญาณในสภาพแวดล้อม ตอนนี้RF Receiverรับสัญญาณที่ส่งและถอดรหัสโดยใช้ Decoder IC HT12D และส่งเอาต์พุต 4 บิตไปยัง Raspberry Pi จากนั้น Raspberry Pi จะอ่านบิตเหล่านี้และทำงานที่เกี่ยวข้องและเรืองแสง LED ตามลำดับ เสียงกริ่งจะดังขึ้นเป็นวินาทีเมื่อใดก็ตามที่กดปุ่มใด ๆ นอกจากนี้ยังใช้ LCD 16x2 เพื่อแสดงสถานะ 'เปิดหรือปิด' ของ LED ทั้งหมด
ในโครงการนี้เราใช้ LED สี่ดวงเพื่อการสาธิตเท่านั้นเราสามารถทริกเกอร์งานใด ๆ ได้โดยกดปุ่มตามลำดับที่ 'RF Remote' เช่นเดียวกับที่เราสามารถเชื่อมต่อเครื่องใช้ไฟฟ้าภายในบ้านแทน LED ได้โดยใช้รีเลย์และสามารถควบคุมอุปกรณ์เหล่านั้นโดยใช้ 'RF Remote' แบบไร้สายเดียวกัน ดังนั้นวงจรเดียวกันนี้สามารถทำงานเป็นRF ตามโครงการบ้านอัตโนมัติโดยใช้ราสเบอร์รี่ Pi ก่อนหน้านี้เราได้พัฒนาโครงการ Home Automation หลายโครงการที่ควบคุมโดยใช้ Bluetooth, DTMF, GSM และอื่น ๆ คุณสามารถตรวจสอบโครงการ Home Automation ทั้งหมดได้ที่นี่
คำอธิบายวงจร:
วงจรของRaspberry Pi RF Remote Controlนั้นเรียบง่ายซึ่งประกอบด้วย Raspberry Pi Board, ปุ่มกดและ LCD, RF Pair และ IC ตัวเข้ารหัส / ถอดรหัสRaspberry Piควบคุม LCD อ่านอินพุตและส่งเอาต์พุตตามอินพุต เราใช้ Raspberry Pi 3 ที่นี่แล้ว แต่ Raspberry รุ่นใดก็ได้ควรใช้งานได้ วงจรแบ่งออกเป็นสองส่วนส่วนหนึ่งคือวงจร RF Receiver และอีกส่วนคือวงจรส่งสัญญาณ RF ทั้งสองวงจรแสดงในแผนภาพด้านล่าง
ในส่วนของเครื่องรับขา LCD rs, en, d4, d5, d6, d7 เชื่อมต่อที่สายไฟPi GPIO Pin 11, 10, 6, 5, 4, 1 ในโหมด 4 บิต RF Receiver รับสัญญาณจาก RF Transmitter และ HT12D IC ถอดรหัส D8, D9, D10, D11 ของ IC ตัวถอดรหัส HT12D เชื่อมต่อโดยตรงที่สายไฟ PIN GPIO 25, 24, 23 และ 22 LED เอาต์พุตเชื่อมต่อที่สายไฟ Pi GPIO ขา 26, 27, 28 และ 29 นอกจากนี้ยังใช้ออดสำหรับแจ้งเตือน กดปุ่มที่สายไฟ Pi GPIO 0.
วงจรเครื่องส่ง RF ประกอบด้วย HT12E Encoder IC และปุ่มกด 4 ปุ่มเพื่อควบคุม LED 4 ดวง ใน Encoder และ Decoder IC สายแอดเดรสทั้งหมดเชื่อมต่อกับกราวด์
การติดตั้ง WirePi Library ใน Raspberry Pi:
เช่นเดียวกับใน Python เรานำเข้านำ เข้า RPi.GPIO เป็น ไฟล์ส่วนหัว IO เพื่อใช้ GPIO Pins ของ Raspberry Pi ที่นี่ในภาษา C เราต้องใช้ WirePi Library เพื่อใช้ GPIO Pins ในโปรแกรม C ของเรา เราสามารถติดตั้งได้โดยใช้คำสั่งด้านล่างทีละคำสั่งคุณสามารถเรียกใช้คำสั่งนี้จาก Terminal หรือจากไคลเอนต์ SSH บางตัวเช่น Putty (หากคุณใช้ Windows) อ่านบทแนะนำการเริ่มต้นใช้งาน Raspberry Pi ของเราเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการจัดการและกำหนดค่า Raspberry Pi
sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade git clone git: //git.drogon.net/wiringPi การเดินสาย cdPi git ดึงต้นกำเนิดการเดินสาย cdPi./build
ทดสอบการติดตั้งไลบรารี WirePi โดยใช้คำสั่งด้านล่าง:
gpio -v gpio readall
คำอธิบายการเขียนโปรแกรม:
ก่อนอื่นเรารวมไฟล์ส่วนหัวและกำหนดพินสำหรับ LCD จากนั้นเริ่มต้นตัวแปรและพินบางตัวเพื่อรับสัญญาณอินพุตและ LED
# รวม
หลังจากนั้นเราจะให้คำแนะนำกับ GPIO Pins ที่ใช้ทั้งหมดในฟังก์ชัน void setup ()
การตั้งค่าเป็นโมฆะ () {if (WirePiSetup () == -1) {clear () พิมพ์ ("ไม่สามารถเริ่มได้"); setCursor (0,1); พิมพ์ ("WirePi"); } pinMode (led1, เอาท์พุท); PinMode (led2, เอาท์พุท); PinMode (led3, เอาท์พุท); PinMode (led4, เอาท์พุท); ……. ……….
ในรหัสเราใช้ฟังก์ชัน digitalRead เพื่ออ่านเอาต์พุตของตัวถอดรหัสและ digitalWrite เพื่อส่งเอาต์พุตไปยัง LED หรืออุปกรณ์
…………….. ในขณะที่ (1) {setCursor (0,0); พิมพ์ ("D1 D2 D3 D4"); ถ้า (digitalRead (d1) == 0) {flag1 ++; setCursor (0,1); ถ้า (flag1% 2 == 1) {พิมพ์ ("ON"); digitalWrite (led1, สูง); }……………..
นี่คือฟังก์ชั่นเพิ่มเติมบางส่วนที่ถูกใช้ในโปรเจ็กต์นี้
ฟังก์ชัน void lcdcmd ใช้สำหรับส่งคำสั่งไปยัง LCD และ ฟังก์ชัน void write ใช้สำหรับส่งข้อมูลไปยัง LCD
ฟังก์ชัน void clear () ใช้เพื่อล้าง LCD, void setCursor ใช้เพื่อกำหนดตำแหน่งเคอร์เซอร์และการ พิมพ์เป็นโมฆะ สำหรับการส่งสตริงไปยัง LCD
ฟังก์ชัน void begin ใช้เพื่อเริ่มต้น LCD ในโหมด 4 บิตและ void buzzer () สำหรับส่งเสียงบี๊บ
ตรวจสอบรหัสเต็มสำหรับ Raspberry RF Remote Control ด้านล่าง