#include <DHTesp.h>
#include <GSM.h>
#include <GSM3CircularBuffer.h>
#include <GSM3IO.h>
#include <GSM3MobileAccessProvider.h>
#include <GSM3MobileCellManagement.h>
#include <GSM3MobileClientProvider.h>
#include <GSM3MobileClientService.h>
#include <GSM3MobileDataNetworkProvider.h>
#include <GSM3MobileMockupProvider.h>
#include <GSM3MobileNetworkProvider.h>
#include <GSM3MobileNetworkRegistry.h>
#include <GSM3MobileServerProvider.h>
#include <GSM3MobileServerService.h>
#include <GSM3MobileSMSProvider.h>
#include <GSM3MobileVoiceProvider.h>
#include <GSM3ShieldV1.h>
#include <GSM3ShieldV1AccessProvider.h>
#include <GSM3ShieldV1BandManagement.h>
#include <GSM3ShieldV1BaseProvider.h>
#include <GSM3ShieldV1CellManagement.h>
#include <GSM3ShieldV1ClientProvider.h>
#include <GSM3ShieldV1DataNetworkProvider.h>
#include <GSM3ShieldV1DirectModemProvider.h>
#include <GSM3ShieldV1ModemCore.h>
#include <GSM3ShieldV1ModemVerification.h>
#include <GSM3ShieldV1MultiClientProvider.h>
#include <GSM3ShieldV1MultiServerProvider.h>
#include <GSM3ShieldV1PinManagement.h>
#include <GSM3ShieldV1ScanNetworks.h>
#include <GSM3ShieldV1ServerProvider.h>
#include <GSM3ShieldV1SMSProvider.h>
#include <GSM3ShieldV1VoiceProvider.h>
#include <GSM3SMSService.h>
#include <GSM3SoftSerial.h>
#include <GSM3VoiceCallService.h>
#include<SoftwareSerial.h>
#include <DHT.h>
#define DHT11_PIN 7
SoftwareSerial mySerial(9,10);
int M_Sensor = A0;
int Motor1 = 13;
void setup()
{
mySerial.begin(9600); // Setting the baud rate of GSM Module
Serial.begin(9600);
pinMode(13,OUTPUT); // Setting the baud rate of Serial Monitor (Arduino)
delay(1000);
}
void loop()
{
int Moisture = analogRead(M_Sensor);
int chk = DHT.read11(DHT11_PIN);
if (Moisture> 700) // for dry soil
{
mySerial.println("MOTOR:ON మోటారు ఆన్లో ఉంది " );
digitalWrite(13, HIGH);
mySerial.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
delay(1000); // Delay of 1000 milli seconds or 1 second
mySerial.println("AT+CMGS="+919494112952"\r"); // Replace x with mobile number
delay(1000);
mySerial.println("Temperature = ");// The SMS text you want to send
mySerial.println(DHT.temperature);
mySerial.print("Humidity = ");
mySerial.println(DHT.humidity);
delay(100);
mySerial.println((char)26);// ASCII code of CTRL+Z
delay(1000);
}
else
{
digitalWrite(13, LOW);
mySerial.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
delay(1000); // Delay of 1000 milli seconds or 1 second
mySerial.println("AT+CMGS="+919494112952"\r"); // Replace x with mobile number
delay(1000);
mySerial.println("MOTOR:OFF మోటారు ఆగిపోయింది" );
delay(500);
}
if (Moisture>= 100 && Moisture<=700) //for Moist Soil
{
digitalWrite(13, LOW);
mySerial.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
delay(1000); // Delay of 1000 milli seconds or 1 second
mySerial.println("AT+CMGS="+919494112952"\r"); // Replace x with mobile number
delay(1000);
mySerial.println("SOIL IS IN MOIST CONDITION");
delay(500);
}
delay(500);
if (Serial.available()>0)
switch(Serial.read())
{
case 's':
SendMessage();
break;
case 'r':
RecieveMessage();
break;
}
if (mySerial.available()>0)
Serial.write(mySerial.read());
}
void SendMessage()
{
mySerial.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
delay(1000); // Delay of 1000 milli seconds or 1 second
mySerial.println("AT+CMGS="+919494112952"\r"); // Replace x with mobile number
delay(1000);
mySerial.println("Temperature = ");// The SMS text you want to send
mySerial.println(DHT.temperature);
delay(100);
mySerial.println("Humidity = ");
mySerial.println(DHT.humidity);
delay(100);
mySerial.println((char)26);// ASCII code of CTRL+Z
delay(1000);
}
void RecieveMessage()
{
mySerial.println("AT+CNMI=2,2,0,0,0"); // AT Command to receive a live SMS
delay(1000);
}