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秒毎にセンサーから数値を読み取り、表示を更新している。
画面上部に小さく表示されている「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)を、両面テープで固定している。
もう少し小さいケースが欲しいところだけれど、なかなか良いケースが無い。

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

 

関連記事

Androidで気圧高度計

androidで気圧・高度計(LPS331AP使用)

Androidと大気圧センサー(LPS331AP)をイヤフォンジャックで繋いで気圧と高度、ついで

記事を読む

no image

Bimeji Client for Arduino

前回紹介したWimeji Client for Arduinoの最後で予告していた、Wimeji c

記事を読む

米粒AVRからAndroidへデータを送る

米粒AVRでSoftModem的なこと

米粒AVRとAndroidを繋いで、データのやりとりを行ってみたいと思います。 2つを繋ぐイン

記事を読む

no image

ボツネタ~CAN的な何か

少し前に必死になって作ってたデバイス+アプリですが、気持ちが萎えてしまい、結果ボツと

記事を読む

no image

AndroidにPS2キーボードを繋いでみた

@yishiiさんの素のAndroid端末を外部のキーにより操作する実験と言う記事を参考に、Ardu

記事を読む

Hello Tiny10

米粒AVRでI2C通信を使ってLCD表示

前の記事で紹介したI2Cライブラリを使った、LCDの表示のライブラリ的なもの  

記事を読む

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

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

記事を読む

パソコンで温度計

ありきたりのPC温度計ですが、なんとなく作りたくなったので作ってみる。 コントローラーは手軽な

記事を読む

no image

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

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

記事を読む

soundIR 送信機

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

前回は受信機で、今回は送信機を作ってみました。 受信機と違って、送信機の作成は少し面倒です。

記事を読む

Comment (2件)

  1. Jun

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

    1. Futaba

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

Arduinoで温湿度計 #2

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

Arduinoで温湿度計

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

ArduinoでSDカード

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

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

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

秋月の小型キャラクタLCD

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

PAGE TOP ↑