
components
Hardware Components
Arduino Mega 2560
X 1
Arduino Ethernet Shield 2
X 1
Soil Moisture Sensor
X 1
Ultrasonic Sensor
X 1
DHT11
X 1
Relay
X 1
jumper wires
X 1
Software Apps and online services
Arduino IDEdetails
CODE
CODE HEREC/C++
#define TRIGGER 4
#define ECHO 5
#define LED 12
#define BLYNK_PRINT Serial
#include <Adafruit_Sensor.h>
#include <SPI.h>
#include <Ethernet.h>
#include <DHT.h>
#include <BlynkSimpleEthernet.h>
char auth[] = "TOKEN";
#define W5100_CS 10
#define SDCARD_CS 4
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
WidgetLCD lcd(V8);
int n;
int n1;
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
}
void setup()
{
Serial.begin(9600);
Blynk.begin(auth);
dht.begin();
timer.setInterval(1000L, sendSensor);
pinMode(SDCARD_CS, OUTPUT);
digitalWrite(SDCARD_CS, HIGH);
pinMode(TRIGGER, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(LED,OUTPUT);
pinMode(7,OUTPUT);
pinMode(11,OUTPUT);
pinMode(13,OUTPUT);
pinMode(8,OUTPUT);
lcd.clear();
lcd.print(2, 0," ANNAMALI ");
lcd.print(2, 1," UNVERSITY ");
timer.setInterval(500L, sendUptime);
timer.setInterval(500L, sendUptime1);
Blynk.begin(auth);
}
void sendUptime()
{
Blynk.virtualWrite(V14, n);
}
void sendUptime1()
{
Blynk.virtualWrite(V15, n1);
}
void loop()
{
n=analogRead(A0);
Serial.println(n);
n1=analogRead(A1);
Serial.println(n1);
if(n>700)
{
digitalWrite(7,LOW);
digitalWrite(13,LOW);
}
if(n<700)
{
digitalWrite(7,HIGH );
digitalWrite(13,HIGH );
}
else if(n1>600)
{
digitalWrite(11,LOW);
digitalWrite(13,LOW);
}
if(n1<600)
{
digitalWrite(11,HIGH );
digitalWrite(13,HIGH);
}
long duration, distance;
digitalWrite(TRIGGER, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER, LOW);
duration = pulseIn(ECHO, HIGH);
distance = (duration/2) / 29.1;
if (distance <= 50) {
Blynk.virtualWrite(V0, 255);
}
else {
Blynk.virtualWrite(V0, 0);
}
if (distance <= 40) {
Blynk.virtualWrite(V1, 255);
}
else {
Blynk.virtualWrite(V1, 0);
}
if (distance <= 30) {
Blynk.virtualWrite(V2, 255);
}
else {
Blynk.virtualWrite(V2, 0);
}
if (distance <= 20) {
Blynk.virtualWrite(V3, 255);
}
else {
Blynk.virtualWrite(V3, 0);
}
if (distance <= 15) {
Blynk.virtualWrite(V4, 255);
}
else {
Blynk.virtualWrite(V4, 0);
}
if (distance <=15) {
digitalWrite(LED, HIGH);
lcd.clear();
lcd.print(1, 0,"WATER TANK FULL ");
lcd.print(1, 1," MOTOR TURN OFF ");
delay(3000);
}
if (distance >=44 ) {
digitalWrite(LED, LOW);
lcd.clear();
lcd.print(2, 0,"WATER TANK LOW ");
lcd.print(1, 1,"Motor TURN ON ");
delay(2000);
}
Serial.print(distance);
Serial.println("Centimeter:");
Blynk.virtualWrite(V9, distance);
delay(200);
Blynk.run();
timer.run();
}
CODE
CODE HEREC/C++
#define TRIGGER 4
#define ECHO 5
#define LED 12
#define BLYNK_PRINT Serial
#include <Adafruit_Sensor.h>
#include <SPI.h>
#include <Ethernet.h>
#include <DHT.h>
#include <BlynkSimpleEthernet.h>
char auth[] = "TOKEN";
#define W5100_CS 10
#define SDCARD_CS 4
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
WidgetLCD lcd(V8);
int n;
int n1;
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
}
void setup()
{
Serial.begin(9600);
Blynk.begin(auth);
dht.begin();
timer.setInterval(1000L, sendSensor);
pinMode(SDCARD_CS, OUTPUT);
digitalWrite(SDCARD_CS, HIGH);
pinMode(TRIGGER, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(LED,OUTPUT);
pinMode(7,OUTPUT);
pinMode(11,OUTPUT);
pinMode(13,OUTPUT);
pinMode(8,OUTPUT);
lcd.clear();
lcd.print(2, 0," ANNAMALI ");
lcd.print(2, 1," UNVERSITY ");
timer.setInterval(500L, sendUptime);
timer.setInterval(500L, sendUptime1);
Blynk.begin(auth);
}
void sendUptime()
{
Blynk.virtualWrite(V14, n);
}
void sendUptime1()
{
Blynk.virtualWrite(V15, n1);
}
void loop()
{
n=analogRead(A0);
Serial.println(n);
n1=analogRead(A1);
Serial.println(n1);
if(n>700)
{
digitalWrite(7,LOW);
digitalWrite(13,LOW);
}
if(n<700)
{
digitalWrite(7,HIGH );
digitalWrite(13,HIGH );
}
else if(n1>600)
{
digitalWrite(11,LOW);
digitalWrite(13,LOW);
}
if(n1<600)
{
digitalWrite(11,HIGH );
digitalWrite(13,HIGH);
}
long duration, distance;
digitalWrite(TRIGGER, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER, LOW);
duration = pulseIn(ECHO, HIGH);
distance = (duration/2) / 29.1;
if (distance <= 50) {
Blynk.virtualWrite(V0, 255);
}
else {
Blynk.virtualWrite(V0, 0);
}
if (distance <= 40) {
Blynk.virtualWrite(V1, 255);
}
else {
Blynk.virtualWrite(V1, 0);
}
if (distance <= 30) {
Blynk.virtualWrite(V2, 255);
}
else {
Blynk.virtualWrite(V2, 0);
}
if (distance <= 20) {
Blynk.virtualWrite(V3, 255);
}
else {
Blynk.virtualWrite(V3, 0);
}
if (distance <= 15) {
Blynk.virtualWrite(V4, 255);
}
else {
Blynk.virtualWrite(V4, 0);
}
if (distance <=15) {
digitalWrite(LED, HIGH);
lcd.clear();
lcd.print(1, 0,"WATER TANK FULL ");
lcd.print(1, 1," MOTOR TURN OFF ");
delay(3000);
}
if (distance >=44 ) {
digitalWrite(LED, LOW);
lcd.clear();
lcd.print(2, 0,"WATER TANK LOW ");
lcd.print(1, 1,"Motor TURN ON ");
delay(2000);
}
Serial.print(distance);
Serial.println("Centimeter:");
Blynk.virtualWrite(V9, distance);
delay(200);
Blynk.run();
timer.run();
}
COMMENTS