Главная - Лотки перфорированные
Охранная сигнализация на arduino mega 2560. Беспроводная сигнализация на базе Arduino. Сложно ли работать с Arduino
Кражи автомобилей на протяжении последнего десятилетия занимают одно из значимых мест в структуре совершаемых в мире преступлений. Это обусловлено не столько удельным весом данной категории хищений относительно общего количества преступлений, сколько существенностью причиняемого ущерба ввиду большой стоимости автомобилей. Слабая эффективность принимаемых мер в области борьбы с кражами автотранспорта к концу 90-х годов привела к созданию устойчивых групп, специализирующихся на совершении данных преступлений и обладающих отличительными чертами организованной преступности; вы наверняка слышали термин «черный автобизнес». Автомобильный парк европейских государств ежегодно не досчитывается ≈ 2 % машин, которые становятся предметом преступных посягательств. Поэтому мне пришла идея сделать gsm-сигнализацию для своего автомобиля на базе Arduino Uno.

Начнём!

Из чего будем собирать

Надо выбрать сердце нашей системе. На мой взгляд, для подобной сигнализации нет ничего лучше, чем Arduino Uno. Основной критерий - достаточное количество «пинов» и цена.


Основные характеристики Arduino Uno

Микроконтроллер - ATmega328
Рабочее напряжение - 5 В
Входное напряжение (рекомендуемое) - 7-12 В
Входное напряжение (предельное) - 6-20 В
Цифровые Входы/Выходы - 14 (6 из которых могут использоваться как выходы ШИМ)
Аналоговые входы - 6
Постоянный ток через вход/выход - 40 мА
Постоянный ток для вывода 3.3 В - 50 мА
Флеш-память - 32 Кб (ATmega328) из которых 0.5 Кб используются для загрузчика
ОЗУ - 2 Кб (ATmega328)
EEPROM - 1 Кб (ATmega328)
Тактовая частота - 16 МГц


Подходит!

Теперь необходимо выбрать gsm-модуль, ведь наша сигнализация должна уметь оповещать владельца автомобиля. Так, надо «погуглить»… Вот, отличный датчик - SIM800L, размер просто замечательный.


Подумал я и заказал его из Китая. Однако всё оказалось не так радужно. Датчик просто отказался регистрировать SIM-карту в сети. Было опробовано всё, что только возможно - результат нулевой.
Нашлись добрые люди, которые предоставили мне более крутую штуку - Sim900 Shield. Вот это уже серьёзный штучка. В Shield-е и разъём для микрофона и для наушников, полноценный телефон.


Основные характеристики Sim900 Shield

4 стандарта рабочей частоты 850/ 900/ 1800/ 1900 MHz
GPRS multi-slot класс 10/8
GPRS mobile station class B
Соответствует GSM phase 2/2+
Class 4 (2 W @850/ 900 MHz)
Class 1 (1 W @ 1800/1900MHz)
Управление с помощью AT команд (GSM 07.07 ,07.05 и SIMCOM расширенные AT команды)
Низкое энергопотребление: 1.5mA(sleep mode)
Диапазон рабочих температур: от -40°C до +85 °C


Подходит!

Ок, но надо же снимать показания с каких-то датчиков, чтобы оповещать владельца. Вдруг автомобиль эвакуируют, тогда положение автомобиля явно будет меняться в пространстве. Возьмём акселерометр и гироскоп. Отлично. Такс, теперь ищем датчик.

Думаю, что GY-521 MPU6050 точно подойдёт. Оказалось, что в нём есть и датчик температуры. Надо бы и его задействовать, будет такая «киллер фича». Предположим, что владелец автомобиля поставил его под домой и ушёл. Температура в салоне автомобиля будет изменяется «плавно». Что же будет, если злоумышленник попытается проникнуть в автомобиль? Например у него получится открыть дверь. Температура в автомобиле начнёт изменяться стремительно, так как воздух в салоне начнёт смешиваться с воздухом окружающей среды. Думаю, что будет работать.


Основные характеристики GY-521 MPU6050

Модуль 3-х осевого гироскопа + 3-х осевого акселерометра GY-521 на чипе MPU-6050. Позволяет определить положение и перемещение объекта в пространстве, угловую скорость при вращении. Так же имеет встроенный датчик температуры. Используется в различных коптерах и авиамоделях, так же на основе этих датчиков можно собрать систему захвата движений.

Микросхема - MPU-6050
Напряжение питания - от 3,5V до 6V (DC);
Диапазон гироскопа - ± 250 500 1000 2000 ° / с
Диапазон акселерометра - ± 2 ± 4 ± 8 ± 16g
Интерфейс связи - I2C
Размер - 15х20 мм.
Вес - 5 г


Подходит!

Также пригодится датчик вибраций. Вдруг автомобиль попытаются вскрыть «грубой силой», ну или на парковке другой автомобиль заденет вашу машинку. Возьмём датчик вибраций SW-420 (регулируемый).


Основные характеристики SW-420

Напряжение питания - 3.3 - 5В
Выходной сигнал - цифровой High/Low (нормально закрытый)
Используемый датчик - SW-420
Используемый компаратор - LM393
Размеры - 32x14 мм
Дополнительно - Есть регулировочный резистор.


Подходит!

Прикрутим модуль SD карты памяти. Будем ещё писать лог-файл.


Основные характеристики модуля SD карты памяти

Модуль позволяет хранить, читать и записывать на SD карту данные требуемые для работы прибора на основе микроконтроллера. Применение устройства актуально при хранении файлов от десятков мегабайт до двух гигабайт. На плате размещен контейнер SD карты, стабилизатор питания карты, вилка соединителя линий интерфейса и питания. Если требуется работать с звуковыми, видео или другими объемными данными, например, вести журнал регистрации событий, данных датчиков или хранить информацию веб-сервера, то модуль SD карты памяти для Arduino даст возможность применить SD карту для этих целей. С помощью модуля можно изучить особенности работы SD карты.
Напряжение питания - 5 или 3,3 В
Объем памяти SD карты - до 2 Гбайт
Размеры - 46 х 30 мм


Подходит!

И добавим сервопривод, при срабатывании датчиков будет поворачиваться сервопривод с видеорегистратором и снимать видео происшествия. Возьмём сервопривод MG996R.


Основные характеристики сервопривода MG996R

Стабильная и надежная защита от повреждений
- Металлический привод
- Двухрядный шарикоподшипник
- Длина провода 300 мм
- Размеры 40х19х43мм
- Масса 55 гр
- Угол поворота: 120 град.
- Рабочая скорость: 0.17сек/60 градусов (4.8В без нагрузки)
- Рабочая скорость: 0.13сек/60 градусов (6В без нагрузки)
- Пусковой момент: 9.4кг/см при питании 4.8В
- Пусковой момент: 11кг/см при питании 6В
- Рабочее напряжение: 4.8 - 7.2В
- Все детали привода выполнены из металла


Подходит!

Собираем

Про подключение каждого датчика в «гугле» огромное количество статей. И придумывать новые велосипеды у меня желания нет, поэтому оставлю ссылки на простые и рабочие варианты.

Здравствуй, дорогой читатель! Сегодняшняя статья посвящена созданию простой домашней системы безопасности, при помощи доступных компонентов. Это маленькое и дешёвое устройство поможет тебе защитить ваше жилище от проникновения при помощи Arduino, датчика движения, дисплея и динамика. Питаться устройство сможет от батарейки или USB-порта компьютера.

Итак, начнём!

Как оно работает?

Тела теплокровных излучают в ИК-диапазоне, который невидим для человеческих глаз, однако может быть обнаружен при помощи датчиков. Такие датчики делаются из материала, который под воздействием тепла может спонтанно поляризоваться, благодаря чему это позволяет определить появления источников тепла в радиусе действия датчика.

Для более широкого радиуса действия используют линзы Френеля, которые собирают ИК-излучение с разных направлений и концентрируют его на самом датчике.

На рисунке видно, как линза искажает лучи, которые падают на неё.

Стоит отметить, что роботы без особо греющихся частей и хладнокровные излучают в ИК-диапазоне очень слабо, поэтому датчик может не сработать в случае, если тебя решат обнести сотрудники Boston Dynamics или рептилоиды.

Когда происходит изменение уровня ИК излучения в диапазоне действия, это будет обрабатываться на Arduino после чего на LCD дисплее будет выводится статус, светодиод будет мигать, а спикер пищать.

Что нам потребуется?

  1. (или любая другая плата ).
  2. (16 символов по две строки)
  3. Один разъём для подключения кроны к Arduino
  4. (хотя можно использовать и обычный динамик)
  5. USB-кабель - только для программирования (прим. пер.: с нашими Arduino он всегда идёт в комплекте!)
  6. Компьютер (опять же только для того, чтобы написать и загрузить программу).

Кстати, если не хочется покупать все эти детали по отдельности - рекомендуем обратить внимание на наши . К примеру, всё необходимое и даже больше есть в нашем стартовом наборе .

Подключаем!

Подключение датчика движения очень простое:

  1. Пин Vcc подключаем к 5V Ардуино.
  2. Пин Gnd подключаем к GND Ардуино.
  3. Пин OUT подключаем к цифровому пину №7 от Arduino

Теперь присоединим светодиод и спикер. Тут всё так же просто:

  1. Короткую ножку (минус) светодиода подключаем к земле
  2. Длинную ножку (плюс) светодиода подключаем к выходу №13 Arduino
  3. Красный провод спикера к выходу №10
  4. Чёрный провод – к земле

И теперь самое сложное – подключение LCD дисплея 1602 к Arduino. Дисплей у нас без I2C, поэтому потребуется много выходов Arduino, но результат будет того стоить. Схема представлена ниже:

Нам нужна только часть схемы (у нас не будет регулировки контраста потенциометром). Поэтому требуется сделать лишь следующие:

Теперь ты знаешь, как подключить дисплей 1602 к Arduino UNO R3 (ровно как и к любой версии Arduino от Mini до Mega).

Программируем

Пришло время перейти к программированию. Ниже представлен код, который надо лишь залить и, если вы собрали всё верно – устройство готово!

#include int ledPin = 13; // Пин светодиода int inputPin = 7; // Пин, к которому подключен Out датчика движения int pirState = LOW; // Текущее состояние (в начале ничего не обнаружено) int val = 0; // Переменная для чтения состояния цифровых входов int pinSpeaker = 10; // Пин, к которому подключен динамик. Требуется использовать пин с ШИМ (PWM) LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Инициалиация LCD дисплея void setup() { // Определение направления передачи данных на цифровых пинах pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); pinMode(pinSpeaker, OUTPUT); // Запуск вывода отладочной информации через последовательный порт Serial.begin(9600); // Запуск вывода на LCD дисплей lcd.begin(16, 2); // Устанавливаем индекс на дисплеи, с которого начнём вывод // (2 символ, 0 строки) lcd.setCursor(2, 0); // Вывод на LCD дисплей lcd.print("P.I.R Motion"); // Снова перемещаем lcd.setCursor(5, 1); // Выводим lcd.print("Sensor"); // Пауза, чтобы успели прочитать, что вывели delay(5000); // Очистка lcd.clear(); // Аналогично lcd.setCursor(0, 0); lcd.print("Processing Data."); delay(3000); lcd.clear(); lcd.setCursor(3, 0); lcd.print("Waiting For"); lcd.setCursor(3, 1); lcd.print("Motion...."); } void loop() { // Считываем показание датчика val = digitalRead(inputPin); if (val == HIGH) { // Если есть движение, то зажигаем светодиод и включаем сирену digitalWrite(ledPin, HIGH); playTone(300, 300); delay(150); // Если движения до данного момента не было, то выводим сообщение // что оно обнаружено // Код ниже нужен для того, чтобы писать лишь смену состояния, а не каждый раз выводить значение if (pirState == LOW) { Serial.println("Motion detected!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Motion Detected!"); pirState = HIGH; } } else { // Если движене закончилось digitalWrite(ledPin, LOW); playTone(0, 0); delay(300); if (pirState == HIGH){ // Сообщаем, что движение было, но уже закончилось Serial.println("Motion ended!"); lcd.clear(); lcd.setCursor(3, 0); lcd.print("Waiting For"); lcd.setCursor(3, 1); lcd.print("Motion...."); pirState = LOW; } } } // Функция воспроизведения звука. Duration (длительность)- в миллисекундах, Freq (частота) - в Гц void playTone(long duration, int freq) { duration *= 1000; int period = (1.0 / freq) * 100000; long elapsed_time = 0; while (elapsed_time < duration) { digitalWrite(pinSpeaker,HIGH); delayMicroseconds(period / 2); digitalWrite(pinSpeaker, LOW); delayMicroseconds(period / 2); elapsed_time += (period); } }

Данный проект касается разработки и усовершенствования системы для предотвращения/контроля любых попыток проникновения воров. Разработанное охранное устройство использует встроенную систему (включает аппаратный микроконтроллер с использованием открытого программного кода и gsm модем) на базе технологии GSM (Глобальная система подвижной связи).

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

Охранная система состоит из микроконтроллера Arduino Uno и стандартного модема SIM900A на базе GSM/GPRS. Вся система может питаться от любого источника питания/батареи 12В 2A.

Ниже показана схема охранной системы на базе Arduino.

Работа системы очень проста и не требует разъяснений. Когда на систему подается питание, она переходит в дежурный режим. Когда выводы коннектора J2 закорочены, заранее запрограммированное предупреждающее сообщение передается на требуемый мобильный номер. Вы можете подсоединить любой детектор обнаружения проникновения (такой как световое защитное приспособление или датчик движения) к входному коннектору J2. Заметьте, что активный-низкий (L) сигнал на выводе 1 коннектора J2 активирует срабатывание охранной сигнализации.

Более того, в систему добавлено опциональное приспособление “вызов – тревога”. Оно активирует телефонный звонок, когда пользователь нажмет кнопку S2 (или когда другой электронный блок инициирует сигнализацию). После нажатия кнопки “call” (S2), вызов можно отменить, нажав другую кнопку S3 – кнопку “end”. Данная опция может использоваться для подачи сигнала тревоги в случае “пропущенного звонка” в случае проникновения.

Схема очень гибкая, поэтому может использовать любой SIM900A модем (и, конечно, плату Arduino Uno). Внимательно прочтите документацию на модем до начала сборки. Это позволит облегчить и сделать приятным процесс изготовления системы.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Плата Arduino

Arduino Uno

1 В блокнот
GSM/GPRS-модем SIM900A 1 В блокнот
IC1 Линейный регулятор

LM7805

1 В блокнот
C1 100мкФ 25В 1 В блокнот
C2 Электролитический конденсатор 10мкФ 16В 1 В блокнот
R1 Резистор

1 кОм

1 В блокнот
LED1 Светодиод 1 В блокнот
S1 Кнопка С фиксацией 1

Всем привет, сегодня мы рассмотрим устройство под названием датчик движения. Многие из нас слышали об этой штуке, кто то даже имел дело с этим устройством. Что же такое датчик движения? Попробуем разобраться, итак:

Датчик движения, или датчик перемещения - устройство (прибор) обнаруживающий перемещение каких либо объектов. Очень часто эти устройства, используются в системах охраны, сигнализации и мониторинга. Форм факторов этих датчиков существует великое множество, но мы рассмотрим именно модуль датчика движения для подключения к платам Arduino, и именно от фирмы RobotDyn. Почему именно этой фирмы? Я не хочу заниматься рекламой этого магазина и его продукции, но именно продукция данного магазина была выбрана в качестве лабораторных образцов благодаря качественной подаче своих изделий для конечного потребителя. Итак, встречаем - датчик движения (PIR Sensor) от фирмы RobotDyn:


Эти датчики малы по габаритам, потребляют мало энергии и просты в использовании. Кроме того - датчики движения фирмы RobotDyn имеют еще и маркированные шелкографией контакты, это конечно мелочь, но очень приятная. Ну а тем кто использует такие же датчики, но только других фирм, не стоит беспокоиться - все они имеют одинаковый функционал, и даже если не промаркированы контакты, то цоколёвку таких датчиков легко найти в интернете.

Основные технические характеристики датчика движения(PIR Sensor):

Зона работы датчика: от 3 до 7 метров

Угол слежения: до 110 о

Рабочее напряжение: 4,5...6 Вольт

Потребляемый ток: до 50мкА

Примечание: Стандартный функционал датчика можно расширить, подключив на пины IN и GND датчик освещенности, и тогда датчик движения будет срабатывать только в темноте.

Инициализация устройства.

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

Угол и область обнаружения.

Угол обнаружения(слежения) составляет 110 градусов, диапазон расстояния обнаружения от 3 до 7 метров, иллюстрация ниже показывает всё это:

Регулировка чувствительности(дистанции обнаружения) и временной задержки.

На приведённой ниже таблице показаны основные регулировки датчика движения, слева находится регулятор временной задержки соответственно в левом столбце приведено описание возможных настроек. В правом столбце описание регулировок расстояния обнаружения.


Подключение датчика:

  • PIR Sensor - Arduino Nano
  • PIR Sensor - Arduino Nano
  • PIR Sensor - Arduino Nano
  • PIR Sensor - для датчика освещенности
  • PIR Sensor - для датчика освещенности

Типичная схема подключения дана на схеме ниже, в нашем случае датчик показан условно с тыльной стороны и подключен к плате Arduino Nano.

Скетч демонстрирующий работу датчика движения(используем программу ):

/* * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano */ void setup() { //Установить соединение с монитором порта Serial.begin(9600); } void loop() { //Считываем пороговое значение с порта А0 //обычно оно выше 500 если есть сигнал if(analogRead(A0) > 500) { //Сигнал с датчика движения Serial.println("Есть движение!!!"); } else { //Нет сигнала Serial.println("Всё тихо..."); } }

Скетч является обычной проверкой работы датчика движения, в нём есть много недостатков, таких как:

  1. Возможные ложные срабатывания, датчику необходима самоинициализация в течение одной минуты.
  2. Жесткая привязка к монитору порта, нет выходных исполнительных устройств(реле, сирена, светоиндикация)
  3. Слишком короткое время сигнала на выходе датчика, при обнаружении движения необходимо программно задержать сигнал на более долгий период времени.

Усложнив схему и расширив функционал датчика, можно избежать вышеописанных недостатков. Для этого потребуется дополнить схему модулем реле и подключить обычную лампу на 220 вольт через данный модуль. Сам же модуль реле будет подключен к пину 3 на плате Arduino Nano. Итак принципиальная схема:

Теперь пришло время немного усовершенствовать скетч, которым проверялся датчик движения. Именно в скетче, будет реализована задержка выключения реле, так как сам датчик движения имеет слишком короткое время сигнала на выходе при срабатывании. Программа реализует 10-ти секундную задержку при срабатывании датчика. При желании это время можно увеличить или уменьшить, изменив значение переменной DelayValue . Ниже представлен скетч и видео работы всей собранной схемы:

/* * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano * Relay Module -> Arduino Nano */ //relout - пин(выходной сигнал) для модуля реле const int relout = 3; //prevMillis - переменная для хранения времени предидущего цикла сканирования программы //interval - временной интервал для отсчета секунд до выключения реле unsigned long prevMillis = 0; int interval = 1000; //DelayValue - период в течение которого реле удерживается во включенном состоянии int DelayValue = 10; //initSecond - Переменная итерации цикла инициализации int initSecond = 60; //countDelayOff - счетчик временных интервалов static int countDelayOff = 0; //trigger - флаг срабатывания датчика движения static bool trigger = false; void setup() { //Стандартная процедура инициализации порта на который подключен модуль реле //ВАЖНО!!! - чтобы модуль реле оставался в первоначально выключенном состоянии //и не срабатывал при инициализации, нужно записать в порт входа/выхода //значение HIGH, это позволит избежать ложных "перещелкиваний", и сохранит //состояние реле таким, каким оно было до включения всей схемы в работу pinMode(relout, OUTPUT); digitalWrite(relout, HIGH); //Здесь всё просто - ждем когда закончатся 60 циклов(переменная initSecond) //продолжительностью в 1 секунду, за это время датчик "самоинициализируется" for(int i = 0; i < initSecond; i ++) { delay(1000); } } void loop() { //Считать значение с аналогового порта А0 //Если значение выше 500 if(analogRead(A0) > 500) { //Установить флаг срабатывания датчика движения if(!trigger) { trigger = true; } } //Пока флаг срабатывания датчика движения установлен while(trigger) { //Выполнять следующие инструкции //Сохранить в переменной currMillis //значение миллисекунд прошедших с момента начала //выполнения программы unsigned long currMillis = millis(); //Сравниваем с предидущим значением миллисекунд //если разница больше заданного интервала, то: if(currMillis - prevMillis > interval) { //Сохранить текущее значение миллисекунд в переменную prevMillis prevMillis = currMillis; //Проверяем счетчик задержки сравнивая его со значением периода //в течение которого реле должно удерживаться во включенном //состоянии if(countDelayOff >= DelayValue) { //Если значение сравнялось, то: //сбросить флаг срабатывания датчика движения trigger = false; //Обнулить счетчик задержки countDelayOff = 0; //Выключить реле digitalWrite(relout, HIGH); //Прервать цикл break; } else { //Если значение всё еще меньше, то //Инкрементировать счетчик задержки на единицу countDelayOff ++; //Удерживать реле во включенном состоянии digitalWrite(relout, LOW); } } } }

В программе присутствует конструкция:

unsigned long prevMillis = 0;

int interval = 1000;

...

unsigned long currMillis = millis();

if(currMillis - prevMillis > interval)

{

prevMillis = currMillis;

....

// Наши операции заключенные в тело конструкции

....

}

Чтобы внести ясность, было решено отдельно прокомментировать эту конструкцию. Итак, данная конструкция позволяет выполнить как бы параллельную задачу в программе. Тело конструкции срабатывает примерно раз в секунду, этому способствует переменная interval . Сначала, переменной currMillis присваивается значение возвращаемое при вызове функции millis() . Функция millis() возвращает количество миллисекунд прошедших с начала программы. Если разница currMillis - prevMillis больше чем значение переменной interval то это означает, что уже прошло более секунды с начала выполнения программы, и нужно сохранить значение переменной currMillis в переменную prevMillis затем выполнить операции заключенные в теле конструкции. Если же разница currMillis - prevMillis меньше чем значение переменной interval , то между циклами сканирования программы еще не прошло секунды, и операции заключенные в теле конструкции пропускаются.

Ну и в завершение статьи видео от автора:

Пожалуйста, включите javascript для работы комментариев. Кражи автомобилей на протяжении последнего десятилетия занимают одно из значимых мест в структуре совершаемых в мире преступлений. Это обусловлено не столько удельным весом данной категории хищений относительно общего количества преступлений, сколько существенностью причиняемого ущерба ввиду большой стоимости автомобилей. Слабая эффективность принимаемых мер в области борьбы с кражами автотранспорта к концу 90-х годов привела к созданию устойчивых групп, специализирующихся на совершении данных преступлений и обладающих отличительными чертами организованной преступности; вы наверняка слышали термин «черный автобизнес». Автомобильный парк европейских государств ежегодно не досчитывается ≈ 2 % машин, которые становятся предметом преступных посягательств. Поэтому мне пришла идея сделать gsm-сигнализацию для своего автомобиля на базе Arduino Uno.

Начнём!

Из чего будем собирать

Надо выбрать сердце нашей системе. На мой взгляд, для подобной сигнализации нет ничего лучше, чем Arduino Uno. Основной критерий - достаточное количество «пинов» и цена.


Основные характеристики Arduino Uno

Микроконтроллер - ATmega328
Рабочее напряжение - 5 В
Входное напряжение (рекомендуемое) - 7-12 В
Входное напряжение (предельное) - 6-20 В
Цифровые Входы/Выходы - 14 (6 из которых могут использоваться как выходы ШИМ)
Аналоговые входы - 6
Постоянный ток через вход/выход - 40 мА
Постоянный ток для вывода 3.3 В - 50 мА
Флеш-память - 32 Кб (ATmega328) из которых 0.5 Кб используются для загрузчика
ОЗУ - 2 Кб (ATmega328)
EEPROM - 1 Кб (ATmega328)
Тактовая частота - 16 МГц


Подходит!

Теперь необходимо выбрать gsm-модуль, ведь наша сигнализация должна уметь оповещать владельца автомобиля. Так, надо «погуглить»… Вот, отличный датчик - SIM800L, размер просто замечательный.


Подумал я и заказал его из Китая. Однако всё оказалось не так радужно. Датчик просто отказался регистрировать SIM-карту в сети. Было опробовано всё, что только возможно - результат нулевой.
Нашлись добрые люди, которые предоставили мне более крутую штуку - Sim900 Shield. Вот это уже серьёзный штучка. В Shield-е и разъём для микрофона и для наушников, полноценный телефон.


Основные характеристики Sim900 Shield

4 стандарта рабочей частоты 850/ 900/ 1800/ 1900 MHz
GPRS multi-slot класс 10/8
GPRS mobile station class B
Соответствует GSM phase 2/2+
Class 4 (2 W @850/ 900 MHz)
Class 1 (1 W @ 1800/1900MHz)
Управление с помощью AT команд (GSM 07.07 ,07.05 и SIMCOM расширенные AT команды)
Низкое энергопотребление: 1.5mA(sleep mode)
Диапазон рабочих температур: от -40°C до +85 °C


Подходит!

Ок, но надо же снимать показания с каких-то датчиков, чтобы оповещать владельца. Вдруг автомобиль эвакуируют, тогда положение автомобиля явно будет меняться в пространстве. Возьмём акселерометр и гироскоп. Отлично. Такс, теперь ищем датчик.

Думаю, что GY-521 MPU6050 точно подойдёт. Оказалось, что в нём есть и датчик температуры. Надо бы и его задействовать, будет такая «киллер фича». Предположим, что владелец автомобиля поставил его под домой и ушёл. Температура в салоне автомобиля будет изменяется «плавно». Что же будет, если злоумышленник попытается проникнуть в автомобиль? Например у него получится открыть дверь. Температура в автомобиле начнёт изменяться стремительно, так как воздух в салоне начнёт смешиваться с воздухом окружающей среды. Думаю, что будет работать.


Основные характеристики GY-521 MPU6050

Модуль 3-х осевого гироскопа + 3-х осевого акселерометра GY-521 на чипе MPU-6050. Позволяет определить положение и перемещение объекта в пространстве, угловую скорость при вращении. Так же имеет встроенный датчик температуры. Используется в различных коптерах и авиамоделях, так же на основе этих датчиков можно собрать систему захвата движений.

Микросхема - MPU-6050
Напряжение питания - от 3,5V до 6V (DC);
Диапазон гироскопа - ± 250 500 1000 2000 ° / с
Диапазон акселерометра - ± 2 ± 4 ± 8 ± 16g
Интерфейс связи - I2C
Размер - 15х20 мм.
Вес - 5 г


Подходит!

Также пригодится датчик вибраций. Вдруг автомобиль попытаются вскрыть «грубой силой», ну или на парковке другой автомобиль заденет вашу машинку. Возьмём датчик вибраций SW-420 (регулируемый).


Основные характеристики SW-420

Напряжение питания - 3.3 - 5В
Выходной сигнал - цифровой High/Low (нормально закрытый)
Используемый датчик - SW-420
Используемый компаратор - LM393
Размеры - 32x14 мм
Дополнительно - Есть регулировочный резистор.


Подходит!

Прикрутим модуль SD карты памяти. Будем ещё писать лог-файл.


Основные характеристики модуля SD карты памяти

Модуль позволяет хранить, читать и записывать на SD карту данные требуемые для работы прибора на основе микроконтроллера. Применение устройства актуально при хранении файлов от десятков мегабайт до двух гигабайт. На плате размещен контейнер SD карты, стабилизатор питания карты, вилка соединителя линий интерфейса и питания. Если требуется работать с звуковыми, видео или другими объемными данными, например, вести журнал регистрации событий, данных датчиков или хранить информацию веб-сервера, то модуль SD карты памяти для Arduino даст возможность применить SD карту для этих целей. С помощью модуля можно изучить особенности работы SD карты.
Напряжение питания - 5 или 3,3 В
Объем памяти SD карты - до 2 Гбайт
Размеры - 46 х 30 мм


Подходит!

И добавим сервопривод, при срабатывании датчиков будет поворачиваться сервопривод с видеорегистратором и снимать видео происшествия. Возьмём сервопривод MG996R.


Основные характеристики сервопривода MG996R

Стабильная и надежная защита от повреждений
- Металлический привод
- Двухрядный шарикоподшипник
- Длина провода 300 мм
- Размеры 40х19х43мм
- Масса 55 гр
- Угол поворота: 120 град.
- Рабочая скорость: 0.17сек/60 градусов (4.8В без нагрузки)
- Рабочая скорость: 0.13сек/60 градусов (6В без нагрузки)
- Пусковой момент: 9.4кг/см при питании 4.8В
- Пусковой момент: 11кг/см при питании 6В
- Рабочее напряжение: 4.8 - 7.2В
- Все детали привода выполнены из металла


Подходит!

Собираем

Про подключение каждого датчика в «гугле» огромное количество статей. И придумывать новые велосипеды у меня желания нет, поэтому оставлю ссылки на простые и рабочие варианты.
 


Читайте:



Завершился вывод войск ссср из афганистана

Завершился вывод войск ссср из афганистана

В 1987 году в Афганистане начала осуществляться политика национального примирения, принятая и одобренная на Пленуме ЦК НДПА в декабре 1986 года....

Новое направление: инноватика Сложно ли учиться на инноватике

Новое направление: инноватика Сложно ли учиться на инноватике

Предоставляют массу возможностей для выбора профессионального направления. Многие из предметов и направлений обозначены достаточно непонятными...

К чему снится племянница

К чему снится племянница

Учеными было установлено, что чаще всего, людям снится о любимых родственниках сон. Племянник, привидевшийся во время ночного отдыха, может...

Репейник: толкование сновидения

Репейник: толкование сновидения

Сонник репейник толкует как символ стремления к особой защищенности от возможных неприятностей. Сон, в котором вы видели одиноко стоящий куст,...

feed-image RSS