Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Сигнализация для рюкзака

Компоненты и расходные материалы

Arduino UNO
× 1
Трехкоординатный акселерометр Adafruit + плата магнитометра (компаса) - LSM303
× 1
Большой пьезоэлектрический будильник SparkFun - 3 кГц
× 1
Батарея 9 В (стандартная)
× 1
Гнездовой аудиоразъем 6,35 мм (переключаемый)
Необязательно
× 1
аудиоразъем 6,35 мм
Необязательно
× 1
Провода перемычки "папа / мама"
× 1
9 В для разъема Barrel Jack
× 1

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте

Вы когда-нибудь испытывали потребность в ранцевом сигнализаторе? Вы когда-нибудь садились в общественном месте со своим рюкзаком и боялись, что кто-то его украдет? Если да, то этот проект для вас!

Используя компас / акселерометр LSM303, этот проект подает сигнал тревоги при перемещении рюкзака. Он использует компас для отслеживания ориентации, и когда есть движение более чем на 10 градусов, он подает сигнал тревоги.

Шаг 1. Подключите Arduino

Подключите коммутационную плату LSM303 к Arduino следующим образом:

  • ПДД - ПДД
  • SDL - SDL
  • VIN - 5v
  • GND - GND

Для получения дополнительной информации ознакомьтесь с руководством Adafruit.

Подключите пьезозуммер к Arduino следующим образом:

  • + к контакту 13
  • - к GND

Шаг 2. Установите библиотеки

Загрузите библиотеки Adafruit_LSM303DLHC и Adafruit_Sensor в виде zip-файлов.

Откройте IDE Arduino. Если у вас его нет, скачайте здесь.

Перейдите в "Скетч"> "Включить библиотеку"> "Добавить .ZIP-библиотеку ...

".

Затем найдите и выберите файлы .ZIP, которые вы скачали ранее.

Шаг 3. Запрограммируйте Arduino

Откройте IDE Arduino и создайте новый файл. Удалите все, что уже есть, и вставьте следующий код.

  // Включаем библиотеки #include  #include  #include  #include  // Регулируем чувствительность const int sens =10; / / Назначьте уникальный идентификатор этому датчику одновременно Adafruit_LSM303_Mag_Unified mag =Adafruit_LSM303_Mag_Unified (12345); void setup (void) {// Только для отладки //Serial.begin(9600); //Serial.println("Starting ... "); // Настройка вывода 13 pinMode (13, OUTPUT); // Инициализируем датчик if (! Mag.begin ()) {// При обнаружении LSM303 возникла проблема ... проверьте ваши соединения digitalWrite (13, HIGH); задержка (500); digitalWrite (13, LOW); задержка (500); digitalWrite (13, ВЫСОКИЙ); задержка (500); digitalWrite (13, LOW); задержка (500); в то время как (1); } // Ждем 5 секунд задержки (5000); // Оповещение при запуске digitalWrite (13, HIGH); задержка (500); digitalWrite (13, LOW);} // функция для получения значения датчика int getDeg (void) {// Получение нового события датчика sensor_event_t event; mag.getEvent (&событие); поплавок Pi =3,14159; // Вычислить угол вектора y, x float heading =int ((atan2 (event.mintage.y, event.mintage.x) * 180) / Pi); // Нормализуем до 0–360 if (заголовок <0) {заголовок =360 + заголовок; } return heading;} void loop (void) {// получить значения датчиков int oldDeg =getDeg (); задержка (1000); int newDeg =getDeg (); if (newDeg <(oldDeg-sens) &&oldDeg! =0 &&newDeg! =0) {// подавать сигнал тревоги digitalWrite (13, HIGH); // Только для отладки //Serial.println("Triggered "); //Serial.println (""); } else if (newDeg> (oldDeg + sens) &&oldDeg! =0 &&newDeg! =0) {// подавать сигнал тревоги digitalWrite (13, HIGH); // Только для отладки //Serial.println("Triggered "); //Serial.println (""); } // Только для отладки //Serial.print("New:"); //Serial.println(newDeg); //Serial.print("Old:"); //Serial.println(oldDeg); //Serial.println ("");}  

Подключите Arduino, затем скомпилируйте и загрузите код.

Шаг 4. Протестируйте!

Если вы все сделали правильно, после нажатия кнопки сброса на Arduino вы должны услышать несколько звуковых сигналов, 3 секунды тишины, а затем более длинный звуковой сигнал. Если вы повернете прорыв LSM303, вы должны услышать включение будильника. Если датчик слишком чувствителен, просто увеличьте значение переменной 'sens' в коде вверху. Если вы хотите большей чувствительности, уменьшите значение переменной «sens».

Если вы получите 2 длинных звуковых сигнала до 3-секундной задержки, значит, с вашей проводкой возникли проблемы. Проверьте все соединения.

Если это не работает, возможно, библиотеки неправильно названы. В коде удалите инструкции '#include' в начале. Затем перейдите в Sketch> Include Library и выберите библиотеки Wire, Adafruit LSM303DLHC и Adafruit Unified Sensor. Если после всего этого он по-прежнему не работает, убедитесь, что рядом с вами нет сильных магнитных полей. Идите в другую комнату или на улицу. Кроме того, убедитесь, что коммутационная плата расположена ровно и параллельно земле.

Шаг 5. Добавьте ключ

Теперь у вас должен быть рабочий проект, просто подключите батарею 9 В к гнезду на вашем Arduino, установите ее в рюкзак, и все будет в порядке. Однако отключение и повторное включение батареи каждый раз, когда вы хотите включить / выключить будильник, немного раздражает. Вот где в игру вступает 6,35-мм аудиоразъем. Вместо разъема 3,5 мм, который у большинства людей есть в наушниках, использование разъема 6,35 мм повышает безопасность. Однако, если у вас есть кнопочный переключатель или какой-либо другой переключатель, который вы хотите использовать вместо него, не стесняйтесь делать это.

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

Если у вас есть один из них, просто отрежьте один из проводов, при необходимости добавьте удлинительные провода и добавьте переключатель. В моем случае у меня есть цилиндрический разъем клеммной колодки, и я подключил его с помощью этого. Поскольку я не слишком беспокоюсь о безопасности, мой ключ - это просто тумблер, но вы можете проявить творческий подход. Используйте геркон и магнит, RFID или даже приложение для смартфона!

Шаг 6. Установите его!

Поздравляю! Теперь у вас есть полностью работающая сигнализация с ключом. Все, что вам нужно сделать, это положить его в рюкзак. Вырежьте сбоку отверстие для зуммера и отверстие для замочной скважины. Я использовал стяжки-молнии, но можно использовать более прочное решение. Убедитесь, что датчик установлен параллельно земле и отверстие в зуммере ничем не закрыто.

Идем дальше

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

Код

  • Код
Код Arduino
Код Arduino
 // Включаем библиотеки #include  #include  #include  #include  // Регулируем чувствительность const int sens =10; // Одновременно назначьте этому датчику уникальный идентификатор Adafruit_LSM303_Mag_Unified mag =Adafruit_LSM303_Mag_Unified (12345); void setup (void) {// Только для отладки //Serial.begin(9600); //Serial.println("Starting ... "); // Настройка вывода 13 pinMode (13, OUTPUT); // Инициализируем датчик if (! Mag.begin ()) {// При обнаружении LSM303 возникла проблема ... проверьте ваши соединения digitalWrite (13, HIGH); задержка (500); digitalWrite (13, LOW); задержка (500); digitalWrite (13, ВЫСОКИЙ); задержка (500); digitalWrite (13, LOW); задержка (500); в то время как (1); } // Ждем 5 секунд задержки (5000); // Оповещение при запуске digitalWrite (13, HIGH); задержка (500); digitalWrite (13, LOW);} // функция для получения значения датчика int getDeg (void) {// Получение нового события датчика sensor_event_t event; mag.getEvent (&событие); поплавок Pi =3,14159; // Вычислить угол вектора y, x float heading =int ((atan2 (event.mintage.y, event.mintage.x) * 180) / Pi); // Нормализуем до 0–360 if (заголовок <0) {заголовок =360 + заголовок; } return heading;} void loop (void) {// получить значения датчиков int oldDeg =getDeg (); задержка (1000); int newDeg =getDeg (); if (newDeg <(oldDeg-sens) &&oldDeg! =0 &&newDeg! =0) {// подавать сигнал тревоги digitalWrite (13, HIGH); // Только для отладки //Serial.println("Triggered "); //Serial.println (""); } else if (newDeg> (oldDeg + sens) &&oldDeg! =0 &&newDeg! =0) {// подавать сигнал тревоги digitalWrite (13, HIGH); // Только для отладки //Serial.println("Triggered "); //Serial.println (""); } // Только для отладки //Serial.print("New:"); //Serial.println(newDeg); //Serial.print("Old:"); //Serial.println(oldDeg); //Serial.println ("");} 

Схема

К компасу:
Синий - ПДД
Желтый - SDL
Черный - GND
Красный - VIN

Производственный процесс

  1. Отказоустойчивый дизайн
  2. Датчик движения, тревога, запись видео в HA на Raspberry Pi
  3. Сигнализация о воде Raspberry Pi 2 с t сапожником плюс
  4. Система сигнализации обнаружения движения
  5. Робот с подвижной сигнализацией
  6. Сигнал тревоги для растений, предупреждающий о жажде
  7. Система сигнализации Arduino:SERENA
  8. Проверка безопасности системы охранной сигнализации
  9. Ультразвуковой датчик с сигнализацией, ЖК-дисплеем и температурой
  10. Простой будильник с DS1302 RTC