ブログ

Armadillo-640:USB-RS485変換を使って温湿度のデータを取得してみた

at_yukari.hara
2021年2月1日 10時37分

Armadillo-640でUSB-RS485変換を使って、RS485(Modbus通信)で温湿度センサーからデータを取得してみました。

使用したもの

手順

1.接続方法

Armadillo-640にUSB-RS485変換を挿し、USB-RS485変換と温度湿度センサを以下のように接続を行う。

温度湿度センサ 接続先
VCC+ 電源
GND GND(USB-RS485変換)/電源
485A A+(USB-RS485変換)
485B B-(USB-RS485変換)

2.必要なパッケージ、ライブラリのインストール

以下のコマンドを実行し、必要なパッケージをインストールします。

root@armadillo:~# apt-get update
root@armadillo:~# apt-get upgrade
root@armadillo:~# apt-get install python3
root@armadillo:~# apt-get install python3-pip
root@armadillo:~# pip3 install pymodbus

3.Pythonプログラムの作成

下記の内容のファイルを作成します。
(後述の説明上、このファイル名を"rs485.py"とします。)

import time
from pymodbus.client.sync import ModbusSerialClient

client = ModbusSerialClient(baudrate=9600, port="/dev/ttyUSB0", method="rtu")
if client.connect():
  res = client.read_holding_registers(address=0, count=2, unit=1)

  print("-" * 30)
  temperature = res.registers[0]/10
  print("temp:{}".format(temperature))
  humidity  = res.registers[1]/10
  print("humidity:{}".format(humidity))
  print("-" * 30)
  client.close()

4.実行

作成した"rs485.py"を下記のようにpython3で実行すると、温度と湿度がコンソールに表示されます。

root@armadillo:~# python3 485.py
------------------------------
temp:28.4
humidity:25.1
------------------------------