Isi kandungan:

Solar Soil Moisture Meter Dengan ESP8266: 10 Langkah (dengan Gambar)
Solar Soil Moisture Meter Dengan ESP8266: 10 Langkah (dengan Gambar)

Video: Solar Soil Moisture Meter Dengan ESP8266: 10 Langkah (dengan Gambar)

Video: Solar Soil Moisture Meter Dengan ESP8266: 10 Langkah (dengan Gambar)
Video: Deteksi Kelembapan Tanah menggunakan Nodemcu, Sensor Soil Moisture, Blynk 2024, Julai
Anonim

Dalam Instructable ini, kami membuat monitor kelembapan tanah berkuasa suria. Ia menggunakan mikrokontroler wifi ESP8266 yang menjalankan kod kuasa rendah, dan semuanya tahan air sehingga boleh ditinggalkan di luar. Anda boleh mengikuti resipi ini dengan tepat, atau mengambilnya teknik berguna untuk projek anda sendiri.

Sekiranya anda baru dalam pengaturcaraan mikrokontroler, sila periksa Arduino Class dan Internet of Things Class saya untuk mengetahui asas-asas pendawaian, pengekodan, dan penyambungan ke internet.

Projek ini adalah sebahagian daripada Kelas Suria percuma saya, di mana anda dapat mempelajari lebih banyak cara untuk memanfaatkan tenaga matahari melalui ukiran dan panel solar.

Untuk mengikuti apa yang sedang saya kerjakan, ikuti saya di YouTube, Instagram, Twitter, Pinterest, dan melanggan buletin saya.

Langkah 1: Apa yang Anda Perlu

Apa yang Anda Perlu
Apa yang Anda Perlu

Anda memerlukan papan pengecas bateri solar dan pelarian ESP8266 seperti NodeMCU ESP8266 atau Huzzah, serta sensor tanah, bateri, suis kuasa, beberapa wayar, dan penutup untuk memasukkan litar anda ke dalam.

Berikut adalah komponen dan bahan yang digunakan untuk monitor kelembapan tanah:

  • ESP8266 NodeMCU mikrokontroler (atau serupa, Vin mesti bertolak ansur hingga 6V)
  • Papan pengisian solar Adafruit dengan termistor pilihan dan perintang 2.2K ohm
  • Bateri li-ion 2200mAh
  • Papan perma-proto
  • Sensor kelembapan / suhu tanah
  • 2 kelenjar kabel
  • Kandang kalis air
  • Pasangan kabel kuasa DC kalis air
  • Tiub mengecilkan haba
  • Panel solar 3.5W
  • Suis kuasa butang tekan
  • Pita busa kayu berganda

Inilah alat yang anda perlukan:

  • Pateri dan pateri
  • Alat bantu tangan
  • Pelucut wayar
  • Flip snip
  • Pinset (pilihan)
  • Pistol panas atau lebih ringan
  • Multimeter (pilihan tetapi berguna untuk menyelesaikan masalah)
  • Kabel USB A-microB
  • Gunting
  • Latih tubi

Anda memerlukan akaun percuma di laman data awan io.adafruit.com dan IFTTT.

Sebagai Associate Amazon, saya dapat hasil dari pembelian yang layak yang anda buat menggunakan pautan afiliasi saya.

Langkah 2: Prototaip Breadboard

Prototaip Papan Roti
Prototaip Papan Roti

Penting untuk membuat prototaip papan roti tanpa solder untuk projek seperti ini, jadi anda dapat memastikan sensor dan kod anda berfungsi sebelum membuat sambungan tetap.

Imej
Imej
Imej
Imej
Imej
Imej
Imej
Imej

Dalam kes ini, sensor tanah mempunyai kabel yang terdampar sehingga diperlukan untuk sementara memasang header padat ke hujung wayar sensor menggunakan solder, tangan penolong, dan beberapa tiub penyusutan panas.

Imej
Imej

Ikuti rajah litar untuk memasangkan daya, arde, jam, dan pin data sensor (data juga mendapat resistor penarik 10K yang disertakan dengan sensor tanah).

  • Sensor wayar hijau ke GND
  • Sensor wayar merah hingga 3.3V
  • Sensor wayar kuning ke pin NodeMCU D5 (GPIO 14)
  • Kawat biru sensor ke pin NodeMCU D6 (GPIO 12)
  • Perintang tarik 10K antara pin data biru dan 3.3V

Anda boleh menerjemahkannya ke mikrokontroler pilihan anda. Sekiranya anda menggunakan Arduino Uno atau yang serupa, papan anda sudah disokong oleh perisian Arduino. Sekiranya anda menggunakan ESP8266, sila periksa Internet of Things Class saya untuk mendapatkan bantuan langkah demi langkah untuk menyiapkan ESP8266 di Arduino (dengan menambahkan URL tambahan ke medan URL Pengurus Papan Tambahan dalam pilihan Arduino, kemudian cari dan memilih papan baru dari pengurus papan). Saya cenderung menggunakan jenis papan Adafruit ESP8266 Huzzah untuk memprogram papan NodeMCU ESP8266, tetapi anda juga boleh memasang dan menggunakan sokongan papan Generik ESP8266. Anda juga memerlukan pemacu cip komunikasi SiLabs USB (tersedia untuk Mac / Windows / Linux).

Untuk menghidupkan dan menjalankan sensor dengan papan serasi Arduino saya, saya memuat turun SHT1x Arduino Library dari halaman github Praktikal Arduino, kemudian membuka zip fail dan memindahkan folder perpustakaan ke folder Arduino / perpustakaan saya, kemudian menamakan semula SHT1x. Buka contoh lakaran ReadSHT1xValues dan ubah nombor pin menjadi 12 (dataPin) dan 14 (clockPin), atau salin lakaran yang diubah suai di sini:

#sertakan

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // instantiate SHT1x objek batal setup () {Serial.begin (38400); // Buka sambungan bersiri untuk melaporkan nilai ke hos Serial.println ("Memulakan"); } gelung void () {float temp_c; terapung temp_f; kelembapan apungan; temp_c = sht1x.readTemperatureC (); // Baca nilai dari sensor temp_f = sht1x.readTemperatureF (); kelembapan = sht1x.readHumidity (); Serial.print ("Suhu:"); // Cetak nilai ke port siri Serial.print (temp_c, DEC); Cetakan bersiri ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Kelembapan:"); Cetakan bersiri (kelembapan); Serial.println ("%"); kelewatan (2000); }

Muat naik kod ini ke papan anda dan buka monitor bersiri untuk melihat aliran data sensor masuk.

Sekiranya kod anda tidak dapat dikompilasi dan mengeluh kerana SHT1x.h tidak dijumpai, anda belum memasang pustaka sensor yang diperlukan. Periksa folder Arduino / perpustakaan anda untuk folder yang disebut SHT1x, dan jika terdapat di tempat lain, seperti folder muat turun anda, pindahkan ke folder perpustakaan Arduino anda, dan namakan semula jika perlu.

Sekiranya kod anda menyusun tetapi tidak akan memuat naik ke papan anda, periksa semula tetapan papan anda, pastikan papan anda dipasang, dan pilih port yang betul dari menu Alat.

Sekiranya kod anda memuat naik tetapi input monitor bersiri anda tidak dapat dikenali, periksa semula kadar baud anda yang ditentukan dalam lakaran anda (38400 dalam kes ini).

Sekiranya input monitor bersiri anda kelihatan tidak betul, periksa semula pendawaian anda pada rajah litar. Adakah perintang penarik 10K anda berada di antara pin data dan 3.3V? Adakah data dan jam dihubungkan ke pin yang betul? Adakah daya dan tanah dihubungkan sebagaimana mestinya sepanjang litar? Jangan teruskan sehingga lakaran ringkas ini berfungsi!

Langkah seterusnya adalah khusus untuk ESP8266 dan mengkonfigurasi bahagian pelaporan sensor tanpa wayar pilihan projek sampel. Sekiranya anda menggunakan mikrokontroler yang serasi dengan Arduino standard (tanpa wayar), teruskan membuat lakaran Arduino terakhir anda dan lompat ke Prepare Solar Charging Board.

Langkah 3: Persediaan Perisian

Persediaan Perisian
Persediaan Perisian

Untuk menyusun kod untuk projek ini dengan ESP8266, anda perlu memasang beberapa lagi perpustakaan Arduino (tersedia melalui pengurus perpustakaan):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpKlien

Muat turun kod yang dilampirkan pada langkah ini, kemudian buka zip fail dan buka Solar_Powered_Soil_Moisture_Monitor_Tutorial dalam perisian Arduino anda.

#sertakan

#include #include #include #include // Nyatakan sambungan data dan jam dan buat objek SHT1x #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // sediakan suapan AdafruitIO_Feed * kelembapan = io.feed ("kelembapan"); AdafruitIO_Feed * suhu = io.feed ("suhu"); const int sleepTime = 15; // 15 minit

persediaan tidak sah ()

{Serial.begin (115200); // Buka sambungan bersiri untuk melaporkan nilai ke hos Serial.println ("Memulakan"); // sambung ke io.adafruit.com Serial.print ("Menyambung ke Adafruit IO"); io.connect (); // tunggu sambungan sementara (io.status () <AIO_CONNECTED) {Serial.print ("."); kelewatan (500); } // kita dihubungkan Serial.println (); Serial.println (io.statusText ()); }

gelung kosong ()

{io.run (); // io.run (); memastikan klien sentiasa berhubung dan diperlukan untuk semua lakaran. terapung temp_c; terapung temp_f; kelembapan apungan; temp_c = sht1x.readTemperatureC (); // Baca nilai dari sensor temp_f = sht1x.readTemperatureF (); kelembapan = sht1x.readHumidity (); Serial.print ("Suhu:"); // Cetak nilai ke port siri Serial.print (temp_c, DEC); Cetakan bersiri ("C /"); Serial.print (temp_f, DEC); Serial.print ("Kelembapan F:"); Serial.print (kelembapan); Serial.println ("%"); kelembapan-> jimat (kelembapan); suhu-> jimat (temp_f); Serial.println ("ESP8266 sedang tidur …"); ESP.deepSleep (sleepTime * 1000000 * 60); // Tidur}

Kod ini adalah gabungan kod sensor dari sebelumnya dalam tutorial ini dan contoh asas dari perkhidmatan data cloud Adafruit IO. Program ini memasuki mod kuasa rendah dan tidur hampir sepanjang masa, tetapi bangun setiap 15 minit untuk membaca suhu dan kelembapan tanah, dan melaporkan datanya ke Adafruit IO. Navigasi ke tab config.h dan isi nama pengguna dan kunci Adafruit IO anda, serta nama dan kata laluan rangkaian wifi tempatan anda, kemudian muat naik kod tersebut ke mikrokontroler ESP8266 anda.

Imej
Imej

Anda perlu melakukan sedikit persediaan di io.adafruit.com. Setelah membuat suapan untuk suhu dan kelembapan, anda dapat membuat papan pemuka untuk monitor anda yang menampilkan grafik nilai sensor dan kedua data suapan masuk. Sekiranya anda memerlukan penyegaran untuk memulakan Adafruit IO, baca pelajaran ini di Internet of Things Class saya.

Langkah 4: Sediakan Solar Charging Board

Sediakan Solar Charging Board
Sediakan Solar Charging Board

Sediakan papan pengisian solar dengan memateri kapasitor dan beberapa wayar ke pad output beban. Saya menyesuaikan tambang untuk mengecas pada kadar yang lebih pantas dengan perintang tambahan pilihan (2.2K disolder di seluruh PROG) dan menjadikannya lebih selamat untuk tidak dijaga dengan mengganti perintang pelekap permukaan dengan termistor 10K yang terpasang pada bateri itu sendiri. Ini akan mengehadkan pengecasan untuk melindungi julat suhu. Saya membahas pengubahsuaian ini dengan lebih terperinci dalam projek Solar USB Charger saya.

Langkah 5: Bina Litar Mikrokontroler

Bina Litar Mikrokontroler
Bina Litar Mikrokontroler
Imej
Imej
Imej
Imej

Selesaikan papan mikrokontroler dan suis kuasa ke papan perma-proto.

Imej
Imej

Sambungkan output kuasa pengecas solar ke input suis anda, yang harus dinilai sekurang-kurangnya 1 amp.

Imej
Imej

Buat dan pateri sambungan wayar papan roti yang dijelaskan dalam rajah litar di atas (atau mengikut spesifikasi versi peribadi anda), termasuk resistor penarik 10K pada baris data sensor.

Pin Beban pengecas solar akan memberikan kuasa bateri 3.7V apabila tidak ada tenaga suria, tetapi akan dihidupkan terus dari panel solar jika terpasang dan cerah. Oleh itu mikrokontroler mesti boleh bertolak ansur dengan pelbagai voltan, serendah 3.7V dan hingga 6V DC. Bagi mereka yang memerlukan 5V, PowerBoost (500 atau 1000, bergantung pada arus yang diperlukan) dapat digunakan untuk memodulasi voltan Beban menjadi 5V (seperti yang ditunjukkan dalam projek Solar USB Charger). Berikut adalah beberapa papan umum dan julat voltan inputnya:

  • NodeMCU ESP8266 (digunakan di sini): 5V USB atau 3.7V-10V Vin
  • Arduino Uno: 5V USB atau 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB atau 3.4-6V VBat

Untuk mencapai jangka hayat bateri yang paling lama, anda perlu meluangkan masa untuk mempertimbangkan dan mengoptimumkan jumlah keseluruhan undian semasa anda. ESP8266 mempunyai fitur tidur nyenyak yang kami gunakan dalam sketsa Arduino untuk mengurangkan penggunaan kuasanya secara mendadak. Ia bangun untuk membaca sensor dan menarik arus lebih banyak semasa ia menyambung ke rangkaian untuk melaporkan nilai sensor, kemudian kembali tidur untuk jangka waktu yang ditentukan. Sekiranya pengawal mikro anda menggunakan banyak tenaga dan tidak dapat tidur dengan mudah, pertimbangkan untuk menyalurkan projek anda ke papan serasi yang menarik tenaga. Tuliskan soalan di komen di bawah jika anda memerlukan bantuan untuk mengenal pasti papan mana yang sesuai untuk projek anda.

Langkah 6: Pasang Kelenjar Kabel

Imej
Imej

Untuk menjadikan pintu masuk kalis cuaca untuk kabel panel suria dan kabel sensor, kami akan memasang dua kelenjar kabel ke sisi kandang tahan cuaca.

Imej
Imej
Imej
Imej

Uji muat komponen anda untuk mengenal pasti penempatan yang sesuai, kemudian tandakan dan gerudi lubang di kandang kalis air menggunakan latih tubi. Pasang dua kelenjar kabel.

Imej
Imej

Langkah 7: Pemasangan Litar Lengkap

Pemasangan Litar Lengkap
Pemasangan Litar Lengkap

Masukkan bahagian port kabel kuasa kalis air ke dalam satu dan pasangkannya ke input DC pengecas solar (merah ke + dan hitam ke -).

Imej
Imej

Masukkan sensor tanah melalui kelenjar lain, dan sambungkannya ke perma-proto seperti dalam rajah litar.

Imej
Imej

Pita probe termistor ke bateri. Ini akan mengehadkan pengecasan ke julat suhu yang selamat sementara projek dibiarkan tanpa pengawasan di luar.

Imej
Imej

Mengecas semasa terlalu panas atau terlalu sejuk boleh merosakkan bateri atau menyalakan api. Pendedahan pada suhu yang melampau boleh menyebabkan kerosakan dan memendekkan jangka hayat bateri, jadi bawa ke dalam jika berada di bawah beku atau di atas 45 ℃ / 113F.

Imej
Imej

Kencangkan kelenjar kabel untuk membuat penutup kedap cuaca di sekitar kabel masing-masing.

Langkah 8: Sediakan Panel Suria

Sediakan Panel Suria
Sediakan Panel Suria

Ikuti instruksiku untuk menyambungkan kabel untuk panel suria anda dengan bahagian palam dari set kabel kuasa DC kalis air.

Langkah 9: Uji Ia

Uji Ia
Uji Ia

Pasangkan bateri anda dan hidupkan litar dengan menekan suis kuasa.

Imej
Imej

Uji dan pastikan ia melapor ke internet sebelum menutup kandang dan memasang sensor di kebun ramuan anda, tanaman pasu berharga, atau tanah lain dalam jangkauan isyarat rangkaian wifi anda.

Imej
Imej

Setelah data dari sensor dilog masuk dalam talian, mudah untuk menyediakan resipi untuk amaran e-mel atau teks di laman gerbang API Jika Ini Kemudian Itu. Saya mengkonfigurasi tambang untuk menghantar e-mel kepada saya sekiranya tahap kelembapan tanah turun di bawah 50.

Untuk mengujinya tanpa menunggu tanaman saya kering, saya secara manual memasukkan titik data untuk suapan kelembapan saya di Adafruit IO yang jatuh di bawah ambang. Beberapa saat kemudian, e-mel tiba! Sekiranya tahap tanah jatuh di bawah tahap yang saya tetapkan, saya akan mendapat e-mel setiap kali suapan dikemas kini sehingga saya menyiram tanah. Untuk kewarasan saya, saya mengemas kini kod saya untuk mengambil sampel tanah lebih kerap daripada setiap 15 minit.

Langkah 10: Gunakan di Luar

Gunakannya di Luar!
Gunakannya di Luar!
Gunakannya di Luar!
Gunakannya di Luar!

Ini adalah projek yang menyeronokkan untuk disesuaikan berdasarkan keperluan penghidratan kilang anda, dan mudah untuk menukar atau menambahkan sensor atau menggabungkan ciri tenaga suria ke dalam projek Arduino anda yang lain.

Terima kasih kerana mengikuti! Saya ingin mendengar pendapat anda; sila hantar di komen. Projek ini adalah sebahagian daripada Kelas Suria percuma saya, di mana anda dapat mencari projek belakang rumah yang mudah dan lebih banyak pelajaran mengenai bekerja dengan panel solar. Lihat dan daftar!

Sekiranya anda menyukai projek ini, anda mungkin berminat dengan beberapa projek saya yang lain:

  • Kelas Internet Perkara percuma
  • Kaunter Pelanggan YouTube dengan ESP8266
  • Paparan Penjejak Statistik Sosial dengan ESP8266
  • Paparan Cuaca WiFi dengan ESP8266
  • Valentine Internet

Untuk mengikuti apa yang sedang saya kerjakan, ikuti saya di YouTube, Instagram, Twitter, Pinterest, dan Snapchat.

Disyorkan: