Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Sensor Suhu DHT11 /DHT22

Komponen dan persediaan

Sensor Suhu &Kelembaban DHT11 (4 pin)
× 1
Raspberry Pi 2 Model B
× 1
Arduino UNO
× 1
Kawat Jumper Pria ke Pria
× 3
Breadboard (generik)
× 1
4.7K Resistor
× 1
Cobbler Breakout Kit
× 1

Aplikasi dan layanan online

Microsoft Windows 10 IoT Core
Arduino IDE
Raspberry Pi Raspbian
Microsoft Visual Studio 2015
WinSCP
PuTTY

Tentang proyek ini

Pendahuluan

Latar belakang

DHT11 adalah sensor suhu dan kelembaban 4-pin (satu pin tidak digunakan) yang mampu mengukur kelembaban relatif 20% - 90% dan 0 hingga 50 °C. Sensor dapat beroperasi antara 3 dan 5.5V DC dan berkomunikasi menggunakan protokol OneWire miliknya sendiri. Protokol ini membutuhkan waktu yang sangat tepat untuk mendapatkan data dari sensor. Bit LOW dan HIGH dikodekan pada kabel dengan lamanya waktu sinyal HIGH. Total waktu untuk melakukan pembacaan paling banyak 23,4 ms. Ini termasuk penundaan 18 mdtk yang diperlukan untuk memulai transfer data dan waktu hingga 5,4 mdtk untuk data. Sinyal individu bisa sependek 20 s dan selama 80 s.

Ketika Windows 10 IoT Core pertama kali tersedia, saya mengambil Raspberry Pi 2 dan sensor DHT11 saya dan mencobanya di C#. Saya segera menemukan bahwa itu tidak akan berhasil. Masalah dengan C# di Windows 10 IoT Core adalah bahwa itu tidak akan cukup cepat (setidaknya tidak untuk saat ini).

Saya memposting ke forum Microsoft dan melakukan beberapa pertukaran dengan pengembang lain yang mengalami kesulitan yang sama. Saya akhirnya menemukan tanggapan Microsoft pada protokol OneWire di Windows 10 IoT Core yang berbunyi:

Setelah beberapa saat, saya menerima tanggapan atas postingan saya yang berbunyi:

Yah, itu akan menjadi hal yang hebat dan saya sangat senang dengan kemampuan yang akan datang tetapi siapa yang bisa menunggu? Baru-baru ini saya melihat bahwa Microsoft memposting contoh tentang cara mendukung protokol OneWire menggunakan DHT11 sebagai sensor sampel dan menggunakan C++ di Windows 10 IoT Core. Saya melihat ini sebagai peluang untuk membawanya ke C#.

Proyek ini adalah tentang mengubah sampel itu menjadi pustaka yang dapat digunakan di C#. Saya berterima kasih kepada orang yang menulis perpustakaan untuk membantu membuat sensor populer ini berguna di Windows 10 IoT Core, dan semoga dengan perpustakaan ini akan lebih bermanfaat.

Perpustakaan

Pustaka yang saya buat adalah pemfaktoran ulang sederhana dari kode yang awalnya diposting oleh Microsoft, jadi saya tidak menghargai pekerjaan yang dilakukan untuk mendapatkan pembacaan sensor.

Pustaka menyajikan kelas sederhana yang disebut Dht11 di ruang nama Sensors.Dht . Membuat objek baru di C# sangatlah mudah.

Pertama buka pin GPIO yang memiliki pin sensor DHT11.

menggunakan Sensors.Dht;GpioPin pin =GpioController.GetDefault().OpenPin(4, GpioSharingMode.Exclusive); 

Kemudian berikan pin ini ke konstruktor Dht11 class dan tentukan GPIO Pin Drive Mode. Ini memungkinkan Anda untuk memutuskan apakah Anda akan menambahkan resistor pull-up Anda sendiri.

Dht11 dht11 =new Dht11(_pin, GpioPinDriveMode.Input); 

Untuk mendapatkan pembacaan dari perangkat, gunakan GetReadingAsync metode.

DhtReading reading =menunggu dht11.GetReadingAsync().AsTask(); 

Ada kelebihan beban yang memungkinkan nilai coba ulang maksimum ditentukan. Nilai defaultnya adalah 20. Ini menentukan berapa banyak upaya yang harus dilakukan untuk membaca sensor sebelum menyerah dan mengembalikan pembacaan yang gagal.

The Bacaan Dht struktur didefinisikan sebagai:

nilai publik struct DhtReading{  bool TimedOut; bool IsValid; Suhu ganda; Kelembaban ganda; int RetryCount;}; 

Pengamatan

Meskipun sensor bekerja di C++ tetap tidak mendapatkan pembacaan setiap saat. Jadi, perlunya opsi coba lagi di kelas (ini sebenarnya adalah bagian dari sampel Microsoft). Saya pikir akan lebih baik untuk membandingkan ini dengan platform lain untuk melihat bagaimana kinerjanya. Saya mencoba kode pada Raspberry Pi 2 yang menjalankan Raspbian serta pada Arduino Uno. Kode yang saya gunakan untuk keduanya telah disertakan dalam repositori GitHub.

Video yang disertakan dalam proyek ini akan mendemonstrasikan dan membandingkan output dari masing-masing platform ini.

Memulai

Merakit Sirkuit untuk Raspberry Pi 2

Gunakan panduan ini untuk merakit sirkuit saat menggunakan diagram yang terletak di dekat bagian bawah halaman sebagai panduan (perhatikan warna kabel opsional dan telah dipilih untuk membantu membuat sirkuit mudah diikuti saat dibangun).

  • Tempatkan tukang sepatu berbentuk T di ujung kiri papan+ ukuran setengah (di mana angkanya dimulai dari 1). Dua pin paling kiri akan berada di E1 dan F1 di papan tulis. Dua pin paling kanan akan berada di E20 dan F20
  • Tempatkan resistor 4,7K di antara A4 dan 3V3
  • Hubungkan kabel jumper jantan ke jantan oranye di antara B4 dan F28
  • Hubungkan kabel jumper jantan merah ke jantan antara F29 dan 3V3
  • Hubungkan kabel jumper jantan ke jantan hitam di antara F30 dan GND
  • Tempatkan sensor DHT11 ke dalam J30 (-), J29 (+) dan J28 (s)
  • Colokkan kabel pita ke tukang sepatu dan Raspberry Pi

Merakit Sirkuit untuk Arduino

Gunakan panduan ini untuk merakit sirkuit saat menggunakan diagram yang terletak di dekat bagian bawah halaman sebagai panduan (perhatikan warna kabel opsional dan telah dipilih untuk membantu membuat sirkuit mudah diikuti saat dibangun).

  • Tempatkan resistor 4,7K di antara E12 dan E13
  • Hubungkan kabel jumper pria kulit putih ke pria antara D13 dan Sematkan 5 di Arduino
  • Hubungkan kabel jumper jantan merah ke jantan antara D12 dan 5V pin di Arduino
  • Hubungkan kabel jumper jantan hitam ke jantan antara D11 dan GND di Arduino
  • Tempatkan sensor DHT11 ke A11 (-), A12 (+) dan A13 (s)
  • Colokkan kabel USB dari komputer Anda ke Arduino

Di bawah ini adalah foto sirkuit yang saya buat.

Memulai Aplikasi untuk Raspberry Pi

Pilih Debug, konfigurasi ARM dan Mesin Jarak Jauh. Sekarang klik kanan proyek, dan pilih Properti lalu klik tag Debug. Selanjutnya masukkan alamat IP Raspberry Pi 2 di bidang Mesin jarak jauh, dan hapus centang Gunakan otentikasi.

Tekan F5 . Aplikasi akan diterapkan ke perangkat yang mungkin memakan waktu beberapa menit untuk pertama kalinya.

Memulai Aplikasi untuk Arduino

Sketsa untuk proyek ini tersedia di GitHub dalam file bernama Dht11_Speed . Mulai Arduino IDE dan buka sketsa. Unggah sketsa ke Arduino (Ctrl U ) lalu mulai Serial Monitor (Ctrl Shift M )

Jika Anda tidak yakin bagaimana melakukan ini atau baru mengenal lingkungan ini, video di bawah ini akan menunjukkan cara melakukannya.

Memulai Aplikasi untuk Raspbian

Kode C untuk Raspberry Pi tersedia di GitHub untuk proyek ini dalam file bernama Dht11.c . Sumber perlu disalin ke Raspberry Pi dan kemudian dikompilasi di sana. Saya suka menggunakan WinSCP untuk menyalin file. Jika Anda tidak memiliki aplikasi ini, saya sarankan Anda mengunduh dan menginstalnya sekarang. Kode sumber menggunakan wiringPi yang harus diinstal sebelum mengkompilasi aplikasi.

Perintah untuk mengkompilasi kode pada Raspberry Pi adalah:

gcc -oDht11_Speed ​​Dht11_Speed.c -L/usr/local/lib -lwiringPi -std=c99 -lm 

Untuk menjalankan aplikasi masukkan perintah:

sudo ./Dht11_Speed ​​1000 10 

Di mana 1000 menentukan penundaan 1000 ms (1 detik) dan 10 adalah jumlah sampel yang harus dibaca.

Video akan mendemonstrasikan lebih detail cara menyalin kode dan cara mengompilasinya di Raspberry Pi yang menjalankan Raspbian. Untuk mempelajari cara memuat Raspbian di Raspberry Pi Anda, buka https://www.raspberrypi.org/downloads/raspbian/.

Video

Video di bawah ini adalah demonstrasi aplikasi:

Lihat video ini di You Tube menggunakan mode Theater untuk kualitas terbaik.

Kode

Kode Sumber Visual Studio 2015 C#/C++
https://github.com/porrey/dht.git

Skema

Dht11_RPi2.fzz Dht11_Arduino.fzz

Proses manufaktur

  1. Pencatat Suhu Raspberry Pi
  2. TMP006 Sensor Suhu Pustaka Python menggunakan Raspberry pi,
  3. Sensor Suhu Python dan Raspberry Pi
  4. Sensor suhu 1-kawat DS1820 di Raspberry Pi (langsung GPIO)
  5. Raspberry Pi 1- Sensor Termometer Digital Kawat (DS18B20)
  6. Sensor Suhu dan Cahaya Raspberry Pi
  7. Sensor Suhu Raspberry Pi
  8. Proyek IoT Berbasis Raspberry PI Menghubungkan Sensor DHT11
  9. Sensor suhu bantalan | detektor
  10. Pengukuran Suhu Sensor Inframerah