Sistem Penyiraman Tanaman Otomatis & Irigasi: Desain Rangkaian, Kode, dan Laporan Proyek
Sistem Penyiraman Tanaman Otomatis – Kode Sumber Lengkap, Rangkaian & Laporan Proyek – Unduh PDF
Pendahuluan
Dalam operasi sehari-hari terkait penyiraman tanaman adalah praktik budidaya yang paling penting dan tugas yang paling memerlukan tenaga kerja. Tidak peduli cuaca seperti apa, terlalu panas dan dingin atau terlalu kering dan basah sangat penting untuk mengontrol jumlah air yang sampai ke tanaman. Jadi, akan efektif untuk menggunakan ide sistem penyiraman tanaman otomatis yang menyiram tanaman saat mereka membutuhkannya. Aspek penting dari proyek ini adalah: “kapan dan berapa banyak menyiram”. Untuk mengurangi aktivitas manual bagi manusia untuk menyiram tanaman, ide sistem penyiraman tanaman diadopsi. Metode yang digunakan untuk memantau tingkat kelembaban tanah secara kontinu dan untuk memutuskan apakah penyiraman diperlukan atau tidak, dan berapa banyak air yang diperlukan dalam tanah tanaman. Proyek ini dapat dikelompokkan ke dalam subsistem seperti; pasokan daya, rel, solenoid valve, Arduino GSM shield, Sensor kelembaban tanah dan LCD.

Esensialnya, sistem dirancang dan diprogram sedemikian rupa sehingga sensor kelembaban tanah merasakan tingkat kelembaban tanaman pada waktu tertentu, jika tingkat kelembaban sensor lebih rendah dari nilai ambang yang ditentukan sebelumnya yang telah ditetapkan berdasarkan kebutuhan air tanaman tertentu maka jumlah air yang diinginkan disuplaykan sampai mencapai nilai ambang yang ditentukan sebelumnya.
Sistem melaporkan keadaan saat ini dan mengirim pesan pengingat tentang penyiraman tanaman dan untuk menambahkan air ke tangki. Semua notifikasi ini dapat dilakukan dengan menggunakan Arduino GSM shield.
- Proyek Terkait: Rangkaian Alarm Hujan – Proyek Detektor Salju, Air dan Hujan
Tujuan proyek:
Karena saat ini, di era teknologi dan elektronika canggih, gaya hidup manusia harus menjadi cerdas, lebih sederhana, lebih mudah dan jauh lebih nyaman. Jadi, oleh karena itu; ada kebutuhan akan banyak sistem otomatis dalam rutinitas kehidupan sehari-hari manusia untuk mengurangi aktivitas dan pekerjaan harian mereka. Di sini ide sistem yang dinamakan sistem penyiraman tanaman otomatis sangat berguna. Karena banyak orang menghadapi banyak masalah dalam menyiram tanaman di taman, terutama ketika mereka jauh dari rumah. Model ini menggunakan teknologi sensor dengan mikrokontroler untuk membuat perangkat switching cerdas untuk membantu jutaan orang.
Dalam bentuk paling dasarnya, sistem diprogram sedemikian rupa sehingga sensor kelembaban tanah yang merasakan tingkat kelembaban dari tanaman pada waktu tertentu, jika tingkat kelembaban sensor lebih rendah dari nilai ambang yang ditentukan sebelumnya yang telah ditetapkan berdasarkan tanaman tertentu maka jumlah air yang diinginkan disuplaykan ke tanaman sampai tingkat kelembabannya mencapai nilai ambang yang ditentukan sebelumnya. Sistem melibatkan sensor kelembaban dan suhu yang melacak atmosfer saat ini sistem dan memiliki pengaruh saat penyiraman terjadi. Solenoid valve akan mengontrol aliran air dalam sistem, saat Arduino membaca nilai dari sensor kelembaban ia memicu solenoid valve berdasarkan kondisi yang diinginkan. Selain itu, sistem melaporkan keadaan saat ini dan mengirim pesan pengingat tentang penyiraman tanaman dan menerima SMS dari penerima. Semua notifikasi ini dapat dilakukan dengan menggunakan Arduino GSM shield.
- Proyek Terkait: Diagram Rangkaian Indikator Tingkat Air – Dua Proyek Sederhana

Latar Belakang Sistem
Telah dipelajari di sekolah dari buku-buku ilmu pengetahuan bahwa tanaman sangat penting untuk seluruh kemanusiaan dalam banyak aspek. Karena mereka menjaga lingkungan tetap bersih dengan menghasilkan oksigen segar dari waktu ke waktu. Sistem penyiraman tanaman otomatis semakin banyak dilihat seiring dengan meningkatnya objek sehari-hari yang terhubung dengan teknologi canggih, sistem ini diterapkan dengan tingkat yang semakin tinggi. Tempat seperti rumah serta pada tingkat industri. Penggunaan utama sistem ini adalah efisiensi dan mudah digunakan.
Sistem penyiraman tanaman memberikan kemampuan bagi pecinta tanaman untuk merawat tanaman rumah mereka saat mereka jauh – melalui penggunaan komponen yang efisien dan andal seperti berbagai jenis teknologi sensor.
Ada beberapa jenis sistem penyiraman tanaman indoor yang berbeda/sederhana, tergantung pada tingkat otomatisasi yang diperlukan.
- Proyek Terkait: Sistem Irigasi Cerdas – Diagram Rangkaian dan Kode
Dalam laporan pdf akhir (tautan unduhan gratis diberikan di akhir konten posting), bagian-bagian berikut dijelaskan secara detail.
- Glob dan Paku Penyiraman Tanaman
- Sistem Penyiraman Tetes Indoor
- Teknologi Sensor
- Sensor Suhu dan Kelembaban
- Sensor Suhu
- Sensor Kelembaban
- Sensor Kelembaban Tanah
- Termostat Bi-Metalik
- Termistor
- Detektor Suhu Resistif (RTD)
- Termokopel
- IC Sensor, LM35
- Sensor Suhu Digital (ADT7301)
- DHT11 dan DHT22
- Modul GSM
- Arsitektur GSM
- Relay
- Transistor
- Hitachi 16×2 LCD
Proyek Terkait: Apa itu Mikrokontroler ATMega & Cara Membuat Proyek LED dengannya?
Spesifikasi Produk & Komponen
| Requirement ID | SRS-GSM-001 |
| Judul | Modul GSM |
| Deskripsi | Sistem termasuk modul GSM, yang mengirim SMS peringatan ke penerima dan menerima SMS dari pengguna. |
| Versi | Versi 1.0 |
| Requirement ID | SRS-Mikrokontroler -001 |
| Judul | ATmega328p |
| Deskripsi | Sistem termasuk mikrokontroler yang biasanya hadir dengan Arduino Uno. Mikrokontroler ini membaca pembacaan dari sensor dan mengontrol seluruh sistem. |
| Versi | Versi 1.0 |
| Requirement ID | SRS-Suhu dan Kelembaban-001 |
| Judul | DHT11 |
| Deskripsi | Sistem termasuk sensor suhu dan kelembaban, yang melacak nilai suhu dan kelembaban saat ini dari lingkungan sekitar dan mengirim pembacaan kembali ke mikrokontroler. |
| Versi | Versi 1.0 |
| Requirement ID | SRS-Kelembaban-001 |
| Judul | Sensor Kelembaban Tanah Grove |
| Deskripsi | Sistem termasuk sensor kelembaban tanah, yang mengambil pembacaan dari kelembaban tanah dan mengirim pembacaan kembali ke mikrokontroler. |
| Versi | Versi 1.0 |
| Requirement ID | SRS-LCD-001 |
| Judul | Hitachi 16×2 LCD |
| Deskripsi | Sistem termasuk antarmuka LCD untuk pengguna, yang menampilkan pembacaan yang diambil oleh berbagai sensor dalam sistem. |
| Versi | Versi 1.0 |
Posting Terkait: Pemrograman Arduino: Apa itu Arduino dan Cara Memrogramnya?
Sistem Penyiraman Tanaman Otomatis Berbasis Arduino:
Diagram Blok Sistem Penyiraman Tanaman Otomatis

Diagram Skematik Rangkaian Sistem Penyiraman Tanaman & Irigasi Otomatis
Menurut sistem ini ada dua komponen fungsional dalam proyek ini yaitu Sensor kelembaban dan motor/pompa air. Dalam bentuk paling dasarnya sensor kelembaban merasakan tingkat kelembaban tanah. Kemudian motor/pompa air menyuplaykan air ke tanaman.
Klik gambar untuk memperbesar
Skematik di atas dalam gambar di atas menjelaskan perilaku keseluruhan sistem. Proyek menggunakan Arduino Uno untuk mengontrol motor. Ini terdiri dari H-bridge yang mengontrol aliran motor servo yaitu arah jarum jam atau berlawanan jarum jam. Dengan perkembangan kabel polimer dan elastomer, stress cones premoulded juga telah diperkenalkan. Sensor kelembaban mengukur tingkat tanah dan mengirim sinyal ke Arduino lalu Arduino akan membuka motor servo jika penyiraman diperlukan. Kemudian motor/pompa air menyuplaykan air ke tanaman sampai tingkat kelembaban yang diinginkan tercapai.
Dari prototipe dalam gambar di atas sensor kelembaban merasakan tingkat kelembaban dan mengirim sinyal ke Arduino dan kemudian Arduino membuka pompa air dengan bantuan H-bridge dan menyiram tanaman tertentu. Ini dilakukan dengan menggunakan perangkat lunak Arduino IDE.
Proyek Terkait: Proyek Elektronik Kontrol Lalu Lintas Lampu Lalu Lintas menggunakan IC 4017 & Timer 555
Desain Proyek
Bagian ini membahas pekerjaan yang selesai dalam desain perangkat lunak dan desain perangkat keras. Ini juga masuk ke wawasan tentang apa yang dimasukkan dalam sistem dan mengapa berbagai komponen dipilih untuk membuat sistem Penyiraman Tanaman Otomatis yang lengkap. Pertimbangkan diagram dalam gambar yang menunjukkan model konseptual dasar sistem menggunakan komponen yang dipilih.
Fungsi diagram blok yang ditunjukkan dalam gambar di atas dari sistem penyiraman tanaman otomatis diilustrasikan di bawah ini:
- Sistem termasuk modul GSM yang mengirim SMS ke penerima dan menerima SMS dari penerima.
- Ini menggunakan sensor kelembaban tanah, suhu dan kelembaban.
- Ini juga termasuk katup solenoid bersama dengan rangkaian solenoid yang mengontrol aliran air melalui katup solenoid.
- Sensor kelembaban digunakan untuk menentukan tingkat kelembaban tanaman tertentu. Tingkat kelembaban ini dibaca oleh mikrokontroler, saat ia meloop dan melihat apakah nilai dari sensor di atas nilai ambang atau tidak. Jika nilai di atas nilai yang ditentukan sebelumnya maka modul GSM siap mengirim SMS ke penerima.
- Sensor suhu dan kelembaban digunakan untuk menentukan apakah terlalu panas untuk tanaman atau kelembaban terlalu tinggi untuk ditangani. Ini dibaca oleh chip ATmega328p (Baca lebih lanjut tentang Apa itu ATmega) pada Arduino Uno. Pembacaan ini akan digunakan untuk menentukan apakah semua solenoid dalam sistem harus Hidup atau Mati.
Detail komponen lebih lanjut dapat ditemukan dalam file pdf (di bawah)
Proyek Terkait: Apa itu Raspberry Pi? Membuat Proyek menggunakan Raspberry Pi
Desain Perangkat Keras
Skematik Sensor
Gambar di bawah ini menunjukkan skematik rangkaian Sensor. Karena semua sensor terhubung dengan pin analog Arduino A0-A3. Pin A0 disediakan untuk sensor suhu dan kelembaban sedangkan pin A1-A3 disediakan untuk sensor kelembaban. Semua sensor memiliki daya dan Ground umum 5V seperti yang ditunjukkan dalam skematik.
Skematik LCD:
Gambar di bawah ini menunjukkan skematik LCD. Pin digital 8 – 13 disediakan untuk LCD seperti yang ditunjukkan dalam Skematik. Pin 1 dan Pin 3 adalah daya dan ground sedangkan pin 2 adalah pin kontras pada LCD yang mengontrol kontras dan terhubung dengan potensiometer. Hal yang harus diperhatikan saat menghubungkan LCD adalah pin digital dari Arduino dan pin data dari LCD harus dihubungkan dalam urutan yang benar jika tidak LCD akan menampilkan sampah pada layar.
Skematik Solenoid
Diagram di bawah dalam gambar di bawah menunjukkan diagram rangkaian rangkaian solenoid. Pin digital 4 – 7 disediakan untuk Solenoid. Karena rangkaian terdiri dari rel, transistor, resistor, dan LED alih-alih solenoid (CadStar tidak memiliki simbol Solenoid). Dalam skematik rel menggunakan 5V. Sedangkan 5V juga masuk ke saluran NO rel juga karena dalam skematik LED mengganti solenoid yang bekerja pada (5V) diikuti oleh resistor 220-ohm.
- Proyek Terkait: Sistem Otomasi Rumah Berbasis Pengenalan Suara
Jadi, saat tegangan diterapkan ke basis transistor. Transistor beralih ke ground memungkinkan kail rel untuk terionisasi dan beralih sendiri ke saluran Tertutup Biasa, karena itu LED yang terhubung ke rel tertentu menyala dan saat tegangan yang diterapkan pada basis transistor turun, transistor beralih kembali ke normal dan kail rel menjadi de-magnetized dan rel beralih ke saluran NO lagi, karena itu LED mati lagi.
Setelah menyelesaikan semua Skematik rangkaian, langkah selanjutnya adalah membangunnya pada Veroboard. Penting untuk merancang rangkaian pada lembar perencanaan tata letak stripboard terlebih dahulu karena ada prinsip-prinsip tertentu untuk merancang rangkaian pada Veroboard yaitu sebagai berikut:
- Tandai garis daya Vs dan GND terlebih dahulu di kanan atas lembar perencanaan tata letak stripboard.
- Ingat untuk memotong track antara pin IC. Tandai potongan pada diagram dengan X.
- Cobalah untuk membuat resistor dan kapasitor axial berbaring datar pada stripboard. Resistor biasanya membutuhkan jarak 4 lubang, kapasitor jarak 8 lubang.
- Jika mungkin nomor pin IC. Sisi bawah Veroboard terdiri dari track tembaga di mana tegangan mengalir bekerja secara horizontal. Berbagai desain Veroboard dari skematik di atas ditunjukkan di bawah ini:
Proyek Terkait: Pengontrol Tingkat Air Otomatis Sepenuhnya menggunakan SRF04
Desain Perangkat Lunak
Setelah perangkat keras selesai, saatnya untuk menguji perangkat keras dengan perangkat lunak. Dalam bagian ini, implementasi desain perangkat lunak akan dijelaskan secara detail untuk setiap otomatisasi/teknologi yang digunakan dalam sistem. Ini termasuk kode Arduino yang ditulis dan diunggah ke Arduino.
Pertama yang dilakukan adalah untuk mendapatkan rangkaian solenoid bekerja dan bagaimana solenoid akan bertindak dari sudut pandang mikrokontroler. Untuk ini, sebuah diagram alur kecil telah dibuat yang dapat dilihat di bagian alur perangkat lunak dalam gambar di atas.
Arduino IDE digunakan untuk mengunggah perangkat lunak ke Arduino. Untuk rangkaian solenoid dasar, program sederhana ditulis yang基本nya membuat LED berkedip setiap 1 detik. pin digital 4, 5, 6 dan 7 didefinisikan awalnya yang menguji program dan rangkaian. Jadi, saat program berjalan itu membuat semua inisialisasi dasar, mendefinisikan semua pin output dalam void setup () dan kemudian melompat ke void loop () tempat ia terus berjalan dan membuat LED berkedip setiap 1 detik.
Setelah itu, program kecil ditulis dan diunggah ke Arduino yang mendapatkan pembacaan dari berbagai sensor dan mencetaknya di LCD. Untuk ini, diagram alur kecil telah dibuat yang juga dapat dilihat di bagian alur perangkat lunak dalam gambar yang diberikan. Saat program pergi ke void loop () ia mendapatkan pembacaan dari sensor dan melakukan semua perhitungan dasar dan mencetaknya di LCD.
Proyek Dasar Elektronik Terkait: Sistem Kontrol Lampu Jalan Otomatis menggunakan LDR & Transistor BC 547
Hal selanjutnya adalah untuk mengunggah perangkat lunak untuk modul GSM ke Arduino, melalui yang GSM dapat berkomunikasi dengan mikrokontroler. Uji modem dilakukan awalnya yang melakukan semua inisialisasi dasar dan perpustakaan untuk GSM dan mendapatkan nomor IMEI dan melihat apakah modem berfungsi dengan baik saat mulai berkomunikasi dengan Arduino. Langkah selanjutnya adalah uji koneksi jaringan yang dasarnya menginisialisasi GSM dan menampilkan semua jaringan lain yang dapat didukung oleh modul GSM.
Setelah modul GSM diuji dan berfungsi dengan baik saatnya untuk menggunakan modul GSM untuk berkomunikasi dengan penerima, yang berarti mengirim SMS ke penerima dan menerima SMS dari mereka. Untuk melakukannya, program kabel Arduino sederhana lainnya ditulis dan diunggah ke Arduino. Program menginisialisasi GSM dan mengirim SMS ke penerima sebaliknya program Arduino lainnya ditulis di mana GSM menerima SMS dari pengguna akhir.
Akhirnya, setelah semua desain perangkat lunak selesai saatnya untuk menggabungkan semua desain perangkat lunak bersama dan membangun perangkat lunak yang berfungsi akhir untuk sistem. Pendekatan algoritma yang berbeda telah diterapkan yang dapat dilihat di bagian alur perangkat lunak untuk membuat perangkat lunak akhir berfungsi dan melakukan apa yang seharusnya dilakukan. Gambar di atas menunjukkan kerja perangkat lunak akhir tempat ia mengambil pembacaan, mengirim SMS, menerima SMS dan mulai melakukan apa yang sebelumnya dilakukan.
Catatan: Semua kode perangkat lunak dapat dilihat di lampiran di bawah.
CATATAH: semua kode perangkat lunak dapat dilihat di lampiran. Keluaran dari uji modem dan uji koneksi jaringan tidak dimasukkan dalam laporan karena laporan sebenarnya dilakukan setelah pengiriman perangkat keras.
Proyek Terkait: Cara membuat proyek Elektronik & Listrik Dasar di LabVIEW?
Konstruksi dan Pengujian Perangkat Lunak Proyek
Setelah semua desain perangkat keras dan perangkat lunak selesai dengan sukses saatnya untuk konstruksi dan pengujian proyek. Dalam bagian laporan ini, detail akan diberikan tentang bagaimana desain perangkat keras yang berbeda diimplementasikan dan diuji. Bagian ini juga membicarakannya apakah ada masalah tersembunyi dalam kode perangkat lunak yang penting untuk dipecahkan dan dihindari dan untuk membangun proyek dengan sukses. proses langkah demi langkah dapat dilihat dalam laporan proyek lengkap dalam file pdf yang diberikan di bawah seperti prosedur konstruksi dan pengujian.
Pengujian Perangkat Lunak
Tahap pengujian perangkat lunak juga merupakan aspek penting dalam pengembangan proyek. Pengujian perangkat lunak adalah prosedur menjalankan program atau aplikasi dengan tujuan untuk menemukan bug perangkat lunak. Ini juga dapat dinyatakan sebagai proses memvalidasi dan memverifikasi bahwa program perangkat lunak atau aplikasi memenuhi persyaratan teknisnya, bekerja sebagaimana diterima dan dapat dieksekusi dengan tanda tangan yang serupa. Untuk melakukan pengujian perangkat lunak pendekatan yang berbeda telah diadopsi. Dokumen spesifikasi persyaratan perangkat lunak (SRS) ditulis yang sepenuhnya mengatasi perilaku yang diharapkan dari sistem perangkat lunak.
Proyek Terkait: Rangkaian Saklar Tepukan Proyek Elektronik menggunakan Timer 555
| Requirement ID | SRS- Sensor -010 |
| Judul | Sensor |
| Deskripsi | Sensor dalam sistem mengambil pembacaan dan mengirimkannya kembali ke mikrokontroler. |
| Versi | V 1.0 |
| Requirement ID | SRS- Data -020 |
| Judul | Tampilan Data |
| Deskripsi | Saat pengguna mencoba mendapatkan pembacaan dari sistem. Tampilan harus menampilkan data ke pengguna contoh: nilai suhu dan kelembaban diikuti oleh pembacaan kelembaban. |
| Versi | V1.0 |
| Requirement ID | SRS- Mikrokontroler -030 |
| Judul | Mikrokontroler |
| Deskripsi | Mikrokontroler dalam sistem bertindak sebagai otak sistem yang mengelola semua dalam sistem |
| Versi | V1.0 |
| Requirement ID | SRS- Kunci -040 |
| Judul | Kunci |
| Deskripsi | Kunci dalam sistem memperluas pin digital untuk mikrokontroler |
| Versi | V1.0 |
| Requirement ID | SRS- GSM-050 |
| Judul | GSM |
| Deskripsi | Sistem akan bereaksi dengan mengirim SMS peringatan ke penerima setiap kali mikrokontroler memberitahunya untuk melakukannya. |
| Versi | V1.0 |
Setelah menulis dokumen SRS desain perangkat lunak pindah ke tahap pengujian statis yang termasuk peninjauan dokumen. Inilah tempat verifikasi persyaratan terjadi. Ada empat jenis metode verifikasi yang berbeda yang didefinisikan di bawah ini:
- Inspeksi (I): verifikasi kontrol atau visual
- Analisis (A): verifikasi berdasarkan bukti analitis
- Demonstrasi (D): verifikasi karakteristik operasional, tanpa pengukuran kuantitatif.
- Pengujian (T): verifikasi karakteristik kuantitatif dengan pengukuran kuantitatif. Untuk setiap persyaratan dari dokumen SRS, metode verifikasi didefinisikan dengan singkatan I, A, D dan T.
Verifikasi:
| Requirement ID | Judul Persyaratan | Metode |
| REQ-010 | Verifikasi bahwa sensor sistem mendapatkan pembacaan | I |
| REQ-020 | Verifikasi bahwa Data ditampilkan pada layar. | D |
| REQ-030 | Terverifikasi bahwa mikrokontroler sistem mengelola atau bekerja dengan baik karena memberikan hasil 100% untuk setiap permintaan. | D |
| REQ-040 | Verifikasi bahwa rangkaian kunci melakukan apa yang seharusnya dilakukan. Itu mengambil 3 input dan mengeluarkan 8 pin | A |
| REQ-050 | Verifikasi bahwa SMS telah dikirim dan diterima oleh GSM | D |
Hasil
Karena semua pengujian dilakukan dengan hasil yang memuaskan. Karena tidak ada hasil khusus yang harus didokumentasikan. Karena sistem bekerja dengan sensor kelembaban dan DHT11 (suhu dan kelembaban) yang mengambil pembacaan berdasarkan suhu dan kelembaban ruangan saat ini. Pembacaan dari sensor kelembaban dalam rangkaian juga tergantung pada tingkat kelembaban saat ini untuk tanaman. Selain itu, hasil keseluruhan yang keluar dari rangkaian dalam hal fungsionalitas baik untuk motivasi.
Posting Terkait: Pemrograman PWM Arduino dan fungsi-fungsinya di Arduino
Kode perangkat lunak akhir dan lengkap untuk Sistem Penyiraman Tanaman & Irigasi Otomatis
Catatan: Kode lainnya yang terkait dengan proyek dapat ditemukan dalam file pdf seperti Contoh Kode untuk menguji Katup Solenoid, Kode untuk menguji Sensor Sistem, Kode Uji Modem GSM, Kode Koneksi Jaringan GSM, Kode Mengirim Peringatan SMS GSM, Kode Menerima SMS GSM,
Kode Proyek Penyiraman Tanaman Otomatis Akhir
#include <dht.h> #define dht_dpin A0 dht DHT; //———————– #include <LiquidCrystal.h> LiquidCrystal lcd (8, 9, 10, 11, 12, 13); //———————————- int plantPotMoisture[3] = {A1, A2, A3}; //——————— #include <GSM.h> #define PINNUMBER “” GSM gsmAccess; // include a ‘true’ parameter for debug enabled GSM_SMS sms; char remoteNumber[] = “0899506304”; String moistureMessage = “Moisture is Low on sensor: “; String SMS_Alert = “Sending SMS!”; String humidityMsg = “Humidity is High. Open All Solenoids”; String tempMsg = “Temperature is too HIGH!..Open ALl Solenoids “; String messageBuffer = “”; char senderNumber[20]; String stringOne = “Opens1”; String stringTwo = “Opens2”; String stringThree = “Opens3”; String stringFour = “OpenAll”; //————— #define solenoidData 5 #define solenoidClockster 4 #define solenoidLatch 6 //————— const int master = 0; const int slave1 = 1; const int slave2 = 2; const int slave3 = 3; boolean takeReadings = true; int serialSolenoidOutput = 0; void setup() { pinMode(solenoidData, OUTPUT); pinMode(solenoidClockster, OUTPUT); pinMode(solenoidLatch, OUTPUT); digitalWrite(solenoidLatch, HIGH); digitalWrite(solenoidLatch, LOW); shiftOut(solenoidData, solenoidClockster, MSBFIRST, 0); digitalWrite(solenoidLatch, HIGH); //————————- Serial.begin(9600); lcd.begin (16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.print(“Wait Until”); lcd.setCursor(0, 1); lcd.print(“GSM Initialized!”); boolean notConnected = true; while (notConnected) { if (gsmAccess.begin(PINNUMBER) == GSM_READY) notConnected = false; else { Serial.println(“Not connected”); delay(1000); } } } void loop() { if (takeReadings) { moistureSensor(); TempAndHumidity (); if (DHT.humidity > 50 || DHT.temperature > 25 && takeReadings ) { takeReadings = false; if (DHT.humidity > 50) { sendSMS(humidityMsg); } else if (DHT.temperature > 25) { sendSMS(tempMsg); } while (!takeReadings) recieveSMS(); } if (plantPotMoisture[0] > 30 || plantPotMoisture[1] > 30 || plantPotMoisture[2] > 30 && takeReadings) { takeReadings = false; if (plantPotMoisture[0] > 30) { sendSMS(moistureMessage + “1”); } else if (plantPotMoisture[1] > 30) { sendSMS(moistureMessage + “2”); } else { sendSMS(moistureMessage + “3”); } while (!takeReadings) recieveSMS(); } } } void moistureSensor() { for (int i = 0 ; i < 3; i++) { lcd.clear(); plantPotMoisture[i] = analogRead(i); plantPotMoisture[i] = map(plantPotMoisture[i], 550, 0, 0, 100); Serial.print(“Mositure” + i ); lcd.print(“Mositure” + i); Serial.print(plantPotMoisture[i]); lcd.print(plantPotMoisture[i]); Serial.println(“%”); lcd.print(“%”); delay(1000); } } void TempAndHumidity () { DHT.read11(dht_dpin); lcd.setCursor(0, 0); lcd.print(“Humidity=”); Serial.print(“Current humidity = “); Serial.print(DHT.humidity); lcd.print(DHT.humidity); lcd.print(“%”); Serial.print(“%”); Serial.print(“temperature = “); Serial.print(DHT.temperature); Serial.println(“C”); lcd.setCursor(0, 1); lcd.print(“temp=”); lcd.print(DHT.temperature); lcd.print(“C “); delay(1000); lcd.clear(); } void sendSMS(String messageToSend) { Serial.print(“Sending a message to mobile number: “); Serial.println(remoteNumber); Serial.println(“SENDING”); lcd.print(SMS_Alert); Serial.println(); Serial.println(“Message:”); Serial.println(messageToSend); sms.beginSMS(remoteNumber); sms.print(messageToSend); sms.endSMS(); Serial.println(“\nCOMPLETE!\n”); lcd.clear(); lcd.print(“Completed!!!”); } void recieveSMS() { char c; if (sms.available()) { lcd.clear(); lcd.print(“Message received from:”); delay(800); lcd.clear(); sms.remoteNumber(senderNumber, 20); lcd.print(senderNumber); while (c = sms.read()) { Serial.println(c); messageBuffer += c; } Serial.println(messageBuffer); if (messageBuffer == stringOne) { toggleSolenoid1(); takeReadings = true; } else if (messageBuffer == stringTwo) { toggleSolenoid2(); takeReadings = true; } else if (messageBuffer == stringThree) { toggleSolenoid3(); takeReadings = true; } else if (messageBuffer == stringFour) { toggleAll(); takeReadings = true; } else { takeReadings = true; } messageBuffer = “”; Serial.println(“\nEND OF MESSAGE”); // Delete message from modem memory sms.flush(); Serial.println(“MESSAGE DELETED”); } delay(1000); } void toggleSolenoid1() { solenoidWrite(master, HIGH); delay(1000); solenoidWrite(slave1, HIGH); delay(1000); solenoidWrite(slave1, LOW); delay(1000); solenoidWrite(master, LOW); delay(1000); } void toggleSolenoid2() { solenoidWrite(master, HIGH); delay(1000); solenoidWrite(slave2, HIGH); delay(1000); solenoidWrite(slave2, LOW); delay(1000); solenoidWrite(master, LOW); delay(1000); } void toggleSolenoid3() { solenoidWrite(master, HIGH); delay(1000); solenoidWrite(slave3, HIGH); delay(1000); solenoidWrite(slave3, LOW); delay(1000); solenoidWrite(master, LOW); delay(1000); } void toggleAll() { solenoidWrite(master, HIGH); delay(1000); solenoidWrite(slave1, HIGH); delay(1000); solenoidWrite(slave2, HIGH); delay(1000); solenoidWrite(slave3, HIGH); delay(1000); solenoidWrite(slave1, LOW); delay(1000); solenoidWrite(slave2, LOW); delay(1000); solenoidWrite(slave3, LOW); delay(1000); solenoidWrite(master, LOW); delay(1000); } void solenoidWrite(int pin, bool state) { if ( pin >= 0 && pin < 8) { if (state) serialSolenoidOutput |= (1 << pin); else serialSolenoidOutput &= ~(1 << pin); } digitalWrite(solenoidLatch, LOW); shiftOut(solenoidData, solenoidClockster, MSBFIRST, serialSolenoidOutput); digitalWrite(solenoidLatch, HIGH); } Laporan Proyek Lengkap Sistem Penyiraman Tanaman Otomatis (PDF) Unduhan Gratis
- Judul:
- Format:
- Ukuran:
- Halaman:
- Unduh:
Automated Plant Watering System PDF 4.18MB 77 Di Sini
Posting Terkait: Cara Merancang PCB (Langkah demi Langkah & Tampilan Pikto)
Tentang Penulis
-Jurusan Teknik Sekolah Informatika & Teknik Institut Teknologi, Blanchardstown Dublin 15