Monday, November 02, 2015

Soil Moisture Meter Project Using Microcontroller


Soil Moisture Meter Project Using Microcontroller
Microcontroller Based Soil Moisture Meter


Grove - Moisture Sensor :

Basically grove moisture sensor is used to measuring the moisture of the soil. It also can be used as water sensor. We can water  plants according to its humidity by using the sensor .  Look at the sensor pictures and its pin out.
Grove - Moisture Sensor
Grove - Moisture Sensor


Soil Moisture Meter Project Using PIC Microcontroller
Soil Moisture Meter Project Using Microcontroller

Basic Concepts:

  The Moisture sensor will be connected with a pic microcntroller and a LCD display will also be connected with microcontroller . Moisture sensor will provide voltage into microcontroller's RA1 pin(ADC) according to the humidity of soil . It will provide reading from (0-721). After calculating the percentage and soil condition , the microcontroller sends out that data to the LCD Display . That's the basic concept .



ADC(Analog to Digital Converter ) :

We need a basic knowledge about ADC . Let's  take a look at here :
LPG Gas Leakage Detector using (MQ-9)  Gas Sensor and pic18f2550 Microcontroller
Thief Detector using PIC Microcontroller & PIR Motion Sensor
ADCON1 Register
LPG Gas Leakage Detector using (MQ-9) Gas Sensor and pic Microcontroller


Basically ADC is like as voltage divider . According to voltage It produce output 
 bit 5 : VCFG0: Voltage Reference Configuration bit (VREF- source)
1 = VREF- (AN2)
0 = VSS or 0 volt


bit 4 :VCFG0: Voltage Reference Configuration bit (VREF+ source)
1 = VREF+ (AN3)
0 = VDD or 5volt


We will set  VCFG0[bit 5]=0and VCFG0[bit4]=0 . So we will get highest value 5volt[1023] and lowest value 0volt[0].The ADCON1 is a 10 bit register that means  2 to the power 10  is it's highest counting capacity and result is 1024 . So this register can count from 0 to 1023 . When 0 volt , we get reading at RA1 pin  0 .When 5 volt , we get reading at RA1 pin 1023. It means 5volt equivalent to 1023 .

As we know in water the sensor provide 722 data and  absolutely it should be 100% .
If   reading 744 means 100
So     ""        1     ""      (100/744) %
and   reading % of source reading will be (100/744)*source %

MikroC Source Code :

 


 sbit LCD_RS at LATB7_bit;  
 sbit LCD_EN at LATB6_bit;  
 sbit LCD_D4 at LATB5_bit;  
 sbit LCD_D5 at LATB4_bit;  
 sbit LCD_D6 at LATB3_bit;  
 sbit LCD_D7 at LATB2_bit;  
 sbit LCD_RS_Direction at TRISB7_bit;  
 sbit LCD_EN_Direction at TRISB6_bit;  
 sbit LCD_D4_Direction at TRISB5_bit;  
 sbit LCD_D5_Direction at TRISB4_bit;  
 sbit LCD_D6_Direction at TRISB3_bit;  
 sbit LCD_D7_Direction at TRISB2_bit;  
 // End LCD module connections  
 double source=0;   
 int view=0;  
 char txt[6];  
 void main() {  
 ADCON1=0x0D;         // Configure RE1 pin as input  
 CMCON=7;  
 TRISC.F4=0;  
  ADC_Init();            // Initialize ADC  
  Lcd_Init();            // Initialize LCD  
  Lcd_Cmd(_LCD_CLEAR);        // Clear display  
  Lcd_Cmd(_LCD_CURSOR_OFF);     // Cursor off  
     
  while(1){  
  source=Adc_Read(1);  
  source=100*source;  
  source=source/744;  
  inttostr(source,txt);  
  if(source>96){  
  source=100;  
  }  
  if(source>83){  
   Lcd_Cmd(_LCD_CLEAR);  
  Lcd_Out(1,3, "Water!!");  
  Lcd_Out(2,1, "Hum:");  
 Lcd_Out(2,5,txt);  
  Lcd_Chr(2,11,0x25);  
   Lcd_Chr(2,12,' ');  
    Lcd_Chr(2,13,' ');  
     Lcd_Chr(2,14,' ');  
      Lcd_Chr(2,15,' ');  
      Lcd_Chr(2,16,' ');  
    delay_ms(1000);  
  }   
  else if(source>40&&source<=83){  
   Lcd_Cmd(_LCD_CLEAR);  
  Lcd_Out(1,3, "Humid Soil");  
  Lcd_Out(2,1, "Hum:");  
 Lcd_Out(2,5,txt);  
  Lcd_Chr(2,11,0x25);  
   Lcd_Chr(2,12,' ');  
    Lcd_Chr(2,13,' ');  
     Lcd_Chr(2,14,' ');  
      Lcd_Chr(2,15,' ');  
      Lcd_Chr(2,16,' ');  
       PORTC.f4=0; //motor off  
    delay_ms(1000);  
  } else{  
   Lcd_Cmd(_LCD_CLEAR);  
  Lcd_Out(1,3, "Dry Soil");  
  Lcd_Out(2,1, "Hum:");  
 Lcd_Out(2,5,txt);  
  Lcd_Chr(2,11,0x25);  
   Lcd_Chr(2,12,' ');  
    Lcd_Chr(2,13,' ');  
     Lcd_Chr(2,14,' ');  
      Lcd_Chr(2,15,' ');  
      Lcd_Chr(2,16,' ');  
       PORTC.f4=1;  // motor on  
   delay_ms(1000);  
   PORTC.f4=1;  
  }  
 }  
 }  

  Circuit :

Microcontroller Based Soil Moisture Meter circuit
Microcontroller Based Soil Moisture Meter circuit


Result:

Soil Moisture Meter Project Using Microcontroller
Soil Moisture Meter Project Using Microcontroller

Practical Video of This Project



Download MikroC Project and images(Google Drive)

 

Thank You!


Reactions:

26 comments:

  1. i woul like to know the model no of sensor to implemntit into proteus

    ReplyDelete
    Replies
    1. It's a groove soil moisture sensor. As far as I concern It's not available in proteus. It's just a sensor gives you voltage in a range of 0 to 5 volt.

      Delete
  2. please if you Can give me The reference of Soil Humidity sensor

    ReplyDelete
    Replies
    1. You may search online. It's a groove soil moisture sensor.

      Delete
  3. link not working, can you fix this?

    ReplyDelete
    Replies
    1. Link had been updated. Sorry for late replay. I couldn't have replied since it was a problem with my template. Thank you.

      Delete
  4. i use MPlab for coding this but it dont have inttostr fuction? what can i replace it with? or

    ReplyDelete
    Replies
    1. Try to reach guys using MPLab. I guess there might have been an alternative. Thank you.

      Delete
  5. If i wanted to use the PIC16F877A microcontroller as a replacement what changes would you advice especially on the code? thanks in advance

    ReplyDelete
  6. Hey there, You have done a fantastic job. I will certainly digg it and personally suggest to my friends. I’m confident they’ll be benefited from this website.
    C Programming Courses in Chennai

    ReplyDelete
  7. CAN I HAVE THIS PROJECT WITH PIC16F877A

    ReplyDelete
  8. can i have this project in pic16f877a

    ReplyDelete
  9. can i get the schematics for the project soil moisture meter using pic18

    ReplyDelete
    Replies
    1. I have given proteus circuit and some instructions. It might have worked.

      Delete
  10. what sthe differece between pic16f877a and pic
    18f2550

    ReplyDelete
    Replies
    1. This is just two microcontrollers from the same vendor.

      Delete
    2. i did the same experience with pic18f2550..but i dodnt see any think at lcd..whers the probleme?

      Delete
    3. It's supposed to work. It worked fine when I tried in real life.

      Delete

Share and Bookmark this Blog

Developing Industrial Internet of Things

An Introduction to Programming the Internet of Things (IOT) (Online Course)

Industrial IoT Markets and Security (Online Course)

Tags

: (1) 18F2550 (1) 36KHz (3) and (1) arduino (1) Based (1) battery (1) Bipolar (1) Blinking (1) blinks (1) Bluetooth (1) bluetooth device interfacing (1) bluetooth module (1) button (1) circuit (1) clock (1) control (1) crystal oscillator (3) Db9 (1) DC Motor (2) digital (2) Digital Voting Machine (1) digital voting machine using pic (1) display (2) DS1307 (1) electronic (1) embedded c programming tutorial (11) embedded c tutorial (11) experiment kit (4) external interrupt (4) flash (1) flashing (1) Gas Leakage detector (1) HC-06 (1) home (1) how (1) How to (10) i2c tutorial (1) in (1) indicator (1) infrared Connection (3) interface (8) interfacing (3) Interrupt (3) Introduction (1) IR Connection (3) IR Receiver (4) IR Transmitter (4) key pad (1) keyboard (1) keypad (1) lavel (1) Lcd 16x2 (2) lcd 2x16 (2) led (1) lm35 (2) LPG (1) machine (1) make (1) Make bootloader (1) making (1) matrix (1) max232 (1) membrane keyboard (2) meter (2) Micocontroller (1) microchip (4) microchip pic (2) microchips (3) microcontroller (9) microcontroller based (3) microcontroller programming (3) Microcontroller Project (4) Microcontroller Projects (1) microcontroller_project (2) microcontrollers (4) Microprocessor (2) mikroC (5) mikroc code to start and stopstart and stop dc motor (1) mikroc pro for pic (2) Motion detector (1) MQ-9 Gas Sensor (1) musical (1) NEC Protocol (4) pcb (5) PIC (3) pic controller (11) pic microcontroller (11) pic microcontroller tutorial (11) pic programming (1) pic programming in c (12) pic proteus (1) Pic Tutorial (12) pic18 (2) pic18f2550 (11) picmicrocontroller (4) picRFモジュール (1) PIR Motion Sensor (1) printed circuit board (1) proteus (6) pulse width modulation (1) push (1) push button (1) PWM (1) real (1) rf transmitter (3) Rs 232 (1) Rs232 (1) scroll (1) scrolling (1) Serial communication (1) Serial Connection (1) Serial Port (1) serial port rs232 (1) Servo Motembedded c programming tutorial (1) simulation (2) Soil Moisture Meter (1) speed control (1) step by step (7) step bystep (1) Stepper Motor (2) text (2) Thief Detector (1) time (1) timer (4) timer0 (4) tone (1) TSOP38236 Receiver (4) tutorial (2) Unipolar (1) USART Connection (1) USB (1) usb 1.0 (1) USB bootloadere (1) USB HID (1) using (9) voltmeter (1) voting (1) water level indicator (3) with (2) work (1)

Live Traffic Feed


Live Traffic Feed
Visitor Tracking

Leave Your Message Here

Name

Email *

Message *

Like on Facebook