前回まで/次回以降の取り組みはこちらから。
ということで、さっそくIoTで観察日記をつけるための仕組みを作っていきます。
今回は温度・湿度センサをArduinoに接続して温度と湿度を測定してみます。
あさがおIoT観察日記に限らず、Arduinoで温度や湿度を測定する場合にも同様に測定できます。
今回、部品を選ぶにあたっては、Amazonで販売されているKeystudioさんのArduinoパーツキットに入っている部品を中心に選定しています。
というのも、たまたま持っていて、ちょうどよく必要な部品が揃いそうだったので。
ただし、一部後付けで追加している部品もあります。
もくじ [hide]
Arduinoで温度と湿度を測る
温度や湿度を測るにもいろいろなセンサがありますが、今回はDHT11というセンサを使います。
これですね↓
Arduinoに接続する
先述のパーツキットには動作に必要な抵抗・コンデンサとともに基板に実装した状態でついてきます。
「+」ピンは5V、「ー」ピンはGND、「S」ピンはD2にそれぞれ接続します。
(センサの陰でちゃんとつないであります…)
Arduino用ライブラリをインストールする
ArduinoIDEにはDHT11や同じシリーズの温度湿度センサを使うためのライブラリがあります。
DHT11は「1-wireライク通信」という通信方式でArduinoと通信をして使用しますが、このライブラリを使うことで実際の通信について知らなくても使うことができます。
ライブラリにもいろいろありますが、今回は「DHT sensor liblary」を使用します。
ArduinoIDEのメニューバーから[スケッチ]→[ライブラリをインクルード]→[ライブラリを管理]と進みます。
右上の検索ボックスに「DHT」と入力して検索します。
「DHT sensor liblary」を選んで「インストール」
「DHT sensor liblaryの動作に必要な他のライブラリをインストールしますか?」と聞かれたら、「Install all」と答えておきます。
インストール完了まで待ちます。
サンプルスケッチを開く
メニューバー[ファイル]→[スケッチ例]→[DHT sensor liblary]からサンプルスケッチ「DHT_Unified_Sensor.ino」を開いてみます。
サンプルスケッチを変更する
このままでは動かないので、一部書き換える必要があります。
18~21行目
となっています。
18、19、21行目がコメントアウトされています。
これを今回は19行目のコメントアウトを外し、20行目をコメントアウトします。
こうなります。
このライブラリはDHT11のほかにも同じシリーズのDHT21、DHT22というセンサにも対応していて、それぞれのセンサ用の設定をすべて書いておいて、使わないものをコメントアウトしておくという作りになっています。
このため、必要な部分のコメントアウトを外し、不要な部分をコメントアウトするだけでかんたんに使いたいセンサに合わせて変更ができる、というわけです。
割といろいろなライブラリで使われています。
逆にこのコメントアウト部分がなかったら、この部分には何を書いておけばよいのか、ということをライブラリに付属の資料などから読み解いて記入する必要があります。
また、先ほどセンサの「S」ピンをD2につないだのはこのスケッチの14行目で
と指定されていたからなのでした。
動かしてみる
ここまででArduinoに書き込んでみます。
書き込んだら、シリアルモニタを起動します
温度と湿度がPCにシリアル通信で返ってきています。
体感的にですが、大きくずれているということはなさそうです。
あさがお観察用スケッチを作る
サンプルスケッチをたたき台にして、最終的に使うスケッチを作っていきます。
基本的にサンプルスケッチから不要と思われる部分を削除しただけです。
温度を「temp」、湿度を「humid」という、それぞれdouble型の変数に代入し、数字だけをシリアル通信でPCに送るようにしてみました。
最終的にはシリアル通信でPCではなくRaspberryPiに送って、IoTサービスにデータをアップロードしていく、という流れになります。
最終的にはながーいケーブルで屋外にまで引き回して使いますが、ひとまずブレッドボード上での動作確認はこれでOK。
とりあえず温度・湿度が測定できるようになりました。
まだまだ続きます。
コメント