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、トランジスタ

 

関連記事

ssh_connected

Raspberry PiをWindowsで操作する(SSH)

SSHを使って、Raspberry Piを外部PC(Windows)で操作する。

記事を読む

no image

Wimeji Client for Arduino

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

記事を読む

Androidで気圧高度計

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

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

記事を読む

米粒AVR リモコン

米粒AVRでリモコン送信機

米粒AVR(tiny10)を使った赤外線リモコン送信機を作ってみました。 これで送信できるのは

記事を読む

no image

Arduino + USBホストシールド で ADK を試す(その1)

先日Google IOで発表された Android Open Accessory。みなさん知ってます

記事を読む

SDFormatter

Raspbianの起動SDカードを再利用

一度、Raspbianのイメージを書き込んだSDカードは、フォーマットが違う為にWindowsでは利

記事を読む

Arduinoで温湿度データロガー

Arduinoで温湿度計 #2

今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを取り付けて温湿度データロガーを

記事を読む

no image

Android Open Accessory開発時のWiFiデバッグ

Android Open Accessory開発時のデバッグは、ADBをWiFiで接続しろと、USB

記事を読む

Arduinoで温湿度計

Arduinoで温湿度計

秋月電子の温湿度モジュールを使って、温湿度計を作ってみました。 以前「パソコンで温度計」と言うもの

記事を読む

no image

Android+Arduinoでリモコン3 その1(AndroidAccessory接続)

何度か、Android+リモコンのネタを書いたことがあるのですが、今回はAndroid Access

記事を読む

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 ↑