0% found this document useful (0 votes)
28 views14 pages

Project Report Irrigation

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views14 pages

Project Report Irrigation

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Annasaheb Dange College of Engineering & Technology

Department of Electrical Engineering


Name of Document: Progress Report for Mini Project
Academic Year: 2023-24 Date:01/04/2024

Progress Report for Project

Project Group No.:- 36


Project Title:- -“ IoT Based Smart Agriculture and Automatic Irrigation System”

Sr.
Roll No. URN Group Member Names Sign.
No.

1. 433 21041088 Nandini Vilas Patil


2. 441 1022042038 Onkar Veeresh Thalange
3. 443 1022042040 Pragati Rajendra Kumbhar
4. 462 1022042062 Vinayak Uttam Kumbhar

Code:-

#define BLYNK_TEMPLATE_ID ""

#define BLYNK_TEMPLATE_NAME ""

#define BLYNK_AUTH_TOKEN ""

// Your WiFi credentials.

// Set password to "" for open networks.

char ssid[] = ""; //WiFi Name_Galaxy A50s622E

char pass[] = ""; //WiFi Password_yxxj7122

//Set the maximum wet and maximum dry value measured by the sensor

int wetSoilVal = 930 ; //min value when soil is wet

int drySoilVal = 3000 ; //max value when soil is dry

//Set ideal moisture range percentage(%) in soil

int moistPerLow = 20 ; //min moisture %

int moistPerHigh = 80 ; //max moisture %


Annasaheb Dange College of Engineering & Technology
Department of Electrical Engineering
Name of Document: Progress Report for Mini Project
Academic Year: 2023-24 Date:01/04/2024

#include <Adafruit_SSD1306.h>

#include <WiFi.h>

#include <WiFiClient.h>

#include <BlynkSimpleEsp32.h>

#include <DHT.h>

#include <AceButton.h>

using namespace ace_button;

// Define connections to sensor

#define SensorPin 34 //D34

#define DHTPin 14 //D14

#define RelayPin 25 //D25

#define wifiLed 2 //D2

#define RelayButtonPin 32 //D32

#define ModeSwitchPin 33 //D33

#define BuzzerPin 26 //D26

#define ModeLed 15 //D15

// Uncomment whatever type you're using!

#define DHTTYPE DHT11 // DHT 11

//#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321

//#define DHTTYPE DHT21 // DHT 21, AM2301

//Change the virtual pins according the rooms

#define VPIN_MoistPer V1
Annasaheb Dange College of Engineering & Technology
Department of Electrical Engineering
Name of Document: Progress Report for Mini Project
Academic Year: 2023-24 Date:01/04/2024

#define VPIN_TEMPERATURE V2

#define VPIN_HUMIDITY V3

#define VPIN_MODE_SWITCH V4

#define VPIN_RELAY V5

#define SCREEN_WIDTH 128 // OLED display width, in pixels

#define SCREEN_HEIGHT 32 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)

#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

int sensorVal;

int moisturePercentage;

bool toggleRelay = LOW; //Define to remember the toggle state

bool prevMode = true;

int temperature1 = 0;

int humidity1 = 0;

String currMode = "A";

char auth[] = BLYNK_AUTH_TOKEN;

ButtonConfig config1;

AceButton button1(&config1);

ButtonConfig config2;

AceButton button2(&config2);

void handleEvent1(AceButton*, uint8_t, uint8_t);


Annasaheb Dange College of Engineering & Technology
Department of Electrical Engineering
Name of Document: Progress Report for Mini Project
Academic Year: 2023-24 Date:01/04/2024

void handleEvent2(AceButton*, uint8_t, uint8_t);

BlynkTimer timer;

DHT dht(DHTPin, DHTTYPE);

void checkBlynkStatus() { // called every 3 seconds by SimpleTimer

bool isconnected = Blynk.connected();

if (isconnected == false) {

Serial.print("Blynk Not Connected ");

digitalWrite(wifiLed, LOW);

if (isconnected == true) {

digitalWrite(wifiLed, HIGH);

//Serial.println("Blynk Connected");

BLYNK_CONNECTED() {

Blynk.syncVirtual(VPIN_MoistPer);

Blynk.syncVirtual(VPIN_RELAY);

Blynk.syncVirtual(VPIN_TEMPERATURE);

Blynk.syncVirtual(VPIN_HUMIDITY);

//Blynk.syncVirtual(VPIN_MODE_SWITCH);

Blynk.virtualWrite(VPIN_MODE_SWITCH, prevMode);

}
Annasaheb Dange College of Engineering & Technology
Department of Electrical Engineering
Name of Document: Progress Report for Mini Project
Academic Year: 2023-24 Date:01/04/2024

BLYNK_WRITE(VPIN_RELAY) {

if(!prevMode){

toggleRelay = param.asInt();

digitalWrite(RelayPin, toggleRelay);

else{

Blynk.virtualWrite(VPIN_RELAY, toggleRelay);

BLYNK_WRITE(VPIN_MODE_SWITCH) {

if(prevMode != param.asInt()){

prevMode = param.asInt();

currMode = prevMode ? "A" : "M";

digitalWrite(ModeLed, prevMode);

controlBuzzer(500);

if(!prevMode && toggleRelay == HIGH){

digitalWrite(RelayPin, LOW);

toggleRelay = LOW;

Blynk.virtualWrite(VPIN_RELAY, toggleRelay);

}
Annasaheb Dange College of Engineering & Technology
Department of Electrical Engineering
Name of Document: Progress Report for Mini Project
Academic Year: 2023-24 Date:01/04/2024

void controlBuzzer(int duration){

digitalWrite(BuzzerPin, HIGH);

delay(duration);

digitalWrite(BuzzerPin, LOW);

void displayData(String line1 , String line2){

display.clearDisplay();

display.setTextSize(2);

display.setCursor(30,2);

display.print(line1);

display.setTextSize(1);

display.setCursor(1,25);

display.print(line2);

display.display();

void getMoisture(){

sensorVal = analogRead(SensorPin);

if (sensorVal > (wetSoilVal - 100) && sensorVal < (drySoilVal + 100) ){

moisturePercentage = map(sensorVal ,drySoilVal, wetSoilVal, 0, 100);

// Print result to serial monitor

Serial.print("Moisture Percentage: ");


Annasaheb Dange College of Engineering & Technology
Department of Electrical Engineering
Name of Document: Progress Report for Mini Project
Academic Year: 2023-24 Date:01/04/2024

Serial.print(moisturePercentage);

Serial.println(" %");

else{

Serial.println(sensorVal);

delay(100);

void getWeather(){

float h = dht.readHumidity();

float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit

if (isnan(h) || isnan(t)) {

Serial.println("Failed to read from DHT sensor!");

return;

else {

humidity1 = int(h);

temperature1 = int(t);

// Serial.println(temperature1);

// Serial.println(humidity1);

}
Annasaheb Dange College of Engineering & Technology
Department of Electrical Engineering
Name of Document: Progress Report for Mini Project
Academic Year: 2023-24 Date:01/04/2024

void sendSensor()

getMoisture(); // get Moisture reading

getWeather(); // get reading from DHT11

displayData(String(moisturePercentage) + " %", "T:" + String(temperature1) + " C, H:" +


String(humidity1) + " % " + currMode);

Blynk.virtualWrite(VPIN_MoistPer, moisturePercentage);

Blynk.virtualWrite(VPIN_TEMPERATURE, temperature1);

Blynk.virtualWrite(VPIN_HUMIDITY, humidity1);

void controlMoist(){

if(prevMode){

if (moisturePercentage < (moistPerLow)){

if (toggleRelay == LOW){

controlBuzzer(500);

digitalWrite(RelayPin, HIGH);

toggleRelay = HIGH;

Blynk.virtualWrite(VPIN_RELAY, toggleRelay);

delay(1000);

if (moisturePercentage > (moistPerHigh)){

if (toggleRelay == HIGH){
Annasaheb Dange College of Engineering & Technology
Department of Electrical Engineering
Name of Document: Progress Report for Mini Project
Academic Year: 2023-24 Date:01/04/2024

controlBuzzer(500);

digitalWrite(RelayPin, LOW);

toggleRelay = LOW;

Blynk.virtualWrite(VPIN_RELAY, toggleRelay);

delay(1000);

else{

button1.check();

void setup() {

// Set up serial monitor

Serial.begin(115200);

// Set pinmodes for GPIOs

pinMode(RelayPin, OUTPUT);

pinMode(wifiLed, OUTPUT);

pinMode(ModeLed, OUTPUT);

pinMode(BuzzerPin, OUTPUT);

pinMode(RelayButtonPin, INPUT_PULLUP);

pinMode(ModeSwitchPin, INPUT_PULLUP);
Annasaheb Dange College of Engineering & Technology
Department of Electrical Engineering
Name of Document: Progress Report for Mini Project
Academic Year: 2023-24 Date:01/04/2024

digitalWrite(wifiLed, LOW);

digitalWrite(ModeLed, LOW);

digitalWrite(BuzzerPin, LOW);

dht.begin(); // Enabling DHT sensor

config1.setEventHandler(button1Handler);

config2.setEventHandler(button2Handler);

button1.init(RelayButtonPin);

button2.init(ModeSwitchPin);

if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {

Serial.println(F("SSD1306 allocation failed"));

for(;;);

delay(1000);

display.setTextSize(1);

display.setTextColor(WHITE);

display.clearDisplay();

WiFi.begin(ssid, pass);

timer.setInterval(2000L, checkBlynkStatus); // check if Blynk server is connected every 2 seconds

timer.setInterval(3000L, sendSensor); // display and send sensor reading every 3 seconds

Blynk.config(auth);

//delay(1000);

controlBuzzer(1000);
Annasaheb Dange College of Engineering & Technology
Department of Electrical Engineering
Name of Document: Progress Report for Mini Project
Academic Year: 2023-24 Date:01/04/2024

digitalWrite(ModeLed, prevMode);

void loop() {

Blynk.run();

timer.run(); // Initiates SimpleTimer

button2.check();

controlMoist();

void button1Handler(AceButton* button, uint8_t eventType, uint8_t buttonState) {

Serial.println("EVENT1");

switch (eventType) {

case AceButton::kEventReleased:

//Serial.println("kEventReleased");

digitalWrite(RelayPin, !digitalRead(RelayPin));

toggleRelay = digitalRead(RelayPin);

Blynk.virtualWrite(VPIN_RELAY, toggleRelay);

break;

void button2Handler(AceButton* button, uint8_t eventType, uint8_t buttonState) {

Serial.println("EVENT2");

switch (eventType) {
Annasaheb Dange College of Engineering & Technology
Department of Electrical Engineering
Name of Document: Progress Report for Mini Project
Academic Year: 2023-24 Date:01/04/2024

case AceButton::kEventReleased:

//Serial.println("kEventReleased");

if(prevMode && toggleRelay == HIGH){

digitalWrite(RelayPin, LOW);

toggleRelay = LOW;

Blynk.virtualWrite(VPIN_RELAY, toggleRelay);

prevMode = !prevMode;

currMode = prevMode ? "A" : "M";

digitalWrite(ModeLed, prevMode);

Blynk.virtualWrite(VPIN_MODE_SWITCH, prevMode);

controlBuzzer(500);

break;

}
Annasaheb Dange College of Engineering & Technology
Department of Electrical Engineering
Name of Document: Progress Report for Mini Project
Academic Year: 2023-24 Date:01/04/2024

Flow Chart:-
Annasaheb Dange College of Engineering & Technology
Department of Electrical Engineering
Name of Document: Progress Report for Mini Project
Academic Year: 2023-24 Date:01/04/2024

Work done in last week:-


Verified from
Verified from
Project Evaluation
Guide
Task panel Member
(√ / × guide and panel member mark it for
respective task)
Have the project members purchased all the
components?
Does every project member understand how the
components work?

Guide Name & Signature with Date Project Coordinator

You might also like