Bagaimana untuk menyambungkan sensor kelembapan tanah ke Arduino?

Isi kandungan:

Bagaimana untuk menyambungkan sensor kelembapan tanah ke Arduino?
Bagaimana untuk menyambungkan sensor kelembapan tanah ke Arduino?
Anonim

Bilakah anda pergi ke tempat yang jauh untuk tempoh masa tertentu? Tidak ada orang untuk menyiram bunga dalaman anda, jadi anda perlu meminta bantuan daripada jiran anda, yang, pada gilirannya, mungkin cuai tentang perkara ini. Akibatnya, dengan ketibaan anda, tumbuhan akan berasa tidak enak. Untuk mengelakkan ini daripada berlaku, anda boleh membuat sistem pengairan automatik. Untuk tujuan ini, kami memerlukan Arduino dan sensor kelembapan tanah. Dalam artikel itu, kami akan mempertimbangkan contoh menyambung dan bekerja dengan sensor FC-28. Dia telah membuktikan dirinya dari segi positif, dengan bantuan beribu-ribu projek telah dibuat.

Mengenai FC-28

Terdapat pelbagai jenis penderia untuk menentukan kelembapan bumi, tetapi yang paling popular ialah model FC-28. Ia mempunyai harga yang rendah, yang mana ia digunakan secara meluas oleh semua amatur radio dalam projek mereka. Sensor kelembapan tanah dengan Arduino digunakan. Dia mempunyai dua kuar yang mengalirkan arus elektrik melalui tanah. Ternyata jika tanah basah, maka rintangan antara probe adalah kurang. Dengan tanah kering, masing-masing, rintangan lebih besar. Arduino menerima nilai ini, membandingkan dan, jika perlu, menghidupkan, sebagai contoh, pam. Sensor dapat berfungsi dengan kedua-dua mod digital dan analog, kami akan mempertimbangkan kedua-dua pilihan sambungan. FC-28 digunakan terutamanya dalam projek kecil, contohnya, apabila menyiram secara automatik satu tumbuhan tertentu, kerana ia menyusahkan untuk menggunakannya secara besar-besaran kerana saiz dan kelemahannya, yang juga akan kami pertimbangkan.

Penderia Lembapan Tanah FC-28
Penderia Lembapan Tanah FC-28

Di mana hendak membeli

Faktanya ialah di kedai Rusia, sensor untuk bekerja dengan Arduino agak mahal. Harga purata untuk sensor ini di Rusia berbeza dari 200 hingga 300 rubel, manakala di Aliexpress harga sensor yang sama hanya 30-50. Markupnya besar. Sudah tentu, anda masih boleh membuat penderia untuk mengukur kelembapan tanah dengan tangan anda sendiri, tetapi lebih lanjut mengenainya di bawah.

Perihal sambungan

Menyambungkan sensor kelembapan ke Arduino adalah sangat mudah. Ia dilengkapi dengan pembanding dan potensiometer untuk melaraskan kepekaan sensor, serta untuk menetapkan nilai had apabila disambungkan menggunakan output digital. Isyarat keluaran, seperti yang dinyatakan di atas, boleh berbentuk digital dan analog.

Pinout Sensor Kelembapan Tanah
Pinout Sensor Kelembapan Tanah

Menyambung dengan output digital

Disambungkan dalam cara yang hampir sama seperti analog:

  • VCC - 5V pada Arduino.
  • D0 - D8 pada papan Arduino.
  • GND -bumi.

Seperti yang dinyatakan di atas, pembanding dan potensiometer terletak pada modul penderia. Semuanya berfungsi seperti berikut: menggunakan potensiometer, kami menetapkan nilai had sensor kami. FC-28 membandingkan nilai dengan had dan kemudian menghantar nilai kepada Arduino. Katakan nilai sensor berada di atas ambang, dalam hal ini sensor kelembapan tanah pada Arduino menghantar 5V, jika kurang - 0V. Semuanya sangat mudah, tetapi mod analog mempunyai nilai yang lebih tepat, jadi disyorkan untuk menggunakannya.

Menyambung menggunakan mod digital
Menyambung menggunakan mod digital

Rajah pendawaian kelihatan seperti foto di atas. cara

Kod pengaturcaraan untuk Arduino apabila menggunakan mod digital ditunjukkan di bawah.


int led_pin=13; int sensor_pin=8; void setup() { pinMode(led_pin, OUTPUT); pinMode(sensor_pin, INPUT); } void loop() { if(digitalRead(sensor_pin)==HIGH){ digitalWrite(led_pin, HIGH); } else { digitalWrite(led_pin, LOW); kelewatan(1000); } }

Apakah fungsi kod kami? Pertama, dua pembolehubah telah dikenalpasti. Pembolehubah pertama - led_pin - berfungsi untuk menetapkan LED, dan yang kedua - untuk menetapkan sensor kelembapan tanah. Seterusnya, kami mengisytiharkan pin LED sebagai output, dan pin sensor sebagai input. Ini adalah perlu supaya kita boleh mendapatkan nilai, dan jika perlu, hidupkan LED untuk melihat secara visual bahawa nilai sensor berada di atas ambang. Dalam gelung, kami membaca nilai dari sensor. Jika nilai lebih tinggi daripada had, hidupkan LED, jika lebih rendah, matikan. Daripada LEDmungkin seorang pam, semuanya terpulang kepada anda.

Mod analog

Untuk menyambung menggunakan output analog, anda perlu menggunakan A0. Sensor kelembapan tanah kapasitif dalam Arduino mengambil nilai dari 0 hingga 1023. Sambungkan sensor seperti berikut:

  • VCC sambungkan 5V ke Arduino.
  • GND pada sensor disambungkan ke GND pada papan Arduino.
  • A0 sambung ke A0 pada Arduino.

Seterusnya, tulis kod di bawah dalam Arduino.


int sensor_pin=A0; int output_value; void setup() { Serial.begin(9600); Serial.println("Membaca penderia"); kelewatan(2000); } void loop() { output_value=analogRead(sensor_pin); nilai_keluaran=peta(nilai_keluaran, 550, 0, 0, 100); Serial.print("Kelembapan"); Serial.print(output_value); Serial.println("%"); kelewatan(1000); }

Jadi, apakah fungsi kod ini? Langkah pertama ialah menetapkan pembolehubah. Pembolehubah pertama diperlukan untuk menentukan sentuhan sensor, dan yang lain akan menyimpan hasil yang akan kami terima menggunakan sensor. Seterusnya, kami membaca data. Dalam gelung, kami menulis nilai daripada sensor kepada pembolehubah nilai_keluaran yang kami buat. Kemudian peratusan kelembapan tanah dikira, selepas itu kami memaparkannya pada monitor port. Rajah pendawaian ditunjukkan di bawah.

Sambungan analog sensor kelembapan tanah
Sambungan analog sensor kelembapan tanah

DIY

Telah dibincangkan di atas cara menyambungkan penderia kelembapan tanah ke Arduino. Masalah dengan penderia ini ialah ia berumur pendek. Hakikatnya ialah mereka sangat terdedah kepadakakisan. Sesetengah syarikat membuat penderia dengan salutan khas untuk meningkatkan hayat perkhidmatan, tetapi ia masih tidak sama. Juga dipertimbangkan ialah pilihan untuk menggunakan sensor tidak kerap, tetapi hanya apabila diperlukan. Sebagai contoh, terdapat kod program di mana setiap saat sensor membaca nilai kelembapan tanah. Anda boleh memanjangkan hayat perkhidmatan jika anda menghidupkannya, contohnya, sekali sehari. Tetapi jika ini tidak sesuai dengan anda, maka anda boleh membuat sensor kelembapan tanah dengan tangan anda sendiri. Arduino tidak akan merasakan perbezaannya. Pada asasnya, sistem adalah sama. Secara mudah, bukannya dua penderia, anda boleh meletakkan sendiri dan menggunakan bahan yang kurang terdedah kepada kakisan. Sebaik-baiknya, sudah tentu gunakan emas, tetapi memandangkan harganya, ia akan keluar sangat mahal. Secara umum, ia lebih murah untuk dibeli, memandangkan harga FC-28.

Sensor kelembapan tanah DIY
Sensor kelembapan tanah DIY

Kebaikan dan keburukan

Artikel membincangkan pilihan untuk menyambungkan penderia kelembapan tanah kepada Arduino, dan contoh kod program turut dibentangkan. FC-28 ialah penderia kelembapan tanah yang sangat bagus, tetapi apakah kebaikan dan keburukan khusus bagi penderia ini?

Kebaikan:

  • Harga. Sensor ini mempunyai harga yang sangat rendah, jadi setiap radio amatur akan dapat membeli dan membina sistem penyiraman automatik sendiri untuk tumbuhan. Sudah tentu, apabila bekerja dengan skala besar, sensor ini tidak sesuai, tetapi ia tidak bertujuan untuk ini. Jika anda memerlukan penderia yang lebih berkuasa - SM2802B, maka anda perlu membayar jumlah yang agak besar untuknya.
  • Kesederhanaan. Menguasai kerja dengan sensor kelembapan tanah ini dalam Arduino bolehsetiap satu. Hanya beberapa wayar, beberapa baris kod - dan itu sahaja. Kawalan kelembapan tanah dilakukan.

Keburukan:

Disyorkan: