Isi kandungan:
- Langkah 1: Tambah Beberapa Komponen
- Langkah 2: Nota Mengenai Papan Roti
- Langkah 3: Tambah Dua Sensor
- Langkah 4: Sensor Fotosensitif
- Langkah 5: Mulakan Kod
- Langkah 6: Simulasi
- Langkah 7: Kabelkan Sensor Temp
- Langkah 8: Menguji dan Memeriksa
Video: Arduino Datalogger: 8 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
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
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
Papan roti adalah alat yang sangat berguna untuk membuat prototaip pantas. Kami menggunakannya untuk menyambungkan komponen. Beberapa perkara yang perlu diberi perhatian.
- Titik dihubungkan secara menegak, tetapi garis di tengah memisahkan sambungan ini dari lajur atas dan bawah.
- 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.
- Sekiranya anda perlu menggunakan butang atau suis, sambungkannya di jeda di tengah. Kami akan melihatnya dalam tutorial kemudian.
Langkah 3: 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
- 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.
- 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.
-
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
- Periksa semula semua sambungan. Sekiranya sesuatu tidak berada di tempat yang betul, ini tidak akan berfungsi dengan betul.
Langkah 5: 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
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
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
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:
Alaska Datalogger: 5 Langkah (dengan Gambar)
Alaska Datalogger: Alaska berada dalam kemajuan kemajuan iklim. Kedudukannya yang unik mempunyai lanskap yang cukup tersentuh dengan berbagai kenari lombong arang batu memungkinkan banyak kemungkinan penyelidikan. Rakan kami Monty adalah Ahli Arkeologi yang membantu
Arduino Datalogger Dengan RTC, Nokia LCD dan Encoder: 4 Langkah
Arduino Datalogger Dengan RTC, Nokia LCD dan Encoder: Bahagian: Arduino Nano atau Arduino Pro Mini Nokia 5110 84x48 LCD DHT11 sensor suhu / kelembapan DS1307 atau modul DS3231 RTC dengan AT24C32 EEPROM built-in Encoder murah dengan 3 kapasitor pelepas. Ciri-ciri: GUI berdasarkan Nokia LCD dan en
Cara Membongkar Komputer Dengan Langkah dan Gambar yang Mudah: 13 Langkah (dengan Gambar)
Cara Membongkar Komputer Dengan Langkah dan Gambar yang Mudah: Ini arahan mengenai cara membongkar PC. Sebilangan besar komponen asas adalah modular dan mudah dikeluarkan. Walau bagaimanapun, adalah penting untuk anda mengaturnya. Ini akan membantu mengelakkan anda kehilangan bahagian, dan juga dalam membuat pemasangan semula
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 fikir saya akan mula mendokumentasikan beberapa penemuan saya setakat ini. Projek semasa adalah untuk menghubungkan ke pecutan ADXL345 dan seperti gambar yang ditunjukkan di atas saya telah berjaya berhubung
Raspberry Pi Zero W Datalogger: 8 Langkah (dengan Gambar)
Raspberry Pi Zero W Datalogger: Dengan menggunakan Raspberry Pi Zero W, anda boleh membuat datalogger yang murah dan mudah digunakan, yang boleh disambungkan ke rangkaian wifi tempatan, atau berfungsi sebagai titik akses di lapangan yang membolehkan anda memuat turun data tanpa wayar dengan telefon pintar anda. Saya membentangkan