Организация соединения и обмен данными по Bluetooth между Arduino и iOS-приложением

Создание устройств с применением технологии bluetooth, возможность их использования как один из компонентов "умного дома". Краткое описание способа их использования в создании электронного замка на основе открытой платформы Arduino и iOS-приложения.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 24.05.2017
Размер файла 18,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

СТАТЬЯ ПО ТЕМЕ:

ОРГАНИЗАЦИЯ СОЕДИНЕНИЯ И ОБМЕН ДАННЫМИ ПО BLUETOOTH МЕЖДУ ARDUINO И IOS-ПРИЛОЖЕНИЕМ

Трушин Александр Николаевич,

Арутюнян Мартирос Геннадьевич

Московский государственный технический университет имени Н.Э. Баумана, студент факультета «Информатика и системы управления»

Московский государственный машиностроительный университет (МАМИ), студент Института информационных технологий, факультета «Информатика и вычислительная техника»

Аннотация В статье описывается создание устройств с применением технологии bluetooth, возможность их использования как один из компонентов "умного дома" и описание способа их использования в создании электронного замка на основе платы Arduino и iOS-приложения.

Ключевые слова: Apple, Arduino, Bluetooth, code, command, Daemon, development, iOS, код, команда, разработка, управляющая программа

Предисловие

Развитие технологий позволило уместить на одной небольшой плате несколько системных устройств, устройство получило название микроконтроллер. Одним из таких монокристаллических микрокомпьютеров является Arduino, которое состоит из микроконтроллера, установленного на печатной плате и минимально необходимых компонентов для работы. Для создания нового электронного устройства понадобится плата Arduino, кабель связи и компьютер. Для программного обеспечения в виде управляющей программы базовые знания варианта языка С/С++ для микроконтроллеров, поскольку добавлены компоненты, разрешающие писать программы без знания аппаратной части [1 Стр.18-19].

1. Обмен данными через bluetooth

Фактически модуль Bluetooth -- это модем, поскольку он преобразует сигнал из одной среды в другую. Передаваемый электроимпульсами по проводникам последовательный TTL-сигнал преобразуется в радиосигнал в Bluetooth приёмопередающем устройстве и наоборот, из радиосигнала преобразует в электроимпульсный сигнал. Функция модема -- устанавливать соединение с другими модемами для обмена информацией и разъединения канала связи. Для выполнения функций соединения в модемы заложено два рабочих режима:

командный - обмен информацией при данном режиме происходит с самим модемом;

режим данных - обмен информацией происходит через сам модем.

Модемы Bluetooth по своему принципу работы аналогичны любым другим типам модемов и в них заложен набор команд протокола Hayes АТ, аналогичный для телефонных модемов. Команды данного протокола прописываются в символах ASCII. Модемы на протоколе Hayes АТ работают в режиме данных и командном, переключение режимов осуществляется строкой +++ [2].

2. Микроконтроллеры и управление приложением

Микроконтроллер -- микросхема с несколькими контактами «вход» и «выход». Управление через микросхему осуществляется по простейшему принципу и имеет три основных этапа:

1) к входам подключаются различные датчики, фиксирующие движение, звук, уровень освещения и т. д.

2) к выходам подключаются устройства управления, такие как системы освещения, динамики, электроприводы и т. д.

3) пишется программа управления микроконтроллером и приложением.

Управляющая программа:

#include <SPI.h> 

#include <SD.h>

Const int chipSelect = 4;

Void

setup()

{

/* Open serial communications and wait for port to open: */

Serial.begin(9600);

while (!Serial) {} /* wait for serial port to connect. Needed for Leonardo only */

Serial.print(“Initializing SD card…”);

/* see if the card is present and can be initialized: */

if (!SD.begin(chipSelect)) {

Serial.println(“Card failed, or not present”);

// don't do anything more:

return;

}

Serial.println(“card initialized.”);

}

Void

loop()

{

// make a string for assembling the data to log:

String dataString = “”;

// read three sensors and append to the string:

for (int analogPin = 0; analogPin < 3; analogPin++) {

int sensor = analogRead(analogPin);

dataString += String(sensor);

if (analogPin < 2) {

dataString += “,”;

}

}

3. Arduino

умный дом bluetooth аrduino

Arduino -- открытая платформа, состоящая из платы микроконтроллера и программного обеспечения (ПО) - IDE (Integrated Development Environment). ПО для платы пишется в приложениях на компьютере и через канал соединения с платой загружается на устройство.

Основа программы под Arduino состоит из двух команд: setup() и loop(). Перед командой setup() пишутся переменные, задействуются библиотеки. Команда setup() выполняется только один раз после каждого подключения или сброса платы под управлением Arduino. Данная команда запускает переменные и работу портов входа и выхода платы. Данная команда обязательна для управляющей программы. Команда loop() предназначена для циклического выполнения команд, которые прописываются в её теле. Пример реализации данных команд в программе:

setup()

{

Serial.begin(9600);

}

loop ()

{

Serial.println(millis());

delay(1000);

}

[1стр.47]. 

Набор кодов, сгруппированный в блок и имеющий имя, прописанное на данном коде, называется функцией. Выполнение набора кодов осуществляется при вызове функции. Для снижения ошибок в программе и выполнения повторяющихся команд прописываются различные функции. При написании функции в начале обозначается её предназначение. К примеру, значение, которое возвращается функцией - целое число (int). У функций, которые не возвращают значение, имеют тип - пусто (void). За функцией пишется её имя и в скобках параметры передаваемые функцией. К примеру:

type functionName (parameters)

{

statements;

}

К цельному типу относится функция задержки или паузы delay(Val).

Скобки {} ставятся в начале и в конце функций. К примеру:

type function()

{

statements;

}

Количество открывающих скобок должно быть равным количеству закрывающих, иначе будут критические ошибки в программе. В Arduino есть удобная функция проверки парности скобок. Осуществляется проверка двумя способами: при выделении любой одной скобки парная скобка высвечивается, выделение точки за скобкой также подсвечивает пару скобок [3].

Обмен данными микроконтроллера с компьютером происходит через проводной интерфейс или по радиосигналу, обмен информацией осуществляется через библиотеку. В Arduino установлены стандартные библиотеки, но иногда их функции не рассчитаны на работу управляемым через микроконтроллер оборудованием. При необходимости устанавливаются дополнительные библиотеки. В папке “Libraries” установлены стандартные библиотеки, дополнительные библиотеки устанавливаются в папку libraries.

4. Arduino и iOS-приложение 

Для того чтобы интегрировать Arduino с Apple (iPad или iPhone) понадобится приложение Arduino Code и среда разработки Blynk[4]. Arduino Code устанавливается на iPad или iPhone через данное приложение осуществляется интеграция устройств iOS и Arduino. Для написания управляющей программы платы Arduino будет использоваться Blynk. Помимо облачной среды для работы, у Blynk есть возможностью загрузки приложений на компьютер. Поскольку в Blynk для разработки имеются версии для iOS помимо Android, данное приложение было выбрано для интеграции с Apple. Немаловажно, что Blynk может связываться с устройствами по Bluetooth.

На первом этапе соединяем программируемую плату со смартфоном, через поддерживаемые интерфейсы: SeeedStudio Ethernet Shield V2.0 (W5200), Official Ethernet Shield (W5100), RN-XV WiFly, ESP8266, Official Arduino WiFi Shield, ESP8266 (WiFi modem), Adafruit CC3000 WiFi, ENC28J60 и USB (Serial). Интеграция Arduino с компьютерами Macintosh (Apple) осуществляется через меню Tools. Далее в меню выбирается строка Serial Port, далее подключение осуществляется через порт, у которого название начинается с /dev/cu.usbserial. На втором этапе в приложении добавляем виджеты (программы), настройку адресов выводов и при необходимости прописываем код. Для разработки виджета применяется drag'n'drop. В Blynk создаются программы к платам Arduino: Due, Mini, Uno и для других плат Arduino. Программа Arduino Code устанавливается на компьютер и для написания команд понадобится автодополнение (code complete). Приложение можно скачать из App Store'а. При загрузке программы на плату Arduino необходимо отключить Bluetooth модуль, поскольку связь с микроконтроллером осуществляется через один и тот же порт. В качестве источника питания для микроконтроллера будет использоваться блок питания на 9 Вольт. Также в приложении Arduino Manager есть возможность установить готовый widget. Для управления устройством замка подойдёт widget Rotary Switch. Этот widget по своей сути поворотный переключатель (как и следует из названия). Имеет два положения off/on. Простой и удобный widget для управления устройством, у которого только два режима закрыто/открыто.

Создаём электронный замок из серии “умный дом”

Для соединения платы Arduino будет использоваться плата Bluetooth HM-10. Данный модуль работает в режимах Master и Slave. Совместим с более старыми версиями под Arduino, такими как: HC-05;-06;-07. Для того чтобы устройства Apple могли обнаруживать Bluetooth сигнал от платы необходимо установить программу -- LightBlue.

К плате под управлением Arduino подключаем привод, который будет управлять ригелем замка или электромагнитную задвижку, которая и будет выполнять функцию запирания двери. В данном случае программа управления будет негромоздкой и выглядеть следующим образом:

#include <Servo.h>

Servo myservo;

int pos = 0;

void

setup() {

myservo.attach(10); /* Назначаем 10 пин на управление приводом */

}

Void

loop() {

for(pos = 0; pos < 90; pos += 1)/* движение от 0° до 90° */

{

myservo.write(pos);

delay(25); /* Указываем время с задержкой (25 мс) для перехода в другое положение */

}

for(pos = 90; pos > 0; pos -= 1) /* Движение от 90° до 0° */

{

myservo.write(pos);

delay(25); /* задержка 25мс для достижения обратного положения */

}

}

Связь будет осуществляться через приложение Arduino Manager, которое напрямую управляет контроллером через операционную систему iOS. При необходимости меняем настройку скорости подключения платы Bluetooth HM-10.

// Connect HM10 

// Pin 7/TXD

// Pin 8/RXD 

#if defined(ARDUINO_AVR_UNO)

#include <SoftwareSerial.h>

SoftwareSerial mySerial(7, 8); // TX, RX

#endif

#if defined(ARDUINO_AVR_MEGA2560)

#define mySerial Serial3

#endif

#define DEVICE_SPEED 9600

#define CONSOLE_SPEED 9600

Void

setup() {

Serial.begin(CONSOLE_SPEED);

pinMode(7, OUTPUT);

pinMode(8, INPUT);

mySerial.begin(DEVICE_SPEED);

Serial.println(“Ready”);

}

Void

loop() {

char c;

if (Serial.available()) {

c = Serial.read();

mySerial.print(c);

}

if (mySerial.available()) {

c = mySerial.read();

Serial.print(c);

}

}

Выводы

Для создания подобного запорного механизма, несомненно, понадобится плата Arduino, сервоприводы и написание управляющей программы и других компонентов в зависимости от поставленной задачи. Управление устройством будет осуществляться на iPad или iPhone по Bluetooth через приложение Arduino Manager. Данное приложение загружается с App Store и предназначено для управления множеством устройств. Имеет лёгкую настройку управления и датчик обратной связи. Генератор кода позволяет создавать коммуникационную инфраструктуру связи между платой Arduino и устройством iOS и генерировать код для каждого выбранного устройства. Также есть возможность воспользоваться готовым widget-ом, для управления устройством.

Arduino даёт возможность экспериментировать и применять данный микроконтроллер для различных устройств. Приложение Arduino Manager управлять этими устройствами с iPad или iPhone.

Библиографический список

1. Проекты с использованием контроллера Arduino. Петин В. А. Санкт-Петербург «БХВ-Петербург» 2014 г. Стр. 18-19. Стр. 47.

2. Arduino, датчики и сети для связи устройств. Пер. с англ. -- 2-е изд. -- СПб.: БХВ-Петербург, 2015. Стр. 102.

3. Arduino блокнот программиста. Brian W. Evans. Published: First Edition Auqust 2007 г. Стр. 9-10.

4. Blynk облачная среда для разработки виджетов для iOS и Android. Ресурс сетевого доступа: http://www.blynk.cc/

Размещено на Allbest.ru


Подобные документы

  • Представление о системе Arduino. Структура платформы Android. Выбор средств разработки. Разработка структур данных и алгоритмов. Характеристика Bluetooth модуля, блок реле, резисторов, диодов. Графический интерфейс приложения. Написание кода программы.

    дипломная работа [4,0 M], добавлен 19.01.2017

  • Беспроводный метод передачи данных bluetooth, выделение его основных свойств, преимуществ и принципов работы. Технические аспекты и набор базовых протоколов технологии bluetooth, основные направления применения технологии и характеристика конкурентов.

    реферат [1,3 M], добавлен 19.11.2014

  • Беспроводные технологии и классификация беспроводных сетей, принципы их построения. Концепция и основные положения Bluetooth - первой технологии, позволяющей организовать беспроводную персональную сеть передачи данных, принцип его работы и использование.

    курсовая работа [1011,7 K], добавлен 11.12.2014

  • Основные свойства беспроводной технологии Bluetooth. Типы соединений между устройствами. Уровень немодулированной передачи. Структура кадра, набор протоколов. Технология скачкообразной смены рабочей частоты большой скорости. Упреждающая коррекция ошибок.

    курсовая работа [1,1 M], добавлен 09.05.2014

  • Bluetooth - производственная спецификация беспроводных персональных сетей: принцип действия, устойчивость к широкополосным помехам, схемы кодирования. Технология обмена информацией между ПК и мобильными телефонами на доступной частоте для ближней связи.

    лекция [183,6 K], добавлен 15.04.2014

  • Обзор мультимедиа-устройств с поддержкой USB и Bluetooth. Разработка структурной и функциональной схем устройства. Возможности его аппаратной модернизации. Разработка печатной платы устройства. Расчет схемы подключения питания и USB входа к AT91SAM7SE.

    дипломная работа [749,0 K], добавлен 18.06.2010

  • Возможности платформы Arduino. Загрузка микроконтроллера прерываниями. Подтягивающие (нагрузочные) резисторы. Аналого-цифровой преобразователь, цоколевка. Прерывание по таймеру, память. Библиотеки Servo, SPI, Stepper. Комбинация фазы синхронизации.

    курсовая работа [53,4 K], добавлен 23.12.2014

  • Історія створення і розвитку Bluetooth. Створення невеликих локальних мереж і безпровідного об'єднання пристроїв. Принцип роботи за принципом "крапка-крапка" та багатоточковий радіоканал, керований багаторівневим протоколом мобільного зв'язку GSM.

    курсовая работа [978,2 K], добавлен 04.06.2010

  • Анализ GPS-навигаторов для животных. Использование плат и среды программирования Arduino для разработки ошейника с GPS-навигатором для отслеживания маршрута, проделанного животным, и уведомления об этом пользователя. Выбор модели микроконтроллера.

    курсовая работа [2,4 M], добавлен 18.10.2015

  • Информационные технологии и виртуальные туры в туризме. Построение диаграмм вариантов использования, последовательности, классов и компонентов. Описание таблиц базы данных. Реализация структуры интерфейса и квестов. Основные принципы работы с приложением.

    дипломная работа [1,4 M], добавлен 12.08.2017

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.