https://yadi.sk/d/15_arnirzxzds помогите найти ошибку. Скетч не комперируется. Пробовал несколько раз,ну с моим багажом знаний в этой области все без успешно. И как вписать туда ещё 2датчика движения,и датчик удара?
Я там в начале ссылку дал. По ссылке нужно зайти.Простите,ну я низнаю как его сюда разместить. Я пишу с планшета,а программа чтоб скетч открыть,открывается у меня только на компьютере
По возможности если получится чтобы каждый датчик движения посылал смс о зоне срабатывания. Чтоб знать с какой стороны подходить к домику. Датчик удара на стекло,тоже чтоб присылал что имени стекло разбито,и датчик двери. А чтоб ставилась и снималась по звонка. Вот пытался тот скетч примастырить подисвои нужды,а он не компилируется.......
Ваш Скетч Код (C++): #include "SIM900.h" #include <SoftwareSerial.h> #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 = "+79170417032"; String input_string = ""; String smsContent = ""; char sirena[] = "Sirena vkluchena!"; char PowerOFF[] = "Snyato s ohrani"; char smsDv[] ="Wnimaniye! Dvijeniye na objekte!"; char smsW[] ="Postanovka na ohranu!"; char pos; char sendsms[160]; void setup() { pinMode(10, OUTPUT); // Пассивный зумер (сигнал) pinMode(7, OUTPUT); Serial.begin(9600); pinMode(4, INPUT); // датчик движения // digitalWrite(4, HIGH); pinMode(5, INPUT); // еще какой-нибудь датчик // digitalWrite(5, HIGH); if (gsm.begin(4800)) { Serial.println("\nstatus=READY"); started=true; } else Serial.println("\nstatus=IDLE"); } void loop() { //===========================Первое срабатывание датчика движения if ((digitalRead(5)==HIGH) && sensor1==1 && flag1==0){ n1.toCharArray(n,20); sms.SendSMS(n, smsDv); // Посылаем СМС о том, что есть движение sms.DeleteSMS(1);memset(n,0,20); char smsbuffer[160]=""; flag1++; delay(5000); // Ждем 5 секунд } //===========================Повторное срабатывание датчика движения if ((digitalRead(5)==HIGH) && sensor1==1 && flag1==1){ 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(7,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; input_string=""; char smsbuffer[160]=""; flag1=0;} sms.DeleteSMS(pos); // удаляем СМС из симки } } void getsms() { sms.GetSMS(1,n,20,smsbuffer,160); input_string =String(smsbuffer); }
У меня скомпилировался. Единственный косяк нашёл:библиотеку под названием GSM-GPRS-GPS-Shield-GSMSHIELD_ переименовать В SIM900 (она по идее так и называется!) и положить её в папку C:\Program Files\Arduino\libraries (или где там у вас установлена Ардуина?) главное в папку libraries. Перед этим естественно надо всё разархивировать.В переименованной папке SIM900 должны быть сишные файлы и папка examples!
Огромное спасибо! Действительно все компилируется и проблема была лишь в этом. Ковырялся внутри,а все было на поверхности, в этой библиотеке ( Я правильно понял,чтобы вписать ещё несколько датчиков движения нужно добавлять сюда - Serial.begin(9600); pinMode(4, INPUT);// датчик движения // digitalWrite(4, HIGH); pinMode(5, INPUT);// еще какой-нибудь датчик // digitalWrite(5, HIGH); то же самое только с другими номерами пинов? pinMode(6, INPUT);// датчик движения 3 // digitalWrite(6, HIGH); pinMode(7, INPUT);// датчик удара // digitalWrite(7, HIGH); Как то так?
Так точно!Я в железе не проверял проверьте и отпишитесь как работает думаю Народу будет интересно.А Serial.begin(9600); ещё раз зачем?Уже в сетапе есть?
По интернету заказывал запчасти,ещё не все пришли. У меня на руках ардуина и датчики движения,сам модуль сим 800. Как соберу - обязательно отпишусь! Как вписать в программу чтоб смс приходила с уточнением, т.е. когда разобьтется стекло и приходит смс " разбито стекло", или когда сработал один из датчиков движения приходит смс " движение 1" (1- один из определённых датчиков)? И можно ли вообще ставить и снимать сигнализацию по звонку,а не по смс?
Подскажите пожалуйста ответ на дурацкий вопрос. Для автономной работы этой сигнализации хочю её запитать от мотоциклетного акомулятора(там гдето12.8в) можно ли сразу на ардуину ,на пин vin подключить? Или надо какой-то "понижатель" применить? И снизить вольт до 8-9? И можно запитать сим 800 от модуля для зарядки литиевых акомуляторов? Там4,2в он выдаёт. По даташиту это верхний придел для сим800.
Проверить это можно только одним способом - зашить скетч и убедиться, что все работает так как вы запрограммировали .
доброго времени суток,я имел виду на ошибки посмотреть. Я сейчас немного переделывал скетч, Jedi помогает. Вроде чего-то прорисовывается. Модуль понижающий для сим 800еще не пришол,по этому проверить как работает ни могу. Сейчас пытаюсь выводить данные на экран. Пока ни очень получается... Это мой первый проект,я до этого ни знал даже как ардуино выглядит...