Оглавление:

Система сигнализации обнаружения движения: 11 шагов (с изображениями)
Система сигнализации обнаружения движения: 11 шагов (с изображениями)

Видео: Система сигнализации обнаружения движения: 11 шагов (с изображениями)

Видео: Система сигнализации обнаружения движения: 11 шагов (с изображениями)
Видео: Сигнализация из Мышки учует движение за километр! 2024, Июль
Anonim
Система сигнализации обнаружения движения
Система сигнализации обнаружения движения

Примечание! Реактивные блоки больше не доступны для загрузки. Для обнаружения движения в комнате можно использовать обычную USB-камеру. В следующих шагах мы покажем вам, как можно использовать реактивные блоки для программирования готового к запуску приложения Java, которое отправляет SMS или электронную почту при обнаружении движения. С помощью Reative Blocks вы создаете приложения Java SE, чтобы приложение сигнализации можно было развернуть на любой машине с Java SE и подключенной или интегрированной камерой. Приложение легко развертывается на Pi, поскольку в выпуске Raspbian предустановлен Oracle Java..

Это то, что вам нужно:

  1. Raspberry Pi Model B + с ОС Raspbian
  2. Стандартная USB-камера
  3. сетевой кабель
  4. Экран и клавиатура для Pi
  5. Компьютер Windows или MAC с JDK
  6. Примечание! Реактивные блоки больше не доступны для загрузки. Для программирования приложения вам понадобится подключаемый модуль Reactive Blocks для Eclipse.

Это приложение сигнализации является одним из нескольких модифицируемых примеров систем, доступных после установки Reactive Blocks. Приложение готово к запуску сразу после установки, и вам не потребуются какие-либо навыки программирования на Java, чтобы пройти обучение. Чтобы создавать свои собственные приложения и строительные блоки Reactive Blocks, вам нужно быть опытным программистом на Java. При создании более сложных приложений с несколькими датчиками и исполнительными механизмами Reactive Blocks упрощает получение правильной логики и потока данных. Reactive Blocks бесплатен для проектов с открытым исходным кодом.

Шаг 1. Установите реактивные блоки

Реактивные блоки больше не выпускаются

Шаг 2. Загрузите приложение из библиотек

Загрузите приложение из библиотек
Загрузите приложение из библиотек

Убедитесь, что вы открыли перспективу «Реактивные блоки» и находитесь в представлении «Блоки». В представлении «Блоки» нажмите кнопку импорта и выберите «Справочные приложения». Выберите проект обнаружения движения. На этом этапе вам будет предложено зарегистрироваться с идентификатором Google. Это даст вам немедленный доступ к библиотекам строительных блоков, а также к модифицируемым системам и руководствам.

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

Шаг 3: приложение на верхнем уровне

Приложение на верхнем уровне
Приложение на верхнем уровне

Этот шаг дает объяснение приложения. На первом рисунке показана диаграмма того, как полное приложение выглядит на верхнем уровне. Он состоит из 7 строительных блоков; 5 стандартных строительных блоков из библиотек и 2 индивидуальных блока, которые были созданы для этого приложения.

Стандартные блоки из библиотеки IoT:

  • Граббер, захватывает изображения с USB-камеры
  • Обнаружение движения, выполняет фактическое обнаружение изображения
  • Периодический таймер запускается с точных отметок времени и посылает сигнал на тиковый штифт каждый период.
  • Buffer Eager автоматически выталкивает первый элемент в очереди. Буфер гарантирует, что в блок отправки SMS отправляется только одно сообщение, поскольку он может обрабатывать только одно сообщение за раз.
  • SMS Send Buffered, отправляет SMS через службу Twilio. Отправляемые элементы помещаются в буфер, чтобы гарантировать, что за раз отправляется только одно сообщение.
  • Ограничитель, чтобы избежать слишком большого количества SMS при обнаружении злоумышленника.
  • Чтение файла свойств Java, чтение данных конфигурации из входного файла
  • Просмотр, просмотр изображения на экране.

Блок Periodic Timer работает как системный двигатель. Он будет периодически выдавать галочку, которая посылает сигнал блоку Grabber через захват. Блок Grabber использует Open Intelligent Multimedia Analysis для Java, OpenIMAJ. При инициализации блока запускается отдельный поток для чтения данных с камеры. Поток прослушивает очередь команд. Когда блок получает команду через штифт захвата, он делает одно изображение и доставляет его на штифт изображения.

Затем изображение передается в блок обнаружения движения, который выполняет фактическое обнаружение изображения. Блок обнаружения движения также использует OpenIMAJ. Метод в этом блоке сравнивает два изображения и помечает изменения в изображении при обнаружении движения. Этот метод очень загружает процессор и должен выполняться в отдельном потоке. Когда изображение обнаруживается, оно сигнализируется контактом motionDetected, который запускает генерацию SMS-сообщения.

Голубые прямоугольники - это все методы Java, специально созданные для этого приложения. Щелчок по блоку метода открывает редактор Java.

Когда вы нажимаете на строительный блок, вы можете увидеть детали логики внутри блока. Если вы, например, заглянете внутрь блока ReadConfig, вы увидите, что он сделан путем объединения одного существующего стандартного блока и 4 методов Java.

Ограничитель устанавливает ограничение на количество генерируемых сообщений. Обратите внимание на букву P в правом углу строительного блока. Он указывает на то, что вы можете установить минимальное значение того, как долго приложение должно ждать, прежде чем оно отправит новое SMS. Значение по умолчанию - 300000 мс, т. Е. 5 минут. Чтобы изменить значение. Щелкните блок правой кнопкой мыши и выберите параметры и универсальные шаблоны.

Шаг 4. Включите SMS

Включить SMS
Включить SMS

Это приложение для сигнализации использует Twilio в качестве службы SMS. Чтобы включить SMS, вы должны отредактировать файл config / alarm-system.properties. Вы можете найти его в представлении проводника пакетов в разделе br.ref.motiondetection, см. Рисунок.

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

Если у вас нет службы Twilio, вы можете изменить приложение, чтобы использовать свою собственную службу SMS. У нас также есть готовый к использованию строительный блок для сервиса Clickatell. Или вы можете подключить модем для отправки СМС.

Вы можете найти строительные блоки для электронной почты SMTP, AirVantage Cloud, IBM Bluemix и Xively, и это лишь некоторые из них.

Обратите внимание, что для внесения изменений вам необходимо сначала создать собственный проект. Затем скопируйте / продублируйте приложение во вновь созданный проект. Вы можете увидеть, как это делается, здесь:

Не стесняйтесь обращаться ко мне, если вам понадобится помощь

Шаг 5: Создайте и запустите приложение на своем ноутбуке

Создайте и запустите приложение на своем ноутбуке
Создайте и запустите приложение на своем ноутбуке

Вам необходимо собрать приложение, прежде чем запускать его, и развернуть его на Raspberry Pi. Это делается с помощью генератора кода Reactive Blocks, который создает полный Java-проект из структуры строительных блоков. Код, представляющий диаграммы, представляет собой код синхронизации, который обрабатывает события в правильном порядке и в нужное время и обычно составляет более 60% строк кода в вашей программе. Поскольку строительные блоки представляют собой точные математические структуры, генератор может преобразовать эту логику в очень эффективный код. Это очень хорошая функция реактивных блоков, потому что писать такой код вручную утомительно и сложно. Все, что вам нужно сделать, чтобы сгенерировать код:

Щелкните правой кнопкой мыши проект Alarm System SMS на вкладке "Проекты" и выберите "Стандартная версия Java". Убедитесь, что информация для регистрации - это ИНФОРМАЦИЯ. Сгенерированный проект автоматически откроется на вкладке Package Explorer. Смотрите рисунок для деталей.

Шаг 6: Запустите приложение на вашем компьютере

Запустите приложение на вашем компьютере
Запустите приложение на вашем компьютере
Запустите приложение на вашем компьютере
Запустите приложение на вашем компьютере

Теперь вы можете выполнить сгенерированный проект. В представлении Package Explorer под созданным проектом _exe щелкните правой кнопкой мыши AlarmSystemSMS.launch и выберите RunAs, а затем выберите AlarmSystemSMS.

Следите за окном на экране и представлением консоли. Должно получиться примерно так, как на второй картинке.

Закройте приложение, закрыв окно камеры.

Для приложения отправки электронной почты: если вы получаете ошибку аутентификации, убедитесь, что отправка SMTP разрешена для вашей электронной почты. См. Устранение неполадок в нижней части руководства по электронной почте:

Шаг 7. Экспорт в виде исполняемого файла JAR

Экспорт как исполняемый файл JAR
Экспорт как исполняемый файл JAR

Если вы хотите запустить приложение на Raspberry Pi, следующим шагом будет экспорт сгенерированного проекта в исполняемый файл JAR. Для этого щелкните правой кнопкой мыши исполняемый проект в представлении проводника пакетов и выберите экспорт. Затем выберите параметр «Запускаемый файл JAR» и нажмите «Далее». В следующем окне выберите правильную конфигурацию запуска и место для экспорта. В месте назначения экспорта используйте кнопку обзора, чтобы поместить файл.jar в место, где его можно будет найти.

Шаг 8: подготовьте Raspberry Pi

  • Подготовьте SD-карту с помощью Raspbian (мы тестировали с помощью NOOBS)
  • Вставьте SD-карту в Raspberry pi
  • Подключите камеру
  • Подключите сеть
  • Подключите экран и клавиатуру к Pi
  • Запустите Raspberry pi, подключив микро-USB для питания.
  • Узнайте IP-адрес своего Raspberry Pi. При запуске ваш Raspberry Pi сообщит что-то вроде «Мой IP-адрес - 10.10. 15.107».
  • Мы тестировали Raspbian (логин по умолчанию: pi, пароль: raspberry), который по умолчанию включает Java.

Шаг 9: Разверните приложение на Raspberry Pi

Чтобы скопировать исполняемый файл jar с вашего компьютера на Rapsberry Pi, выполните следующие действия:

  • Откройте терминал на вашем компьютере
  • Перейдите в каталог, в котором находится сгенерированный файл JAR.
  • Введите scp alarmsystem.jar [email protected]: ~ /
  • Вам будет предложено ввести комбинацию пароля. «пи» - это имя пользователя по умолчанию, а «малина» - пароль по умолчанию.
  • Перейдите в каталог, в котором находится файл конфигурации alarm_system.properties. Для меня проще всего вручную скопировать файл из редактора Eclipse в тот же каталог, что и файл jar.
  • Введите scp motiondetection.ini [email protected]: ~ /

10.10.15.107 - это IP-адрес, замените его IP-адресом вашего Raspberry Pi.

- Конечно, вы также можете использовать карту памяти, чтобы скопировать ее на Pi

Шаг 10: запустите приложение на Raspberry Pi

Теперь вы готовы запустить приложение.

  • Войдите в Raspberry Pi напрямую или удаленно через ssh.
  • Создайте новый каталог конфигурации: mkdir config
  • Убедитесь, что исполняемый файл JAR и.ini скопированы в Raspberry Pi.
  • Переместите файл.ini в каталог конфигурации: mv alarm_system.properties config /
  • Введите sudo java -jar alarmsystem.jar.
  • Следите за выводом на консоли
  • Завершить с помощью ^ C

Шаг 11: Измените свое приложение

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

Обратите внимание, что для внесения изменений вам необходимо сначала создать собственный проект. Затем скопируйте / продублируйте приложение во вновь созданный проект. Вы можете увидеть, как это делается, здесь:

Следуйте инструкциям по IoT Tuturial, чтобы получить пошаговые инструкции по созданию или изменению конкретных приложений Reactive Blocks.

Рекомендуемые: