質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

3回答

2703閲覧

【質問】ラズベリーパイ一台で温度を30チャンネル計測することは可能なのでしょうか?

konniti_ha

総合スコア1

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2020/05/28 02:27

色々サイトを漁ってみてもわからなかったので、質問させていただきます。

タイトルの通りラズベリーパイ一台で温度を30チャンネルとることは可能なのでしょうか?
不可能なら不可能だよと、教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kenji.Noguchi

2020/05/28 22:49

I2Cは一般に1メートルくらいまでしか距離が伸ばせません。30chを1メートルの範囲内で計測するとは思えないので、もうちょっと具体的に書いた方が良いでしょう。
konniti_ha

2020/06/01 02:05

ご指摘ありがとうございます。 色んな方に回答していただき、詳しく書かなかったこと、反省しております。 次回投稿することがありましたら、具体的に記していきたいと思います。
guest

回答3

0

アナログスイッチ(ぱっと思い出したのは74HC4053だけど、30年前の知識なのでもっと新しいデバイスがあるでしょう)でアナログ入力側を切り替える、という手もありますね。

投稿2020/05/28 21:59

thkana

総合スコア7639

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

konniti_ha

2020/05/29 04:22

回答ありがとうございます。 アナログスイッチですか・・参考になります。 色々サイト調べてみようと思います。
guest

0

konniti_haさん、

Adafruit TCA9548A 1-to-8 I2C Multiplexer Breakoutというのもあります。
I2cを、8chに拡張する、セレクタみたいなものです。A0/A1/A2を変更することで、8個(SlaveAddr:0x70-0x77)まで接続できます。
使い方は、ここらへんに書きました

MCP9600デバイス自体は、8つのアドレスが使えるみたいですが、GROVE-I2C熱電対アンプ(MCP9600)モジュールをつかうとなると、スレーブアドレスは0x66/0x67の2つだけ設定とのことなので、TCA9548Aを2つ使って、16ch、1つのchに2つずつMCP9600をつなげれば、30個使えそうです。

投稿2020/05/28 16:05

mt08

総合スコア1825

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

konniti_ha

2020/05/29 04:20

回答ありがとうございます。 TCA9548A とりあえず購入して試してみようと思います。 「ここらへん」見ました。TCA9548Aを2つ使いますが、配線・回路図ってかなり違ってきますか?教えていただきたいです。
mt08

2020/05/29 16:30

http://domoticx.com/module-tca9548a-i2c-multiplexer/ の [Pinout] のところを見てもらうと、I2C Masterがラズパイになって、I2Cバスを8個分に増やせます。 ラズパイは、TCA9548Aのアドレス(0x70-0x77)で、どのI2Cバス(Channel 0~7)を使うか指定するだけで、あとは、普通にI2C通信するだけです。
konniti_ha

2020/06/01 02:03

回答ありがとうございます。 なんとなくわかってきました。色々と親切にありがとうございました。 頑張ってみます
guest

0

ベストアンサー

不可能なら不可能だよと、教えていただきたいです。

可能です

投稿2020/05/28 02:30

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

konniti_ha

2020/05/28 02:48

回答ありがとうございます。 そもそも、温度を1チャンネル計測することには成功したのですが、それから増やす方法がわかりません。 相談できる友人もいなく、参考になるサイトを探し出すことも出来ず・・。 よろしければ、チャンネルを増やす方法を教えていただけますでしょうか。
y_waiwai

2020/05/28 02:53

その1チャンネル計測した、というブツを30個並べるだけです。 あなたがどうやってそれを実現したのかの説明がないことにはこれ以上は言えませんね
konniti_ha

2020/05/28 04:09

回答ありがとうございます。 説明不足で申し訳ございません。 GROVE-I2C熱電対アンプ(MCP9600)に熱電対(J型)を使って測定しました。 ・GROVE-I2C熱電対アンプ(MCP9600) https://www.switch-science.com/catalog/5345/ ●Pythonで以下のようなスクリプトを作成しました。 import smbus from time import sleep # I2C device: /dev/i2c-1 bus = smbus.SMBus(1) # MCP9600: slave address address_mcp9600 = 0x60 # MCP9600: register reg_devid = 0x20 reg_temp = 0x10 # Get Temperature try: devid = bus.read_byte_data(address_mcp9600, reg_devid) print('Device ID: 0x%02x' % (devid)) print('********************') typeJ = 0x10 typeJ = typeJ <<4 filterJ = 0x00 typeJ = typeJ | filterJ while True: block = bus.read_i2c_block_data(address_mcp9600, 0x100, 2) temp_sign = block[0] & 0x80 temp_upper = block[0] * 16 temp_lower = block[1] * 0.0625 temp = temp_upper + temp_lower if temp_sign == 0x80: temp = (4096 - temp) * -1 print('Temp: %2.2f' % (temp)) sleep(1) except KeyboardInterrupt: pass 【結果】温度は一秒ごとに表示されます。 【理想】同じモジュールを30個使って30チャンネル計測できるように。 【問題点】しかしI2Cアドレスが 0x60(デフォルト)0x67(オプション)の2種類しかないので30種類も識別することが出来ないのでは?と思い購入前に質問しました。 初めから詳しく説明をしておけばよかったです、申し訳ございません。
y_waiwai

2020/05/28 04:36

そのデバイスの名前でググれば、データシートがでてきます それを見ると、アドレスピンの電圧により、8通りのスレーブアドレスをもたせることができると書いてあります ということで、ひとつのI2Cバスに8つのセンサをつなげることができます 30個なら、4つのI2Cバスがあればいいということがわかります
y_waiwai

2020/05/28 04:43

I2Cバスは、2本のGPIOピンがあればソフトウエアで実装できますんで、4つのバスなら8本のGPIOで駆動できますね。 Softwere I2C でぐぐると、それ用のライブラリがでてきます。 さて、材料はこれで揃いましたんで、あとは頑張って実装してください
konniti_ha

2020/05/28 05:25 編集

回答ありがとうございます。 GPIOピンにI2Cバスをつけることが出来るんですね。 さっそく、Softwere I2C で調べてみましたがサンプルがなくイマイチよくわかりませんでした。 自信はないですが、頑張ってみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問