Isi kandungan:

Arduino Datalogger: 8 Langkah (dengan Gambar)
Arduino Datalogger: 8 Langkah (dengan Gambar)

Video: Arduino Datalogger: 8 Langkah (dengan Gambar)

Video: Arduino Datalogger: 8 Langkah (dengan Gambar)
Video: Membuat Data Logger Suhu dan Cahaya Menggunakan Arduino - Tutorial Arduino Indonesia #16 2024, November
Anonim
Arduino Datalogger
Arduino Datalogger
Arduino Datalogger
Arduino Datalogger

Dalam tutorial ini, kita akan membuat logger data mudah menggunakan Arduino. Intinya adalah mempelajari asas-asas menggunakan Arduino untuk menangkap maklumat dan mencetak ke terminal. Kita boleh menggunakan persediaan asas ini untuk menyelesaikan pelbagai tugas.

Untuk memulakan:

Anda memerlukan akaun Tinkercad (www.tinkercad.com). Pergi ke atas dan daftar dengan e-mel atau akaun media sosial anda.

Log masuk membawa anda ke Tinkercad Dashboard. Klik "Litar" di sebelah kiri dan pilih "Buat Litar baru". Mari kita mulakan!

Anda boleh mendapatkan fail lengkap di TInkercad Circuits - Terima kasih kerana memeriksanya!

Langkah 1: Tambah Beberapa Komponen

Tambah Beberapa Komponen
Tambah Beberapa Komponen
Tambah Beberapa Komponen
Tambah Beberapa Komponen
Tambah Beberapa Komponen
Tambah Beberapa Komponen

Anda memerlukan beberapa komponen asas. Ini termasuk:

  • Papan Arduino
  • Papan roti

Tambahkan mereka dengan mencarinya dan klik-menyeret mereka ke kawasan tengah.

Letakkan papan roti di atas Arduino. Ini menjadikannya lebih mudah untuk melihat sambungannya kemudian.

Langkah 2: Nota Mengenai Papan Roti

Nota Mengenai Papan Roti
Nota Mengenai Papan Roti

Papan roti adalah alat yang sangat berguna untuk membuat prototaip pantas. Kami menggunakannya untuk menyambungkan komponen. Beberapa perkara yang perlu diberi perhatian.

  1. Titik dihubungkan secara menegak, tetapi garis di tengah memisahkan sambungan ini dari lajur atas dan bawah.
  2. Lajur tidak dihubungkan dari kiri ke kanan, seperti di seberang baris. Ini bermaksud bahawa semua komponen harus dihubungkan melintasi lajur dan bukannya turun secara menegak.
  3. Sekiranya anda perlu menggunakan butang atau suis, sambungkannya di jeda di tengah. Kami akan melihatnya dalam tutorial kemudian.

Langkah 3: Tambah Dua Sensor

Tambah Dua Sensor
Tambah Dua Sensor

Dua sensor yang kami gunakan adalah sensor Fotosensitif dan sensor Suhu.

Sensor ini menilai cahaya dan suhu. Kami menggunakan Arduino untuk membaca nilainya dan memaparkannya di monitor Serial di Arduino.

Cari dan tambahkan dua sensor. Pastikan ia diletakkan di seberang lajur di papan roti. Letakkan ruang yang cukup di antara mereka untuk memudahkan mereka melihatnya.

Langkah 4: Sensor Fotosensitif

Sensor Fotosens-t.webp
Sensor Fotosens-t.webp
Sensor Fotosens-t.webp
Sensor Fotosens-t.webp
Sensor Fotosens-t.webp
Sensor Fotosens-t.webp
Sensor Fotosens-t.webp
Sensor Fotosens-t.webp
  1. Untuk sensor sensitif fotosensitif, tambahkan wayar dari pin 5V pada Arduino ke lajur yang sama dengan kaki kanan pada bahagian di papan roti. Tukar warna wayar menjadi merah.
  2. Sambungkan kaki kiri melalui pin di lajur yang sama ke pin A0 (A-zero) di Arduino. Ini adalah pin analog, yang akan kami gunakan untuk membaca nilai dari sensor. Warnakan dawai ini kuning atau lain daripada merah atau hitam.
  3. Letakkan perintang (search and click-drag) di papan. Ini melengkapkan litar dan melindungi sensor dan pin.

    • Pusingkannya sehingga melintasi lajur.
    • Sambungkan satu kaki ke lajur kaki kanan di papan roti
    • Letakkan wayar dari hujung perintang yang lain ke tanah

      Tukar warna wayar menjadi hitam

  4. Periksa semula semua sambungan. Sekiranya sesuatu tidak berada di tempat yang betul, ini tidak akan berfungsi dengan betul.

Langkah 5: Mulakan Kod

Mulakan Kod
Mulakan Kod
Mulakan Kod
Mulakan Kod
Mulakan Kod
Mulakan Kod

Mari lihat kod untuk komponen ini.

Pertama, lihat gambar ketiga dalam langkah ini. Ia mengandungi beberapa kod dengan dua fungsi:

persediaan tidak sah ()

gelung kosong ()

Dalam C ++, semua fungsi memberikan jenis pengembaliannya, kemudian namanya, kemudian dua pendakap bulat yang dapat digunakan untuk melewati argumen, biasanya sebagai pemboleh ubah. Dalam kes ini, jenis pengembalian adalah tidak sah, atau tidak ada. Nama disiapkan dan fungsi tidak memerlukan argumen.

Fungsi persediaan berjalan sekali ketika Arduino melakukan boot (semasa anda memasangkannya atau memasang bateri).

Fungsi gelung berjalan dalam gelung tetap dari milisaat fungsi penyiapan selesai.

Semua yang anda masukkan dalam fungsi gelung akan berjalan ketika Arduino berjalan. Segala-galanya di luar yang hanya akan berjalan apabila dipanggil. Seperti jika kita menentukan dan memanggil fungsi lain di luar gelung.

Tugas

Buka panel Code dengan butang di Tinkercad. Tukar dropdown Blok ke Teks. Setuju dengan kotak amaran yang muncul. Sekarang, hapus semua yang anda lihat kecuali teks pada gambar ketiga dalam langkah ini.

Pemboleh ubah

Untuk memulakan, kita perlu menetapkan beberapa pemboleh ubah sehingga kita menjadikan kod kita benar-benar cekap.

Pemboleh ubah adalah seperti baldi yang hanya dapat menahan satu objek (C ++ adalah apa yang kita namakan berorientasikan objek). Ya, kami mempunyai tatasusunan, tetapi ini adalah pemboleh ubah khas dan kami akan membincangkannya kemudian. Apabila kita menetapkan pemboleh ubah, kita perlu memberitahu jenisnya, kemudian beri nilai. Ia kelihatan seperti ini:

int someVar = A0;

Oleh itu, kami memberikan pemboleh ubah dan memberikannya jenis int. Int adalah nombor bulat atau nombor bulat.

"Tetapi anda tidak menggunakan nombor bulat!", Saya mendengar anda berkata. Itu betul.

Arduino melakukan sesuatu yang istimewa untuk kita sehingga kita dapat menggunakan A0 sebagai bilangan bulat, kerana dalam fail lain ia mendefinisikan A0 sebagai bilangan bulat, jadi kita dapat menggunakan pemalar A0 untuk merujuk kepada bilangan bulat ini tanpa harus mengetahui apa itu. Sekiranya kita hanya mengetik 0, kita akan merujuk pada pin digital pada kedudukan 0, yang tidak akan berfungsi.

Jadi, untuk kod kami, kami akan menulis pemboleh ubah untuk sensor yang kami lampirkan. Walaupun saya mengesyorkan memberikannya nama yang mudah, terserah anda.

Kod anda akan kelihatan seperti ini:

int lightSensor = A0;

persediaan kosong () {} gelung kosong () {}

Sekarang, mari beritahu Arduino bagaimana mengendalikan sensor pada pin itu. Kami akan menjalankan fungsi di dalam persediaan untuk menetapkan mod pin dan memberitahu Arduino di mana mencarinya.

int lightSensor = A0;

batal persediaan () {pinMode (lightSensor, INPUT); } gelung kosong () {}

fungsi pinMode memberitahu Arduino bahawa pin (A0) akan digunakan sebagai pin INPUT. Perhatikan camelCaseUsed (lihat setiap huruf pertama adalah huruf besar, karena di dalamnya terdapat bonggol, oleh itu … unta …!) Untuk pemboleh ubah dan nama fungsi. Ini adalah konvensyen dan bagus untuk membiasakan diri.

Akhirnya, mari kita gunakan fungsi analogRead untuk mendapatkan beberapa data.

int lightSensor = A0;

batal persediaan () {pinMode (lightSensor, INPUT); } gelung void () {int reading = analogRead (lightSensor); }

Anda akan melihat bahawa kami menyimpan bacaan dalam pemboleh ubah. Ini penting kerana kita perlu mencetaknya. Mari gunakan perpustakaan Serial (perpustakaan adalah kod yang dapat kita tambahkan pada kod kita untuk mempercepat penulisan kita, hanya dengan memanggilnya mengikut definisi) untuk mencetak ini ke monitor bersiri.

int lightSensor = A0;

batal persediaan () {// Tetapkan mod pin pinMode (lightSensor, INPUT); // Tambahkan pustaka bersiri Serial.begin (9600); } gelung void () {// Baca sensor int membaca = analogRead (lightSensor); // Cetak nilainya ke monitor Serial.print ("Light:"); Serial.println (membaca); // tunda gelung seterusnya dengan kelewatan 3 saat (3000); }

Beberapa perkara baru! Pertama, anda akan melihat ini:

// Ini adalah komen

Kami menggunakan komen untuk memberitahu orang lain apa yang dilakukan oleh kod kami. Anda mesti kerap menggunakannya. Penyusun tidak akan membaca ini dan menukarnya menjadi kod.

Sekarang, kami juga menambah perpustakaan Serial dengan baris

Serial.begin (9600)

Ini adalah contoh fungsi yang memerlukan argumen. Anda memanggil perpustakaan Serial kemudian menjalankan fungsi (kami tahu itu adalah fungsi kerana pendakap bulat) dan meneruskan bilangan bulat sebagai argumen, menetapkan fungsi Serial beroperasi pada 9600baud. Jangan risau mengapa - ketahuilah ia berfungsi buat masa ini.

Perkara seterusnya yang kami lakukan ialah mencetak ke monitor bersiri. Kami menggunakan dua fungsi:

// Yang ini dicetak ke siri tanpa putus baris (masukkan di akhir)

Serial.print ("Cahaya:"); // Yang ini meletakkan jeda baris sehingga setiap kali kita membaca dan menulis, ia akan menggunakan baris baru Serial.println (membaca);

Yang penting untuk dilihat ialah masing-masing mempunyai tujuan yang terpisah. Pastikan tali anda menggunakan tanda petik ganda dan anda meninggalkan ruang selepas titik dua. Itu membantu pembacaan pengguna.

Akhirnya, kami menggunakan fungsi kelewatan, untuk memperlahankan gelung dan menjadikannya hanya dibaca sekali setiap tiga saat. Ini ditulis dalam ribuan saat. Tukar untuk dibaca hanya sekali setiap 5 saat.

Hebat! Kita pergi!

Langkah 6: Simulasi

Simulasi
Simulasi
Simulasi
Simulasi
Simulasi
Simulasi

Sentiasa periksa keadaan dengan menjalankan simulasi. Untuk litar ini, anda juga perlu membuka simulator untuk memastikan ia berfungsi dan memeriksa nilai anda.

Mulakan simulasi dan periksa monitor bersiri. Tukar nilai sensor cahaya dengan mengkliknya dan menukar nilai menggunakan gelangsar. Anda juga harus melihat perubahan nilai pada monitor bersiri. Sekiranya tidak, atau jika anda menekan butang Mula Simulasi, anda mendapat ralat, kembali dengan teliti dan periksa semua kod anda.

  • Fokus pada garis yang ditunjukkan di tetingkap debugging merah yang akan disampaikan kepada anda.
  • Sekiranya kod anda betul dan simulasi masih tidak berfungsi, periksa pendawaian anda.
  • Muat semula halaman - anda mungkin mempunyai ralat sistem / pelayan yang tidak berkaitan.
  • Goncangkan penumbuk anda di komputer, dan periksa lagi. Semua pengaturcara melakukan ini. Semua. The. Masa.

Langkah 7: Kabelkan Sensor Temp

Kabelkan Sensor Temp
Kabelkan Sensor Temp

Saya akan menganggap anda berada di landasan yang betul sekarang. Teruskan dan pasangkan penderia suhu seperti yang ditunjukkan dalam gambar. Perhatikan penempatan wayar 5V dan GND di ruang yang sama dengan kabel untuk lampu. Ini ok. Ia seperti litar selari dan tidak akan menimbulkan masalah dalam simulator. Dalam litar sebenar, anda harus menggunakan papan pelindung atau pelindung untuk menyediakan pengurusan dan sambungan kuasa yang lebih baik.

Sekarang, mari kita kemas kini kodnya.

Kod sensor temp

Ini sedikit lebih sukar, tetapi hanya kerana kita perlu melakukan beberapa matematik untuk menukar bacaan. Ia tidak terlalu teruk.

int lightSensor = A0;

int tempSensor = A1; batal persediaan () {// Tetapkan mod pin pinMode (lightSensor, INPUT); // Tambahkan pustaka bersiri Serial.begin (9600); } gelung void () {// Sensor temp // Membuat dua pemboleh ubah pada satu baris - oh kecekapan! // Float var untuk menyimpan voltan apungan perpuluhan, darjahC; // Baca nilai pin dan ubah menjadi bacaan dari 0 - 5 // Pada dasarnya voltan = (5/1023 = 0.004882814); voltan = (analogRead (tempSensor) * 0.004882814); // Tukar ke Darjah C darjahC = (voltan - 0.5) * 100; // Cetak ke monitor bersiri Serial.print ("Temp:"); Cetakan bersiri (darjahC); Serial.println ("oC"); // Baca sensor int pembacaan = analogRead (lightSensor); // Cetak nilainya ke monitor Serial.print ("Light:"); Serial.println (membaca); // tunda gelung seterusnya dengan kelewatan 3 saat (3000); }

Saya telah membuat beberapa kemas kini kod tersebut. Mari jalankan mereka secara individu.

Pertama, saya menambah baris

int tempSensor = A1;

Sama seperti lightSensor, saya perlu menyimpan nilai dalam pemboleh ubah untuk mempermudahnya nanti. Sekiranya saya terpaksa menukar lokasi sensor ini (seperti memasang semula papan) maka saya hanya perlu menukar satu baris kod, bukan mencari di seluruh pangkalan kode untuk menukar A0 atau A1, dll.

Kemudian, kami menambah baris untuk menyimpan bacaan dan suhu di apung. Perhatikan dua pemboleh ubah pada satu baris.

voltan apungan, darjahC;

Ini sangat membantu kerana mengurangkan bilangan baris yang perlu saya tulis dan mempercepat kodnya. Akan tetapi, lebih sukar untuk mencari kesilapan.

Sekarang, kami akan melakukan pembacaan dan menyimpannya, kemudian menukarnya ke nilai output kami.

voltan = (analogRead (tempSensor) * 0.004882814);

darjahC = (voltan - 0.5) * 100;

Kedua-dua baris kelihatan sukar, tetapi pada awalnya kita mengambil bacaan dan mengalikannya dengan 0,004 … kerana ia menukar 1023 (bacaan analog mengembalikan nilai ini) menjadi bacaan daripada 5.

Garis kedua di sana mengalikan bacaan dengan 100 untuk menggerakkan titik perpuluhan. Itu memberi kita suhu. Kemas!

Langkah 8: Menguji dan Memeriksa

Menguji dan Memeriksa
Menguji dan Memeriksa

Semua perkara akan dirancang, anda mesti mempunyai rangkaian kerja. Uji dengan menjalankan simulasi dan menggunakan monitor bersiri. Sekiranya anda mempunyai kesilapan, periksa, periksa lagi dan goncangkan penumbuk anda.

Adakah anda berjaya? Kongsi dan ceritakan kisah anda kepada kami!

Ini adalah litar terakhir yang disematkan untuk anda supaya anda dapat bermain / menguji ciptaan terakhir. Terima kasih kerana menyelesaikan tutorial!

Disyorkan: