#include<SoftwareSerial.h>
#define HIGH_GAS_K 65 //Отсчет высокой концентрации %
#define MEDIUM_GAS_K 30 //Отсчет средней концентрации %, низкая концентрация все что меньше средней
Stringphone = "+"; //Номер телефона куда отсылать смс
int Buzzer_flag = 0, Bz= 0;
int SMS1_s = 0, SMS2_s = 0;
SoftwareSerialmySerial(2, 3); // RX, TX
void setup() {
analogReference(DEFAULT);
pinMode(A3, INPUT);
pinMode(A0, OUTPUT);
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(5, OUTPUT); // объявляем пин 5 как выход
pinMode(13, OUTPUT);
Serial.begin(19200); //Скорость порта для связи Arduino с компьютером
Serial.println("Goodnightmoon!");
mySerial.begin(19200); //Скорость порта для связи Arduino с GSM модулем
mySerial.println("AT");
digitalWrite(A0,HIGH);
digitalWrite(A1,HIGH); digitalWrite(A2,HIGH);
delay(2000);
digitalWrite(A0,LOW);
digitalWrite(A1,LOW);
digitalWrite(A2,LOW);
void sms(String text)
{ mySerial.println("AT+CMGF=1");
delay(1000);
mySerial.println("AT+CSCS=");
mySerial.println('"');
mySerial.println("GSM");
mySerial.println('"');
delay(1000);
mySerial.println("AT+CMGS=\"" + phone + "\""); // Указываем номер, на который нужно передать сообщение
delay(1000); // Формируем задержку 1 секунду
mySerial.print(text) // Передаем текст сообщения
delay(300); // Формируем задержку 300 мс
mySerial.print((char)26); // Передаем символ конца строки
delay(3000);}// Формируем задержку 3 секунды
intGAS_COUNT()
{float ADC_val = analogRead(A3);
float Val = ADC_val / 320;
int Rez_val = Val * 100;
return Rez_val;}
void GAS_PROTECT()
{int GAS_K = GAS_COUNT();
Serial.println(GAS_K);
delay(1000);
if(GAS_K >= 0 && GAS_K <= MEDIUM_GAS_K)
{digitalWrite(A0,HIGH);
digitalWrite(A1,LOW);
digitalWrite(A2,LOW);
noTone(5);
SMS1_s = 0;
SMS2_s = 0;
Bz = 0;}
if(GAS_K > MEDIUM_GAS_K && GAS_K <= HIGH_GAS_K)
{digitalWrite(A0,LOW);
digitalWrite(A1,HIGH);
digitalWrite(A2,LOW);
if(Buzzer_flag< 500)
{if(Bz == 0)
{if(SMS1_s == 0)
{sms("GAZ_MED."); SMS1_s = 1;}
tone(5,1000);
Bz = 1;}}
else
{noTone(5);
Bz = 0;}
Buzzer_flag++;
if(Buzzer_flag>= 3000)
{Buzzer_flag = 0;} }
if(GAS_K > HIGH_GAS_K)
{digitalWrite(A0,LOW);
digitalWrite(A1,LOW);
digitalWrite(A2,HIGH);
if(Buzzer_flag< 500)
{if(Bz == 0)
{if(SMS2_s == 0)
{sms("GAZ_HIGH")
SMS2_s = 1;}
tone(5,1000);
Bz = 1;}} else
{noTone(5);
Bz = 0;}
Buzzer_flag++;
if(Buzzer_flag>= 1000)
{Buzzer_flag = 0;}}}
void loop()
{if (mySerial.available())
Добрый день! Помогите пожалуйста найти ошибку в коде! Суть программы дистанционное оповещение об утечки газа.
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read()); GAS_PROTECT();}