Androidで温度計(STTS751使用)
Androidに温度センサー(STTS751)を繋いで温度表示してみました。
温度センサー(STTS751)は、以前「米粒AVRで温度計」で使ったのと同じもの。
I2C接続の12bit分解能の温度センサーで、1個100円で秋月電子で売られています。
このセンサーを、イヤフォン・ジャック(SoundIRModemライブラリ)を使ってAndroid端末と接続しています。
温度センサー・デバイスの部品リスト
部品 | 数量 | 記号 | 備考 |
ATTiny10 | 1 | IC1 | 米粒AVR |
STTS751 | 1 | IC2 | 温度センサー |
抵抗 – 20k | 1 | R1 | STTS751 アドレス選択用 |
抵抗 – 10k | 3 | R2, R3, R7 | |
抵抗 – 220k | 1 | R4 | |
抵抗 – 2k | 1 | R5 | |
抵抗 – 100k | 1 | R6 | |
抵抗 – 1k | 1 | R8, R9 | |
コンデンサ – 0.1u | 3 | C1, C2, C4 | 積層セラミックコンデンサ |
コンデンサ – 1u | 1 | C3 | 積層セラミックコンデンサ |
2SC1815 | 1 | Q1 | NPNトランジスタ |
3.5mmプラグ | 1 | 4極プラグ | |
電池 | 1 | 3V |
温度センサー・デバイスの回路図
プログラム
Android用温度表示アプリ
|
Android用温度表示アプリのソース
温度センサー・デバイス(Tiny10)用プログラム
温度センサー・デバイス(Tiny10)用プログラムのソース
tiny10sirm_thermometer.c
※このソースのコンパイルには、「米粒AVRでI2C通信(マスター)」のページで公開している tiny10softI2C.h が必要です。
解説
このアプリでは、500m秒毎にセンサーから数値を読み取り、表示を更新している。
画面上部に小さく表示されている「0x01, 0x17, 0xD0, 0xE8 bitCount:32」は、センサーから受け取った生のデータです。
温度センサーデバイス側では、Androidから送られてくるトリガー信号を待ち受け、トリガー信号に合わせてセンサーの数値をAndroidに送り返すと言うことを行っている。
トリガー信号について
Androidから米粒AVRにデータを送るには、米粒AVRのピンを2本使うことになり、イヤフォンジャックと送信・受信したい場合、計3本のピンが必要となる。
今回のデバイスでは、温度センサーはI2C通信で、I2C用にも2本必要となり、米粒AVRでは1ピン足りないことになる。
なんとか、Androidからのデータ受信を1ピンで出来ないかと試行錯誤したが、今の僕の実力では無理だったのですが、数値データの受信は無理でも、ONかOFFか(High/Low)程度の通信なら可能だったので、これをトリガー信号として利用している。
トリガー信号はINT0割り込みを使っているので受信データ解析ルーチンも省略できる。
データフォーマット
センサーからAndroidに送るデータは、1回に4バイトの下記フォーマットで送っている。
バイト配列 | 内容 |
1 | デバイスID(0x01) |
2 | 温度データの上位8ビット |
3 | 温度データの下位8ビット |
4 | チェックサム |
受信したビット数(32ビット)と4バイト目のチェックサムでデータの整合性をチェックし、1バイト目のデバイスIDが0x01である時に、温度センサーからのデータであると判定しています。
2バイト目、3バイト目のデータはセンサーから読み取った数値そのまま。
フリスクケースで作ってみた
今回も例によって、フリスクケースに詰め込んでみた。
これで、いつでもどこでも温度を測ることができる。
フリスクケースの中身
基板とリチウムコイン電池(CR2032)を、両面テープで固定している。
もう少し小さいケースが欲しいところだけれど、なかなか良いケースが無い。
ケースには通気用の穴を開けている
基板は秋月電子の16ホールユニバーサル基板
乗っている3つの黒いチップは、温度センサー、米粒AVR、トランジスタ
関連記事
-
-
Android + Arduino でリモコン2 (softmodem接続)
以前、LAN接続のリモコン Android + Arduino でリモコン と言うものを作ったのです
-
-
Android+Arduinoでリモコン3のおまけ
Androidとは関係ないのですが、前回の記事 Android+Arduinoでリモコ
-
-
Raspbianの起動SDカードを再利用
一度、Raspbianのイメージを書き込んだSDカードは、フォーマットが違う為にWindowsでは利
-
-
Android + Bluetooth + Arduino
以前書いた『気になる物』で紹介したBluetoothモジュールですが、本当に気になって実
-
-
米粒AVRでアナログ入力を試してみた
米粒AVR(ATtiny10)に搭載されている8ビット4チャンネルのアナログ入力を試してみました
-
-
Raspberry Pi SDカードのクラスと起動速度
SDカードにOSをインストールするので、起動にはそれなりに時間がかかります。 では、どれくらい
-
-
Android + Arduino でリモコン
今こんなのを作ってますと言う動画です。 DoCoMoのFOMA携帯
Comment (2件)
質問です。
この温度計をandroidとarduino両方を使って、温度表示するにはどうすればいいですか?
>Jun様
コメントありがとうございます。
Androidでの温度表示の方法は、このページに書いてある通りです。
部品を入手して組み立てて→Androidのアプリをインストールして→実行。
Arduinoでの温度表示は、僕は作っていませんので、どうしてもこのページの回路を使って表示したいのであれば、ご自身で設計・開発する必要があります。