Daftar Isi:

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, Juli
Anonim

Dalam Instruksi ini, kami membuat monitor kelembaban tanah bertenaga surya. Ini menggunakan mikrokontroler wifi ESP8266 yang menjalankan kode daya rendah, dan semuanya tahan air sehingga dapat ditinggalkan di luar. Anda dapat mengikuti resep ini dengan tepat, atau mengambil darinya teknik yang berguna untuk proyek Anda sendiri.

Jika Anda baru mengenal pemrograman mikrokontroler, silakan lihat Kelas Arduino dan Kelas Internet of Things saya untuk mengetahui dasar-dasar pengkabelan, pengkodean, dan koneksi ke internet.

Proyek ini adalah bagian dari Kelas Surya gratis saya, di mana Anda dapat mempelajari lebih banyak cara untuk memanfaatkan energi matahari melalui ukiran dan panel surya.

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

Langkah 1: Apa yang Anda Butuhkan

Apa yang Anda Butuhkan
Apa yang Anda Butuhkan

Anda memerlukan papan pengisi daya baterai surya dan pelarian ESP8266 seperti NodeMCU ESP8266 atau Huzzah, serta sensor tanah, baterai, sakelar daya, beberapa kabel, dan penutup untuk menempatkan sirkuit Anda di dalamnya.

Berikut adalah komponen dan bahan yang digunakan untuk pemantau kelembaban tanah:

  • Mikrokontroler ESP8266 NodeMCU (atau yang serupa, Vin harus mentolerir hingga 6V)
  • Papan pengisi daya surya Adafruit dengan termistor opsional dan resistor 2.2K ohm
  • Baterai li-ion 2200mAh
  • Papan perma-proto
  • Sensor kelembaban/suhu tanah
  • 2 kelenjar kabel
  • Kandang tahan air
  • Pasangan kabel daya DC tahan air
  • Tabung panas menyusut
  • Panel surya 3,5W
  • Saklar daya tombol tekan
  • Pita busa tongkat ganda

Berikut adalah alat yang Anda perlukan:

  • Besi solder dan solder
  • Alat bantu tangan
  • penari telanjang kawat
  • Siram snips
  • Pinset (opsional)
  • Pistol panas atau korek api
  • Multimeter (opsional tetapi berguna untuk pemecahan masalah)
  • Kabel USB A-microB
  • Gunting
  • Langkah bor

Anda memerlukan akun gratis di situs data cloud io.adafruit.com dan IFTTT.

Sebagai Associate Amazon, saya memperoleh penghasilan dari pembelian yang memenuhi syarat yang Anda lakukan menggunakan tautan afiliasi saya.

Langkah 2: Prototipe papan tempat memotong roti

Prototipe papan tempat memotong roti
Prototipe papan tempat memotong roti

Sangat penting untuk membuat prototipe papan tempat memotong roti tanpa solder untuk proyek seperti ini, sehingga Anda dapat memastikan sensor dan kode Anda berfungsi sebelum membuat koneksi permanen.

Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar

Dalam hal ini, sensor tanah memiliki kabel yang terdampar sehingga perlu untuk sementara memasang header padat ke ujung kabel sensor menggunakan solder, bantuan tangan, dan beberapa tabung panas menyusut.

Gambar
Gambar

Ikuti diagram sirkuit untuk menyambungkan pin daya, ground, jam, dan data sensor (data juga mendapatkan resistor pull-up 10K yang disertakan dengan sensor tanah).

  • Sensor kabel hijau ke GND
  • Sensor kabel merah ke 3.3V
  • Sensor kabel kuning ke pin NodeMCU D5 (GPIO 14)
  • Sensor kabel biru ke pin NodeMCU D6 (GPIO 12)
  • Resistor pull-up 10K antara pin data biru dan 3.3V

Anda dapat menerjemahkan ini ke mikrokontroler pilihan Anda. Jika Anda menggunakan Arduino Uno atau sejenisnya, papan Anda sudah didukung oleh perangkat lunak Arduino. Jika Anda menggunakan ESP8266, silakan lihat Kelas Internet of Things saya untuk bantuan langkah demi langkah menyiapkan ESP8266 di Arduino (dengan menambahkan URL tambahan ke bidang URL Pengelola Papan Tambahan di preferensi Arduino, lalu cari dan memilih papan baru dari manajer papan). Saya cenderung menggunakan jenis papan Adafruit ESP8266 Huzzah untuk memprogram papan NodeMCU ESP8266, tetapi Anda juga dapat menginstal dan menggunakan dukungan papan ESP8266 Generik. Anda juga memerlukan driver chip komunikasi USB SiLabs (tersedia untuk Mac/Windows/Linux).

Untuk mengaktifkan dan menjalankan sensor dengan papan yang kompatibel dengan Arduino, saya mengunduh Perpustakaan Arduino SHT1x dari halaman github Arduino Praktis, kemudian membuka ritsleting file dan memindahkan folder perpustakaan ke folder Arduino/perpustakaan saya, lalu menamainya SHT1x. Buka contoh sketsa ReadSHT1xValues dan ubah nomor pin menjadi 12 (dataPin) dan 14 (clockPin), atau salin sketsa yang dimodifikasi di sini:

#termasuk

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x(dataPin, clockPin); // membuat instance objek SHT1x void setup() { Serial.begin(38400); // Buka koneksi serial untuk melaporkan nilai ke host Serial.println("Memulai"); } void loop() { float temp_c; mengapung temp_f; kelembaban mengambang; temp_c = sht1x.readTemperatureC(); // Baca nilai dari sensor temp_f = sht1x.readTemperatureF(); kelembaban = sht1x.readHumidity(); Serial.print("Suhu: "); // Cetak nilai ke port serial Serial.print(temp_c, DEC); Serial.print("C/"); Serial.print(temp_f, DEC); Serial.print("F. Kelembaban: "); Serial.print(kelembaban); Serial.println("%"); penundaan(2000); }

Unggah kode ini ke papan Anda dan buka monitor serial untuk melihat aliran data sensor masuk.

Jika kode Anda tidak dapat dikompilasi dan mengeluh tentang SHT1x.h tidak ditemukan, Anda belum menginstal pustaka sensor yang diperlukan dengan benar. Periksa folder Arduino/perpustakaan Anda untuk mencari yang bernama SHT1x, dan jika ada di tempat lain, seperti folder unduhan Anda, pindahkan ke folder perpustakaan Arduino Anda, dan ganti nama jika perlu.

Jika kode Anda dikompilasi tetapi tidak dapat diunggah ke papan Anda, periksa kembali pengaturan papan Anda, pastikan papan Anda terhubung, dan pilih port yang benar dari menu Alat.

Jika kode Anda diunggah tetapi input monitor serial Anda tidak dapat dikenali, periksa kembali baud rate Anda sesuai dengan yang ditentukan dalam sketsa Anda (38400 dalam kasus ini).

Jika input monitor serial Anda tampaknya tidak benar, periksa kembali kabel Anda terhadap diagram sirkuit. Apakah resistor pull-up 10K Anda berada di antara pin data dan 3.3V? Apakah data dan jam terhubung ke pin yang benar? Apakah daya dan ground terhubung sebagaimana mestinya di seluruh rangkaian? Jangan lanjutkan sampai sketsa sederhana ini berhasil!

Langkah selanjutnya adalah khusus untuk ESP8266 dan mengonfigurasi bagian pelaporan sensor nirkabel opsional dari proyek sampel. Jika Anda menggunakan mikrokontroler standar (non-nirkabel) yang kompatibel dengan Arduino, lanjutkan untuk mengembangkan sketsa akhir Arduino Anda dan lewati ke Siapkan Papan Pengisian Tenaga Surya.

Langkah 3: Pengaturan Perangkat Lunak

Pengaturan Perangkat Lunak
Pengaturan Perangkat Lunak

Untuk mengkompilasi kode proyek ini dengan ESP8266, Anda perlu menginstal beberapa perpustakaan Arduino lagi (tersedia melalui manajer perpustakaan):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpKlien

Unduh kode yang dilampirkan pada langkah ini, lalu unzip file dan buka Solar_Powered_Soil_Moisture_Monitor_Tutorial di perangkat lunak Arduino Anda.

#termasuk

#include #include #include #include // Tentukan koneksi data dan clock dan instantiate objek SHT1x #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x(dataPin, clockPin); // mengatur feed AdafruitIO_Feed *humidity = io.feed("humidity"); AdafruitIO_Feed *temperature = io.feed("temperature"); const int sleepTime = 15; // 15 menit

batalkan pengaturan()

{ Serial.begin(115200); // Buka koneksi serial untuk melaporkan nilai ke host Serial.println("Memulai"); // sambungkan ke io.adafruit.com Serial.print("Menghubungkan ke Adafruit IO"); io.koneksi(); // tunggu koneksi while(io.status() < AIO_CONNECTED) { Serial.print("."); penundaan (500); } // kita terhubung Serial.println(); Serial.println(io.statusText()); }

lingkaran kosong()

{ io.run(); // io.run(); membuat klien tetap terhubung dan diperlukan untuk semua sketsa. mengambang temp_c; mengambang temp_f; mengapung kelembaban; temp_c = sht1x.readTemperatureC(); // Baca nilai dari sensor temp_f = sht1x.readTemperatureF(); kelembaban = sht1x.readHumidity(); Serial.print("Suhu: "); // Cetak nilai ke port serial Serial.print(temp_c, DEC); Serial.print("C/"); Serial.print(temp_f, DEC); Serial.print("F. Kelembaban: "); Serial.print(kelembaban); Serial.println("%"); kelembaban-> simpan (kelembaban); suhu->simpan(temp_f); Serial.println("ESP8266 sedang tidur…"); ESP.deepSleep(Waktu tidur * 1000000 * 60); // Tidur }

Kode ini adalah gabungan dari kode sensor sebelumnya dalam tutorial ini dan contoh dasar dari layanan data cloud Adafruit IO. Program memasuki mode daya rendah dan tidur hampir sepanjang waktu, tetapi bangun setiap 15 menit untuk membaca suhu dan kelembaban tanah, dan melaporkan datanya ke Adafruit IO. Arahkan ke tab config.h dan isi username dan key Adafruit IO Anda, serta nama dan password jaringan wifi lokal Anda, kemudian upload kode tersebut ke mikrokontroler ESP8266 Anda.

Gambar
Gambar

Anda harus melakukan sedikit persiapan di io.adafruit.com. Setelah membuat feed untuk suhu dan kelembaban, Anda dapat membuat dasbor untuk monitor Anda yang menampilkan grafik nilai sensor dan data kedua feed yang masuk. Jika Anda memerlukan penyegaran untuk memulai Adafruit IO, lihat pelajaran ini di Kelas Internet of Things saya.

Langkah 4: Siapkan Papan Pengisian Tenaga Surya

Siapkan Papan Pengisian Tenaga Surya
Siapkan Papan Pengisian Tenaga Surya

Siapkan papan pengisi daya surya dengan menyolder pada kapasitor dan beberapa kabel ke bantalan keluaran beban. Saya menyesuaikan milik saya untuk mengisi daya lebih cepat dengan resistor tambahan opsional (2.2K disolder di PROG) dan membuatnya lebih aman untuk ditinggalkan tanpa pengawasan dengan mengganti resistor pemasangan permukaan dengan termistor 10K yang terpasang pada baterai itu sendiri. Ini akan membatasi pengisian daya untuk mengamankan rentang suhu. Saya membahas modifikasi ini secara lebih rinci dalam proyek Pengisi Daya USB Solar saya.

Langkah 5: Bangun Sirkuit Mikrokontroler

Bangun Sirkuit Mikrokontroler
Bangun Sirkuit Mikrokontroler
Gambar
Gambar
Gambar
Gambar

Solder papan mikrokontroler dan sakelar daya ke papan perma-proto.

Gambar
Gambar

Hubungkan output daya pengisi daya surya ke input sakelar Anda, yang harus diberi peringkat setidaknya 1 amp.

Gambar
Gambar

Buat dan solder sambungan kabel papan tempat memotong roti yang dijelaskan dalam diagram sirkuit di atas (atau sesuai spesifikasi versi pribadi Anda), termasuk resistor pull-up 10K pada jalur data sensor.

Pin beban pengisi daya surya akan memberikan daya baterai 3.7V ketika tidak ada tenaga surya, tetapi akan diberi daya langsung dari panel surya jika terpasang dan cerah. Oleh karena itu mikrokontroler harus mampu mentolerir berbagai tegangan, mulai dari 3,7V hingga 6V DC. Bagi mereka yang membutuhkan 5V, PowerBoost (500 atau 1000, tergantung pada arus yang dibutuhkan) dapat digunakan untuk memodulasi tegangan Beban ke 5V (seperti yang ditunjukkan dalam proyek Solar USB Charger). Berikut adalah beberapa papan umum dan rentang tegangan 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 masa pakai baterai yang paling lama, Anda harus meluangkan waktu untuk mempertimbangkan dan mengoptimalkan arus total yang Anda tarik saat ini. ESP8266 memiliki fitur tidur nyenyak yang kami gunakan dalam sketsa Arduino untuk mengurangi konsumsi dayanya secara dramatis. Itu bangun untuk membaca sensor dan menarik lebih banyak arus saat terhubung ke jaringan untuk melaporkan nilai sensor, lalu kembali tidur untuk jangka waktu tertentu. Jika mikrokontroler Anda menggunakan banyak daya dan tidak dapat dengan mudah dialihkan ke mode tidur, pertimbangkan untuk memindahkan proyek Anda ke papan kompatibel yang menggunakan lebih sedikit daya. Berikan pertanyaan di komentar di bawah jika Anda memerlukan bantuan untuk mengidentifikasi papan mana yang tepat untuk proyek Anda.

Langkah 6: Pasang Kelenjar Kabel

Gambar
Gambar

Untuk membuat titik masuk tahan cuaca untuk kabel panel surya dan kabel sensor, kami akan memasang dua kelenjar kabel ke sisi selungkup tahan cuaca.

Gambar
Gambar
Gambar
Gambar

Uji kesesuaian komponen Anda untuk mengidentifikasi penempatan yang ideal, lalu tandai dan bor lubang di selungkup kedap air menggunakan bor langkah. Pasang kedua kelenjar kabel.

Gambar
Gambar

Langkah 7: Perakitan Sirkuit Lengkap

Perakitan Sirkuit Lengkap
Perakitan Sirkuit Lengkap

Masukkan sisi port kabel daya tahan air menjadi satu dan solder ke input DC pengisi daya surya (merah ke + dan hitam ke -).

Gambar
Gambar

Masukkan sensor tanah melalui kelenjar lainnya, dan hubungkan ke perma-proto sesuai diagram sirkuit.

Gambar
Gambar

Rekatkan probe termistor ke baterai. Ini akan membatasi pengisian ke kisaran suhu yang aman saat proyek dibiarkan di luar tanpa pengawasan.

Gambar
Gambar

Mengisi daya saat terlalu panas atau terlalu dingin dapat merusak baterai atau memicu kebakaran. Paparan suhu ekstrem dapat menyebabkan kerusakan dan memperpendek masa pakai baterai, jadi bawalah baterai ke dalam jika suhu di bawah titik beku atau di atas 45℃/113F.

Gambar
Gambar

Kencangkan kelenjar kabel untuk membuat segel tahan cuaca di sekitar kabel masing-masing.

Langkah 8: Siapkan Panel Surya

Siapkan Panel Surya
Siapkan Panel Surya

Ikuti Instruksi saya untuk menyambungkan kabel untuk panel surya Anda dengan sisi steker dari set kabel daya DC tahan air.

Langkah 9: Uji Ini

Menguji
Menguji

Colokkan baterai Anda dan hidupkan sirkuit dengan menekan sakelar daya.

Gambar
Gambar

Uji dan pastikan itu melaporkan ke internet sebelum menutup kandang dan memasang sensor di kebun herbal Anda, tanaman pot berharga, atau tanah lain dalam jangkauan sinyal jaringan wifi Anda.

Gambar
Gambar

Setelah data dari sensor dicatat secara online, mudah untuk menyiapkan resep untuk email atau peringatan teks di situs gateway API If This Then That. Saya mengonfigurasi milik saya untuk mengirim email kepada saya jika tingkat kelembaban tanah turun di bawah 50.

Untuk mengujinya tanpa menunggu tanaman saya mengering, saya secara manual memasukkan titik data ke umpan kelembaban saya di Adafruit IO yang berada di bawah ambang batas. Beberapa saat kemudian, email datang! Jika level tanah berada di bawah level yang saya tentukan, saya akan menerima email setiap kali feed diperbarui hingga saya menyirami tanah. Untuk kewarasan saya, saya memperbarui kode saya untuk mengambil sampel tanah lebih jarang daripada setiap 15 menit.

Langkah 10: Gunakan Di Luar

Gunakan Di Luar!
Gunakan Di Luar!
Gunakan Di Luar!
Gunakan Di Luar!

Ini adalah proyek yang menyenangkan untuk disesuaikan berdasarkan kebutuhan hidrasi tanaman Anda, dan mudah untuk menukar atau menambahkan sensor atau mengintegrasikan fitur tenaga surya ke dalam proyek Arduino Anda yang lain.

Terima kasih telah mengikuti! Saya ingin mendengar apa yang Anda pikirkan; silahkan posting di komentar. Proyek ini adalah bagian dari Kelas Surya gratis saya, di mana Anda dapat menemukan proyek halaman belakang yang mudah dan lebih banyak pelajaran tentang bekerja dengan panel surya. Lihat dan daftar!

Jika Anda menyukai proyek ini, Anda mungkin tertarik dengan beberapa proyek saya yang lain:

  • Kelas Internet of Things gratis
  • Penghitung Pelanggan YouTube dengan ESP8266
  • Tampilan Pelacak Statistik Sosial dengan ESP8266
  • Tampilan Cuaca WiFi dengan ESP8266
  • Valentine Internet

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

Direkomendasikan: