Hi,
Everyone can help me code for sim800c to make call if red led "ON". And if first number didn't give message "yes", SIM800c would call second number
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3);
#define BTN 7
#define RELAY 8
int BTN_state;
void KT_BTN() {
if (digitalRead(BTN) == LOW) {
delay(20);
if (digitalRead(BTN) == LOW) {
BTN_state++;
if (BTN_state > 1) {
BTN_state = 0;
digitalWrite(RELAY, LOW); // Tắt relay khi nút được nhấn lần thứ hai
Serial.println("da nhan off");
}
if (BTN_state == 1) {
Serial.println("da nhan on");
digitalWrite(RELAY, HIGH);
}
}
while (digitalRead(BTN) == LOW);
}
}
String readSerial()
{
delay(100);
if (mySerial.available()) {
return mySerial.readString();
}
}
void CallNumber(String phoneNumber) {
mySerial.print("ATD+ ");
mySerial.print(phoneNumber);
mySerial.println(";");
Serial.println(readSerial());
delay(10000);
mySerial.println("ATH");
delay(200);
Serial.println(readSerial());
}
void ReceiveSMS() {
Serial.println ("SIM800C Read an SMS");
mySerial.println("AT+CMGF=1");
Serial.println(readSerial());
mySerial.println("AT+CNMI=1,2,0,0,0");
Serial.println(readSerial());
}
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
pinMode(BTN, INPUT_PULLUP);
pinMode(RELAY, OUTPUT);
digitalWrite(RELAY, LOW);
BTN_state = 0;
}
void loop() {
if (digitalRead(RELAY) == HIGH)
{
Serial.println("ON RED LED");
delay(200);
CallNumber("+xxxxxxxxxxx");
delay(2000);
ReceiveSMS();
delay(200);
if (Serial.available() > 1)
{
String input = Serial.readStringUntil('\n');
if(input == "yes")
{
CallNumber("+xxxxxxxxxxx");
}
}
}
KT_BTN();
}