Daftar Isi:
- Langkah 1: Tambahkan Beberapa Komponen
- Langkah 2: Catatan Tentang Breadboards
- Langkah 3: Tambahkan Dua Sensor
- Langkah 4: Sensor Fotosensitif
- Langkah 5: Mulai Kode
- Langkah 6: Simulasi
- Langkah 7: Pasang Sensor Suhu
- Langkah 8: Menguji dan Memeriksa
Video: Arduino Datalogger: 8 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Dalam tutorial ini, kita akan membuat pencatat data sederhana menggunakan Arduino. Intinya adalah mempelajari dasar-dasar penggunaan Arduino untuk menangkap informasi dan mencetak ke terminal. Kita dapat menggunakan pengaturan dasar ini untuk menyelesaikan berbagai tugas.
Untuk memulai:
Anda memerlukan akun Tinkercad (www.tinkercad.com). Buka dan daftar dengan email atau akun media sosial Anda.
Masuk membawa Anda ke Dasbor Tinkercad. Klik "Sirkuit" di sebelah kiri dan pilih "Buat Sirkuit baru". Mari kita mulai!
Anda dapat menemukan file lengkapnya di Sirkuit TInkercad - Terima kasih telah memeriksanya!
Langkah 1: Tambahkan Beberapa Komponen
Anda akan membutuhkan beberapa komponen dasar. Ini termasuk:
- papan Arduino
- Papan tempat memotong roti
Tambahkan itu dengan mencarinya dan klik-seret ke area tengah.
Tempatkan papan tempat memotong roti di atas Arduino. Itu membuatnya lebih mudah untuk melihat koneksi nanti.
Langkah 2: Catatan Tentang Breadboards
Papan tempat memotong roti adalah perangkat yang sangat membantu untuk pembuatan prototipe cepat. Kami menggunakannya untuk menghubungkan komponen. Beberapa hal yang perlu diperhatikan.
- Titik-titik terhubung secara vertikal, tetapi garis di tengah memisahkan koneksi ini dari kolom atas dan bawah.
- Kolom tidak terhubung kiri ke kanan, seperti di seberang baris. Ini berarti bahwa semua komponen harus disambungkan melintasi kolom, bukan di bawahnya secara vertikal.
- Jika Anda perlu menggunakan tombol atau sakelar, sambungkan ke celah di tengah. Kita akan mengunjungi ini di tutorial selanjutnya.
Langkah 3: Tambahkan Dua Sensor
Dua sensor yang kami gunakan adalah sensor Fotosensitif dan sensor Suhu.
Sensor ini mengevaluasi cahaya dan suhu. Kami menggunakan Arduino untuk membaca nilai dan menampilkannya di monitor Serial di Arduino.
Cari dan tambahkan dua sensor. Pastikan mereka diposisikan di seluruh kolom pada papan tempat memotong roti. Beri jarak yang cukup di antara keduanya agar lebih mudah dilihat.
Langkah 4: Sensor Fotosensitif
- Untuk sensor fotosensitif, tambahkan kabel dari pin 5V pada Arduino ke kolom yang sama dengan kaki kanan pada bagian di papan tempat memotong roti. Ubah warna kabel menjadi merah.
- Hubungkan kaki kiri melalui pin pada kolom yang sama ke pin A0 (A-zero) pada Arduino. Ini adalah pin analog, yang akan kita gunakan untuk membaca nilai dari sensor. Warnai kabel ini dengan warna kuning atau selain merah atau hitam.
-
Tempatkan resistor (cari dan klik-tarik) di papan tulis. Ini melengkapi sirkuit dan melindungi sensor dan pin.
- Balikkan sehingga melewati kolom.
- Hubungkan satu kaki ke kolom kaki kanan di papan tempat memotong roti
-
Tempatkan kabel dari ujung resistor yang lain ke ground
Ubah warna kabel menjadi hitam
- Periksa kembali semua koneksi. Jika ada sesuatu yang tidak pada tempatnya, ini tidak akan berfungsi dengan benar.
Langkah 5: Mulai Kode
Mari kita lihat kode untuk komponen ini.
Pertama, lihat gambar ketiga di langkah ini. Ini berisi beberapa kode dengan dua fungsi:
batalkan pengaturan()
lingkaran kosong()
Di C++, semua fungsi menyediakan tipe pengembaliannya, lalu namanya, lalu dua kurung kurawal yang dapat digunakan untuk meneruskan argumen, biasanya sebagai variabel. Dalam hal ini, tipe pengembalian adalah void, atau tidak sama sekali. Nama sudah diatur dan fungsinya tidak membutuhkan argumen.
Fungsi pengaturan berjalan satu kali saat Arduino melakukan booting (saat Anda mencolokkannya atau memasang baterai).
Fungsi loop berjalan dalam loop konstan dari milidetik fungsi setup selesai.
Semua yang Anda masukkan ke dalam fungsi loop akan berjalan saat Arduino berjalan. Segala sesuatu di luar itu hanya akan berjalan saat dipanggil. Seperti jika kita mendefinisikan dan memanggil fungsi lain di luar loop.
Tugas
Buka panel Kode dengan tombol di Tinkercad. Ubah dropdown Blok menjadi Teks. Setujui kotak peringatan yang muncul. Sekarang, hapus semua yang Anda lihat kecuali teks pada gambar ketiga di langkah ini.
Variabel
Untuk memulai, kita perlu menetapkan beberapa variabel agar kode kita benar-benar efisien.
Variabel seperti ember yang hanya dapat menampung satu objek (C++ adalah apa yang kita sebut berorientasi objek). Ya, kami memiliki array, tetapi ini adalah variabel khusus dan kami akan membicarakannya nanti. Saat kita menetapkan variabel, kita perlu memberi tahu tipenya apa, lalu memberinya nilai. Ini terlihat seperti ini:
int someVar = A0;
Jadi, kami menetapkan variabel dan memberinya tipe int. Int adalah bilangan bulat atau bilangan bulat.
"Tapi kamu tidak menggunakan bilangan bulat!", Saya mendengar Anda berkata. Itu benar.
Arduino melakukan sesuatu yang khusus untuk kita sehingga kita dapat menggunakan A0 sebagai bilangan bulat, karena di file lain ia mendefinisikan A0 sebagai bilangan bulat, sehingga kita dapat menggunakan konstanta A0 untuk merujuk ke bilangan bulat ini tanpa harus tahu apa itu. Jika kami hanya mengetik 0, kami akan merujuk ke pin digital di posisi 0, yang tidak akan berfungsi.
Jadi, untuk kode kami, kami akan menulis variabel untuk sensor yang telah kami lampirkan. Sementara saya sarankan untuk memberikan nama yang sederhana, itu terserah Anda.
Kode Anda akan terlihat seperti ini:
int sensor cahaya = A0;
batalkan pengaturan() {} batalkan loop() { }
Sekarang, mari beri tahu Arduino bagaimana menangani sensor pada pin itu. Kami akan menjalankan fungsi di dalam pengaturan untuk mengatur mode pin dan memberi tahu Arduino di mana mencarinya.
int sensor cahaya = A0;
void setup() { pinMode(lightSensor, INPUT); } lingkaran kosong() {}
fungsi pinMode memberitahu Arduino bahwa pin (A0) akan digunakan sebagai pin INPUT. Perhatikan camelCaseUsed (lihat setiap huruf pertama adalah kapital, karena di dalamnya memiliki punuk, maka… unta…!) untuk variabel dan nama fungsi. Ini adalah konvensi dan baik untuk membiasakan diri.
Terakhir, mari kita gunakan fungsi analogRead untuk mendapatkan beberapa data.
int sensor cahaya = A0;
void setup() { pinMode(lightSensor, INPUT); } void loop() { int membaca = analogRead(lightSensor); }
Anda akan melihat kami menyimpan bacaan dalam sebuah variabel. Ini penting karena kita perlu mencetaknya. Mari kita gunakan perpustakaan Serial (perpustakaan adalah kode yang dapat kita tambahkan ke kode kita untuk membuat segalanya lebih cepat bagi kita untuk menulis, hanya dengan memanggilnya menurut definisinya) untuk mencetak ini ke monitor serial.
int sensor cahaya = A0;
void setup() { // Mengatur mode pin pinMode(lightSensor, INPUT); // Tambahkan perpustakaan serial Serial.begin(9600); } void loop() { // Membaca sensor int membaca = analogRead(lightSensor); // Cetak nilai ke monitor Serial.print("Light: "); Serial.println(membaca); // tunda pengulangan berikutnya dengan penundaan 3 detik(3000); }
Beberapa hal baru! Pertama, Anda akan melihat ini:
// Ini adalah komentar
Kami menggunakan komentar untuk memberi tahu orang lain apa yang dilakukan kode kami. Anda harus sering menggunakan ini. Kompiler tidak akan membaca ini dan mengubahnya menjadi kode.
Sekarang, kami juga menambahkan perpustakaan Serial dengan baris
Serial.begin(9600)
Ini adalah contoh fungsi yang mengambil argumen. Anda memanggil perpustakaan Serial kemudian menjalankan fungsi (kami tahu itu fungsi karena kurung kurawal) dan meneruskan bilangan bulat sebagai argumen, mengatur fungsi Serial untuk beroperasi pada 9600baud. Jangan khawatir mengapa - ketahuilah itu berhasil, untuk saat ini.
Hal berikutnya yang kami lakukan adalah mencetak ke monitor serial. Kami menggunakan dua fungsi:
// Yang ini mencetak ke serial tanpa jeda baris (masuk di akhir)
Serial.print("Cahaya: "); // Yang ini menempatkan jeda baris sehingga setiap kali kita membaca dan menulis, ia melanjutkan ke baris baru Serial.println(reading);
Yang penting untuk dilihat adalah bahwa masing-masing memiliki tujuan yang berbeda. Pastikan string Anda menggunakan tanda kutip ganda dan Anda meninggalkan spasi setelah titik dua. Itu membantu keterbacaan bagi pengguna.
Akhirnya, kami menggunakan fungsi penundaan, untuk memperlambat loop kami dan membuatnya hanya membaca setiap tiga detik sekali. Ini ditulis dalam ribuan detik. Ubah untuk membaca hanya sekali setiap 5 detik.
Besar! Kami pergi!
Langkah 6: Simulasi
Selalu periksa semuanya berfungsi dengan menjalankan simulasi. Untuk sirkuit ini, Anda juga harus membuka simulator untuk memeriksa kerjanya dan memeriksa nilai Anda.
Mulai simulasi dan periksa monitor serial. Ubah nilai sensor cahaya dengan mengkliknya dan ubah nilainya menggunakan penggeser. Anda juga akan melihat perubahan nilai di monitor serial. Jika tidak, atau jika Anda menekan tombol Mulai Simulasi Anda mendapatkan kesalahan, kembali dengan hati-hati dan periksa semua kode Anda.
- Fokus pada garis yang ditunjukkan di jendela debugging merah yang akan disajikan kepada Anda.
- Jika kode Anda benar dan simulasi masih tidak berfungsi, periksa kabel Anda.
- Muat ulang halaman - Anda mungkin mengalami kesalahan sistem/server yang tidak terkait.
- Goyangkan kepalan tangan Anda di depan komputer, dan periksa lagi. Semua programmer melakukan ini. Semua. NS. Waktu.
Langkah 7: Pasang Sensor Suhu
Saya akan menganggap Anda berada di jalur yang benar sekarang. Silakan dan pasang sensor suhu seperti yang ditunjukkan gambar. Perhatikan penempatan kabel 5V dan GND di tempat yang sama dengan kabel untuk lampu. Ini bagus. Ini seperti rangkaian paralel dan tidak akan menyebabkan masalah di simulator. Di sirkuit yang sebenarnya, Anda harus menggunakan papan breakout atau pelindung untuk menyediakan manajemen daya dan koneksi yang lebih baik.
Sekarang, mari kita perbarui kodenya.
Kode sensor suhu
Ini sedikit lebih rumit, tetapi hanya karena kita harus melakukan beberapa matematika untuk mengubah bacaan. Ini tidak terlalu buruk.
int sensor cahaya = A0;
int sensor suhu = A1; void setup() { // Mengatur mode pin pinMode(lightSensor, INPUT); // Tambahkan perpustakaan serial Serial.begin(9600); } void loop() { // Sensor suhu // Membuat dua variabel pada satu baris - oh efisiensi! // Float var untuk menyimpan tegangan float desimal, derajatC; // Baca nilai pin dan ubah menjadi pembacaan dari 0 - 5 // Pada dasarnya tegangan = (5/1023 = 0,004882814); tegangan = (analogRead(tempSensor) * 0,004882814); // Konversi ke Derajat C derajatC = (tegangan - 0,5) * 100; // Cetak ke serial monitor Serial.print("Temp: "); Serial.print(derajatC); Serial.println("C"); // Baca sensor int reading = analogRead(lightSensor); // Cetak nilai ke monitor Serial.print("Light: "); Serial.println(membaca); // tunda pengulangan berikutnya dengan penundaan 3 detik(3000); }
Saya telah membuat beberapa pembaruan pada kode. Mari kita telusuri mereka satu per satu.
Pertama, saya menambahkan baris
int sensor suhu = A1;
Sama seperti lightSensor, saya perlu menyimpan nilai dalam variabel untuk membuatnya lebih mudah nanti. Jika saya harus mengubah lokasi sensor ini (seperti memasang kembali papan) maka saya hanya perlu mengubah satu baris kode, tidak mencari di seluruh basis kode untuk mengubah A0 atau A1, dll.
Kemudian, kami menambahkan baris untuk menyimpan pembacaan dan suhu dalam pelampung. Perhatikan dua variabel pada satu baris.
tegangan mengambang, derajatC;
Ini sangat membantu karena mengurangi jumlah baris yang harus saya tulis dan mempercepat kode. Akan lebih sulit untuk menemukan kesalahan.
Sekarang, kita akan melakukan pembacaan dan menyimpannya, kemudian mengubahnya menjadi nilai output kita.
tegangan = (analogRead(tempSensor) * 0,004882814);
derajatC = (tegangan - 0,5) * 100;
Kedua baris tersebut terlihat sulit, tetapi pada baris pertama kita mengambil bacaan dan mengalikannya dengan 0,004… karena itu mengubah 1023 (pembacaan analog mengembalikan nilai ini) menjadi pembacaan dari 5.
Baris kedua di sana mengalikan bacaan itu dengan 100 untuk memindahkan titik desimal. Itu memberi kita suhu. Rapi!
Langkah 8: Menguji dan Memeriksa
Semua hal akan direncanakan, Anda harus memiliki sirkuit kerja. Uji dengan menjalankan simulasi dan menggunakan serial monitor. Jika Anda memiliki kesalahan, periksa, periksa lagi dan goyangkan kepalan tangan Anda.
Apakah kau berhasil? Bagikan dan ceritakan kisah Anda kepada kami!
Ini adalah sirkuit terakhir yang disematkan untuk Anda sehingga Anda dapat memainkan/menguji kreasi akhir. Terima kasih telah menyelesaikan tutorial!
Direkomendasikan:
Alaska Datalogger: 5 Langkah (dengan Gambar)
Alaska Datalogger: Alaska berada di ambang kemajuan perubahan iklim. Posisinya yang unik memiliki lanskap yang cukup tak tersentuh yang diisi dengan berbagai kenari tambang batu bara memungkinkan banyak kemungkinan penelitian. Teman kami Monty adalah seorang Arkeolog yang membantu
Arduino Datalogger Dengan RTC, Nokia LCD dan Encoder: 4 Langkah
Arduino Datalogger Dengan RTC, Nokia LCD dan Encoder: Bagian: Arduino Nano atau Arduino Pro Mini Nokia 5110 84x48 LCD DHT11 sensor suhu/kelembaban Modul DS1307 atau DS3231 RTC dengan built-in AT24C32 EEPROM Encoder murah dengan 3 kapasitor debouncingFitur: GUI berbasis Nokia LCD dan di
Cara Membongkar Komputer Dengan Langkah Mudah dan Gambar: 13 Langkah (dengan Gambar)
Cara Membongkar Komputer Dengan Langkah Mudah dan Gambar: Ini adalah instruksi tentang cara membongkar PC. Sebagian besar komponen dasar bersifat modular dan mudah dilepas. Namun penting bahwa Anda diatur tentang hal itu. Ini akan membantu Anda agar tidak kehilangan bagian, dan juga dalam membuat
ESP32 ADXL345 DATALOGGER DENGAN GPS_EXT RAM_EXT_RTC: 8 Langkah
ESP32 ADXL345 DATALOGGER DENGAN GPS_EXT RAM_EXT_RTC: Bagi Anda di luar sana yang bermain dengan papan Wemos 32 LOLIN, saya pikir saya akan mulai mendokumentasikan beberapa temuan saya sejauh ini. Proyek saat ini adalah antarmuka ke akselerometer ADXL345 dan seperti yang ditunjukkan foto di atas saya telah berhasil terhubung
Raspberry Pi Zero W Datalogger: 8 Langkah (dengan Gambar)
Raspberry Pi Zero W Datalogger: Dengan menggunakan Raspberry Pi Zero W, Anda dapat membuat datalogger yang murah dan mudah digunakan, yang dapat terhubung ke jaringan wifi lokal, atau berfungsi sebagai titik akses di lapangan yang memungkinkan Anda untuk mengunduh data secara nirkabel dengan smartphone Anda. Saya persembahkan