Статьи

Охранная сигнализация с отправкой SMS и электронной почты с вашего устройства IoT

Уведомления по телефону — хороший способ получать уведомления о необычной активности. Когда мы разрабатываем IoT-решение, всегда полезно отправлять SMS на телефон пользователя для определенных действий, поскольку смартфоны всегда в пределах досягаемости. Пользователь не всегда может отслеживать данные с помощью мобильного приложения или веб-сайта. Если они получат уведомление об определенной деятельности или внезапном изменении данных, они узнают об этом вовремя и могут немедленно проверить это с помощью мобильного приложения и могут предпринять дальнейшие шаги.

Ранее отправка SMS с помощью микроконтроллера была немного неуклюжим процессом, вы должны создать учетную запись у поставщика SMS-услуг, такого как Twilio, а затем использовать некоторые каналы IoT, такие как Thingspeak, Temboo и IFTTT. Много работы! Но теперь, когда устройства IoT становятся мощными, появляются новые революционные облачные сервисы IoT. Они нацелены на то, чтобы с легкостью переносить ваши данные в облако. Одним из облаков IoT, которое я недавно использую в своих проектах, является Ubidots. Лучшая вещь о Ubidots, это удобно для пользователя. Перенос вашего решения IoT в облако не займет много времени. Убидоц визуализируют ваши данные лучше. Вы даже можете отслеживать местоположения с помощью GPS-виджета, все, что вам нужно, это просто отправить данные с помощью простого API.

С Ubidots мы можем легко настроить, при каких условиях должно срабатывать оповещение. Мы можем установить пороги любого типа с помощью простых операторов «ЕСЛИ — ТО». После того, как событие инициировано, оно отправит электронное письмо или SMS-сообщение, уведомляющее кого-либо о конкретном событии, или вы можете выполнить любую другую задачу, например, инициировать другое действие.

Давайте создадим простой проект с системой охранной сигнализации с Intel Edison, который обнаружит любое вторжение и уведомит вас с помощью SMS или электронной почты. Я использую библиотеку Ubidot Node.Js и программирую на Node.Js с версией Intel XDK IoT.

Если у вас есть плата Intel Galileo и программирование с использованием Arduino IDE или вы хотите узнать больше о ИК-датчике и его работе, ознакомьтесь с другой моей статьей « Охранная сигнализация с ИК-датчиком движения ».

Требования

  • Модуль Intel Edison
  • Плата расширения Arduino
  • ИК-датчик
  • Зуммер
  • Светодиод
  • USB-кабель
  • Источник питания
  • Соединительные кабели

Создание связей и программирование

  1. Подключите Edison к источнику питания и к компьютеру через USB-кабель.
  2. Загрузка займет 15-20 секунд, после чего сложите Grove Base Shield.
  3. Подключите ИК-датчик движения к аналоговому контакту D2.
  4. Подключите зуммер к штырю с ШИМ, я подключил к D5.
  5. Подключите светодиод к контакту D3.
  6. Откройте версию Intel XDK IoT, если она еще не установлена ​​на вашем ПК, получите ее отсюда. Если у вас был установлен Edison с помощью Flash Lite Tool Node.Js, он будет уже установлен на вашей плате.
  7. Подключите IDE к вашей плате Edison. Он попросит вас ввести имя пользователя и пароль, имя пользователя по умолчанию — root без пароля.
  8. Выберите пустой шаблон Node.JS и создайте новый проект.

Код для ИК-датчика

//Load Grove Motion module
 var grove_motion = require('jsupm_biss0001');
 // Instantiate a Grove Motion sensor on GPIO pin D2
 var myMotionObj = new grove_motion.BISS0001(2);
 setInterval(function()
 {
 if (myMotionObj.value())
 {
 BlinkLED();
 melody();
 v.saveValue(1);
 console.log("Detecting moving object");
}
 else
 console.log("No moving objects detected");
 v.saveValue(0);
 }, 1000);
// Print message when exiting
 process.on('SIGINT', function()
 {
 console.log("Exiting...");
 process.exit(0);
 });

                                                           

Отправка данных в Убидотс

 var ubidots = require('ubidots');
var client = ubidots.createClient('YOUR-API-KEY');

client.auth(function() {
this.getDatasources(function(err, data) {
console.log(data.results);
});
var ds = this.getDatasource('xxxxxxxx');

ds.getVariables(function(err, data) {
console.log(data.results);
});
ds.getDetails(function(err, details) {
console.log(details);
});

var v = this.getVariable('xxxxxxx');

v.getDetails(function(err, details) {
console.log(details);
});
v.getValues(function(err, data) {
console.log(data.results);
});
}

Создание триггеров с убидотами

  1. Войдите в свой аккаунт Ubidots или создайте его здесь .
  2. Выберите вкладку « Источники », а затем нажмите « Добавить источник данных », чтобы создать новый источник данных. Здесь я добавил Мой Эдисон.
  3. После добавления источника данных мы добавим наш ИК-датчик. PIR датчик движения — это цифровой датчик, он только обнаруживает движение. Он не определяет расстояние и количество людей. Следовательно, если движение обнаружено, я посылаю 1 еще 0 убидотам.                                                  
  4. Нажмите на переменную и скопируйте идентификатор переменной. Вставьте это в свой код и получите ключ API My Profile, затем API Keys.
  5. Теперь мы будем создавать события. Выберите вкладку «Событие», нажмите «Добавить событие».
  6. Выберите источник данных и переменную. В нашем случае это My Edison и PIR Sensor.                                               
  7. Теперь он представит вам простое утверждение if — then. Здесь мы должны выбрать значение датчика PIR и действие, которое должно быть запущено.                                                           
  8. Мы отправляем 1, если ИК-датчик обнаруживает движение, поэтому для запуска действия наше значение должно быть равно 1. Нажмите «Продолжить».

Теперь нам нужно добавить триггер, мы можем отправить SMS или электронное письмо, установить другую переменную или запросить пользовательский URL. Давайте выберем SMS на данный момент.

                                                           

  1. Введите данные, такие как номер телефона и сообщение для отправки.
                                                  
  2. Событие SMS будет добавлено со значением датчика PIR, равным 1. Аналогичным образом вы можете добавить триггер электронной почты.                                                                                                                              
                                                              

Теперь мы добавили адрес электронной почты и триггер SMS. Создайте, загрузите и запустите свой код на Edison. Вы заметите отправку данных в Ubidots в консоли. Если PIR-датчик движения обнаружит какое-либо движение, он начнет мигать светодиодом, включит зуммер, и на ваш телефон будет отправлено SMS-сообщение.