Съдържание:

Алармена система за откриване на движение: 11 стъпки (със снимки)
Алармена система за откриване на движение: 11 стъпки (със снимки)

Видео: Алармена система за откриване на движение: 11 стъпки (със снимки)

Видео: Алармена система за откриване на движение: 11 стъпки (със снимки)
Видео: САМО В NEWS24sofia.eu TV! Пуснаха от ареста известните влогъри Анди и Дани 2024, Ноември
Anonim
Алармена система за откриване на движение
Алармена система за откриване на движение

Забележка! Reactive Blocks вече не е наличен за изтегляне. Основна USB камера може да се използва за откриване на движение в една стая. В следващите стъпки ще ви покажем как можете да използвате реактивни блокове за програмиране на готово за изпълнение Java приложение, което изпраща SMS или имейл при откриване на движение. С Reactive Blocks правите Java SE приложения, така че аларменото приложение може да бъде внедрено на всяка машина с Java SE и свързана или интегрирана камера. Приложението лесно се разгръща на Pi, тъй като изданието Raspbian има предварително инсталиран Oracle Java..

Това е, от което се нуждаете:

  1. Raspberry Pi Model B+ с Raspbian OS
  2. Стандартна USB камера
  3. Ethernet кабел
  4. Екран и клавиатура за Pi
  5. Windows или MAC компютър с JDK
  6. Забележка! Reactive Blocks вече не е наличен за изтегляне. Ще ви трябват реактивни блокове, приставка Eclipse, за да програмирате приложението.

Това приложение за аларма е една от няколкото модифицируеми примерни системи, които са достъпни, след като инсталирате реактивни блокове. Приложението е готово да изтече от кутията и няма да ви трябват никакви умения за програмиране на Java, за да завършите урока. За да създадете свои собствени приложения за реактивни блокове и градивни елементи, трябва да сте опитен Java програмист. При изграждането на по -сложни приложения с няколко сензора и задвижващи механизми, реактивните блокове улесняват правилната логика и потока от данни. Reactive Blocks е безплатен за проекти с отворен код.

Стъпка 1: Инсталирайте реактивни блокове

Реактивните блокове са прекратени

Стъпка 2: Изтеглете приложението от библиотеките

Изтеглете приложението от библиотеките
Изтеглете приложението от библиотеките

Уверете се, че сте отворили перспективата за реактивни блокове и че сте в изгледа Блокове. От изгледа Блокове изберете бутона за импортиране и изберете Референтни приложения. Изберете проекта за откриване на движение. В този момент ще бъдете помолени да се регистрирате с google ID. Това ще ви даде незабавен достъп до библиотеките на градивните блокове и модифицираните системи и уроци.

Проектът за откриване на движение, който сте изтеглили, включва три приложения, SMS на алармената система, имейл на алармената система и тестово приложение Тестовото откриване на движение. В този урок ще ви преведем чрез SMS на алармената система. Ако предпочитате да изпращате имейл, можете да направите същите стъпки с имейла на алармената система

Стъпка 3: Приложението на най -високо ниво

Приложението на най -високо ниво
Приложението на най -високо ниво

Тази стъпка дава обяснение на приложението. Първата снимка показва диаграмата как изглежда пълното приложение на най -високо ниво. Състои се от 7 градивни блока; 5 стандартни градивни блока от библиотеките и 2 блока по поръчка, направени за това приложение.

Стандартните блокове от библиотеката на IoT са:

  • Граббер, хваща изображения от USB камерата
  • Откриване на движение, извършва действителното откриване на изображение
  • Периодичен таймер, стартира с точни часови марки и изпраща сигнал на щифта за отметка всеки период.
  • Buffer Eager, автоматично изтласква първия елемент от опашката. Буферите гарантират, че само едно съобщение се изпраща до блока за изпращане на SMS, тъй като той може да обработва само едно съобщение наведнъж.
  • SMS Изпратете буферирано, изпраща SMS чрез услугата Twilio. Елементите, които трябва да бъдат изпратени, се буферират, за да се гарантира, че едновременно се изпраща само едно съобщение.
  • Ограничител, за да се избегне твърде много SMS при откриване на нарушител.
  • Прочетете файла със свойства на Java, чете конфигурационни данни от входния файл
  • Преглед, преглед на изображение на екрана.

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

След това изображението се предава на блока за откриване на движение, който извършва откриването на действителното изображение. Блокът за откриване на движение също използва OpenIMAJ. Метод в този блок сравнява две изображения и ще маркира промените в изображението, когато се открие движение. Методът е много интензивен за процесора и трябва да се изпълнява в отделна нишка. Когато се открие изображение, то се сигнализира на pinDetected, което ще задейства генерирането на SMS съобщение.

Светлосините кутии са всички Java методи, специално създадени за това приложение. Щракването върху блок с методи отваря редактора на Java.

Когато щракнете върху градивен елемент, можете да видите подробностите за логиката вътре в блока. Ако например погледнете вътре в блока ReadConfig, ще видите, че е направен чрез комбиниране на един съществуващ градивен елемент и 4 Java метода.

Ограничителят поставя ограничение за количеството генерирани съобщения. Забележете P в десния ъгъл на градивния блок. Това показва, че можете да зададете минималния интервал за това колко дълго трябва да чака приложението, преди да изпрати нов SMS. Настройката по подразбиране е 300000ms, т.е. 5 минути. За да промените стойността. Щракнете с десния бутон върху блока и изберете параметри и генерични данни.

Стъпка 4: Активирайте SMS

Активиране на SMS
Активиране на SMS

Това приложение за аларма използва Twilio като SMS услуга. За да активирате SMS, трябва да редактирате файла config/alarm-system.properties. Можете да го намерите в изгледа на изследователя на пакети под br.ref.motiondetection, вижте снимката.

Този файл е същият файл, използван в имейла на алармената система. Ако предпочитате известия по имейл, ще използвате това приложение и ще редактирате файла с вашите идентификационни данни за имейл.

Ако нямате услугата Twilio, можете да промените приложението, така че да използва вашата собствена SMS услуга. Също така имаме готов за използване градивен елемент за услугата Clickatell. Или можете да прикачите модем за изпращане на SMS.

Можете да намерите градивни елементи за SMTP имейл, AirVantage Cloud, IBM Bluemix и Xively, за да назовем само няколко.

Имайте предвид, че за да направите промени, първо трябва да направите свой собствен проект. След това копирайте/дублирайте приложението във вашия новосъздаден проект. Можете да видите как се прави това тук:

Не се колебайте да се свържете с мен, ако имате нужда от помощ

Стъпка 5: Създайте и стартирайте приложението на вашия лаптоп

Създайте и стартирайте приложението на вашия лаптоп
Създайте и стартирайте приложението на вашия лаптоп

Трябва да създадете приложението, преди да го стартирате, и да го разгърнете в Raspberry Pi. Това става с помощта на генератора на код на Reactive Blocks, който създава цялостен Java проект от структурата на градивните блокове. Кодът, който представлява диаграмите, е кодът за синхронизация, който обработва събития в правилния ред и в точното време и обикновено представлява повече от 60% от редовете на кода във вашата програма. Тъй като градивните елементи са прецизни математически структури, генераторът може да трансформира тази логика в много ефективен код. Това е много хубава функция за реактивни блокове, защото писането на такъв код ръчно е досадно и трудно. За да генерирате кода, това е всичко, което трябва да направите:

Щракнете с десния бутон върху SMS на алармената система на проекта в раздела Проекти и изберете Стандартно издание на Java. Уверете се, че информацията за регистрация е INFO. След това генерираният проект ще се отвори автоматично в раздела Package Explorer. Вижте фигурата за подробности.

Стъпка 6: Стартирайте приложението на вашия компютър

Стартирайте приложението на вашия компютър
Стартирайте приложението на вашия компютър
Стартирайте приложението на вашия компютър
Стартирайте приложението на вашия компютър

Сега можете да изпълните генерирания проект. В изгледа на Package Explorer под генерирания проект _exe щракнете с десния бутон върху AlarmSystemSMS.launch и изберете RunAs и след това изберете AlarmSystemSMS.

Гледайте прозореца на екрана и изгледа на конзолата. Трябва да изглежда като втората снимка.

Прекратете приложението, като затворите прозореца на камерата.

За приложението за изпращане на имейл: Ако получите грешка при удостоверяване, уверете се, че изпращането на SMTP е разрешено за вашия имейл. Вижте отстраняване на неизправности в долната част на урока по имейл:

Стъпка 7: Експортирайте като стартиращ JAR файл

Експортирайте като JAR файл, който може да се изпълнява
Експортирайте като JAR файл, който може да се изпълнява

Ако искате да стартирате приложението на Raspberry Pi, следващата стъпка е да експортирате генерирания проект в работещ JAR файл. За да направите това, щракнете с десния бутон върху изпълнимия проект в изгледа на изследователя на пакети и изберете експортиране. След това изберете опцията Runnable 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, парола: малинка), който по подразбиране включва Java.

Стъпка 9: Разгърнете приложението на вашия Raspberry Pi

За да копирате стартиращия jar файл от компютъра си в Rapsberry Pi, изпълнете следните стъпки:

  • Отворете терминал на вашата машина
  • Отидете в директорията, където се намира генерираният JAR файл
  • Въведете scp alarmsystem.jar [email protected]: ~/
  • Ще бъдете помолени за комбинацията от пароли. "pi" е потребителското име по подразбиране, а "raspberry" - паролата по подразбиране
  • Отидете в директорията, където се намира конфигурационният файл 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, за да получите стъпка по стъпка описания как да създавате или променяте конкретни приложения за реактивни блокове.

Препоръчано: