Вы находитесь на странице: 1из 3

#include <Wire.

h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
// These constants won't change. They're used to give names to the pins used:
#include <SoftwareSerial.h>
#define rxPin 3
#define txPin 2
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
char text[150];
String message="";
int i;

const int r1 = 8;
const int r2 = 9;
const int r3 = 10;

const int analogInPin = A0; // Analog input pin that the potentiometer is attached
to

const int buttonPin1 = 4;


const int buttonPin2 = 5;
const int buttonPin3 = 6;

int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int sensorValue = 0;
int sensorValue1 = 0; // value read from the pot

void setup() {
lcd.begin();//Error in this line
lcd.backlight();// Включаем подсветку дисплея
lcd.setCursor(0, 0);
lcd.print("UNDER GROUND");
lcd.setCursor(0, 1);
lcd.print("CABLE FAULT");
// initialize serial communications at 9600 bps:
Serial.begin(9600);
mySerial.begin(9600);
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(r1, OUTPUT);
pinMode(r2, OUTPUT);
pinMode(r3, OUTPUT);
}

void loop() { buttonState1 = digitalRead(buttonPin1);


buttonState2 = digitalRead(buttonPin2);
buttonState3 = digitalRead(buttonPin3);
// read the analog in value:
if (buttonState1 == LOW) {
digitalWrite(r1, LOW);

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("R PHASE FAULT");
delay(1000);
message="R PHASE FAULT";
SendTextMessage();

Serial.print("R PHASE FAULT");


} else { lcd.clear();
lcd.setCursor(0, 0);
lcd.print("scanning..");
digitalWrite(r1, HIGH);

if (buttonState2 ==LOW) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Y PHASE FAULT");
delay(1000);
digitalWrite(r2,LOW);
message="Y PHASE FAULT";
SendTextMessage();

} else {lcd.clear();
lcd.setCursor(0, 0);
lcd.print("scanning...");
digitalWrite(r2, HIGH);
}

if (buttonState3 == LOW) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("B PHASE FAULT");
digitalWrite(r3, LOW);
message="B PHASE FAULT";
SendTextMessage();

}
else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("scanning..");
digitalWrite(r3, HIGH);
}

sensorValue1 = analogRead(analogInPin);
//
//
if ( (sensorValue1>=0 && sensorValue1<=10) )
{lcd.setCursor(0,1);
lcd.print("F=LOC3");
delay(1000);
message="Malavli 18.7448,73.4817";
SendTextMessage();

}
else if ((sensorValue1>=325 && sensorValue1<=340) )
{lcd.setCursor(0,1);
lcd.print("F=LOC4");
message="Lonavla 18.7557,73.4091";
SendTextMessage();
delay(1000);
}
else if ((sensorValue1>=450 && sensorValue1<=780))
{lcd.setCursor(0,1);
lcd.print("F=LOC2");
message="Vadgaon 18.7372,73.6390";
SendTextMessage();

delay(1000);}
else if ((sensorValue1>=850 ) )
{lcd.setCursor(0,1);
lcd.print("F=LOC1");
message="Talegaon Dabhade 18.7376,73.6747";
SendTextMessage();

delay(1000);

}
else
{ lcd.setCursor(0,1);
lcd.print("F=OK");
delay(1000);
}

void SendTextMessage(){

mySerial.print("AT+CMGF=1\r");
delay(1000);
mySerial.print("AT+CMGS=\"+919823169255\"\r");
delay(1000);
mySerial.println(message);
mySerial.print("\r");
delay(1000);
mySerial.println((char)26);
mySerial.println();

Вам также может понравиться