Sebagai Insinyur / Pengembang, kami selalu mengandalkan data yang dikumpulkan untuk merancang atau meningkatkan sistem. Merekam data dan menganalisisnya adalah praktik umum di sebagian besar industri, di sini kami sedang membangun Proyek Logger Data Arduino di mana kami akan belajar bagaimana kami dapat mencatat data pada interval waktu tertentu. Kami akan menggunakan papan Arduino untuk membaca beberapa data (di sini suhu, kelembaban, tanggal dan waktu) dan menyimpannya di kartu SD dan komputer secara bersamaan.
Data yang disimpan dapat dengan mudah dibuka di Lembar Excel untuk analisis lebih lanjut. Untuk menjaga tanggal dan waktu kita akan menggunakan modul RTC DS3231 yang terkenal dan untuk mendapatkan Temperatur dan Kelembaban kita akan menggunakan Sensor DHT11. Di akhir proyek, Anda akan belajar
- Cara memasukkan data ke kartu SD dengan Tanggal, Waktu dan nilai sensor.
- Cara menulis data langsung ke Lembar Excel di PC melalui komunikasi serial.
Bahan yang Dibutuhkan:
- Papan tempat memotong roti
- Arduino UNO (papan Arduino apa saja)
- Sensor suhu DHT11
- Modul DS3231 RTC
- Modul kartu SD
- kartu SD
- Menghubungkan kabel
- Komputer / Laptop
Diagram Sirkuit:
Diagram sirkuit untuk Proyek Logger Suhu Arduino ini ditunjukkan di bawah ini.
Seperti yang ditunjukkan pada diagram sirkuit, koneksi sangat sederhana karena kami telah menggunakannya sebagai modul, kami dapat langsung membuatnya di papan tempat memotong roti. Koneksi tersebut selanjutnya diklasifikasikan dalam tabel di bawah ini
Pin Arduino |
Modul Pin |
Sensor Suhu - DHT11 |
|
Vcc |
5V |
Gnd |
Gnd |
Nc |
Nc |
Di luar |
Pin 7 |
Modul RTC DS3231 |
|
Vcc |
5V |
Gnd |
Gnd |
SCL |
Pin A5 |
SDA |
Pin A4 |
Modul kartu SD |
|
Vcc |
5V |
Gnd |
Gnd |
SUP KEDELAI JEPANG |
Pin 12 |
MOSI |
Pin 11 |
SCK |
Pin 13 |
CS |
Pin 4 |
Anda dapat mengganti sensor suhu DHT11 dengan sensor mana pun yang Anda perlukan untuk mencatat nilainya. Anda dapat memeriksa LM35 dengan Arduino untuk membaca suhu.
Modul RTC DS3231 dihubungkan dengan Arduino menggunakan komunikasi I2C (SCL, SDA) dan modul kartu SD dihubungkan menggunakan Komunikasi SPI (MISO, MOSI, SCK, CS). Pin 4 dan 7 didefinisikan sebagai pin CS dan pin keluaran oleh program Arduino, Anda dapat mengubahnya ke pin lain jika diperlukan. Kami sebelumnya menghubungkan kartu SD dengan Arduino dalam proyek Pemutar musik.
Penjelasan Program Arduino:
Kami harus menulis program Arduino yang dapat melakukan hal berikut.
- Membaca data dari DTH11 Sensor (atau data lain yang ingin Anda catat).
- Inisialisasi bus I2C untuk membaca data dari modul RTC.
- Inisialisasi bus SPI untuk menghubungkan modul kartu SD dengan Arduino.
- Simpan Tanggal, Waktu, Suhu dan Kelembaban ke dalam kartu SD.
- Simpan Tanggal, Waktu, Suhu dan Kelembaban pada Lembar Excel yang dijalankan di komputer / Laptop.
Langkah-langkah di atas mungkin terdengar rumit tetapi sangat mudah karena kami memiliki perpustakaan untuk melakukan pekerjaan berat untuk kami. Anda harus mengunduh dua pustaka berikut
- Library Sensor DHT11 dari GitHub
- Pustaka modul DS3231 RTC dari Rinky-Dink Electronics
Setelah Anda mengunduh pustaka, tambahkan ke Arduino IDE Anda dengan mengikuti
Sketch-> Include Library -> Add.ZIP Library
Untuk memasukkan data dari Arduino ke dalam lembar Excel di komputer, kami juga perlu menginstal perangkat lunak yang disebut PLX-DAQ yang disediakan oleh Parallax Inc. Ikuti tautan untuk mengunduh file dan menginstalnya berdasarkan sistem operasi Anda. Ini seharusnya membuat folder bernama PLS-DAQ di desktop Anda. Kami akan mengurusnya nanti di bagian kerja kami.
Sekarang setelah menambahkan kedua pustaka dan setelah menginstal perangkat lunak, Anda dapat menggunakan Kode Lengkap (diberikan di bagian bawah tutorial) dan mengunggahnya ke Arduino Anda. Saya telah mencoba yang terbaik untuk menjaga kode sesederhana mungkin dan penjelasannya juga diberikan melalui bagian komentar. Selanjutnya saya akan menjelaskan segmen-segmen penting di bawah ini.
1. Membaca Data dari DS3231:
DS3231 adalah modul RTC (Real Time Clock). Ini digunakan untuk mempertahankan tanggal dan waktu untuk sebagian besar proyek Elektronik. Modul ini memiliki catu daya sel berbentuk koin yang digunakan untuk mempertahankan tanggal dan waktu meskipun daya utama dilepas atau MCU telah mengalami hard reset. Jadi begitu kita mengatur tanggal dan waktu dalam modul ini, modul ini akan selalu melacaknya.
Menggunakan modul ini sangat mudah karena pustaka yang disediakan oleh Arduino.
// Masukkan DS3231 menggunakan antarmuka perangkat keras DS3231 rtc (SDA, SCL); void Initialize_RTC () {// Inisialisasi objek rtc rtc.begin (); // #### baris berikut tidak dapat dikomentari untuk menyetel tanggal dan waktu pertama kali ### / * rtc.setDOW (JUMAT); // Setel Hari Minggu ke MINGGU rtc.setTime (18, 46, 45); // Setel waktu ke 12:00:00 (format 24 jam) rtc.setDate (6, 30, 2017); // Setel tanggal ke 1 Januari 2014 * /}
Catatan: Saat menggunakan modul ini untuk pertama kalinya Anda harus menyetel tanggal dan waktu. Ini dapat dilakukan dengan hanya menghapus komentar seperti yang disebutkan di atas dan menuliskan tanggal dan waktu. Pastikan Anda berkomentar kembali dan mengunggahnya, jika tidak, setiap kali Anda menjalankan papan tanggal dan waktu akan disetel lagi. Anda juga dapat menggunakan IC RTC DS1307 untuk membaca waktu dengan Arduino.
2. Membaca Data dari DHT11:
DHT11 adalah sensor Suhu datang Kelembaban. Ini mengirimkan nilai suhu dan kelembaban sebagai data 8-bit secara serial melalui pin keluaran modul. Perpustakaan membaca data ini dengan menggunakan fungsi serial perangkat lunak Arduino.
#define DHT11_PIN 7 // Pin keluaran sensor terhubung ke pin 7 dht DHT; // Objek sensor bernama DHT void Read_DHT11 () {int chk = DHT.read11 (DHT11_PIN); }
Di sini saya telah menghubungkan pin output ke pin 7 sebagai contoh Anda dapat memilih pin apa saja yang mendukung Serial Perangkat Lunak. Memanggil DHT.read (nomor pin); akan membaca nilai suhu dan kelembaban dan menyimpannya di parameter DHT.temperature dan DHT.Humidity masing-masing. Juga periksa Pengukuran Suhu Arduino berbasis DHT11 ini.
3. Memulai modul kartu SC:
void Initialize_SDcard () {// lihat apakah kartu ada dan dapat diinisialisasi: if (! SD.begin (chipSelect)) {Serial.println ("Kartu gagal, atau tidak ada"); // jangan lakukan apa-apa lagi: return; } // buka file. perhatikan bahwa hanya satu file yang dapat dibuka dalam satu waktu, // jadi Anda harus menutup file ini sebelum membuka file lainnya. File dataFile = SD.open ("LoggerCD.txt", FILE_WRITE); // jika file tersedia, tulis ke file: if (dataFile) {dataFile.println ("Date, Time, Temperature, Humidity"); // Tulis baris pertama dari file excel dataFile.close (); }}
Menggunakan kartu SD dengan Arduino itu mudah karena perpustakaan kartu SD yang akan ditambahkan ke Arduino IDE secara default. Dalam fungsi inisialisasi kartu SD kita akan membuat file teks bernama "LoggerCD.txt" dan menulis baris pertama konten kita. Di sini kami memisahkan nilai dengan menggunakan "," sebagai pembatas. Artinya ketika koma ditempatkan itu berarti kita harus pindah ke sel berikutnya di lembar Excel.
4. Menulis Data ke kartu SD
void Write_SDcard () {// buka file. perhatikan bahwa hanya satu file yang dapat dibuka dalam satu waktu, // jadi Anda harus menutup file ini sebelum membuka file lainnya. File dataFile = SD.open ("LoggerCD.txt", FILE_WRITE); // jika file tersedia, tulis ke sana: if (dataFile) {dataFile.print (rtc.getDateStr ()); // Tanggal penyimpanan di kartu SD dataFile.print (","); // Pindah ke kolom berikutnya menggunakan "," dataFile.print (rtc.getTimeStr ()); // Tanggal penyimpanan di kartu SD dataFile.print (","); // Pindah ke kolom berikutnya menggunakan "," dataFile.print (DHT.temperature); // Tanggal penyimpanan di kartu SD dataFile.print (","); // Pindah ke kolom berikutnya menggunakan "," dataFile.print (DHT.humidity); // Tanggal penyimpanan di kartu SD dataFile.print (","); // Pindah ke kolom berikutnya menggunakan "," dataFile.println (); // Akhir Baris pindah ke baris berikutnya dataFile.close ();// Tutup file} else Serial.println ("OOPS !! Penulisan kartu SD gagal"); }
Seperti yang dikatakan sebelumnya, niat kami adalah menyimpan Tanggal, Waktu, Suhu, dan Kelembaban ke dalam kartu SD kami. Dengan bantuan pustaka DS3231 dan pustaka DHT11, Arduino kami akan mampu membaca keempat parameter ini dan menyimpannya ke dalam parameter berikut seperti yang ditunjukkan pada tabel di bawah ini
Tanggal |
rtc.getDateStr ()); |
Waktu |
rtc.getTimeStr ()); |
Suhu |
DHT. Suhu |
Kelembaban |
DHT. Kelembaban |
Sekarang kita dapat langsung menggunakan parameter ini untuk menyimpannya di kartu SD menggunakan garis cetak
dataFile.print (parameter);
Anda dapat melihat bahwa setiap parameter dipisahkan dengan koma agar terlihat terbaca dan dataFile.println (); digunakan untuk menunjukkan akhir baris.
5. Menulis Data ke PLX-DAQ
PLX-DAQ adalah software Microsoft Excel Plug-in yang membantu kita menulis nilai dari Arduino langsung ke file Excel di Laptop atau PC kita. Ini adalah favorit pribadi saya karena dua alasan:
1. Anda dapat menulis dan memantau data pada saat yang sama dan memberi kami cara untuk memplotnya sebagai grafik.
2. Anda tidak memerlukan Modul RTC seperti DS3231 untuk melacak tanggal dan waktu. Anda cukup menggunakan tanggal dan waktu yang berjalan di Laptop / komputer Anda dan menyimpannya langsung di Excel.
Untuk menggunakan software ini dengan Arduino kita harus mengirimkan data secara serial dengan pola tertentu seperti menampilkan nilai pada monitor serial. Garis kunci dijelaskan di bawah ini:
batal Initialize_PlxDaq () {Serial.println ("CLEARDATA"); // membersihkan semua data yang tersisa dari proyek sebelumnya Serial.println ("LABEL, Tanggal, Waktu, Suhu, Kelembaban"); // selalu tulis LABEL, untuk menandakannya sebagai baris pertama} void Write_PlxDaq () {Serial.print ("DATA"); // selalu tulis "DATA" untuk Inidicate yang berikut ini sebagai Data Serial.print (","); // Pindah ke kolom berikutnya menggunakan "," Serial.print ("DATE"); // Tanggal penyimpanan di Excel Serial.print (","); // Pindah ke kolom berikutnya menggunakan "," Serial.print ("TIME"); // Tanggal penyimpanan di Excel Serial.print (","); // Pindah ke kolom berikutnya menggunakan "," Serial.print (DHT.temperature); // Tanggal penyimpanan di Excel Serial.print (","); // Pindah ke kolom berikutnya menggunakan "," Serial.print (DHT.humidity);// Tanggal penyimpanan di Excel Serial.print (","); // Pindah ke kolom berikutnya menggunakan "," Serial.println (); // Akhir Baris pindah ke baris berikutnya}
Perangkat lunak dapat mengenali kata kunci seperti LABEL, DATA, WAKTU, TANGGAL dll. Seperti yang ditunjukkan dalam fungsi Inisialisasi, kata kunci "LABEL" digunakan untuk menulis BARIS pertama pada lembar Excel. Nanti di fungsi Tulis kami menggunakan kata kunci "DATA" untuk menunjukkan bahwa informasi berikut harus dianggap sebagai DATA. Untuk menunjukkan bahwa kita harus pindah ke baris berikutnya kita harus menggunakan koma (“,”). Untuk menunjukkan akhir baris kita harus mengirim Serial.println ();.
Seperti yang dikatakan sebelumnya kita dapat menulis tanggal dan waktu sistem dengan mengirimkan kata kunci "DATE" dan "TIME" masing-masing seperti yang ditunjukkan di atas.
Catatan: Jangan gunakan monitor serial saat menggunakan software PLX_DAQ ini.
Penjelasan Kerja:
Cara kerja Arduino Data Logger sederhana. Setelah perangkat keras dan perangkat lunak siap, sekarang saatnya untuk membakar program ke Papan Arduino Anda. Segera setelah program Anda diunggah, nilai suhu dan kelembapan Anda akan mulai disimpan di kartu SD Anda. Anda harus mengikuti langkah-langkah di bawah ini untuk mengaktifkan PLX-DAQ untuk masuk ke lembar Excel di komputer.
Langkah 1: Buka file "Plx-Daq Spreadsheet" yang telah dibuat di desktop Anda selama instalasi.
Langkah 2: Jika ada blok Keamanan, klik Opsi-> Aktifkan konten -> Selesai -> OK untuk mendapatkan layar berikut.
Langkah 3: Sekarang pilih baud rate sebagai "9600" dan port yang terhubung dengan Arduino Anda dan klik Connect. Nilai Anda harus mulai dicatat seperti yang ditunjukkan pada gambar di bawah ini.
Anda dapat membiarkan lembar excel ini terbuka dan memantau nilainya saat mereka masuk. Saat ini terjadi, kartu SD kami juga akan menyimpan nilai yang sama. Untuk memeriksa apakah itu berfungsi, cukup lepaskan kartu SD dan buka di Komputer Anda. Anda harus menemukan file teks bernama "LoggerCD.txt" di dalamnya. Saat dibuka akan terlihat seperti ini.
File ini memiliki data, tetapi akan sulit untuk menganalisisnya di notepad. Karenanya kita dapat membukanya di Excel sebagai file CSV (nilai dipisahkan koma), sehingga membuatnya lebih efektif. Untuk membuka di excel
1. Buka Excel. Klik File-> Buka dan pilih "Semua file" di pojok kanan bawah dan pilih file "LoggerCD" dari kartu SD. Ini akan membuka wizard impor teks.
2. Klik "Berikutnya" dan pilih koma sebagai pembatas. Klik "Next" lagi. Kemudian Selesai.
3. Sekarang nilai Anda akan dibuka di file Excel seperti yang ditunjukkan di bawah ini
Saya telah mencatat nilai setiap 5 detik; Anda dapat mencatatnya untuk waktu yang diinginkan dengan mengubah fungsi penundaan dalam program. Untuk pemahaman rinci tentang pekerjaan, tonton video di bawah ini.
Semoga Anda menyukai proyek ini, jika Anda ragu tulislah di bagian komentar di bawah ini dan saya akan membantu Anda.
Peningkatan Bonus- Pencatatan Data Nirkabel Menggunakan Arduino:
Setelah Anda berhasil sampai titik ini, kemudian dengan sedikit kemajuan dan hanya menambahkan beberapa baris kode Anda dapat mencatat data secara nirkabel.
Cukup hubungkan Perangkat Bluetooth seperti HC-05 dan tulis data ke PLX-DAQ melalui Bluetooth, bukan Serial. Yaitu mengganti Serial.print (parameter); dengan BluetoothName.print (parameter); dan hubungkan Laptop Anda ke Modul Bluetooth Anda dan pilih port COM yang terhubung dengan Bluetooth Laptop Anda dan Taadaaa…… Anda memiliki Sistem Pencatatan Data Nirkabel yang berfungsi dalam waktu singkat.