ใช้ Max3232 กับ Raspberry Pi

Using the MAX3232 with the Raspberry Pi

ที่ Max3232 เป็นตัวเปลี่ยนระดับที่ช่วยให้ Raspberry Pi สื่อสารกับอุปกรณ์ RS232 โดยการแปลง Raspberry Pi's สัญญาณ 3.3V UART ถึง ระดับแรงดันไฟฟ้า RS232- นี่เป็นสิ่งจำเป็นสำหรับการเชื่อมต่อ Raspberry Pi กับอุปกรณ์เช่นโมดูล GPS พีซีเก่าหรืออุปกรณ์อุตสาหกรรมที่ใช้การสื่อสาร RS232 คู่มือนี้จะนำคุณผ่านการตั้งค่าและใช้ไฟล์ Max3232 พร้อม Raspberry Pi.


สิ่งที่คุณต้องการ

  1. Raspberry Pi (รุ่นใด ๆ ที่มีการสนับสนุน GPIO เช่น PI 3, PI 4)
  2. โมดูล Max3232
  3. อุปกรณ์ RS232 (เช่นโมเด็มอนุกรมโมดูล GPS)
  4. สายเคเบิลอนุกรม DB9 (ถ้าจำเป็น)
  5. เครื่องหั่นขนมปังและสายจัมเปอร์
  6. ติดตั้ง Python บนราสเบอร์รี่ pi

ขั้นตอนที่ 1: ทำความเข้าใจ Max3232

ที่ Max3232 เป็นตัวแปลง RS232-to-TTL ที่:

  • แปลง Raspberry Pi Uart (3.3V) สัญญาณไปที่ ระดับแรงดันไฟฟ้า RS232.
  • แปลงสัญญาณ RS232 กลับเป็นสัญญาณ UART สำหรับ Raspberry Pi

คุณสมบัติที่สำคัญ

  • ทำงานที่ 3.3V หรือ 5V.
  • รองรับอัตราการรับส่งข้อมูลสูงถึง 250 kbps
  • รวมคู่ TX/RX สองคู่สำหรับการสื่อสารแบบสองทิศทาง

ขั้นตอนที่ 2: เดินสาย Max3232 ไปยัง Raspberry Pi

เชื่อมต่อโมดูล Max3232 เข้ากับ Raspberry Pi ดังนี้:

max3232 pin Raspberry Pi Pin
VCC 3.3V (พิน 1)
gnd GND (พิน 6)
t1in TX (PIN 8, GPIO14)
r1out RX (PIN 10, GPIO15)
t1out เชื่อมต่อกับพิน RS232 RX
r1in เชื่อมต่อกับพิน RS232 TX

บันทึก: พิน RS232 (T1OUT และ R1IN) เชื่อมต่อกับอุปกรณ์ RS232 ของคุณผ่านสายเคเบิลอนุกรม DB9 หากจำเป็น


ขั้นตอนที่ 3: เปิดใช้งาน UART บน Raspberry Pi

  1. เปิดเครื่องมือกำหนดค่า Raspberry Pi:
    sudo raspi-config
    
  2. นำทางไปยัง ตัวเลือกอินเตอร์เฟส> พอร์ตอนุกรม.
  3. ปิดการใช้งานคอนโซลอนุกรม แต่ เปิดใช้งานฮาร์ดแวร์อนุกรม.
  4. รีบูตราสเบอร์รี่ pi:
    sudo reboot
    

ขั้นตอนที่ 4: ติดตั้งเครื่องมือที่จำเป็น

ในการทดสอบการสื่อสาร RS232 คุณจะต้องมี minicom เครื่องมือเทอร์มินัล

  1. ติดตั้ง minicom:

    sudo apt update && sudo apt install minicom -y
    
  2. เปิด minicom เพื่อทดสอบการเชื่อมต่ออนุกรม:

    minicom -b 9600 -o -D /dev/serial0
    

    แทนที่ 9600 ด้วยอัตราการรับส่งข้อมูลของอุปกรณ์ RS232 ของคุณ


ขั้นตอนที่ 5: รหัส Python สำหรับการสื่อสารแบบอนุกรม

ใช้ pyserial ห้องสมุดที่จะส่งและรับข้อมูลผ่าน RS232

  1. ติดตั้งไลบรารีอนุกรม Python:

    pip3 install pyserial
    
  2. สร้างสคริปต์ Python สำหรับการสื่อสารแบบอนุกรม

ตัวอย่างรหัส Python

import serial
import time

# Initialize serial connection
ser = serial.Serial(
    port='/dev/serial0',  # Raspberry Pi's UART port
    baudrate=9600,       # Set baud rate to match RS232 device
    timeout=1            # Timeout in seconds
)

try:
    while True:
        # Send data
        ser.write(b'Hello RS232 Device!\n')
        print("Data sent!")

        # Wait for a response
        response = ser.readline().decode('utf-8').strip()
        if response:
            print(f"Received: {response}")

        time.sleep(2)  # Delay between transmissions
except KeyboardInterrupt:
    print("Exiting...")
finally:
    ser.close()

ขั้นตอนที่ 6: แอปพลิเคชันของ Max3232 กับ Raspberry Pi

  1. โมดูล GPS -อ่านข้อมูลจากอุปกรณ์ GPS ที่ใช้ RS232
  2. อุปกรณ์มรดก - เชื่อมต่อกับอุปกรณ์อุตสาหกรรมเก่าพีซีหรือโมเด็ม
  3. การดีบักและการทดสอบ - เชื่อมต่อกับอุปกรณ์อนุกรมสำหรับการวินิจฉัย
  4. โครงการ IoT - รวบรวมข้อมูลจากเซ็นเซอร์ RS232 และส่งไปยังแพลตฟอร์มคลาวด์

การแก้ไขปัญหา

  1. ไม่มีการสื่อสาร

    • ตรวจสอบว่าอุปกรณ์ RS232 ใช้พลังงานและเชื่อมต่ออย่างถูกต้อง
    • ตรวจสอบการเชื่อมต่อ RX และ TX อีกครั้ง
    • ตรวจสอบให้แน่ใจว่าอัตราการรับส่งข้อมูลตรงกับอุปกรณ์
  2. การอนุญาตถูกปฏิเสธข้อผิดพลาด

    • เพิ่มผู้ใช้ในไฟล์ dialout กลุ่มสำหรับการเข้าถึงพอร์ตอนุกรม:
      sudo usermod -aG dialout $USER
      sudo reboot
      
  3. ตัวละครขยะ

    • ตรวจสอบให้แน่ใจว่าอุปกรณ์ทั้งสองได้รับการกำหนดค่าให้ใช้อัตราการรับส่งข้อมูลและการตั้งค่าอนุกรมเดียวกัน
  4. ไม่พบอุปกรณ์

    • ตรวจสอบพอร์ต UART โดยใช้:
      ls /dev/serial*
      

บทสรุป

ที่ โมดูล Max3232 ช่วยให้ Raspberry Pi สื่อสารกับอุปกรณ์ RS232 ได้อย่างง่ายดายทำให้สามารถรวมเข้ากับอุปกรณ์เก่าหรืออุตสาหกรรมได้ ไม่ว่าคุณจะกำลังทำงานกับ IoT, การบันทึกข้อมูลหรือการเชื่อมต่ออุปกรณ์ดั้งเดิม MAX3232 ให้สะพานที่เชื่อถือได้ระหว่างระบบที่ทันสมัยและแบบดั้งเดิม 🚀

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

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.