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

 

関連記事

Raspberry Pi - Ethernet

Raspberry Pi インターネット接続

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

記事を読む

no image

赤外線リモコン受信機(イヤホンジャック接続)を作ってみた

最近、このブログ何も書いて無かったので、作成中の物の紹介・・・  これは、Andro

記事を読む

Arduino + STTS751

パソコンで温度計

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

記事を読む

no image

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

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

記事を読む

no image

米粒AVRのEAGLEライブラリ

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

記事を読む

米粒AVT(tiny10) リモコンレシーバー

米粒AVRでリモコン受信処理

  米粒AVR(Tiny10)で赤外線リモコンを受信して処理をするサンプルを作ってみまし

記事を読む

no image

Android + Arduino でリモコン2 (softmodem接続)

以前、LAN接続のリモコン Android + Arduino でリモコン と言うものを作ったのです

記事を読む

no image

Atmel Studio 6

米粒AVR(ATtiny10)の開発を行う為に、Atmel Studio 6.0をインストールし

記事を読む

米粒AVRでI2C通信

米粒AVRでI2C通信(マスター)

米粒AVRことATtiny10は3つまたは4つのI/Oピンしか使えないのですが、I2Cなら2つの

記事を読む

raspi-pin-header

そうだ、Raspberry Pi用にピンヘッダーのオス・メス変換アダプタを作ろう

  Raspberry PiのI/O端子は、ピンヘッダーとなっていて、電極が出っ張ってる

記事を読む

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 ↑