Archive for 1月, 2015

Raspberry Piに温度センサを接続

Raspberry Piに温度センサを接続してみました。
今回接続をしたのは、「DS18B20」という型式の温度センサです。
DS18B20withCase
屋外の気温を測れればと思い防水タイプのものを選びました。
このセンサはMaxim Integrated製(型式からすると旧Dallas Semiconductorの製品だったのでしょう)です。
このDS18B20は-55℃~125℃を計測出来、-10℃~85℃の範囲で±0.5℃の精度があります。電源電圧は3.0Vから5.5Vです。インターフェースは独自の1-Wire®です。
正確にはDS18B20は製造終了でDS18B20+に移行していく様です。プラスの有無の違いはデータシートに記載がありませんでした。
Maxim的型式にMAX31820があります。ソフトウェア互換があり徐々にこちらに代わっていくのでしょう。(精度は少し劣ります。10℃~45℃の範囲で±0.5℃の精度です。)

接続は7番ピン(GPIO4)に接続します。カーネルモジュールのソフトウェアの制限のため接続ピンは変更できません。
Raspbianは1-Wireで通信するソフトウェアを持っています。
$ sudo modprobe w1-gpio
$ sudo modprobe w1-therm
でカーネルモジュールをロードします。
cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves
で接続しているデバイス(温度計)の固有番号が表示されます。
このコードは8bitsのファミリーコードと48bitsのシリアルナンバーから構成されています。
DS18B20の場合ファミリーコードは28Hexとなります。
cat /sys/bus/w1/devices/28-xxxxxxxxxxxx/w1_slave
(28-xxxxxxxxxxxxは上のコマンド実行で得られた結果)
を実行すると温度を含む結果が得られます。
4a 00 4b 46 7f ff 06 10 ca : crc=ca YES
4a 00 4b 46 7f ff 06 10 ca t=4625

t=以下の数字を1000で割ると実温度となります。
上記の例の場合4.625℃を表しています。

このセンサの値を10分毎に記録してみました。
結果はあまり良くありませんでした。
データを取得できない場合があり、欠測が発生しました。(一日144回データが取得されますが一日約10回ほど欠測しました)
プログラムはリトライを最大10回行うようにしていますが、それ以前に時々センサと通信出来ない状況が発生しているのかもしれません。
実験的に使用するならば問題はにかもしれませんが、定期的に記録し続ける用途には今のままでは適さないようです。

自分で1-Wire用のソフトウェアを書けば良いのでしょうが1-Wireの通信の仕組みはちょっと複雑です。物理的な接続は簡単ですがマルチドロップ可能な仕組みがソフトウェアを複雑にしています。1-Wireがシリアルバスとしてあまり広く広がらなかったのはそんな理由があるのかもしれません。

1 Comment »

SiteGuard WP Pluginを導入

このブログプログラム(WordPress)にSiteGuard WP Pluginを導入しました。
今のところ人気サイトではないので攻撃に屈したことはありませんが備えとしての導入です。

No Comments »

Raspberry Piに温度湿度センサー(HTU21D)を接続

Raspberry Piにまた新しい温度湿度センサを接続してみました。
今回接続をしたのは、「HTU21D」という型式の温度湿度センサです。
HTU21D
センサの製造メーカーはMeasurement Specialtiesです。
ちょっと写りが悪いですが基板上の右上のチップがHTU21Dです。
このセンサはSensirionのSHT2xと良く似ています。
今回手に入れた基板のシルクにも「SHT21」「HTU21」と併記されています。どちらでも同じように使えるのでしょう。
パッケージサイズは3.0mmx3.0mmx0.9mmと、とても小さいです。
Raspberry Piとの接続はI2Cで行います。
電源電圧は1.5Vから3.6Vです。標準3.0Vとなっていることから電池での運用を主体として開発されているのでしょう。

センサのパッケージはDFN(Dual Flatpack No-leaded)なのでRaspberry Piとの接続には何かしらの基板が必要です。
今回もモジュール基板を使用しましたので追加部品無しにRaspberry PiのI2C端子に接続します。電源は3.3Vを使用します。

読み取りソフトはSensirionのSHT2x用のものが使えます。
データシートを確認しましたがほぼ互換性があります。
ソフトウェアも同じものが使用出来そうです。

自分用の読み取りソフトはいろいろと公開されている情報を参考にさせて頂き新しく書きました。

このセンサ、感度にびっくりします。
センサを手の上に載せるだけで数秒で湿度の変化を検知します。
精度は比較の方法がわからないので相変わらず不明です。

No Comments »

「DHT11」をテスト

手持ちに3個のDHT11があるのでDHT11のテストを簡単に行ってみました。
Sensors
ブレッドボードに3個並べてみました。(写真奥側3個)
AM2302もひとつ比較用としてのせました。(写真手前)
接続先はRaspberry Pi B+です。

正確な温度計、湿度計があるわけでもないので数字を抜きにした評価結果です。

温度に関しては3℃位から20℃位の範囲で確認しましたがリニアに測定値は変化します。
誤差は±2℃くらいはありそうです。(カタログスペックも±2℃)

湿度はいくらか上下動はしますがあまり変化しません。
AM2302は25%から55%くらいまで変動しているしている時に、DHT11はおおよそ40%±5%くらいで安定してしまっています。
大きな湿度値になりにくく、また小さな湿度値にもなりにくい感じです。
変動の方向はAM2302と同じ方向です。非常に鈍感ですがわずかには反応しているようです。

このセンサは5Vで使用するならば正常に動作するとの話もありますが、Raspberry Piで使用するには3.3Vで接続するしかありません。
DHT11 3個での評価ですが湿度計としては使用に耐えないという感じです。
温度計としてはあまり精度を気にしなければ使用出来ます。
マイコンから見ると電源以外1ピンあれば接続できます。なんとなくの室温(測定範囲は0℃~50℃です)を測定する用途には使用出来そうです。

No Comments »

Raspberry Piに温度湿度センサー(AM2302)を接続

Raspberry Piに新しい温度湿度センサを接続してみました。
今回接続をしたのは、「AM2302」という型式の温度湿度センサです。別名を「DHT22」とも言われているようです。
AM2302
製造メーカーはDHT11と同じAOSONGです。
DHT11より一回り大きく、性能、精度もDHT11よりまともで値段も高くなっています。姉妹品と思われる「AM2301」というものもあります。
DHT11は電源電圧によって湿度の精度が悪くなるクセがあるとの調査結果があるようですがAM2302は多少良いようです。

接続はDHT11と同等です。ピン配置もDHT11と同じです。
電源、GND、データ線の3本の接続で完了です。プルアップ抵抗は必要なので接続してください。
データを読み出すソフトはDHT11とおおよそ一緒ですが読み取った値を数値化する部分が異なります。
AM2302:
5Byets読み出され
[湿度上位]+[湿度下位]+[温度上位]+[温度下位]+[パリティ]
湿度 = (湿度上位 x 256 + 湿度下位) / 10
温度 = (温度上位 x 256 + 温度下位) / 10
読み出された値の最上位ビットが1の場合マイナスの値とする
最上位ビットをクリアし上記の計算し-1を掛けると求める値となる
DHT11:
5Byets読み出され
[湿度]+[00h]+[温度]+[00h]+[パリティ]
湿度 = 湿度 (整数かつ符号なし)
温度 = 温度 (整数かつ符号なし)
という構成です。
パリティはデータ部分の4バイトをすべて符号なしとして加算します。
送受信バイト数、パリティは同じなので変更はわずかです。
今回はDHT11用のソフトを書き換えてAM2302用としました。

No Comments »

Raspberry Piに気圧センサー(BMP180)を接続

Raspberry Piに気圧センサを接続してみました。
今回接続をしたのは、「BMP180」という型式のBOSCH製の気圧センサです。
BMP180
(センサは基板上の左下の金属パッケージのものです。3.35mm x 3.55mmのパッケージサイズです。)
このセンサはBMP085というセンサの後継機種で機能互換があります。
Raspberry Piとの接続はI2Cで行います。
電源電圧は1.8V~3.6Vです。
19bitsのADコンバーターを持ち25cmの変化を検出出来る様です。
湿度の測定範囲は300hPa~1100hPa、0℃~25℃ 300hPa~1100hPa時の絶対精度は-4.0hPa~+2.0hPaです。
温度の測定範囲は-40℃~85℃、精度は25℃で±1.5℃です。
センサはピエゾを使用しているようです。

さて本題の接続です。
今回もモジュール基板を使用しましたので追加部品無しにRaspberry PiのI2C端子に接続します。電源は3.3Vを使用します。
読み取りソフトは何かしらが必要です。単純にI2Cバスから読み取っただけでは気圧情報にはなりません。
このセンサは全数調整済みとなっていますが、調整されているわけではなくセンサ個々の特性データがROMに格納されています。パラメータは11個もあります。
これらパラメータと、センサから読み取った温度情報と素の気圧情報を用いて気圧を計算で求めます。
データシートには計算の仕方が書いてあるので頑張れば自分で計算することも出来そうです。
今回もいろいろなところ情報を見てC言語でプログラムを作りました。
自分好みの出力形式にして完成です。

No Comments »

Raspberry PiでI2Cを使うための準備

Raspberry Pi – Raspbian でI2Cを使うための準備方法です。
デフォルト設定ではI2Cは無効に設定されています。

1. /etc/modprobe.d/raspi-blacklist.conf ファイルの

#i2c-bcm2708
行の先頭に「#」を入れてコメントアウト

2. /etc/modules ファイルに

i2c_bcm2708
i2c-dev
行を追加

3. i2c_bcm2708,i2c-dev カネールモジュールを読み込み

sudo modprobe i2c_bcm2708
sudo modprobe i2c-dev

4. lsmod | grep i2c コマンドで実行されていることを確認

i2c_dev ??? 0
i2c_bcm2708 ??? 0

5. i2c関連のツールをインストール

sudo apt-get update
sudo apt-get install i2c-tools

以上で準備は完了です。

No Comments »

Raspberry Piに温度湿度センサー(DHT11)を接続

Raspberry Piにセンサを接続してみました。
今回接続をしたのは、「DHT11」という型式の温度湿度センサです。
DHT11
このセンサはAOSONG(广州奥松电子有限公司)製で高い信頼性、長期間の安定性、低価格が特徴であるとしています。
インターネットで情報収集してみると、湿度の測定精度はイマイチ、湿度測定機能が故障する、などの情報を目にします。
電源電圧によって値の変動が大きいという調査結果もあり使用するにあたり不安がよぎります。
温度も湿度も最小測定単位が整数なので高精度感はありません。
カタログスペックとしては
温度 0℃~50℃ ±5%
湿度 20%~90% ±2℃
電源 3.3-5.5V DC
インターフェース Aosong 1-wire bus digital signal
センサ素子 Polymer humidity resistor
となっています。
製造元のホームページを見ると、英語ページには偽物についての記載がありませんが、中国語ページには偽物に注意!という情報が書かれています。
見分けがつきやすい本物と偽物の違いはセンサ背面の表記がラベルであるかレーザー刻印であるかの様です。レーザー刻印が本物です。白地に黒いラベルのものは偽物です。
その他の特徴は形が少し違うであったり樹脂成形の出来が良くないであり、本物を持っていないとわかりにくい部分の違いだと思います。
手元にあるセンサはその情報と見比べる限り本物の様です。

さて本題の接続です。
今回はデータ線にプルアップ抵抗がついたモジュール基板を使用しました。(直結も試してみましたがプルアップ抵抗がないと動作しませんでした)
電源、GND、データ線の3本の接続で完了です。
電源電圧ですがRaspberry Pi側のIOピンが5Vトレラントではないので電源も3.3Vしか使用できません(電圧変換すれば接続可能ですが、使用するIOピンが入出力兼用使用なので変換は面倒です)。センサ単体では5Vの方が良いとの情報がありますがRaspberry Piとの組み合わせでは選択肢はありません。
ソフトですが、wiringPiを使うC言語のコードを探してきました。
最終的にPHPを使用してデータベースに結果を記録する予定なので、標準出力に結果を出力できるコマンド形式のものが希望でした。
サンプルコードではその後のデータのハンドリングが厄介だったのでカンマ区切り出力に書き換えて完成です。

意外と短時間で動かすことが出来ました。
色々と情報を提供してくださっている方に感謝です。

No Comments »

現地気圧から海面気圧を計算 ページ作成

現地気圧から海面気圧を計算するページを作成しました。

Raspberry Piに気圧センサーを接続し現在地の気圧がわかるようになりました。
その観測データの精度を確認しようとしたら気象庁の観測データが海面気圧での発表でした。比較のために変換が必要です。

現地気圧から海面気圧を計算するのは普通の電卓では出来ません。ちょっと複雑な乗数計算が必要です。
このページはその事をしてくれます。

今回作成したページは前回使用した値(標高、気圧、気温)をブラウザに180日間保存します。
同じ地点ですこし値を変えて再計算する場合は便利に使用できると思います。

このページもPC用とスマートフォン用の2つを用意してあります。

http://www.motohasi.net/GPS/PressureToMSLP.php

No Comments »

Banggood.comでお買い物2

その後もBanggood.comで買い物をしてみています。
品揃えはあまり豊富ではないので万能ではないのですが、なかなか良い感じに買い物ができています。

出荷は早いです。
ほとんどの物は24時間以内(数時間で出荷されるものも!)に出荷されます。
輸送時間が短いです。
通常の輸送方法は中華郵政(CHINA POST)ですが、安定して1週間ほどで届いています。他の中華通販からすると安定感があります。
梱包も丁寧です。
外装はビニール袋ですが、物はちゃんと緩衝材が巻かれています。

今のところ不具合もなく安心して使用出来そうです。

No Comments »

WP Login