2015.08.19
Raspberry PiにI2C温度センサーSHT-21をつないで温度・湿度を表示させるまで
I2CってのはInter-Integrated Circuitの略で、この規格に乗っ取ってシリアルデジタル通信で情報をやりとり出来るチップがあるらしい、Raspberry PiはGPIO2とGPIO3がI2C用に設計されていて、ここに並列で何個でもI2Cデバイスを接続出来るらしい。
★Wifiの省電力モードをOFFに
cat /sys/module/8192cu/parameters/rtw_power_mgnt
と入力するとWiFiドングルのパワーマネジメントの状態が出る(0 は省電力管理無効、1 は最小限の電力管理、2 は最大限の電力管理)
して、sudo nano /etc/modprobe.d/8192cu.conf
を追記options 8192cu rtw_power_mgnt=0 rtwenusbss=1 rtw_ips_mode=1
これをしないと、放置するとWifiドングルが動作をさぼり、キーボードを連打したりしないと動作を再開しなくなる。
★I2Cを有効化し、パッケージをインストール
I2C有効化(step1):2015年度から方式が下記のように変わったらしい。
.参考:最近の Raspberry Pi で I2C を有効化 - Rabbit Note 10 users1イイネ 1 Tweet sudo raspi-config
I2C有効化(step2)
し、次の2行を追加sudo nano /etc/modules
i2c-bcm2708
i2c-dev
i2c-bcm2708はいらない説もあり。
パッケージをインストールsudo apt-get install i2c-tools
★I2C制御で、精度の高いらしい温度センサーをRaspberry Piに接続
Raspberry Piのピン配置
温度センサー接続参考:
とりあえずプレップボード上で組んでます。4か所ほどハンダ付け。3.3VとGNDつないで、I2C通信のためのSCL(信号タイミング)とSDA(データ部分)をつなぐ
接続したら再起動
★モジュールのアドレス取得
とすると40の値が取得出来るようになる。i2cdetect -y 1
これが接続した温度センサーのアドレス、2つつなげば2つ表示される?
からsht21.pyをダウンロードする。
とか。wget https://raw.githubusercontent.com/jaques/sht21_python/master/sht21.py
というファイルを作りnano temp.py
--------------------------------
import sht21
with sht21.SHT21(1) as sht21:
print "Temperature: %s"%sht21.read_temperature()
print "Humidity: %s"%sht21.read_humidity()
--------------------------------
って書く。
で温度が表示される。あれ?「40」を指定して無いけど、sht21.pyで自動検出でもしているのかな?生まれて初めてpythonって言語を使う。インデント自体がブロックの意味を持つらしい。python temp.py
Category:#電子工作 Raspberry Pi、Arduinoなど
■ ■ ■ コメント ■ ■ ■
いいっすね!=8
001 [08.20 20:16]M002@So-net:自分は I2C にキャラクタディスプレイを、USB に温度計・湿度計・Wi-Fi を付けてます。ひたすら CSV にデータを書き出して…いつか何かに使う…ハズ。 ↑(1)
002 [08.20 23:21]Aガット:スレーブアドレスが0b1000000固定だから、違うアドレスのI2Cデバイスなら並列で繋げられます。ただ、I2Cバスは本来同一基板内で使う信号なので、あまり長く配線は伸ばせないです。 ↑(1)
003 [08.20 23:51]Aガット:http://www.ishikawa-lab.com/RasPi_lightn.... 雷センサーをLANケーブルで1mぐらい伸ばしている人はいますね。 ↑(1)
本カテゴリーで直近コメントが書かれた記事
→カテゴリー:#電子工作 Raspberry Pi、Arduinoなど(記事数:232)
本カテゴリーの最近の記事(コメント数)