Создайте пожарный извещатель за считанные минуты с помощью Samsung SAMIIO, Arduino UNO и Raspberry Pi
Давайте создадим IoT-устройство, которое отправляет данные датчика пламени в SAMI с помощью веб-сокетов SAMI. Устройство IoT состоит из стандартного датчика, Arduino UNO и Raspberry Pi.
В этой реализации простой манифест используется для быстрого создания нового типа устройства. Затем вы можете легко подключить устройство IoT к SAMI и начать отправку данных датчика с устройства в SAMI.
Предварительные требования
”’ Для этого урока вы должны быть знакомы с базовые SAMI API . ”’
Архитектура
На фиолетовой диаграмме ниже показана архитектура высокого уровня:
Мы используем следующие аппаратные компоненты:
- Raspberry Pi с сетевым подключением
- Arduino UNO с макетной платой
- ИК-датчик пламени
- USB-кабели и кабели питания, а также проводка для макетной платы.
Мы напишем следующее программное обеспечение:
- Программа Sketch, работающая на Arduino
- Скрипт Node.js, работающий на Raspberry Pi
Загрузите программное обеспечение сейчас.
”’ Если у вас нет Raspberry Pi, вы все равно можете изучить это руководство. Подключите Arduino UNO к компьютеру, у которого есть подключение к Интернету, и запустите сценарий Node.js на компьютере вместо Raspberry Pi ».
Шаг 1. Создайте и подключите новый тип устройства
Перейдите на портал разработчика, чтобы создать частный тип устройства.
- Сначала войдите на портал разработчиков SAMI. Если у вас нет учетной записи Samsung, вы можете создать ее на этом этапе.
- Нажмите «+ Новый тип устройства».
- Назовите этот тип устройства «Датчик пламени» и присвойте ему уникальное имя, например «com.example.iot.flame».
- Нажмите «Создать тип устройства». Будет создан тип устройства, и вы перейдете на страницу типов устройств.
Теперь давайте создадим манифест для нашего типа устройства «Датчик пламени».
- Нажмите «Датчик пламени» в левом столбце.
- Нажмите «Манифест», а затем «+ Новая версия».
- Введите «onFire» в качестве имени поля и «логическое» в качестве типа данных.
- Нажмите «Сохранить», а затем «Далее:Действия».
- Пропустите действия для этого руководства и нажмите «Сохранить новый манифест».
”’ Простой манифест утверждается автоматически. Не публикуйте этот тип устройства, поскольку он используется только в учебных целях ».
Наконец, перейдите на портал пользователя, чтобы подключить новое устройство датчика пламени:
- Войдите на портал пользователей SAMI.
- На панели управления нажмите, чтобы подключить новое устройство.
- Выберите только что созданный тип устройства «Датчик пламени».
- Нажмите «Подключить устройство…». Вы вернетесь на панель управления.
- Щелкните значок "Настройки" только что добавленного устройства. Во всплывающем окне нажмите «СОЗДАТЬ ЖЕТОН УСТРОЙСТВА…».
- Скопируйте идентификатор устройства и токен устройства на этот экран. Вы будете использовать их в коде.
Шаг 2. Настройте Arduino
Теперь давайте подключим датчики к Arduino.
Два датчика подключены, как на изображении Frizting выше.
Затем загрузите программу Sketch ( read_flame_sensor.ino ) в Arduino UNO с помощью Arduino IDE. Этот код считывает одно цифровое значение с ИК-датчика пламени, а затем отправляет его в последовательный порт каждые 5 секунд (вы можете изменить этот параметр в коде позже, поскольку SAMI имеет ограничения скорости для количества сообщений в день). Для цифровых значений «0» означает, что пожар обнаружен, а «1» означает, что возгорание нет.
Вот read_flame_sensor.ino . Код прост.
// Задержка между чтениями
const int delayBetweenReads =5000; // 5 с
// Для датчика пламени senso const int flameDigitalPinIn =2;
void setup () {
// инициализируем последовательную связь @ 9600 бод:
Serial.begin (9600);
pinMode (flameDigitalPinIn, INPUT);
}
void loop () {
// ВЫСОКИЙ (1) означает, что возгорания не обнаружено
// LOW (0) означает, что пожар обнаружен
int flameDigitalReading =digitalRead (flameDigitalPinIn); Serial.println (String (flameDigitalReading));
задержка (delayBetweenReads);
}
Шаг 3. Настройте Raspberry Pi
Подключите Raspberry Pi к монитору, мыши и клавиатуре. Убедитесь, что соединение Ethernet или WiFi работает, и убедитесь, что ОС обновлена:
- $ sudo apt-get update
- $ sudo apt-get upgrade
Если еще не установлен, установите Node.js для ARM, затем добавьте пакеты serialport и WS через npm:
- $ npm установить последовательный порт
- $ npm install ws
Теперь подключите последовательный порт от Arduino к USB на Raspberry Pi.
Наконец, загрузите код Node.js ( send_data_to_sami.js ) к Raspberry Pi. Замените заполнители в коде токеном устройства и идентификатором устройства, полученным с пользовательского портала.
Код Node.js также приведен ниже. Он устанавливает двунаправленное соединение WebSocket между Raspberry Pi и SAMI. После открытия соединения WebSocket, register () регистрирует устройство с помощью WebSocket. Каждый раз код считывает одну точку данных из последовательного порта, затем помещает ее в сообщение и отправляет сообщение в SAMI через WebSocket.
var webSocketUrl =«wss://api.samsungsami.io/v1.1/websocket? ack =true»;
var device_id =«»; var device_token =«»;
var isWebSocketReady =false; var ws =null;
var serialport =require («последовательный порт»)
var SerialPort =serialport.SerialPort;
var sp =new SerialPort («/ dev / ttyACM0», {
скорость передачи:9600,
парсер:serialport.parsers.readline («\ n»)
});
var WebSocket =require (‘ws’);
/ **
* Получает текущее время в миллисекундах
* /
функция getTimeMillis () {
вернуть parseInt (Date.now (). toString ());
}
Подробнее:Создайте пожарный извещатель за считанные минуты с помощью Samsung SAMIIO, Arduino UNO и Raspberry Pi
Производственный процесс
- Простой детектор детского плача своими руками с Raspberry Pi
- Аэропоника с Raspberry Pi и датчиком влажности
- Создание роботов с Raspberry Pi и Python
- Создайте своего робота для видеостриминга, управляемого через Интернет, с помощью Arduino и Raspberry Pi
- Часы Arduino с исламским временем молитв
- Управление роботом Roomba с помощью Arduino и устройства Android
- Отображение изображения на ЖК-экране TFT с помощью Arduino UNO!
- Управление серводвигателем с помощью Arduino и MPU6050
- u-blox LEA-6H 02 GPS-модуль с Arduino и Python
- Распознавание и синтез речи с помощью Arduino