工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Raspberry PiでMaxim 1-WireセンサーとDS2482 I2Cブリッジを用いた温度測定

Maxim 1-WireセンサーとDS2482 I2CブリッジによるRaspberry Pi温度測定

正確な温度監視は、気候制御からデータロギングまで、多くのRaspberry Piプロジェクトで不可欠です。DS18B20などのMaxim Integrated 1-Wireファミリセンサーは、シンプルでピン数の少ないソリューションを提供します。DS2482 1-Wire-I2Cブリッジを使用すると、最大10個のセンサーを単一のI2Cバスに接続でき、PiのGPIOフットプリントを最小限に抑えられます。

ハードウェア概要

ソフトウェア前提条件

本手順は、カーネルソースが利用可能な標準的なRaspbianインストールを前提としています。以下の変更後にカーネルをリビルドする必要があります。

ステップ1 – I2Cバス上でDS2482を有効化

カーネルソース内のarch/arm/mach-bcm2708/bcm2708.cを修正し、DS2482をI2Cデバイスとして登録します。以下のプラットフォームデバイス定義とボード情報配列を追加:

static struct platform_device bcm2708_bsc1_device = {
    .name = "bcm2708_i2c",
    .id = 1,
    .num_resources = ARRAY_SIZE(bcm2708_bsc1_resources),
    .resource = bcm2708_bsc1_resources,
};
static struct i2c_board_info __initdata pi_i2c_devs[] = {
    { I2C_BOARD_INFO("ds1307", 0x68)},
    { I2C_BOARD_INFO("ds2482", 0x18)},
};
...
bcm_register_device(&bcm2835_thermal_device);
i2c_register_board_info(1, pi_i2c_devs, ARRAY_SIZE(pi_i2c_devs));

デバイス追加後、カーネルを再コンパイルしてインストールします。

ステップ2 – カーネルで1-Wireプルアップを処理

drivers/w1/w1_io.cを修正し、DS2482が変換中にプルアップ抵抗を制御できるようにします。w1_post_write関数を以下に置き換え:

static void w1_post_write(struct w1_master *dev) {
    if (dev->pullup_duration) {
        if (dev->enable_pullup && dev->bus_master->set_pullup) {
            dev->bus_master->set_pullup(dev->bus_master->data, 0);
            msleep(dev->pullup_duration);
        } else {
            msleep(dev->pullup_duration);
        }
        dev->pullup_duration = 0;
    }
}

ステップ3 – DS2482ドライバにプルアップ制御を追加

drivers/w1/masters/ds2842.cに、遅延要求時にDS2482の強力プルアップを有効化するヘルパーを追加:

static u8 ds2482_w1_set_pullup(void *data, int delay) {
    struct ds2482_w1_chan *pchan = data;
    struct ds2482_data *pdev = pchan->pdev;
    u8 retval = 1;
    u8 cfg;
    if (delay) {
        ds2482_wait_1wire_idle(pdev);
        retval = ds2482_send_cmd_data(pdev, DS2482_CMD_WRITE_CONFIG,
            ds2482_calculate_config(DS2482_REG_CFG_SPU | DS2482_REG_CFG_APU));
        ds2482_wait_1wire_idle(pdev);
    }
    return retval;
}

最終ステップ

これらのカーネル調整により、Raspberry Piは単一のDS2482ブリッジを通じて最大10個の1-Wire温度センサーを確実に読み取れるようになり、マルチセンサー監視プロジェクトに最適です。

追加リソース

製造プロセス

  1. QR・RFID・体温検知統合アクセス制御システム(Raspberry Piベース)
  2. 5ドルI2C温度センサーで作るRaspberry Pi温度ロガー
  3. Python、SQLite、LabVIEWによるRaspberry Pi高精度温度プロファイリング
  4. 複数DS18B20 1-WireセンサーをRaspberry Pi接続で精密温度監視
  5. Raspberry Pi温度・湿度ネットワークモニター – DIYセットアップガイド
  6. Raspberry Pi 2でDS18B20温度センサー読み取りガイド
  7. Raspberry PiとDS18B20によるプロフェッショナルな温度監視
  8. Raspberry PiとPythonでリモート温度センサーを構築 – ステップバイステップガイド
  9. EzTempでRaspberry Pi上の温度・湿度をシームレスに監視
  10. Raspberry Piでサーバークローゼットの温度を正確に監視
  11. Raspberry PiでBMP085:I2C経由の高精度温度・気圧測定