Awtomatikong Irrigation Circuit gamit ang Arduino

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa post na ito magtatayo kami ng isang awtomatikong sistema ng patubig ng tubig para sa maliit na hardin gamit ang arduino at ground moisture sensor.

Panimula

Ang ipinanukalang sistema ay maaari subaybayan ang antas ng kahalumigmigan ng lupa at kapag ang kahalumigmigan ng lupa ay napupunta sa ibaba ng paunang natukoy na halaga, ang 12V DC pump ay mai-trigger para sa paunang natukoy na tagal ng panahon. Ang katayuan ng antas ng kahalumigmigan sa lupa at iba pang mga pagpapaandar ng system ay maaaring masubaybayan sa pamamagitan ng 16 x 2 LCD display sa real time.



Tinatayang mayroong 3 trilyong puno sa buong mundo na higit sa bilang ng pagsisimula sa aming tahanan na Milky Way galaxy na tinatayang magiging 100 bilyon. Ngunit, tayong mga tao ay pinutol ang hindi mabilang na bilang ng mga puno upang matupad ang aming pangunahing mga pangangailangan sa mga mamahaling pangangailangan.

Ang Ina Kalikasan ay dinisenyo gamit ang isang sistema ng puna, kapag ang isang species ay nagpapakilala ng malalaking kaguluhan, tatanggalin ng kalikasan ang mga species sa kawalan ng pag-iral.



Ang mga tao ay ginugulo ang kalikasan nang hindi namamalayan sa daang siglo ngunit, kahit na matapos ang mahusay na pag-unlad sa agham at teknolohiya ang rate ng kaguluhan ay hindi nabawasan.

Ang pagbabago ng klima ay isa sa mga halimbawa, kapag nakakuha ng sapat na drastic ang aming species ay hindi magtatagal.
Ang proyektong ito ay gumawa ng isang hakbang na hakbang sa sanggol upang mapanatili ang kalikasan, maaari nitong patubigan ang iyong kaibig-ibig maliit na hardin nang walang pakikipag-ugnay ng tao. Ngayon ay makarating tayo sa mga teknikal na detalye ng proyekto.

Soil Moisture Sensor:

Ang puso ng proyekto ay sensor ng kahalumigmigan ng lupa na maaaring makaramdam ng dami ng nilalaman ng kahalumigmigan sa lupa. Nagbibigay ang sensor ng analog na halaga at bibigyang-kahulugan ng isang microcontroller ang mga halagang iyon at ipapakita ang nilalaman ng kahalumigmigan.

Mayroong dalawang mga electrode, na ipapasok sa lupa. Ang mga electrodes ay konektado sa isang circuit board na binubuo ng comparator IC, LED, trimmer resistor input at output pin.

Paglalarawan ng sensor ng kahalumigmigan sa lupa:

module ng sensor ng moisture ng lupa

Mayroon itong 4 + 2 na mga pin, 2 mga pin para sa koneksyon sa electrode at natitirang bahagi ng 4 na mga pin ay Vcc, GND, digital output at analog output. Gagamitin lamang namin ang analog output pin para sa pakiramdam ng kahalumigmigan sa lupa.
Dahil hindi kami gumagamit ng digital output pin, hindi kami gagamit ng on-board na risistor risistor upang i-calibrate ang sensor.

Ngayon, natapos na ang sensor ng kahalumigmigan sa lupa.

Diagram ng iskematika:

Ang circuit ay pinananatiling medyo simple at magiliw ng baguhan. Ang eskematiko ay nahahati sa dalawang bahagi ng parehong proyekto upang mabawasan ang pagkalito habang dinoble ang proyekto.

LCD diagram ng kable para sa Awtomatikong Irrigation System

Ang iskemang nasa itaas ay ang LCD sa arduino mga kable. Ang isang 10K potentiometer ay ibinigay upang ayusin ang kaibahan ng LCD display.

Batay sa Microcontroller na Awtomatikong Irrigation System

Narito ang natitirang eskematiko na binubuo ng sensor ng kahalumigmigan ng lupa, 12V DC pump, isang calibrate push button at 12V (1 - 2 amp) power supply. Mangyaring gumamit ng suplay ng kuryente na hindi bababa sa 500mA ng kasalukuyang rating ng 12V DC pump.

Ang MOSFET IRF540N (o anumang katumbas na N-channel) ay ginagamit sa halip na BJTs upang mapabuti ang pangkalahatang kahusayan ng kuryente ng system.

Dadalhan ka ng bomba ng maliit na hardin, tiyaking palagi kang may sapat na dami ng tubig na magagamit.

Code ng Programa:

//-------------Program Developed By R.Girish-------------//
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int Time = 5 // Set time in minutes
int threshold = 30 // set threshold in percentage 80, 70, 60, 50, 40, 30, 20 only.
int i
int x
int y
int z
int start
int calibrateValue
const int calibrateBTN = A1
const int input = A0
const int motor = 7
boolean calibration = false
boolean rescue = false
void setup()
{
Serial.begin(9600)
pinMode(input, INPUT)
pinMode(calibrateBTN, INPUT)
pinMode(motor, OUTPUT)
digitalWrite(calibrateBTN, HIGH)
lcd.begin(16,2)
lcd.setCursor(0,0)
lcd.print('Pour water and')
lcd.setCursor(0,1)
lcd.print('press calibrate')
while(!calibration)
{
if(digitalRead(calibrateBTN)==LOW)
{
calibrateValue = analogRead(input)
x = 1023 - calibrateValue
x = x/10
Serial.print('Difference = ')
Serial.println(x)
Serial.print('Calibration Value = ')
Serial.println(calibrateValue)
delay(500)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Calibration done')
lcd.setCursor(0,1)
lcd.print('successfully !!!')
calibration = true
delay(2000)
}
}
}
void loop()
{
if(analogRead(input)<= calibrateValue)
{
delay(500)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 100%')
}
if(analogRead(input) > calibrateValue && analogRead(input) <= calibrateValue+x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 90 to 99%')
}
if(analogRead(input) > calibrateValue+x && analogRead(input) <= calibrateValue+2*x )
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 80 to 90%')
start = 80
}
if(analogRead(input) > calibrateValue+2*x && analogRead(input) <= calibrateValue+3*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 70 to 80%')
start = 70
}
if(analogRead(input) > calibrateValue+3*x && analogRead(input) <= calibrateValue+4*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 60 to 70%')
start = 60
}
if(analogRead(input) > calibrateValue+4*x && analogRead(input) <= calibrateValue+5*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 50 to 60%')
start = 50
}
if(analogRead(input) > calibrateValue+5*x && analogRead(input) <= calibrateValue+6*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 40 to 50%')
start = 40
}
if(analogRead(input) > calibrateValue+6*x && analogRead(input) <= calibrateValue+7*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 30 to 40%')
start = 30
}
if(analogRead(input) > calibrateValue+7*x && analogRead(input) <= calibrateValue+8*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 20 to 30%')
start = 20
}
if(analogRead(input) > calibrateValue+8*x && analogRead(input) <= calibrateValue+9*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 10 to 20%')
start = 10
}
if(analogRead(input) > calibrateValue+9*x && analogRead(input) <= calibrateValue+10*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: <10%')
rescue = true
}
if(start == threshold || rescue)
{
y = Time
digitalWrite(motor, HIGH)
Time = Time*60
z = Time
for(i=0 i

Paano i-calibrate ang awtomatikong sistem ng patubig na ito:

• Sa kumpletong hardware, ipasok ang elektrod sa lupa, sa kung saan sa daanan ng daloy ng tubig.
• Ngayon baguhin ang dalawang mga halaga sa programa 1) Ang dami ng oras na aabutin sa tubig ng lahat ng mga halaman (sa minuto). 2) Antas ng threshold sa ibaba kung saan ang arduino ay nagpapalitaw ng bomba. Maaari mong itakda ang mga halagang porsyento na 80, 70, 60, 50, 40, 30, 20 lamang.

int Oras = 5 // Itakda ang oras sa minuto
int threshold = 30 // set threshold sa porsyento na 80, 70, 60, 50, 40, 30, 20 lamang.

Baguhin ang mga halaga sa programa.

• I-upload ang code sa arduino at i-power ang circuit. Ipapakita nito ang 'pagbuhos ng tubig at pindutin ang calibrate'. Ngayon ay kailangan mong manu-manong tubig ang iyong hardin sa sapat na antas.
• Matapos madidilig ang hardin, pindutin ang pindutan ng pag-calibrate. Ito ay matukoy ang pagpapadaloy ng kuryente sa ganap na kahalumigmigan lupa at iglap shot ang halaga ng sanggunian.
• Ngayon ang sistema ay handa na upang maghatid ng iyong maliit na hardin. Mangyaring subukang magdagdag ng isang power backup para sa proyektong ito. Kapag nabigo ang kuryente, ang halaga ng sanggunian na na-calibrate ay matatanggal sa memorya at kakailanganin mong i-calibrate muli ang system.

Prototype ng may-akda:

Batay sa Arduino na Larawan ng Awtomatikong Irrigation Prototype

Indikasyon ng antas ng kahalumigmigan sa lupa:

Kapag ang bomba ay naka-ON, ipapakita nito ang natitirang oras upang i-off (sa mga segundo).




Nakaraan: 3 Mga Smart Laser Alarm Protection Circuit Susunod: Ipinaliwanag ang OCL Amplifier