Главная страница
Навигация по странице:

  • Исходный код и прочие электронные ресурсы Исходный код, видеоуроки и прочие электронные ресурсы для этой главы можно загрузить с веб-страницы https://www.exploringarduino.

  • Глава 16.

  • Стандарты и версии Bluetooth

  • Список деталей и оборудования для проектов этой главы

  • ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ А

  • ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 536 Дисплей семисегментный 513, 514Длина волны электромагнитного излучения 400Дребезг контактов 72, 335З

  • ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 538

  • ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 539 Резистор повышающий встроенный 160, 161Реле 413IoT Power Relay 416принцип работы 416С

  • учебник. Бхв, 2020. Isbn 9781119405375 (англ.) Isbn 9785977567367 (рус.) 2020 by John Wiley & Sons, Inc. Перевод на русский язык, оформление. Ооо бхвпетербург, Ооо бхв, 2020


    Скачать 1.9 Mb.
    НазваниеБхв, 2020. Isbn 9781119405375 (англ.) Isbn 9785977567367 (рус.) 2020 by John Wiley & Sons, Inc. Перевод на русский язык, оформление. Ооо бхвпетербург, Ооо бхв, 2020
    Анкоручебник
    Дата11.12.2022
    Размер1.9 Mb.
    Формат файлаpdf
    Имя файлаB-BHV-6735-part.pdf
    ТипКнига
    #838435
    страница7 из 8
    1   2   3   4   5   6   7   8
    Глава 15. Радиосвязь
    398
    На рынке предлагается большой выбор радиомодулей разных форм и разме- ров, но почти все они работают одинаково: когда на передатчике изменяется состояние одного выхода, на выходе приемника тоже появляется соответ- ствующий сигнал. По сути, это можно сравнить с однопроводной шиной, по которой за раз передается и принимается один бит информации. В этой главе мы познакомимся с основными принципами беспроводной связи, ограни- чившись простыми способами радиосвязи. В последующих двух главах мы расширим рассмотрение этой темы в область радиосвязи Bluetooth и Wi-Fi.
    Примечание
    Первое издание этой книги (выпущенное в 2013 г. издательством Wiley) содержало главу по радиосвязи с использованием радиомодулей XBee, которые работают, как беспро- водной последовательный канал. Но радиомодули XBee трудно настроить для правиль- ной работы, они дорого стоят и могут взаимодействовать только друг с другом. В этом издании я решил заменить эту главу двумя новыми главами по Bluetooth и Wi-Fi, по- скольку большинство пользователей находят их более полезными и доступными, чем радиомодули XBee. Также я добавил настоящую главу по простым радиоканалам, по- скольку она закладывает хорошую основу для понимания электромагнитного спектра и его значение для радиосвязи. Если же вы хотите научиться работать с радиомодулями
    XBee, я настоятельно рекомендую сначала ознакомиться с материалом этой главы, а за- тем просмотреть видеоруководство по работе с ними, которое можно найти по адресу
    blum.fyi/xbee-tutorial.
    ЭЛЕКТРОМАГНИТНЫЙ СПЕКТР
    Прежде чем приступать к рассмотрению работы радиосвязи, полез- но получить базовые знания научных принципов, на которых она основа- на. Электромагнитный спектр , наверное, является одним из самых важных аспектов нашей жизни, о котором мы никогда не задумываемся. Данный спектр определяет всю излучаемую во вселенной энергию от гамма-лучей ультравысокой частоты до низкочастотных радиоволн. Посередине спектра находится видимый свет, наиболее знакомый нам тип электромагнитного излучения. Свет от разных источников — солнца, осветительных ламп, све- тодиодов наших устройств на Arduino — воздействует на наши глаза в виде электромагнитного излучения. Подобно тому, как глаз воспринимает элек- тромагнитную энергию, которую затем наш мозг интерпретирует, как свет и извлекает из нее разную информацию, так и оснащенная «глазами» в виде радиоприемника плата Arduino может принимать электромагнитные излу- чения в виде радиоволн, а затем извлекать из них информацию. На рис. 15.1 приведено наглядное представление (созданное агентством НАСА) всех форм электромагнитных излучений.
    Все электромагнитные излучения передаются в виде волн определен- ной частоты, которые распространяются в вакууме со скоростью света

    16
    Беспроводная связь
    Bluetooth
    Список деталей и оборудования для проектов этой главы
    Плата Feather 32u4 Bluefruit LE (с впаянными разъемами) (1 шт.).
    USB-кабель (тип A на Micro-B) (1 шт.).
    Беспаечная макетная плата половинного или полного размера (1 шт.).
    Набор проволочных перемычек.
    Резистор номиналом 220 Ом (1 шт.).
    Подстроечный потенциометр номиналом 10 кОм (или другой анало- говый датчик по вашему выбору) (1 шт.).
    Светодиод красный диаметром 5 мм (1 шт.).
    Сетевой адаптер, 5 В, 1 А, выходной USB-разъем (1 шт.).
    Модуль управляемого силового реле (реле IoT Power Relay от компа- нии Digital Loggers, Inc.) (1 шт.).
    Лампочка с сетевым питанием (1 шт.).
    Небольшая отвертка (1 шт.).
    Смартфон с возможностями BTLE (iPhone или Android) (1 шт.).
    Исходный код и прочие электронные ресурсы
    Исходный код, видеоуроки и прочие электронные ресурсы для этой главы можно загрузить с веб-страницы https://www.exploringarduino.
    com/content2/ch16.
    Исходный код для проектов этой главы можно также загрузить на вкладке Downloads веб-страницы издательства Wiley для этой книги:
    https://www.wiley.com/go/exploringarduino2e.
    ЧТО ВЫ УЗНАЕТЕ ИЗ ЭТОЙ ГЛАВЫ
    С
    корее всего, вам очень быстро надоело передавать через простой радио- канал своей плате Arduino по одному биту информации за раз. Как мы знаем из опыта работы с ноутбуком, смартфоном или устройствами IoT, при наличии радиосвязи другого типа возможности могут быть намного бóльшими. В этой главе мы рассмотрим радиосвязь Bluetooth, которая яв- ляется наиболее распространенным стандартом беспроводной связи в мире.
    Разные варианты Bluetooth используются в гарнитурах, клавиатурах, мышах, компьютерах, смартфонах, радиомаяках и т.п.

    Глава 16. Беспроводная связь Bluetooth
    424
    ЧТО ТАКОЕ BLUETOOTH?
    В последнее время термин Bluetooth начали широко применять (часто не- правильно) для описания любой беспроводной связи малого радиуса дей- ствия между двумя узлами. В действительности разная реализация Bluetooth для различных типов устройств предусматривалась с самого начала. Это обстоятельство часто создает путаницу, когда говорят, что какое-либо устройство поддерживает Bluetooth. Поэтому, прежде чем рассматривать разработку программного обеспечения для Bluetooth, полезно ознакомить- ся с разными версиями и профилями Bluetooth, а также с соответствующей терминологией.
    Стандарты и версии Bluetooth
    Исходный стандарт Bluetooth (IEEE 802.15.1) был создан институтом IEEE
    (Institute of Electrical and Electronics Engineers — Институт инженеров по электротехнике и радиоэлектронике США); в настоящее время эта техноло- гия находится в ведении специальной группы SIG Bluetooth.
    Примечание
    Стандарт Bluetooth — только один из стандартов, разработанных и поддерживаемых институтом IEEE . В ведении этого института находятся также другие технологии, с ко- торыми вам, возможно, приходилось встречаться: Wi-Fi (IEEE 802.11); PoE (Power over
    Ethernet — питание через Ethernet, IEEE 802.3); стандарт POSIX, являющийся основой для обеспечения совместимости между разными версиями операционной системы UNIX
    (IEEE 1003); FireWire (IEEE 1394) и многие другие.
    Спецификация Bluetooth прошла через несколько этапов развития, когда шаг за шагом добавлялись новые возможности и улучшения. Первая версия, выпущенная в 1998 г., была в основном направлена на обеспечение беспро- водной альтернативы проводным каналам последовательной связи (таким же каналам последовательной связи, как и те, которые мы использовали в предыдущих главах для передачи сообщений с платы Arduino на компью- тер.) В вышедшей в 2004 г. версии Bluetooth 2.0 была добавлена возможность более высокой скорости передачи данных, что проложило дорогу Bluetooth в качестве цифрового канала для передачи аудио (возможно, наиболее зна- комое вам применение Bluetooth). Если вам когда-либо приходилось испы- тывать трудности, пытаясь выполнить сопряжение гарнитуры Bluetooth со своим смартфоном, то, возможно, вам будет легче, если узнаете, что трудно- сти испытывали не только вы. Исходная спецификация не содержала явной поддержки потокового аудио, поэтому интегрирование этой возможности в спецификации Bluetooth, а также в радиоустройства и процессоры, со- храняя при этом обратную совместимость, было для группы Bluetooth SIG

    Список деталей и оборудования для проектов этой главы
    Плата Adafruit Feather M0 Wi-Fi w/ATWINC1500 (с впаянной PCB- антенной) (1 шт.).
    USB-кабель (тип A на Micro-B) (1 шт.).
    Беспаечная макетная плата половинного или полного размера (1 шт.).
    Набор проволочных перемычек.
    Резистор номиналом 220 Ом (4 шт.).
    Резистор номиналом 4,7 кОм (2 шт.).
    Трехцветный (RGB) светодиод с общим анодом диаметром 5 мм (1 шт.).
    Пьезоэлектрический зуммер (1 шт.).
    Сетевой адаптер, 5 В, 1 А, выходной USB-разъем (необязательно) (1 шт.).
    Четырехразрядный 7-сегментный дисплей с интерфейсом I
    2
    C
    (30×14 мм, любого цвета) (1 шт.).
    Реквизиты доступа к сети Wi-Fi (и, факультативно, права администра- тора на доступ к маршрутизатору).
    Исходный код и прочие электронные ресурсы
    Исходный код, видеоуроки и прочие электронные ресурсы для этой главы можно загрузить с веб-страницы https://www.exploringarduino.
    com/content2/ch17.
    Исходный код для проектов этой главы можно также загрузить на вкладке Downloads веб-страницы издательства Wiley для этой книги:
    https://www.wiley.com/go/exploringarduino2e.
    ЧТО ВЫ УЗНАЕТЕ ИЗ ЭТОЙ ГЛАВЫ
    В
    от мы и достигли конечной темы этой книги. Подключение платы Arduino к Интернету можно сравнить, пожалуй, только с запуском ее в космос, чтобы сделать весь мир своей игровой площадкой.
    В общем и целом возможность связи по Интернету — чрезвычайно слож- ная тема. О том, как лучше всего выполнить сопряжение платформы Arduino с Интернетом вещей (IoT
    1
    ), можно с легкостью написать целые тома.
    1
    Англ.
    Internet of Th
    ings. — Прим. пер.
    17
    Wi-Fi и облачные хранилища

    Глава 17. Wi-Fi и облачные хранилища
    466
    Но поскольку невозможно рассмотреть все существующие способы со- пряжения платы Arduino с Всемирной сетью, в этой главе мы ограничимся взаимодействием платы Arduino (или любого другого устройства IoT) через интерфейс локальной сети. Также мы узнаем, как с помощью платы Arduino, оснащенной возможностью радиосвязи Wi-Fi, раздавать веб-страницы и ра- ботать с облачными данными. В частности, мы рассмотрим составные уров- ни сетевой топологии, процесс раздачи веб-страниц, а также выясним, как взаимодействовать с интерфейсом прикладного программирования (API) сторонних разработчиков.
    РАБОТА ARDUINO В СЕТИ
    Изложить все подробности работы Интернета в одной главе затрудни- тельно, поэтому для ознакомительных целей взаимодействие Arduino с
    Интернетом можно, по сути, рассматривать, как показано на рис. 17.1.
    Сначала мы рассмотрим работу только в пределах нашей локальной сети.
    При работе в локальной сети взаимодействие с платой Arduino через брау- зерный интерфейс возможно только в том случае, когда как Arduino, так и браузер подключены к одному и тому же маршрутизатору (по проводному или беспроводному каналу). А затем мы исследуем, как можно с помощью маршрутизатора получить доступ к плате Arduino из любой точки мира (по крайней мере, оттуда, где есть Интернет).
    Сетевая терминология
    Прежде чем приступать к рассмотрению работы с Arduino в Сети, озна- комимся с соответствующей терминологией. Далее приведен краткий список слов, понятий и сокращений, которые нужно усвоить, чтобы работать с ма- териалом этой главы.
    Рис. 17.1. Упрощенное представление Сети и локальной сети
    Интернет
    Лок альная с ет ь
    Модем
    Маршрутизатор
    Плата
    Arduino
    Компьютер с проводным подключением
    Компьютер с беспроводным подключением

    ПРЕДМЕТНЫЙ
    УКАЗАТЕЛЬ
    А
    Адрес
    IP
    глобальный 468
    локальный 468
    шлюза 495
    MAC 468
    Акселерометр микросхема LIS3DH 277
    трехосевой ADXL335 93
    Амплитуда волны 170
    Амплитудная манипуляция 403
    Аналого-цифровой преобразователь,
    АЦП 86
    Антенна несимметричная четвертьволновая 404
    Архитектура микроконтроллера
    8-разрядная 37 32-разрядная 37
    ARM 38
    AVR 37
    Б
    Библиотека
    Adafruit BTLE SPI 431
    Adafruit GFX 516
    Adafruit LED Backpack 516
    Adafruit LIS3DH Library 286
    Adafruit nRF5 430
    Adafruit Unifi ed Sensor Library 286
    Adafruit Universal Sensor 289
    JSON 502
    LiquidCrystal 300, 303, 305, 306
    Mouse.h 226
    RTClib 374, 381
    SD 360, 366
    Servo.h 144, 146
    Stepper.h 157, 158
    TimerOne 343, 344
    WiFi101 by Arduino 473
    Wire 256, 257, 259
    Бит 84
    Булевы переменные 75
    В
    Веб-сервер 471
    Версия Bluetooth
    2.0 424, 425 3.0 425 4.0 425
    Волатильная переменная 342
    Д
    Дальномер инфракрасный Sharp 92
    Данные регистратор 352
    тип данных 61
    unsigned long 163
    Датчик температуры
    AD7414 251
    TC74A0-5.0VAT 250
    TMP36 93
    Делитель напряжения резистивный 97
    Диапазон радиочастот ISM 401
    Диод заграждающий 109
    Директива
    RoHS 99
    препроцессора 375

    ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
    536
    Дисплей семисегментный 513, 514
    Длина волны электромагнитного излучения 400
    Дребезг контактов 72, 335
    З
    Заголовок ответа 481
    Загрузчик 40, 41
    Закон Ома 57, 58
    Запись в файл на SD-карте 364
    Запрос GET 485
    И
    Излучение электромагнитное длина волны 400
    частота 400
    Индикатор хода выполнения 308
    Институт IEEE 424, 469
    Интернет-подключение 425
    Интерфейс
    Web-API 498
    Facebook 499
    Git Hub 498
    Google Maps 498
    NASA 499
    Phillips Hue 499
    назначение 501
    К
    Карты
    MicroSD 353
    SD 353
    Клиент 470
    Ключевое слово
    (byte) 308, 311
    LED_BUILTIN 51
    Код ответа
    404 481
    HTTP 481
    Кодер поворотный 332
    Команда analogWrite() 64
    AT 433
    df 358
    digitalRead() 71
    digitalWrite() 52
    GET 469
    ipconfi g 496
    mkdosfs 359
    ping 479
    pinMode() 50, 51
    POST 469
    sudo 359
    unmount 358
    Wire.beginTransmission() 261
    Wire.endTransmission() 261
    Wire.requestFrom() 261
    Wire.write() 261
    Комментарии многострочные 50
    однострочные 50
    Компания
    Atmel 36, 37
    Digital Loggers, Inc. 416
    JeeLabs 374
    Maxim Integrated 372
    Microchip 36, 37
    Nordic Semiconductor 426
    NXP Semiconductors 372
    PJRC 344
    Конденсатор развязывающий 127
    Короткое замыкание 116
    Корпус, тип
    DIP 529
    SMD 529
    Коэффициент заполнения сигнала 65
    Л
    Линия
    MISO 273
    MOSI 273
    SCLK 273
    SS 275
    Логический оператор ИЛИ 76
    М
    Макетная плата беспаечная 55
    Маршрутизатор администрирование 495

    ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 537
    Микроконтроллер
    ATmega
    16U2 190 32U4 439 328P 525
    Cortex M0 471
    архитектура
    8-разрядная 37 32-разрядная 37
    AVR 37, 38
    Микросхема
    H-моста L293D 117
    nRF5 430
    WiFi WINC1500 473, 475
    акселерометра LIS3DH 277
    гироскопа L3GD20H 297
    датчика температуры
    AD7414 251
    TC74A0-5.0VAT 250
    преобразователя
    USB/RS-232 CP2104 187
    сдвигового регистра
    74HC595 232
    стабилизатора напряжения
    L7805CV 127
    триггера Шмитта
    74AHCT14 340
    часов реального времени
    DS1307 372
    PCF8523 372
    Миллиампер 58
    Многозадачность 332
    Модификатор F() 375, 432
    Модуляция цифровых сигналов 402
    широтно-импульсная 54, 64
    Мощность номинальная 59
    уравнение 59
    Н
    Напряжение опорное 86
    электросети 414
    О
    Облако 467
    Объект
    DateTime 382
    Serial 198
    Объявление переменной 61
    Оператор
    != 75
    <= 62
    #ifdef 381
    if() 71
    if...else 71
    include 146
    Keyboard.begin() 220
    return 76
    инверсии 76
    присваивания 75
    П
    Панель администрирования маршрутизатора 495
    Переменная булева 75
    волатильная 340
    объявление 61
    Период сигнала 67
    Плата
    Adafruit METRO 328 534
    Arduino
    Due 37
    Feather 45, 427, 471
    Mega ADR 192
    Mega 2560 41
    MKR1000 51
    Seeeduino Lite 216
    Photon 45
    Uno 41
    макетная беспаечная 55
    Порт
    RS-232 186
    перенаправление 497
    последовательный компьютера 48
    переадресация 493

    ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
    538
    Преобразование NAT 468
    Препроцессор директива 375
    определение FORCE_UPDATE 381
    Прерывание Arduino запуск 334
    процедура обработки 333
    Приложение
    Adafruit Bluefruit LE Connect 440, 442,
    452, 453
    Провод заземления 415
    нулевой 415
    фазный 415
    Программа alternate.ino 236
    arduino_read_pot.ino 208
    bargraph.ino 243
    blink.ino 62
    BTLE_led.ino 447, 457
    BTLE_sensor.ino 435
    car.ino 132
    chronograph.ino 164
    debounce.ino 74
    entrance_logger.ino 387
    fun_with_sound.ino 347
    hbridge.ino 123
    hw_multitask.ino 341
    lamp_remote.ino 416
    LCD_progress_bar.ino 308
    LCD_text.ino 305
    LCD_thermostat.ino 321
    led.ino 60
    lightrider.ino 240
    list_control.ino 204
    lock_computer.ino 222
    motor.ino 113
    motor_pot.ino 115
    mouse.ino 224
    music.ino 179
    nightlight.ino 101
    piano.ino 183
    pot.ino 89, 193
    read_temp.ino 259
    rf_test.ino 407
    rgb_nightlight.ino 78
    sd_read_write.ino 369
    sd_read_write_rtc.ino 375
    stepper.ino 157
    sweep.ino 149
    timer1.ino 344
    web_weather_display.ino 518
    web_weather.ino 509
    write_to_sd.ino 365
    загрузчика Arduino 38
    последовательной связи PuTTY 197
    Программатор AVRISP mkII 39
    Проект OpenWeatherMap 499
    Протокол
    Android Open Accessory 192
    DHCP 470
    FTP 426
    HTTP 469
    HTTPS 426
    I2C 248
    SMBus 248
    SMTP 426
    безопасности
    WPA 477
    WPA2 477
    Профиль
    Bluetooth
    A2DP 426
    GATT 426
    HID 454
    Прошивка для WINC1500 475
    Р
    Радиомодули XBee 398
    Радиоспектр 400
    Реализация Bluetooth
    Classic 425
    Low Energy 425
    BTLE 425
    Регистр сдвиговый 230
    Регистратор данных 352
    Режим транзистора насыщения 109
    шины SPI 273

    ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 539
    Резистор повышающий встроенный 160,
    161
    Реле 413
    IoT Power Relay 416
    принцип работы 416
    С
    Светодиод падение напряжения 58
    рабочий ток 58
    трехцветный 77
    Сервер DNS 470
    Сервопривод 140
    управление 141
    Сигнал коэффициент заполнения 65
    период 67
    скважность 65
    тактовый полярность 273
    частота 343
    цифровой модуляция 402
    Система
    DNS 468
    глобального позиционирования GPS
    278
    Служба
    HID Keyboard 454, 455
    DNS 426
    Сопряжение Bluetooth 454
    Состояние «плавающее» 68
    Спектр электромагнитный 398
    Специальный символ новой строки 194
    табуляции 194
    Спецификатор const 61
    Стабилизатор напряжения 127
    Статор 107
    Т
    Таймер Timer1 343
    Типы данных 61
    Ток утечки 70
    Триггер Шмитта 338
    У
    Управление сервоприводом 141
    Уравнение мощности 59
    Утилита JSON Pretty Printer 504
    Ф
    Файл
    CSV 353
    log.csv 365
    pitches.h 174
    заголовочный pitch.h 173
    типа CSV 217
    Формат
    FAT16 354
    FAT32 354
    JSON 501
    Фоторезистор 98
    Функция analogRead() 88
    analogReference() 94
    attachInterrupt() 340
    boolean debounce (boolean last) 75
    cmd.toLowerCase() 443
    constraint() 100, 101
    createChar() 307
    debounce() 76, 317
    delay() 52, 329
    digitalPinToInterrupt() 333, 340
    digitalRead() 71, 184
    digitalWrite() 73
    forward() 123
    indexOf() 444
    isConnected() 432
    Keyboard.press() 223
    Keyboard.print() 221
    Keyboard.println() 221
    Keyboard.releaseAll() 223
    loop() 60
    map() 100, 101
    millis() 163

    1   2   3   4   5   6   7   8


    написать администратору сайта