با سلام و خسته نباشد من کاربر مبتدی اردوینو هستم با کمک اطلاعات سایت این کد رو کنارم هم جمع کردم میخام زمانی که پیام off رو فرستادم فقط قسمت ldr غیر فعال بشه تا زمانی که پیام on رو بفرستم و کل سنسور ها فعال بشن. اگه راهنمایی م کنین ممنون میشم.
#include <SoftwareSerial.h>
SoftwareSerial sim800l(3,2);
int ldr = A0;
int laser = 13;
int buzzer = 9;
int pir = 4;
int smoke = A1;
int sensorThres = 400;
String number = "+989355414622";
char incomingByte;
String inputString;
void sendSMS1()
{
sim800l.println("AT+CMGF=1");
delay(100);
sim800l.println("AT+CMGS=\"" + number + "\"\r");
delay(100);
String SMS = "Hello! I am Arduino Laser detected ";
sim800l.println(SMS);
delay(100);
sim800l.println((char)26);
delay(100);
}
void sendSMS2()
{
sim800l.println("AT+CMGF=1");
delay(100);
sim800l.println("AT+CMGS=\"" + number + "\"\r");
delay(100);
String SMS = "Hello! I am Arduino motion detected";
sim800l.println(SMS);
delay(100);
sim800l.println((char)26);
delay(100);
}
void sendSMS3()
{
sim800l.println("AT+CMGF=1");
delay(100);
sim800l.println("AT+CMGS=\"" + number + "\"\r");
delay(100);
String SMS = "Hello! I am Arduino Smoke & gas detected";
sim800l.println(SMS);
delay(100);
sim800l.println((char)26);
delay(100);
}
void setup()
{
Serial.begin(9600);
sim800l.begin(9600);
pinMode (laser, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(pir, INPUT);
pinMode(smoke, INPUT);
pinMode(ldr, INPUT);
digitalWrite (laser, HIGH);
}
void loop()
{
if(digitalRead(pir) == HIGH)
{
sim800l.println("ATD+989355414622;");
sendSMS2();
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(100);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(100);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(100);
Serial.println("motion detected");
}
else
{
noTone(buzzer);
delay(1);
Serial.println("scanning");
}
ldr = analogRead(A0);
Serial.print("ldr= ");
Serial.println(ldr);
if(ldr<700)
{
sim800l.println("ATD+989355414622;");
sendSMS1();
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(100);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(100);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(100);
}
else
{
noTone(buzzer);
delay(1);
}
smoke = analogRead(A1);
Serial.print("smoke: ");
Serial.println(smoke);
if (smoke > sensorThres)
{
sim800l.println("ATD+989355414622;");
sendSMS3();
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(100);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(100);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(200);
tone(buzzer,900);
delay(150);
tone(buzzer,500);
delay(100);
}
else
{
noTone(buzzer);
delay(1);
}
}