読者です 読者をやめる 読者になる 読者になる

Arduinoでお燗番を作る

Arduino 電子工作

純米お燗酒が好きで趣味で作っているお燗メーターについて書こうと思います。

Arduinoと温度センサーを使っています。

f:id:yamamaijp:20160228184404j:plain

解決したい課題

  • お酒によってベストな温度があるので温度を管理したい
  • お燗をしているといつも忘れて温度を上げすぎてしまうので良い温度で教えて欲しい

ちなみにお燗の温度

f:id:yamamaijp:20160228183616p:plain

準備するもの

  • ArduinoUno
  • 温度センサ:DS18B20
  • ブレッドボード
  • ワイヤ
  • 抵抗
  • ブザー
  • MacOSX
  • ビニールテープ

パーツ組み立て

  • 温度センサーをオスタイプのワイヤと接続
  • ブレッドボードというハンダ付けしなくても電子回路を組める基板にパーツを接続

f:id:yamamaijp:20160228185213p:plain

プログラミング

  • Arduinoには各種ライブラリが用意されています。
    今回はOneWireとArduino-Temperature-Control-Libraryという2つのライブラリーを利用して簡単にセンサーから温度を取得できました。

  • setup()でセンサーの初期化をしています。

  • loop() にセンサーから取得した温度を元にブザーを鳴らす処理をしています。

#include "OneWire.h"
#include "DallasTemperature.h"

#define SENSOR_PINNO 2 // センサーを接続したピン番号
#define SPEAKER_PINNO 8   // 圧電スピーカを接続したピン番号
#define TEMPERATURE_PRECISION 12 // 精度
#define BEAT 300  // 音の長さを指定
#define TEMPERATURE_OF_ATSUKAN 50 // 熱燗の温度

OneWire oneWire(SENSOR_PINNO);
DallasTemperature sensors(&oneWire);

void setup() {
  sensors.begin();
  sensors.setResolution(TEMPERATURE_PRECISION);
  Serial.begin(9600);
}

void loop() {
  float temperature;
  sensors.requestTemperatures();
  temperature = sensors.getTempCByIndex(0);
  Serial.println(temperature);
  if( temperature > TEMPERATURE_OF_ATSUKAN ) {
    tone(SPEAKER_PINNO,262,BEAT) ;  // ド
    delay(BEAT) ;
    tone(SPEAKER_PINNO,294,BEAT) ;  // レ
    delay(BEAT) ;
    tone(SPEAKER_PINNO,330,BEAT) ;  // ミ
  }
  delay(250);
}

熱燗の温度を超えると「ドレミ」が鳴るようになりました(^_^)

次は温度を表示できるようにしたいと思います。 f:id:yamamaijp:20160228185901j:plain