Raspberry PiでMAX485 RS485モジュールを使用する

Using the MAX485 RS485 Module with the Raspberry Pi

(日本語) MAX485 モジュールにより、Raspberry Piは プロトコルの産業オートメーション、Modbusコミュニケーションおよび長距離のシリアルデータ伝送のために広く利用されている、。このガイドでは、接続、設定、使用方法を説明します。 Raspberry PiでRS485モジュールをMAX485する Pythonを使用しています。


あなたが必要とするもの

  1. ラズベリーパイ (GPIO対応モデル(例:Pi 3、 Pi 4)
  2. MAX485 RS485モジュール
  3. RS485デバイス (例えばModbusセンサー、産業コントローラー)
  4. ジャンパーワイヤー
  5. インストールされたPython ラズベリーパイに

ステップ1: MAX485モジュールの理解

(日本語) MAX485 これは TTL-to-RS485トランシーバ これにより、Raspberry PiはRS485信号を送受信できます。

主な特徴:

  • ハーフデュプレックスRS485通信をサポート
  • 上で動作します 5V電源 (Raspberry Pi 3.3Vロジックに対応)
  • [使用] TX、 RX、 DE、 RE 通信制御用ピン

ステップ2:ラズベリーパイにMAX485を配線する

MAX485ピン ラズベリーピピン [関数]
VCC 5V(ピン2) パワーサプライ
GND GND(ピン6) グラウンド(Ground)
RO(ロー) GPIO15(ピン10) RS485データ受信(RX)
DI(ディー) GPIO14(ピン8) RS485データ送信(TX)
RE(リー) GPIO18(ピン12) 受信可能(LOWから受信)
「DE」 GPIO18(ピン12) ドライバ有効(HIGH送信)
(A) 線のRS485 RS485デバイスに接続する
B&B RS485 Bライン RS485デバイスに接続する

注意: (日本語) RE(リー) そして、 「DE」 ピンは一緒に制御されます GPIO18送信を有効または無効にします。


ステップ3: Raspberry PiでUARTを有効にする

  1. Raspberry Pi設定ツールを開きます。

    sudo raspi-config
    
  2. に移動します。 インターフェイスオプション>シリアルポート.

  3. シリアルコンソールを無効にしますが、 シリアルハードウェアを有効にする.

  4. Raspberry Piを再起動する:

    sudo reboot
    
  5. を確認します。 シリアル装置は利用できます:

    ls /dev/serial*
    

    あなたは見るべきです /dev/serial0.


ステップ4:必要なPythonライブラリをインストールする

  1. Raspberry Piを更新してください:
    sudo apt update && sudo apt upgrade -y
    
  2. Pythonシリアル通信ライブラリをインストールします。
    pip3 install pyserial
    

ステップ5: RS485経由で通信するPythonコード

RS485経由でデータを送受信するための基本的なPythonコード

import serial
import RPi.GPIO as GPIO
import time

# Define GPIO pin for RE/DE control
RS485_CONTROL = 18  

# Set up GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(RS485_CONTROL, GPIO.OUT)

# Configure the serial connection
ser = serial.Serial(
    port='/dev/serial0',  # Raspberry Pi UART port
    baudrate=9600,        # Set baud rate to match RS485 device
    timeout=1
)

def send_data(data):
    GPIO.output(RS485_CONTROL, GPIO.HIGH)  # Enable transmission
    time.sleep(0.01)  # Small delay before sending
    ser.write(data.encode())  # Send data as bytes
    time.sleep(0.01)  # Small delay to ensure data is sent
    GPIO.output(RS485_CONTROL, GPIO.LOW)  # Enable receiving

def receive_data():
    GPIO.output(RS485_CONTROL, GPIO.LOW)  # Enable reception
    data = ser.readline().decode('utf-8').strip()
    return data

try:
    while True:
        send_data("Hello RS485 Device!\n")
        print("Data sent!")

        # Wait for a response
        response = receive_data()
        if response:
            print(f"Received: {response}")

        time.sleep(2)
except KeyboardInterrupt:
    print("Exiting...")
finally:
    ser.close()
    GPIO.cleanup()

ステップ6: Raspberry PiとのRS485コミュニケーションの適用

  1. 産業オートメーション -Modbus RTUを使用してPLC、センサー、およびコントローラと通信します。
  2. 長距離通信 -RS485サポート 長距離データ伝送 最大1200メートル。
  3. マルチデバイスネットワーク -同じRS485バス上の複数のデバイスを接続します。
  4. スマートエネルギーメーター -Modbus互換のエネルギーメートルを読んで下さい。
  5. IoTとデータロギング -センサーデータを収集し、クラウドサーバーに送信します。

トラブルシューティング

  1. コミュニケーションなし

    • 配線接続をチェックし、確実に AおよびBライン 正しく接続されています。
    • それを確認する UARTが有効になっている 使用する sudo raspi-config.
    • 確認する RS485デバイスは同じボーレートを使用します Pythonで設定します。
  2. アクセス許可拒否エラー

    • ユーザーを追加する dialout シリアルポートアクセスのグループ:
      sudo usermod -aG dialout $USER
      sudo reboot
      
  3. 受信したデータのゴミ箱の文字

    • 両方のデバイスの使用を確認 同じボーレートとシリアル設定.
    • チェックする シールドケーブル より長い距離に必要です。

おわりに

(日本語) MAX485モジュール Raspberry Piが通信可能 RS485それを理想的にさせます 産業オートメーション、Modbusデバイス、長距離シリアルデータ伝送.このガイドに従うことによって、確立できます Raspberry PiとRS485デバイス間の双方向通信 IoTや組み込みシステムプロジェクトのために。 🚀

コメントを残す

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.