нужна помощь 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); } }
а вот при осливание скетча он компилируется и заливается но вот этот момент с фоторезистором непонятен. Буду благодарен за каждую подсказку и поправку