Androidで温度計(STTS751使用)

Androidで温度計 
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用温度表示アプリ

SoundIRModem_thermometer.apk

Android用温度表示アプリのソース

SoundIRModem_thermometer.zip

温度センサー・デバイス(Tiny10)用プログラム

tiny10sirm_thermometer.hex

温度センサー・デバイス(Tiny10)用プログラムのソース

tiny10sirm_thermometer.c
※このソースのコンパイルには、「米粒AVRでI2C通信(マスター)」のページで公開している tiny10softI2C.h が必要です。

 

解説

ブレッドボード
ブレッドボードで試作

android温度計アプリ

このアプリでは、500m秒毎にセンサーから数値を読み取り、表示を更新している。
画面上部に小さく表示されている「0×01, 0×17, 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(0×01)
2 温度データの上位8ビット
3 温度データの下位8ビット
4 チェックサム

受信したビット数(32ビット)と4バイト目のチェックサムでデータの整合性をチェックし、1バイト目のデバイスIDが0×01である時に、温度センサーからのデータであると判定しています。

2バイト目、3バイト目のデータはセンサーから読み取った数値そのまま。

 

フリスクケースで作ってみた

フリスク温度センサー
今回も例によって、フリスクケースに詰め込んでみた。
これで、いつでもどこでも温度を測ることができる。

フリスク温度センサー
フリスクケースの外観

フリスク温度センサーの中身
フリスクケースの中身
基板とリチウムコイン電池(CR2032)を、両面テープで固定している。
もう少し小さいケースが欲しいところだけれど、なかなか良いケースが無い。

フリスク温度センサーの中身2
ケースには通気用の穴を開けている
基板は秋月電子の16ホールユニバーサル基板
乗っている3つの黒いチップは、温度センサー、米粒AVR、トランジスタ

 

関連記事

no image

PIC24FJ64GB002でADKを試す(その1)

先日、MicrochipからPIC向けのAndroid Open Accessoryのライブラリが公

記事を読む

no image

Wimeji Client for Arduino

前回紹介したWimeji Client for WindowsXPをArduinoでやってみました。

記事を読む

Raspberry Pi - Ethernet

Raspberry Pi インターネット接続

Raspberry Piをインターネットに接続してみた。 有線で接続(Ethern

記事を読む

vlc_media_player

Raspberry Piのサウンドを試したら音が出なかった話

(これはX-WindowのVLCメディアプレイヤーのスクショ) Raspberry Piでは、

記事を読む

soundIR 受信機 回路図

赤外線リモコン受信機(イヤホンジャック接続)の回路

  前回からだいぶと時間が経ってしまっていますが、今回はイヤホンジャック接続のリモコン受

記事を読む

no image

AndroidとArduinoの接続で使えそうなBluetoothモジュール

1ヶ月ほど前に書いた、Android + Bluetooth + Arduino が割と人気があるよ

記事を読む

no image

Android+Arduinoでリモコン4(Microbridge接続)

前回AndroidAccessory接続で作った赤外線学習リモコンを、今回はMicrobridge接

記事を読む

no image

米粒AVRでシリアル通信(ただし送信だけ)

米粒AVR(ATtiny10)にUART機能は搭載されていないので、シリアル通信を行う為には自前

記事を読む

no image

PIC24FJ64GB002でADKを試す(その2)

 前回「PIC24FJ64GB002でADKを試す(その1)」では回路の説明までしたので、

記事を読む

no image

米粒AVRのEAGLEライブラリ

EAGLEを使って米粒AVR(ATtiny10)の回路図を書こうと思ったら何か様子がおかしい。

記事を読む

Comment (2件)

  1. Jun

    質問です。
    この温度計をandroidとarduino両方を使って、温度表示するにはどうすればいいですか?

    1. Futaba

      >Jun様
      コメントありがとうございます。
      Androidでの温度表示の方法は、このページに書いてある通りです。
      部品を入手して組み立てて→Androidのアプリをインストールして→実行。
      Arduinoでの温度表示は、僕は作っていませんので、どうしてもこのページの回路を使って表示したいのであれば、ご自身で設計・開発する必要があります。

Arduinoで温湿度データロガー
Arduinoで温湿度計 #2

今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを

Arduinoで温湿度計
Arduinoで温湿度計

秋月電子の温湿度モジュールを使って、温湿度計を作ってみました。 以前

SDカード・マイクロSDカード
ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduin

秋月電子 リアルタイムクロック(RTC)モジュール
秋月のリアルタイムクロック(RTC)モジュール

今回は秋月電子のI2C接続のリアルタイムクロック(RTC)モジュールを

秋月電子 キャラクタLCD
秋月の小型キャラクタLCD

今回秋月電子で売られている小型のキャラクター液晶2種を買ったので、

PAGE TOP ↑