Обучающие программы и исследовательские работы учащихся
Помогаем учителям и учащимся в обучении, создании и грамотном оформлении исследовательской работы и проекта.

Объявление

Наш баннер

Сайт Обучонок содержит исследовательские работы и проекты учащихся, темы творческих проектов по предметам и правила их оформления, обучающие программы для детей.
Будем благодарны, если установите наш баннер!
Баннер сайта Обучонок
Код баннера:
<a href="https://obuchonok.ru/" target="_blank"> <img src="https://obuchonok.ru/banners/banob2.gif" width="88" height="31" alt="Обучонок. Исследовательские работы и проекты учащихся"></a>
Все баннеры...

II. Практическая часть

2.1. Создание электронной схемы

Для построения макета схемы мне потребовалась программа Fritizing, которая имеет бесплатную лицензию и открытый исходный код, также эта программа была создана специально для Arduino поэтому она особенно удобна в использовании для этих целей.

Все схемы вы можете увидеть в Приложении 2.

Электронная схема Arduino в программе Fritizing

2.2. Создание программы


Создание программы, которая будет считывать показания датчика движения и, если будет обнаружен объект, нарушивший охранный периметр, отошлет SMS владельцу и включит сирену, но, если в течении 30 минут до этого события была прислана SMS с текстом «OFF», не будет предпринимать ни каких действий.

Текст программы с отладочными механизмами, Приложение 3.


#include //подключение библиотеки SoftwareSerial для работы с GSM модулем

SoftwareSerial mySerial(2, 3); // назначение портов для передачи данных между arduino и GSM

int siren = 12; // порт динамика(сирены)

int ir1 = 5; // порт ИК модуля 1 зоны

int ir2 = 6; // порт ИК модуля 2 зоны

int ir3 = 7; // порт ИК модуля 3 зоны

int ir4 = 8; // порт ИК модуля 4 зоны

int ir5 = 9; // порт ИК модуля 5 зоны

int power = 13; // порт светодиода (вкл)

int sir = 4; // порт светодиода тревога

void setup() {

pinMode(siren, OUTPUT); // назначение пина

pinMode(ir1, INPUT);// назначение пина

pinMode(power, OUTPUT); // назначение пина

pinMode(sir, OUTPUT); // назначение пина

digitalWrite(power, HIGH); // назначение пина

mySerial.begin(19200); // назначение скорости соединения между arduino и gsm mySerial.println("AT+CMGF=1");// запуск текстового режима смс delay(500); // задержка для обработки данных GSM модулем mySerial.println("AT+CSCS=\"GSM\""); //назначаем кодировку текстового режима смс - GSM(ASCI)

delay(500); // задержка для обработки данных GSM модулем delay(10000); // задержка перед включением режима охраны

sms(String("Signalizacia on"),String("+79277433422")); // запуск алгоритма отправки смс на номер

+79277433422 с текстом Signalizacia on

}

void loop() {

int irp1 = digitalRead(ir1); // считывание данных с ИК датчика 1 и помещение их в переменную irp1

int irp2 = digitalRead(ir2); // считывание данных с ИК датчика 2 и помещение их в переменную irp2

int irp3 = digitalRead(ir3); // считывание данных с ИК датчика 3 и помещение их в переменную irp3

int irp4 = digitalRead(ir4); // считывание данных с ИК датчика 4 и помещение их в переменную irp4

int irp5 = digitalRead(ir5); // считывание данных с ИК датчика 5 и помещение их в переменную irp5

if ( irp1 | irp2 | irp3 | irp4 | irp5 == HIGH){ // если какой-то ИК датчик обнаружил движение

if(irp1 == HIGH){// если 1 ИК датчик обнаружил движение sms(String("Zone1"),String("+79277433422")); // запуск алгоритма отправки смс на номер
+79277433422 с текстом Zone1

}

if(irp2 == HIGH){// если 2 ИК датчик обнаружил движение sms(String("Zone2"),String("+79277433422")); // запуск алгоритма отправки смс на номер
+79277433422 с текстом Zone2

}

if(irp3 == HIGH){// если 3 ИК датчик обнаружил движение sms(String("Zone3"),String("+79277433422")); // запуск алгоритма отправки смс на номер
+79277433422 с текстом Zone3

}

if(irp4 == HIGH){// если 4 ИК датчик обнаружил движение sms(String("Zone4"),String("+79277433422")); // запуск алгоритма отправки смс на номер
+79277433422 с текстом Zone4

}

if(irp5 == HIGH){// если 5 ИК датчик обнаружил движение sms(String("Zone5"),String("+79277433422")); // запуск алгоритма отправки смс на номер
+79277433422 с текстом Zone5

}

for (int i=0; i <= 60; i++){ // запуск сирены на 30 сек с морганием светодиода digitalWrite(sir, HIGH);// вкл светодиод тревога

tone(siren, 5000);// сирена издает звук 5000 гц

delay(300); // в течении 0.3 сек

digitalWrite(sir, LOW);// выкл светодиод тревога

tone(siren, 600);// сирена издает звук 600 гц

delay(200);// в течении 0.2 сек

}

noTone(siren); // выключение сирены

delay(30000); // остановка работы сигнализации на 30 сек
}

}
void sms(String text, String phone) { // алгоритм отправки смс mySerial.println("AT+CMGS=\"" + phone + "\""); // команда на отправку смс(номер) delay(1000);// задержка для обработки данных GSM модулем mySerial.print(text);// команда на отправку смс(текст)

delay(300);// задержка для обработки данных GSM модулем mySerial.print((char)26);

delay(300);// задержка для обработки данных GSM модулем delay(3000);// задержка для обработки данных GSM модулем }

Объявление

Статистика