はんだ付け不要キット第2弾「温湿度センサー(DHT22)を使って温湿度計を作ろう‼」
こんにちは!
今回は電子工作ステーションさんに、はんだ付けをしなくていいキットがあれば便利だな~という想いから共同開発が進んでおります、
はんだ付け不要キット第2弾のご紹介です‼
※はんだ付け不要キット第1弾はこちら↓
今回は超定番「DHT22温湿度センサー」を使って誰でも簡単に温湿度計を作れちゃうキットとなります‼
それでは、作り方の方に入りたいと思います‼
①「 部品準備」
・【はんだ付け不要】温湿度センサー(DHT22)を使って温湿度計を作ろう‼
・モバイルバッテリー(必要であれば)
モバイルバッテリーがあればキットを持ち運びできます。
リンク
②「部品確認」
| 品名 | 個数 |
| Arduino Nano | 1 |
|
超音波距離センサー(HC-SR04)
|
1 |
|
0.96インチOLEDディスプレイモジュール (SSD1306)
|
1 |
| ブレッドボード | 1 |
| ジャンパーピン(7mm) | 2 |
| ジャンパーピン(10mm) | 4 |
| ジャンパーピン(12mm) | 2 |
| ジャンパーピン(22mm) | 2 |
| ジャンパーピン(25mm) | 1 |
| ジャンパーピン(50mm) | 1 |
③「組み立て(回路)」
④「開発環境、ライブラリーの準備」
⑤「プログラミング」
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
/DHTセンサー用ライブラリーをインクルード //(インクルードとは、他のファイルに書かれたコードを現在のファイルに取り込んで利用することを指します。) #include <DHT_U.h> #define DHTPIN 2 // Digital pin connected to the DHT sensor #define DHTTYPE DHT22 // DHT 22 (AM2302) DHT_Unified dht(DHTPIN, DHTTYPE); uint32_t delayMS; /* OLEDディスプレイモジュール用ライブラリーをインクルード */ #include<Adafruit_SSD1306.h> //ディスプレイ変数の宣言 Adafruit_SSD1306 display(0); void setup() { Serial.begin(9600); //ディスプレイの初期化 display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //初期化 dht.begin(); Serial.println(F("DHTxx Unified Sensor Example")); // 温度、湿度センサーの詳細をセット sensor_t sensor; dht.temperature().getSensor(&sensor); dht.humidity().getSensor(&sensor); // センサーの詳細に基づいて、センサー読み取り間の遅延を設定します。 delayMS = sensor.min_delay / 1000; } void loop() { //測定間の遅延。 delay(delayMS); //温度イベントを取得。 sensors_event_t temperature; sensors_event_t relative_humidity; dht.temperature().getEvent(&temperature); if (isnan(temperature.temperature)) { Serial.println(F("Error reading temperature!")); } else { //シリアルモニターに温度表示 Serial.print(temperature.temperature); Serial.print(F("C")); } // 湿度イベントを取得。 dht.humidity().getEvent(&relative_humidity); if (isnan(relative_humidity.relative_humidity)) { Serial.println(F("Error reading humidity!")); } else { //シリアルモニターに湿度表示 Serial.print(F(": ")); Serial.print(relative_humidity.relative_humidity); Serial.println(F("%")); } /* * ディスプレイに表示。 */ display.clearDisplay(); //ディスプレイをクリア //温度表示 display.setTextSize(1); //文字サイズを設定 display.setTextColor(WHITE); //文字色を設定(これがないと表示されない) display.setCursor(0, 0); //文字の開始位置を設定 display.print(temperature.temperature); //温度をディスプレイ出力するよう設定 display.print("C"); //湿度表示 display.setTextSize(1); //文字サイズを設定 display.setTextColor(WHITE); //文字色を設定(これがないと表示されない) display.setCursor(0, 10); //文字の開始位置を設定 display.print(relative_humidity.relative_humidity); //湿度をディスプレイ出力するよう設定 display.print("%"); display.display(); //上記条件でディスプレイ表示 } |
⑥「結果」
