Isi kandungan:

Paparan Suhu dan Kelembapan dan Pengumpulan Data Dengan Arduino dan Pemprosesan: 13 Langkah (dengan Gambar)
Paparan Suhu dan Kelembapan dan Pengumpulan Data Dengan Arduino dan Pemprosesan: 13 Langkah (dengan Gambar)

Video: Paparan Suhu dan Kelembapan dan Pengumpulan Data Dengan Arduino dan Pemprosesan: 13 Langkah (dengan Gambar)

Video: Paparan Suhu dan Kelembapan dan Pengumpulan Data Dengan Arduino dan Pemprosesan: 13 Langkah (dengan Gambar)
Video: Seri Belajar Microcontroller: 1. Sensor dan Pengendali Miro 2024, Jun
Anonim
Paparan Suhu dan Kelembapan dan Pengumpulan Data Dengan Arduino dan Pemprosesan
Paparan Suhu dan Kelembapan dan Pengumpulan Data Dengan Arduino dan Pemprosesan

Pengenalan: Ini adalah Projek yang menggunakan papan Arduino, Sensor (DHT11), komputer Windows dan program Pemprosesan (boleh diunduh secara percuma) untuk memaparkan suhu, data Kelembapan dalam bentuk grafik digital dan batang bar, waktu dan tarikh paparan dan menjalankan kiraan up pemasa semasa program dan catat semua data ke dalam format.csv semasa program ditutup.

Inspirasi:

Mula-mula saya HARUS mengatakan bahawa saya seorang pemula dan saya telah belajar banyak perkara dari projek ini. Oleh itu, saya berusaha untuk menulis ini diajar agar dapat dibaca dan difahami oleh seorang pemula.

Saya telah melihat pelbagai projek Arduino untuk mengukur suhu dan kelembapan tetapi saya mahukan program yang:

1) Mengukur suhu dan kelembapan

2) Memaparkan data dalam grafik (saya memilih graf bar) dan bentuk digital

3) Mempunyai fungsi jam

4) Mempunyai penghitung masa "Run Time"

5) Menyimpan data ini ke dalam format fail.csv (excel).

Saya mendapat inspirasi dari program yang dibuat oleh Sowmith Mandadi, R-B dan aaakash3, tetapi tidak ada yang betul-betul seperti yang saya mahukan. Oleh itu, saya belajar menulis beberapa kod asas dan membuat apa yang saya mahukan.

Langkah 1: Apa yang Anda Perlu:

Apa yang Anda Perlu
Apa yang Anda Perlu
Apa yang Anda Perlu
Apa yang Anda Perlu

Bahagian dan Bahan: * Komputer - Saya menggunakan sistem operasi Windows 10 komputer Windows

(Saya yakin Linux atau Mac boleh digunakan, saya tidak mempunyai kedua-duanya jadi saya tidak akan merangkumi cara menggunakan sistem operasi ini)

* Arduino Board - Saya menggunakan Arduino Uno Board, tetapi papan Arduino dengan USB akan berfungsi

* Kabel USB -Kabel USB / A-B sama seperti "kabel pencetak" jenis lama (biasanya dilengkapi dengan Arduino Board)

* DHT 11 Sensor Suhu / Kelembapan- murah $ 4 hingga 8

(Catatan: ada 2 versi yang saya gunakan versi 3 pin, versi 4 pin akan memerlukan penggunaan papan roti dan perintang 10K, 3 pin mempunyai papan litar bercetak yang merangkumi perintang 10K) lihat gambar Fritzing dalam langkah seterusnya

* Wayar sambungan

Kabel Dupont (hujung wanita berganda) jika menyambung ke DHT11 3 pin tanpa papan roti

Kabel jumper M / F standard (lelaki hujung satu perempuan hujung) dan wayar pelompat M / M (kedua-dua hujung lelaki) untuk menyambungkan 4 pin DHT11 - lihat langkah 2 untuk maklumat lebih lanjut

* Arduino IDE - program untuk menulis program Arduino (disebut sketsa) percuma @

www.arduino.cc/en/Main/Software

* Memproses - program menulis sketsa pemprosesan percuma @

processing.org/download/

* "DHTLib" file-file perpustakaan (ini adalah file yang masuk ke program Arduino IDE di bawah folder bernama "Library" ini perlu ditambahkan ke sketsa Arduino sebelum Arduino dapat membaca data dari DHT11 -lihat langkah 5 untuk memuat turun fail dan arahan

Langkah 2: Sambungkan Arduino ke DHT11

Sambungkan Arduino ke DHT11
Sambungkan Arduino ke DHT11
Sambungkan Arduino ke DHT11
Sambungkan Arduino ke DHT11
Sambungkan Arduino ke DHT11
Sambungkan Arduino ke DHT11
Sambungkan Arduino ke DHT11
Sambungkan Arduino ke DHT11

Pertama tentukan DHT11 yang anda ada

Saya menggunakan 3 pin kerana sudah mempunyai perintang 10K yang diperlukan.

Sekiranya anda mempunyai 4 pin, anda memerlukan perintang 10K dan papan roti

Sambungkan DHT11 ke Arduino Board. Program ini meminta pin isyarat DHT 11 disambungkan ke pin Arduino # 7, pin Pos (+) disambungkan ke 5V pada Arduino dan Neg (-) ke GND pada Arduino.

Rujuk Diagram dan Fritzing Diagram

Langkah 3: Muat turun Arduino IDE

Muat turun Arduino IDE
Muat turun Arduino IDE

Muat turun Arduino IDE dan pasang di komputer

www.arduino.cc/en/Main/Software

Langkah 4: Sambungkan Arduino ke Komputer

Sambungkan Arduino ke Komputer
Sambungkan Arduino ke Komputer

Pasang Arduino IDE terlebih dahulu ia mempunyai pemacu untuk sambungan USB Arduino.

Sambungkan Arduino ke komputer melalui USB.

Tunggu komputer mengenali papan Arduino dan pasang pemacu apa pun.

Buka program IDE dan periksa sambungan bersiri.

Sekiranya papan Arduino tidak muncul di port Alat> (bulatan merah), Tutup IDE dan buka semula.

* Penting * setelah IDE dibuka dan papan Arduino disambungkan melalui USB. Papan Arduino mesti disambungkan ke port bersiri yang betul. Pada komputer Windows ini disebut sebagai COM Port. Untuk melakukan ini di IDE, pergi ke Tools> Port:> Port bersiri. Seperti yang ditunjukkan dalam Diagram, port bersiri (bulatan merah) mesti sesuai dengan port yang tertera di sudut kanan bawah program IDE (bulatan kuning).

Langkah 5: Muatkan Perpustakaan

Muatkan Perpustakaan
Muatkan Perpustakaan
Muatkan Perpustakaan
Muatkan Perpustakaan
Muatkan Perpustakaan
Muatkan Perpustakaan
Muatkan Perpustakaan
Muatkan Perpustakaan

Muatkan perpustakaan untuk DHT11. Ini membingungkan saya pada awalnya tetapi sangat sederhana.

Muat turun fail yang disebut "DHTLib" dan buka zip. Salin fail "DHTLib" yang tidak dizip.

Rujukan di perpustakaan ini boleh didapati di:

playground.arduino.cc/Main/DHTLib

(Ia ditulis oleh Rob Tillaart berdasarkan karya orang lain)

Cari folder Arduino di komputer anda dan buka. (Di mana sahaja anda memuat turun IDE dan memasangnya di komputer)

Lihat Rajah

Cari fail yang disebut "perpustakaan" dan buka kemudian tampal folder "DHTLib" ke dalam fail "perpustakaan". Tutup dan mulakan semula IDE.

Lihat Rajah

Setelah IDE dibuka semula, anda boleh memeriksa untuk melihat perpustakaan DHT dipasang. Lakaran> Sertakan Perpustakaan.

Lihat Rajah

Catatan Mengklik DHTLib di tab "sertakan perpustakaan" akan menempatkan perpustakaan ke dalam kod Arduino sebagai "#include dht.h".

Anda tidak perlu melakukan ini kerana sudah ada dalam kod yang akan anda muat turun pada langkah seterusnya.

Langkah 6: Dapatkan Kod Arduino

Dapatkan Kod Arduino
Dapatkan Kod Arduino

Muat turun fail Temp_Hum_Instructable.zip dan unzip. Buka Temp_Hum_Instructable.ino dengan Arduino IDE.

Sebagai alternatif, perhatikan kod berikut dan salin dan tampal atau taip tepat ke Arduino IDE:

#sertakan

dht DHT; #define DHT11PIN 7 // set pin 7 untuk sambungan isyarat DHT11 batal persediaan () {Serial.begin (9600); // membuka siri} gelung void () {int chk = DHT.read11 (DHT11PIN); // membaca DHT11 Serial.print (DHT.temperature, 0); // mencetak temp dalam siri Serial.print (","); // mencetak koma dalam siri Serial.print (DHT.humidity, 0); // mencetak kelembapan dalam siri Serial.println (); // kelewatan pengembalian kereta (2000); // tunggu 2 saat}

Apabila anda selesai, gambar seperti Rajah di atas

Langkah 7: Muatkan Kod ke Arduino

Muatkan Kod ke Arduino
Muatkan Kod ke Arduino
Muatkan Kod ke Arduino
Muatkan Kod ke Arduino
Muatkan Kod ke Arduino
Muatkan Kod ke Arduino
Muatkan Kod ke Arduino
Muatkan Kod ke Arduino

Pertama simpan lakaran di lokasi dan dengan nama yang anda akan ingat, Contoh: Temp_Hum.

Seterusnya anda perlu memuatkan lakaran ke papan Arduino dengan menekan butang anak panah Menunjuk Kanan (muat naik).

Lihat Rajah

Ini akan mengambil masa beberapa saat; anda akan melihat bar kemajuan di kanan bawah.

Kemudian anda akan melihat: Selesai memuat naik mesej di kiri bawah dan teks putih di bahagian bawah IDE memberitahu anda mengenai memori

Lihat Rajah

Sekiranya anda mendapat kod ralat (teks oren di bahagian bawah IDE) itu mestilah salah satu daripada yang berikut

  1. Perpustakaan "DHTlib" tidak disalin dengan betul
  2. Port COM tidak ditetapkan dengan betul
  3. Sensor tidak disambungkan dengan betul
  4. Kod tersebut tidak dimasukkan ke dalam IDE dengan betul Teks oren dapat ditatal dan akan memberi petunjuk tentang apa yang salah. Kembali dan periksa itu mungkin satu kesalahan yang mudah.

Setelah selesai, perhatikan papan Arduino anda dengan teliti. Setiap beberapa saat, LED kecil di sebelah huruf "TX" akan berkelip. Ini adalah Arduino menghantar maklumat kembali ke komputer. Untuk memeriksa ini, klik pada simbol kaca pembesar kecil di sudut kanan atas IDE.

Lihat Rajah

Ini akan membuka monitor bersiri dan memaparkan data suhu dan kelembapan yang dipisahkan dengan koma. Anda akan perhatikan bahawa data suhu disenaraikan dalam Celsius. Tidak mengapa kita akan menukar ke Fahrenheit kemudian (atau tidak jika anda memilih).

Lihat Rajah

Seterusnya tutup monitor bersiri dan kemudian tutup IDE. (Anda ingat untuk menyimpannya, bukan?). Sekarang lihat papan Arduino sekali lagi (jangan putuskan dari USB di mana ia mendapat kuasa, dan menghantar data ke port bersiri di komputer). Adakah masih berkelip? Ya, hebat. Setelah program dimuat ke Arduino, program akan berjalan selagi ia mempunyai kekuatan.

Perhatikan mengenai kod: jika anda melihat kod Arduino yang diawali dengan "void loop ();". 5 baris kod seterusnya memberitahu Arduino untuk membaca data dari DHT dan mencetaknya ke bas bersiri yang dipisahkan dengan koma. Baris seterusnya "kelewatan (2000);" menyuruh Arduino menunggu 2 saat (2000 milisaat) sehingga data diterima setiap 2 saat. Kemudian ia kembali ke "void loop ();" - perintah yang menyuruh Arduino untuk melakukannya lagi. Mengubah nilai dalam garis tunda akan mengubah seberapa kerap data diterima. Contoh: ubah ke (600000) akan berubah hingga 10 minit (600000 milisaat = 10 minit). Menerima data setiap 2 saat menjadi banyak data, jadi sekarang anda tahu bagaimana mengubah seberapa kerap data dibaca. Ingatlah jika anda menukar nilainya kemudian anda akan perlu memuat naik program baru.

OK duduk dan tarik nafas anda berada lebih dari separuh jalan di sana. Ya !!

Langkah 8: Muat turun dan Pasang Pemprosesan

Muat turun dan Pasang Pemprosesan
Muat turun dan Pasang Pemprosesan
Muat turun dan Pasang Pemprosesan
Muat turun dan Pasang Pemprosesan

processing.org/download/

Cukup lurus ke depan pilih program yang sesuai dengan komputer anda untuk windows 64bit vs 32 bit. Sekiranya anda tidak tahu, buka panel Kawalan di komputer anda (paparan ikon bukan paparan kategori) dan pergi ke sistem ia akan disenaraikan di sana.

Lihat Rajah

Muat turun dan kemudian pasangkan program.

Kali pertama anda membuka dan menjalankan pemprosesan, anda mungkin akan mendapat mesej keselamatan Java. Klik "izinkan" untuk rangkaian peribadi. Java adalah bahasa komputer yang digunakan oleh Processing (dan Arduino IDE). Menariknya saya tidak pernah mempunyai mesej keselamatan dengan Arduino IDE, hanya Memproses.

Langkah 9: Memproses Kod

Kod Pemprosesan
Kod Pemprosesan

OK sekarang untuk kod Pemprosesan.

Ini adalah bahagian yang paling mencabar bagi saya, tetapi juga peluang paling besar untuk belajar. Walaupun kod Arduino adalah lebih kurang 20 baris kod ini mempunyai +/- 270 baris dalam kod utama dan 70 + lagi di kelas.

Sekarang perkara pertama yang harus anda tanyakan adalah "Apa itu kelas?". Soalan yang baik. Ini merujuk kepada pengaturcaraan berorientasikan objek. Ringkasnya, ada banyak perkara yang berlaku dalam kod utama: menentukan ukuran dan warna paparan, jam, pemasa, kod untuk menunjukkan lokasi kursor, kod untuk menyimpan data ke dalam fail.csv dan beberapa baris yang berkaitan dengan kod yang memaparkan graf bar. Walaupun Arduino IDE memiliki semua kod pada satu halaman, kod pemprosesan ini mempunyai tiga tab. Yang pertama adalah kod utama dan dua yang berikutnya adalah kod yang memaparkan graf bar. (Kod ini sebenarnya disimpan dalam tiga fail berasingan dalam folder kod Pemprosesan.) Tab berasingan disebut "kelas" dan didefinisikan dalam baris 48 dan 56 dan kemudian dipaparkan oleh baris 179-182 dari kod utama. Orang yang menulis program Pemprosesan memanggil pengaturcaraan berorientasikan objek ini. (lihat: https://processing.org/tutorials/objects/ untuk penerangan ringkas).

Pada dasarnya apa yang dilakukan oleh kelas (Recta1, Recta2) dalam kod ini adalah membuat segi empat tepat yang bergerak naik dan turun berdasarkan data yang diterima dari DHT11 melalui siri. Fikirkan termometer kuno semakin tinggi merkuri semakin panas, tetapi ini dilakukan dengan data bukan merkuri. Sebenarnya, kelas membuat empat segi empat, dua segi empat tepat statik yang mewakili latar belakang termometer dan dua segi empat dinamik yang bertindak balas terhadap data dan bergerak ke atas dan ke bawah. Selain memindahkan segi empat, kod tersebut mengubah warna segi empat dinamik dan warna paparan digital Temp dan Kelembapan berdasarkan data yang diterima secara bersiri.

Langkah 10: Memproses Fail Kod

Hanya beberapa asas mengenai pemprosesan kod:

Saya sangat mengesyorkan membaca Make: Bermula dengan Proses oleh Casey Reas dan Ben Fry pengasas Processing.

processing.org/books/#reasfry2

Saya tidak akan cuba menerangkan semua aspek Pemprosesan atau menulis kod untuk diproses. Seperti yang saya katakan sebelumnya, saya seorang pemula dan saya rasa ada banyak orang yang lebih baik untuk belajar. Namun saya memahami kod yang telah saya tulis (percubaan dan kesalahan adalah guru yang baik).

1. Yang pertama mesti merangkumi perpustakaan (seperti di Arduino) dan menyatakan pemboleh ubah (Garis 1-25)

2. Seterusnya susun papan paparan (Garis 27-63)

3. Jalankan bahagian kod yang berulang - yang saya maksudkan ialah bahagian kod ini akan berulang sepanjang program dijalankan. Anda akan ingat Dalam Arduino "gelung void ();" (Langkah 6). Dalam Memproses ini sekarang adalah "undian void ();" (Garis 65-184)

4. Seterusnya adalah mendapatkan data dari port bersiri dan memberikannya kepada pemboleh ubah (int, float, String)

int-

terapung-

Tali-

(Garis 185-245)

4. Akhir sekali cara untuk menutup program dan menyimpan data (Talian 246-271)

Ok: Muat turun fail Temp_Hum_F_3_2 (untuk Fahrenheit)

Atau Temp_Hum_C_3_1 (untuk Celcius)

dan unzip fail. Buka dengan Pemprosesan.

Langkah 11: Font dalam Pemprosesan

Fon dalam Pemprosesan
Fon dalam Pemprosesan

Penting: Saya menarik perhatian anda ke baris 36-37

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // memuatkan fon yang disimpan dalam data

folder 37 textFont (fon);

Perpustakaan fon ini "SourceCodePro-Bold-48.vlw" termasuk dalam pemprosesan muat turun fail dan tidak perlu diubah untuk berfungsi.

Walau bagaimanapun untuk menukar fon ke perkara lain, anda perlu memuatkan fon baru ke dalam sketsa Pemprosesan DAN ganti "SourceCodePro-Bold-48.vlw" dengan fon baru.

. Nasib baik Memproses telah menjadikan bahagian pertama sangat mudah.

Pertama buka lakaran kemudian klik:

Alat> Buat fon

ini membuka tetingkap

Lihat rajah

Tatal ke bawah ke fon baru yang anda mahukan, Klik padanya dan kemudian klik OK. Fon kini telah dimuat ke dalam folder lakaran.

Seterusnya ganti teks "SourceCodePro-Bold-48.vlw" dengan nama fon baru yang tepat (termasuk format fail.vlw)

Sekiranya ini tidak dilakukan, fon baru tidak akan dimuat ke dalam kod dan kod tersebut akan memberikan kesalahan (Sama seperti kesalahan dalam Arduino- di kotak hitam di bahagian bawah program).

Langkah 12: Selesaikan

Selesai
Selesai
Selesai
Selesai
Selesai
Selesai
Selesai
Selesai

Untuk memulakan program Pemprosesan klik pada anak panah, Anda mungkin mendapat peringatan Java, Klik: Izinkan akses.

Lihat Rajah

OK, adakah program ini berjaya? Sekiranya demikian, anda akan mendapat paparan seperti yang dilihat dalam rajah.

(Tidak? Lihat penyelesaian masalah pada langkah seterusnya)

Ya? Sekarang cuba pegang DHT11 di telapak tangan tertutup atau letakkan di bawah aliran udara hangat pengering rambut. Nombor mesti berubah. Ya? Hebat. itu bermaksud semuanya berjalan lancar.

Untuk menutup program dan menyimpan data, klik kotak yang bertuliskan "Klik Di Sini untuk Tutup dan Simpan Data".

Sekarang untuk mencari data yang disimpan, pergi ke folder Pemprosesan Temp_Hum_F_3_1 atau Temp_Hum_C_3_1 (anda seharusnya dapat menemukannya sendiri sekarang) buka dan cari folder Data. Buka ini dan anda akan melihat fail.csv yang dinamakan sempena tarikh dan waktu anda menutup program (Contoh 1-10-18--22-30-16.csv bermaksud 10 Januari 2018 10:30:16 PM). Buka ini dengan Excel (atau setara lembaran spread Open office). Anda mesti melihat sesuatu seperti rajah. Lajur untuk Tarikh, Masa, masa berjalan, suhu dan kelembapan dengan data. Anda kini dapat membuat grafik data dengan excel atau apa sahaja yang anda mahu lakukan dengannya. (Catatan: jika anda melihat entri data pertama data Temp dan Kelembapan tidak betul, ini adalah perkara biasa dan hanya ralat ketika program pertama kali dimulai)

OK ya !!!!!

Kamu lakukan

Sekiranya anda mempunyai sebarang pertanyaan, sila hantarkan dan saya akan melakukan yang terbaik untuk bertindak balas dan membantu.

Terima kasih kerana kekal dengan ini dan semoga berjaya. Saya harap ini hanya permulaan…..

Seterusnya untuk saya Bluetooth dan mungkin Android….

Langkah 13: Penyelesaian masalah

Penyelesaian masalah
Penyelesaian masalah
Penyelesaian masalah
Penyelesaian masalah

Masalah Arduino

Sekiranya anda mendapat kod ralat (teks oren di bahagian bawah IDE) itu harus menjadi salah satu yang berikutPustaka "DHTlib" tidak disalin dengan betul

Port COM tidak ditetapkan dengan betul

Sensor tidak disambungkan dengan betul

Kod tersebut tidak dimasukkan ke IDE dengan betul

Sekiranya semua Arduino kelihatan OK, ingatlah untuk membuka Monitor Serial dan lihat apakah data sedang dipaparkan

Sekiranya anda melihat data yang betul ini bermakna bahagian Arduino sudah berfungsi - Ingatlah Tutup Monitor Serial sebelum memulakan Pemprosesan, jika Monitor Serial terbuka Pemprosesan tidak dapat membaca data.

Masalah Pemprosesan:

Ini akan dipaparkan di bahagian bawah program Pemprosesan.

Sekiranya anda mendapat ralat yang menggambarkan "font" kembali ke langkah 11 dan muatkan font seperti yang dijelaskan.

Sekiranya anda mendapat ralat seperti: Ralat, mematikan serialEvent () untuk COM4 null- mulakan semula lakaran Pemprosesan dengan mengklik anak panah seperti pada langkah 12

Sekiranya anda mendapat ralat yang menyatakan: Ralat membuka port bersiri- cuba ubah garis 32-34 menjadi sesuatu seperti di mana "COM4" sesuai dengan port COM dalam lakaran Arduino anda

myPort = newSerial (ini, "COM4", 9600); // Port myPort.bufferUntil ('\ n') // tunggu sehingga siri ini mempunyai data

Disyorkan: