нужна помощь sim800l сигнализация
- Войдите на сайт для отправки комментариев
Всем здрасьте нужна помощь с Sim800L не пойму ошибка в скетче или ошибка при подключении вообщем проблема следующая. вот код сигнализации который работает с датчиками движение на пинах 6и7
#include "SIM900.h"
#include <SoftwareSerial.h>
#define photoPin 8
#include "sms.h"
#include "call.h"
SMSGSM sms;
CallGSM call;
//=================Пины 2 и 3 для Подключения GSM модуля
int sensor1 = 0;
int flag1 = 0;
boolean started = false;
char smsbuffer[160];
char n[20];
String n1 = "+79184830000";
String input_string = "";
String smsContent = "";
char sirena[] = "Sirena vkluchena!";
char PowerOFF[] = "Snyato s ohrani";
char smsDv[] = "Wnimaniye! Dvijeniye na objekte!";
char smsDv2[] = "Wnimaniye! Dvijeniye na objekte 2!";
char smsDv3[] = "Wnimaniye! LAZER na objekte !";
char smsDv4[] = "Wnimaniye! SVETA NET!";
char smsDv5[] = "Wnimaniye! SVET DALI!";
char smsW[] = "Postanovka na ohranu!";
char pos;
char sendsms[160];
void setup() {
pinMode(10, OUTPUT); // Пассивный зумер (сигнал)
pinMode(11, OUTPUT);
digitalWrite(11, LOW);
pinMode(13, OUTPUT); //диод вкл/выкл
digitalWrite(13, LOW);
pinMode(12, OUTPUT); //лазер
digitalWrite(12, LOW);
Serial.begin(9600);
pinMode(6, INPUT); // датчик движения
pinMode(7, INPUT); // еще какой-нибудь датчик
pinMode(photoPin, INPUT);
// pinMode(8, INPUT); // еще ФОТОЭЛЕМЕНТ
pinMode(9, INPUT); // еще ЭЛЕКТРИЧЕСТВО
if (gsm.begin(4800)) {
Serial.println("\nstatus=READY");
started = true;
} else Serial.println("\nstatus=IDLE");
}
void loop() {
//===========================Первое срабатывание датчика движения
if ((digitalRead(6) == HIGH) && sensor1 == 1 && flag1 == 0) {
n1.toCharArray(n, 20);
sms.SendSMS(n, smsDv); digitalWrite(11, HIGH); // Посылаем СМС о том, что есть движение
sms.DeleteSMS(1); memset(n, 0, 20);
char smsbuffer[160] = "";
flag1++;
delay(5000); // Ждем 5 секунд
}
//===========================Повторное срабатывание датчика движения
if ((digitalRead(6) == HIGH) && sensor1 == 1 && flag1 == 1) {
n1.toCharArray(n, 20);
sms.SendSMS(n, sirena); digitalWrite(11, HIGH); // Посылаем СМС о том, что включена сирена
sms.DeleteSMS(1); memset(n, 0, 20);
char smsbuffer[160] = "";
flag1++;
}
if (flag1 >= 2) {
tone(10, 2780, 200); // Сирена
}
//===========================Первое срабатывание датчика движения
if ((digitalRead(7) == HIGH) && sensor1 == 1 && flag1 == 0) {
n1.toCharArray(n, 20);
sms.SendSMS(n, smsDv2); digitalWrite(11, HIGH); // Посылаем СМС о том, что есть движение
sms.DeleteSMS(1); memset(n, 0, 20);
char smsbuffer[160] = "";
flag1++;
delay(5000); // Ждем 5 секунд
}
//===========================Повторное срабатывание датчика движения
if ((digitalRead(7) == HIGH) && sensor1 == 1 && flag1 == 1) {
n1.toCharArray(n, 20);
sms.SendSMS(n, sirena); digitalWrite(11, HIGH); // Посылаем СМС о том, что включена сирена
sms.DeleteSMS(1); memset(n, 0, 20);
char smsbuffer[160] = "";
flag1++;
}
if (flag1 >= 2) {
tone(10, 2780, 200); // Сирена
}
//===========================Первое срабатывание лазера
int photoVal = digitalRead(photoPin);
if ((photoVal == LOW)&& sensor1 == 1 && flag1 == 0) {
digitalWrite(11, HIGH);
//Serial.print("1");
n1.toCharArray(n, 20);
sms.SendSMS(n, smsDv3); // Посылаем СМС о том, что СРАБОТАЛ ЛАЗЕР
sms.DeleteSMS(1); memset(n, 0, 20);
char smsbuffer[160] = "";
flag1++;
delay(5000); // Ждем 5 секунд
}
//===========================Повторное срабатывание лазера
if ((photoVal == LOW)&& sensor1 == 1 && flag1 == 1) {
digitalWrite(11, HIGH);
//Serial.print("0");
n1.toCharArray(n, 20);
sms.SendSMS(n, sirena); // Посылаем СМС о том, что включена сирена
sms.DeleteSMS(1); memset(n, 0, 20);
char smsbuffer[160] = "";
flag1++;
}
if (flag1 >= 2) {
tone(10, 2780, 200); // Сирена
}
pos = sms.IsSMSPresent(SMS_UNREAD); // смотрим непрочитанные СМС
if (pos) { // Если непрочитанные СМС есть, то...
getsms(); // получаем непрочитанную СМС
if (input_string == "0") {
Serial.print("Snyato s ohrani!"); n1.toCharArray(n, 20); sms.SendSMS(n, PowerOFF); sms.DeleteSMS(1); memset(n, 0, 20); // Команда "0" - снять с охраны
sensor1 = 0; digitalWrite(13, LOW); digitalWrite(12, LOW);digitalWrite(11, LOW); input_string = ""; char smsbuffer[160] = ""; flag1 = 0;
}
if (input_string == "1") {
Serial.print("Postanovka na ohranu!"); n1.toCharArray(n, 20); sms.SendSMS(n, smsW); sms.DeleteSMS(1); memset(n, 0, 20); // Команда "1" - Поставить на охрану
sensor1 = 1; digitalWrite(13, HIGH); digitalWrite(12, HIGH); input_string = ""; char smsbuffer[160] = ""; flag1 = 0;
}
sms.DeleteSMS(pos); // удаляем СМС из симки
}
}
void getsms()
{
sms.GetSMS(1, n, 20, smsbuffer, 160);
input_string = String(smsbuffer);
}
меня интересует photoPin подключенный к пину 8 там подключен фоторезистор вот такой (https://ru.aliexpress.com/item/KY-018-Photoresistor-Sensor-Light-Detecti...)при установки на сигналку тоесть отправив смс с цифрой 1 сразу срабатывает датчик приходит смс сработал лазер и задержка 5 секунд затем срабатывает зуммер.
сам фоторезистор проверял на вот таком скетче и всё работает отлично
#define photoPin 8
#define LedPin 11
void setup()
{
Serial.begin(9600);
pinMode(photoPin, INPUT);
pinMode(LedPin,OUTPUT);
}
void loop()
{
int photoVal = digitalRead(photoPin);
//Если обнаружили движение
if(photoPin == LOW)
{
digitalWrite(LedPin, LOW);
Serial.print("0");
delay(2000);
}
else
{
Serial.print("1");
digitalWrite(LedPin,HIGH);
delay(2000);
}
}
а вот при осливание скетча он компилируется и заливается но вот этот момент с фоторезистором непонятен. Буду благодарен за каждую подсказку и поправку