GSM- Сигнализация своими руками

GSM- Сигнализация своими руками

Статья предназначена для начинающих радиолюбителе в области беспроводной связи. Результатом выполнения проекта должен стать готовый образец gsm-сигнализации, сделанный своими руками. Рад приветствовать вас дорогие посетители портала masteram.by. Я начинаю цикл статей по разработке GSM- cигнализации на основе обычного мобильного телефона и микроконтроллера Attini2313. При внимательном прочтении всего цикла статей, у вас получиться рабочий проект сигнализации, которую при небольшой доработке можно даже попытаться продать.
Для начала работы нам понадобиться:
• компилятор для написания программы для микроконтроллера
CodeVisionAVR C Compiler версия 1.25;
• программа для моделирования проекта сигнализации Proteus 7
Professional версия 7.6.

В архиве (GSM-сигнализация) есть две папки (папка с проектом для CodeVisionAVR и с проектом для Proteus 7 Professional).

После установки вышеперечисленных программных продуктов (предпочтительно использовать систему WINXP) Открываем папку «Проект CodeVisionAVR C Compiler» и запускаем файл проекта «2313 CodeVisionAVR Project File» после открытия файла на экране развернется окно программы (рисунок 1)

GSM- Сигнализация своими руками

Рисунок 1


Листинг программы имеет вид:
#include <tiny2313.h>
#include <delay.h>
#include <stdio.h>
int i=0;
void main(void)
{
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
PORTA=0x00;
DDRA=0x00;
PORTB=0xFF;
DDRB=0x00;
DDRB.3=1;//настраиваем вывод порта на выход
PORTD=0x00;
DDRD=0x00;
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
GIMSK=0x00;
MCUCR=0x00;
TIMSK=0x00;
USICR=0x00;
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x06;
UBRRH=0x00;
UBRRL=0x47;
ACSR=0x80;
while (1)
      {  
      PORTB.3=0;//гасим светодиод индикации
        while(PINB.0==1)//пока кнопка постановки на сигнализацию не нажата
        { //Ничего не делаем
        };
        delay_ms(300);//задержка 300 мс для устранения дребезга контактов   
         while(i<10) //Цикл для выполнения операции закрытия дверей
         {
          delay_ms(1000);//задержка 1 секунд для закрывания дверей
          PORTB.3=1;//горит светодиод идикации пока работает цикл 
          i++;//если это не понятно, учите основы язка СИ для МК
         }; 
         i=0;
         while(PINB.1==0)//пока дверь закрыта
          {       
          PORTB.3=1;//зажигаем светодиод
          delay_ms(1000);//задержка 1 секунда для мигания светодиода
          PORTB.3=0;//гасим светодиод
           delay_ms(1000);//задержка 1 секунда для мигания светодиода
          };
        printf("ATD+375297813830;");// AT - комада на мобилник набирает номер телефона 
        putchar(13); // AT - комада необходима для отправки предыдущей команды
        while((PINB.1==1)&&(i<3))//пока дверь открыта каждые 27 секуд идет звонок на номер мобильника 3 раза
        {
        delay_ms(9000);//задержка 9 секунд для контроля
        delay_ms(9000);//задержка 9 секунд для контроля
        delay_ms(9000);//задержка 9 секунд для контроля 
        printf("ATD+375297813830;"); 
        putchar(13);   
        i++;
        }; 
        i=0;
        };
}


Запускаем проект в папке проект Proteus 7 (Рисунок 2)


GSM- Сигнализация своими руками

Рисунок 2


Дважды кликнем по микроконтроллеру, должно открыться меню настройки микроконтроллера (Рисунок 3).

GSM- Сигнализация своими руками

Рисунок 3


В разделе Program faile указываем путь к файлу прошивки «2313» с расширением HEX , который находиться в паке «Проект CodeVisionAVR C Compiler», нажимаем ОК.
Дважды кликнем по значку компорта, должно открыться меню настройки компорта (Рисунок 4) . Устанавливаем галочку в пункте «исключить из моделирования» (на этом этапе работы нам не понадобиться этот инструмент).

GSM- Сигнализация своими руками

Рисунок 4


Запускаем моделирование проекта нажатием клавиши меню
(отладка \ выполнить). При выполнении вышеперечисленных шагов должно отобразиться окно моделирования проекта (Рисунок5).

GSM- Сигнализация своими руками

Рисунок 5


Протестируйте работу проекта путем нажатия на клавиши.
Пример:
Исходное положение:
1. Кнопка верхняя отжата (PINB.0==1, кнопка постановки на сигнализацию, находиться внутри охраняемого помещения);
2. Лампочка (вывод 15 микроконтроллера) не горит (PORTB.3=0);
3. Кнопка нижняя отжата (PINB.1==1контакт охраняемой двери).
В исходном положении выполняется следующий код листинга программы
while(PINB.0==1)//пока кнопка постановки на сигнализацию не нажата
        { //Ничего не делаем
        };


Нажимаем верхнюю кнопку, тем самым выходим из цикла while(PINB.0==1)
delay_ms(300);//задержка 300 мс для устранения дребезга контактов

После задержки входим в следующий цикл:

while(i<10) //Цикл для выполнения операции закрытия дверей
{
delay_ms(1000);//задержка 1 секунд для закрывания дверей
PORTB.3=1;//горит светодиод индикации пока работает цикл
i++;//если это не понятно, учите основы языка СИ для МК
};

Время работы этого цикла равно 10 секунд (для закрытия дверей), соответственно при работе этого цикла загорается светодиод, подключенный к выводу 15 микроконтроллера. После выхода из цикла ожидания закрытия дверей программа входит в цикл охраны:
i=0;
while(PINB.1==0)//пока дверь закрыта
{
PORTB.3=1;//зажигаем светодиод
delay_ms(1000);//задержка 1 секунда для мигания светодиода
PORTB.3=0;//гасим светодиод
delay_ms(1000);//задержка 1 секунда для мигания светодиода
};

Пока дверь закрыта светодиод мигает, и цикл работает. Как только дверь открывается (PINB.1==1) выполняется вызов абонента:
printf("ATD+375297813830;");// AT - команда на мобильник набирает номер телефона putchar(13); // AT - команда необходима для отправки предыдущей команды
Окно термина в Proteus 7 Professional после передачи команды будет выглядеть следующим образом (рисунок 6)

GSM- Сигнализация своими руками

Рисунок 6


Если дверь остается открытой, то выполняется код набора номера абонента (3 раза каждые 27 секунд).
while((PINB.1==1)&&(i<3))//пока дверь открыта каждые 27 секунд идет звонок на номер мобильника 3 раза
{
delay_ms(9000);//задержка 9 секунд для контроля
delay_ms(9000);//задержка 9 секунд для контроля
delay_ms(9000);//задержка 9 секунд для контроля
printf("ATD+375297813830;");
putchar(13);
i++;
};
i=0;

После чего алгоритм работы начинается снова. Если же дверь успевают закрыть, то алгоритм работы также начинается сначала.
Для закрепления материала необходимо изучить код программы путем его изменения и модификации. Перекомпиляция проекта в CodeVisionAVR осуществляется нажатием кнопки Make The Project (Рисунок 7).

GSM- Сигнализация своими руками

Рисунок 7


При удачной компиляции появится окно Information (рисунок 8)

GSM- Сигнализация своими руками

Рисунок 8

Архив с проектом
Продолжение следует.

Комментариев 3

Офлайн
wert 22 октября 2014 18:50
Сколько по деньгам получается для сборки?
Офлайн
Glassopi 23 октября 2014 11:13
Подскажите, а под 7ку протеус запустится?
Офлайн
Yrasik8786 23 октября 2014 12:19
Цитата: Glassopi
Подскажите, а под 7ку протеус запустится?

Да проблем не должно быть.
Цитата: wert
Сколько по деньгам получается для сборки?

баксов 30.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.