工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Raspberry Pi向けコンパクトDHT温湿度ブレークアウト – ATtiny85 & DHT22/DHT11

ハードウェアコンポーネント: Atmel ATTiny85 × 1、DHT22温度センサー × 1、DHT11温湿度センサー × 1、SparkFun Tiny AVR Programmer × 1、Adafruit 4.7KΩ抵抗 × 3、Adafruit 10KΩ抵抗 × 1、Adafruit 100Ω抵抗 × 1、Adafruit拡散青3mm LED × 1、Adafruitタクトスイッチ × 1、Adafruitブレークアウェイ0.1″ 36ピンストリップメスヘッダ 1個 @ 長さ6、1個 @ 長さ2(合計8ピン) × 1、汎用ジャンパー(0.1″) × 1、Arduino UNO & Genuino UNO オプション – デバッグとテスト用 × 1
ソフトウェアアプリとオンラインサービス: Microsoft Visual Studio 2015、Microsoft Windows 10 IoT Core、Arduino IDE

ストーリー

はじめに

DHT11とDHT22は、非常に低コストで高精度なため人気の温湿度センサーです。しかし、これらは独自のワンワイヤープロトコルで動作し、正確なタイミングが必要です。これらのセンサーは、リアルタイムOSを持たないボードでの読み取りが困難であることが判明しています。

以前、「DHT11/DHT22温度センサー」という記事を投稿し、C#からMicrosoft C++サンプルコードを使用してこれらのセンサーを読み取る方法を示しました。ライブラリは読み取り可能でしたが、信頼性向上のためにリトライロジックを追加する必要がありました。これはほとんどのケースで成功しましたが、一部のユーザーから一貫して動作しないとの報告がありました。

Windows 10 IoT Core上のRaspberry Piでこれらのセンサーを使用する関心の高さを受け、低コストを維持しながら非常に信頼性の高い読み取り方法を提供する第二のオプションを作成することにしました。

概要

ここで提示するアプローチは、DHTセンサーを安価なATtiny85に接続し、I2Cスレーブデバイスとして設定することです。これはTinyWireSライブラリを使用し、デバイスとやり取りするための読み書き可能なレジスタセットを作成することで実現します。

このデバイスは以下の機能をサポートします:

ソースコード

このプロジェクトには3セットのコードがあります。ボード用メインファームウェア、Arduinoマスタースケッチ(Arduino Uno接続時のテスト・デモ用)、Raspberry Piでデバイスを使用する方法を示すWindows 10 IoT Coreアプリケーション。すべてのコードはリンク先のGitHubリポジトリで入手可能。

デバイス/回路

回路は小型で、わずかな安価なコンポーネントのみを使用。ATtiny85は複数のベンダーから購入可能。いくつか入手しておくことを推奨(多用途に使えるため)。

回路には6ピンヘッダがあり、別回路または直接Raspberry Piに接続可能。ピン定義は以下:

オンボードLEDの有効/無効を切り替えるための2ピンヘッダもあります(ジャンパー装着で有効、取り外しで無効)。

大規模プロジェクトで利用する場合、DHT Tinyの回路をプロジェクト既存回路にマージ/埋め込み可能。この場合、ヘッダピンとLEDはオプション。

別基板に構築し、数本のワイヤや接続ケーブルでRaspberry Piに接続することも可能。

ATtiny85のプログラミング

DHT_Tiny_Breakout.inoスケッチをAVRプログラマでATtiny85に書き込み。プログラマがない場合はArduino Uno(または類似ボード)を使用可能。以下の記事を参照:

筆者はSparkFun Tiny AVR Programmerを使用。チップを16MHzで動作させています。詳細は「ATtiny @ 16MHz」記事参照。

ATtiny85使用時、スレーブスケッチにはTinyWireSライブラリがライブラリフォルダにインストールされている必要があります。このライブラリはhttps://github.com/rambo/TinyWireからダウンロード可能。

ブレッドボードでの回路構築

最初のステップは、DHT Tinyをブレッドボードで動作させること。プロジェクトに含まれる回路図とブレッドボード図に従って半分サイズのブレッドボードで回路を構築。

いくつかのヒント:

以下は筆者のDHT Tinyブレッドボード版の画像。

Arduino Unoへの接続

クイックテスト、デモ、またはRaspberry Piでうまくいかない場合のトラブルシューティングのために、DHT TinyをArduino Uno(または類似デバイス)に接続可能。

DHT_Tiny_Master.inoスケッチをロードして実行。シリアルモニタに出力が表示されます。

2基板間のI2C接続時、SDAとSCLラインにプルアップ抵抗が重要。この回路では、ピンと5Vの間に2つの4.7kΩを接続。

以下は、Arduino Unoに接続したDHT Tinyブレッドボードの画像。

Raspberry Piへの接続

クイックテスト、デモ、またはRaspberry Piでうまくいかない場合のトラブルシューティングのために、DHT TinyをArduino Uno(または類似デバイス)に接続可能。

2基板間のI2C接続時、SDAとSCLラインにプルアップ抵抗が重要。この回路では、ピンと3V3の間に2つの4.7kΩを接続。

非常に重要! DHT TinyボードはRaspberry Piの5Vピンで給電されますが、プルアップ抵抗はRaspberry Piの3V3ピン(ピン1と17)に接続する必要があります。

以下は、Raspberry Pi 3に接続したDHT Tinyブレッドボードの画像。

Windows 10アプリケーションの実行

プロジェクト下部のGitHubリポジトリリンクからコードを取得し、解凍。Visual Studio 2015でユニバーサルアプリケーションのソースコードを開き、Raspberry Piに展開して管理コンソールから起動するか、Visual Studioからデバッグモードで実行。

Visual StudioでWindows 10 IoT Coreアプリケーションのコードを初めて実行する場合、以下のMicrosoft記事を参照:

以下のビデオデモで、Raspberry Pi 3上でDHT Tinyに接続されたアプリケーションの動作を確認できます。

アプリケーションのハイライト

Windows 10 UWPアプリケーションは、DHT Tinyの全機能をデモするアプリケーションです。コードは現在の温度、湿度、その他のレジスタ値をデバイスから表示。UIではデバイスアドレスを含む設定変更も可能。

DHT Tinyライブラリ

サンプルコードは、DHT Tinyとやり取りするために書かれたライブラリを使用。このライブラリは即座に使用可能で、すべてのアプリケーションに直接組み込めます。

NuGetからライブラリを取得

プロジェクトに直接含めたくない場合、以下のコマンドでNuGetからDHT Tinyライブラリをダウンロード。Visual Studioのパッケージマネージャコンソールで実行:

PM> Install-Package IoT.DhtTiny

I2Cバス上のデバイス検索

DHT Tinyライブラリには、I2Cバス上のDHT Tinyデバイスを検索し、アドレスリストを返すメソッドが含まれます。このリストで見つかったデバイスを1つ以上初期化可能。デバイスアドレスを変更したが、何に設定したか忘れた場合に特に便利。コールバックメソッドはオプション。

// ***
// *** I2Cバス上のDHT Tinyデバイスを列挙
// ***
IEnumerable<byte> address = await DhtTiny.FindAllDhtTinyAsync(this.FindAllDhtTinyCallback);
// ***
// *** コールバックメソッド
// ***
private void FindAllDhtTinyCallback(I2cScanEventArgs e) {
    int percentComplete = (int)((double)e.CurrentIndex / (double)e.Total * 100.0d);
    this.Status = string.Format("Locating devices [0x{0:X2}] [{1}%] [Found = {2:##0}]...", e.CurrentAddress, percentComplete, e.Items.Count());
}

Raspberry Pi用DHT Tinyブレークアウトの回路図

ソフトウェアデモンストレーション

このビデオは、Raspberry Pi 3上で動作するユニバーサルアプリケーションと、ブレッドボード上のDHT Tinyの両方を示しています。

[VIDEO COMING SOON]

最終デバイスの作成

基板を作る最も簡単でコスト効率の良い方法は、AdafruitのPerma-Proto Quarter-sized Breadboard PCBのようなPCBプロトタイプボードを使用すること。下の画像は、このプロトタイプボードを使用したブレークアウトを示しています。電源レール部分をドリルで削っています。

詳細: DHT Tiny Breakout for the Raspberry Pi

製造プロセス

  1. Raspberry PiとDS18B20によるプロフェッショナルな温度監視
  2. Raspberry Pi 2とADS-WS1で屋外気象観測ステーションを構築
  3. ネイティブADCなしでRaspberry Pi上のアナログセンサーを測定
  4. HC-SR04超音波センサーをRaspberry Piに接続する実践ガイド
  5. Raspberry Piの可能性を最大限に引き出す必須アクセサリー
  6. MCP3008 ADCでRaspberry Piにアナログセンサーを読み取る
  7. SIGHT:視覚障害者を支援するスマートグラス
  8. SparkFun Qwiic HAT for Raspberry Pi 完全フックアップガイド
  9. Raspberry Pi 3 Model B+へのWindows 10 IoT Coreインストール:ステップバイステップガイド
  10. MonkMakes RRB2 キットで自作 Raspberry Pi ロボット – 詳細ガイド
  11. PiCy:自分だけの小さな Raspberry Pi 搭載ロボットを作ろう