Оглавление:

Простой мост от Wi-Fi к BLE (Bluetooth с низким энергопотреблением): 9 шагов (с изображениями)
Простой мост от Wi-Fi к BLE (Bluetooth с низким энергопотреблением): 9 шагов (с изображениями)

Видео: Простой мост от Wi-Fi к BLE (Bluetooth с низким энергопотреблением): 9 шагов (с изображениями)

Видео: Простой мост от Wi-Fi к BLE (Bluetooth с низким энергопотреблением): 9 шагов (с изображениями)
Видео: DFRobot FireBeetle ESP32 2024, Июль
Anonim
Простой мост от Wi-Fi к BLE (Bluetooth с низким энергопотреблением)
Простой мост от Wi-Fi к BLE (Bluetooth с низким энергопотреблением)
Простой мост от Wi-Fi к BLE (Bluetooth с низким энергопотреблением)
Простой мост от Wi-Fi к BLE (Bluetooth с низким энергопотреблением)
Простой мост от Wi-Fi к BLE (Bluetooth с низким энергопотреблением)
Простой мост от Wi-Fi к BLE (Bluetooth с низким энергопотреблением)

Обновление от 4 декабря 2017 г. - исправленные скетчи Feather nRF52 и советы по отладке. Добавлены фотографии моста, установленного в коробке

Этот простой проект обеспечивает Wi-Fi доступ к любому модулю Bluetooth Low Energy (BLE), который реализует UART Nordic с TX Notify. Мост Wifi2BLE полностью прозрачный. Он просто передает данные WiFi на устройство BLE и передает данные устройства BLE обратно в соединение WiFi.

Бесплатный pfodDesignerV3 генерирует код для реализации Nordic UART Service во многих модулях BLE, включая Adafruit Bluefruit Feather nRF52, Arduino / Genuino 101, RedBearLab BLE Nano V2 и V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend и Flora Boards., Adafruit Bluefruit LE SPI (то есть Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE или Bluefruit LE SPI Friend) и любые другие доски, которые позволяют вам программировать свой собственный сервис.

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

Помимо подробного тестирования каждой платы, это руководство включает шаг «Справка - это не работает» с дополнительными советами по поиску неисправностей.

Эти инструкции также доступны в Интернете.

Почему этот проект?

Этот проект решает ряд проблем, присущих BLE (Bluetooth Low Energy).

  • Только последние модели мобильных телефонов и компьютеров поддерживают BLE. Мост Wifi2BLE позволяет любому мобильному устройству или компьютеру с подключением Wi-Fi подключаться к устройству BLE и управлять им.
  • BLE имеет ограниченный диапазон. Мост Wifi2BLE позволяет вам получить доступ к устройству BLE из любой точки дома (где есть WiFi-соединение) и извне через Интернет.
  • Для создания приложений BLE вы должны изучить Android или iOS. Мост Wifi2BLE обеспечивает универсальное соединение Telnet через любую терминальную программу. Более того, вы можете легко добавить веб-страницу в модуль WiFi, чтобы создать свой собственный интерфейс.
  • BLE V5 обещает ячеистую сеть для подключения всех ваших домашних устройств BLE, как только программное обеспечение будет соответствовать последней спецификации Bluetooth. Мост Wifi2BLE использует устройство BLE V5 и поэтому предоставит доступ в Интернет к этой домашней сети, когда она появится.

Мое непосредственное использование в этом проекте - добавить управление освещением BLE в гостиной к сети Wi-Fi, чтобы можно было управлять им из любой точки дома. Хотя в этом руководстве pfodApp используется в качестве примера управления платами BLE через Wi-Fi, вам не нужно покупать pfodApp для завершения этого проекта.

Шаг 1: Список деталей

Стоимость ~ 60 долларов США по состоянию на 30 ноября 2017 года, без учета доставки + небольшой пластиковый корпус.

Adafruit Feather nRF52 Bluefruit LE - nRF52832 - ~ 25 долларов США

Adafruit HUZZAH ESP8266 Breakout - ~ 10 долларов США

Ленточный кабель с отдельными концами-розетками - Пиратский кабель шины ~ 5 долларов США https://www.sparkfun.com/products/9556 ИЛИ 10-контактный кабель IDC Socket Rainbow Breakout ~ 4 доллара США https://www.sparkfun.com/products/ 9556 ИЛИ аналогичный

Штекерные заголовки Break Away - под прямым углом - ~ 2 доллара США

Последовательный кабель USB-TTL 3V3 - ~ 10 долларов США https://www.sparkfun.com/products/12977 (предпочтительно, так как на нем обозначены контакты) ИЛИ https://www.sparkfun.com/products/12977 (контакты НЕ помечены)

Кабель USB A - Micro B - ~ 4 доллара США https://www.sparkfun.com/products/12977 (длина 3 фута) ИЛИ ~ 3 доллара США https://www.sparkfun.com/products/12977 (длина 6 дюймов) ИЛИ ~ 2 доллара США https://www.sparkfun.com/products/12977 (длина 6 дюймов) ИЛИ ~ 5 долларов США https://www.sparkfun.com/products/12977 (длина 6 футов) ИЛИ аналогичный

2 резистора по 100 Ом - ~ 1 доллар США

Источник питания USB (500 мА или более) - ~ 6 долларов США https://www.sparkfun.com/products/12890 ИЛИ ~ 7 долларов США https://www.adafruit.com/product/1994 ИЛИ аналогичный

Arduino IDE V1.8.5 и компьютер для его запуска.

В качестве пластиковой коробки я использовал один от Jaycar UB5 (синий) 83 мм x 54 мм x 31 мм ~ 4 австралийских доллара.

Шаг 2: Схема Wifi2BLE

Схема Wifi2BLE
Схема Wifi2BLE

Схема Wifi2BLE показана выше. Версия в формате pdf находится здесь. Как видите, схема очень проста. Всего 4 провода и два защитных резистора на 100 Ом. Защитные резисторы нужны на тот случай, если вы не подключите линии TX / RX после программирования HUZZAH ESP8266 или Feather nRF52.

ПРИМЕЧАНИЕ. Маркировка на плате Feather nRF52 контактов TX и RX неправильная. Вывод TX фактически находится рядом с выводом DFU, а вывод RX - рядом с выводом MISO

Убедитесь, что вы подключили линии TX / RX, как показано выше. К счастью, защитные резисторы сделали свое дело, и платы не были повреждены, пока я разбирался, почему платы не переходят друг в друга.

Шаг 3. Построение Wifi2BLE

Wifi2BLE Строительство
Wifi2BLE Строительство
Wifi2BLE Строительство
Wifi2BLE Строительство
Wifi2BLE Строительство
Wifi2BLE Строительство

Прямоугольные контакты заголовка припаяны к HUZZAH ESP8266, чтобы его можно было отключить для программирования. Для соединения двух плат используются четыре провода ленточного кабеля. Сохраните гнездовые штыревые разъемы и отрежьте другой конец ленточного кабеля. У моего ленточного кабеля были те же цвета, что и у кабеля программирования Sparkfun USB-TTL, поэтому я выбрал соответствующий провод. Черный для GND, красный для 5 В +, оранжевый для TX (подключается к ESP8266 RX) и коричневый для RX (подключается к ESP8266 TX)

Я подключил защитные резисторы к задней части платы Feather nRF52. (Наблюдательные конструкторы, знающие свои коды резисторов, увидят, что я использовал два резистора на 68 Ом, которые я имел под рукой, вместо резисторов на 100 Ом), а затем изолировал их термоусадочной пленкой.

Красный кабель припаян к контакту USB Feather nRF52 для подключения USB 5V для питания модуля HUZZAH ESP8266, а черный кабель припаян к контакту Feather nRF52 GND.

Это все, кроме программирования модулей, как описано ниже, помещения его в пластиковую коробку и подключения источника питания USB к Feather nRF52.

Шаг 4: Программирование Wifi2BLE

Программирование Wifi2BLE
Программирование Wifi2BLE
Программирование Wifi2BLE
Программирование Wifi2BLE
Программирование Wifi2BLE
Программирование Wifi2BLE

Программирование HUZZAH ESP8266

Чтобы запрограммировать щит, следуйте инструкциям, приведенным на https://github.com/esp8266/Arduino в разделе «Установка с помощью Boards Manager». При открытии Boards Manager из меню Tools → Board выберите Type Contributed и установите платформу esp8266. Этот проект был скомпилирован с использованием ESP8266 версии 2.3.0. Другие версии будут иметь свой собственный набор ошибок и могут не работать с этим кодом.

ПРИМЕЧАНИЕ: НЕ используйте установку Adafruit Board, поскольку используемый здесь скетч не будет компилироваться под этим кодом.

Закройте и снова откройте Arduino IDE, и теперь вы можете выбрать «Adafruit HUZZAH ESP8266» в меню «Инструменты» → «Плата».

Вам также необходимо установить последнюю версию библиотеки pfodESP8266WiFiBufferedClient. Эта библиотека работает с подключаемым модулем ESP8266.com IDE V2.3. (Если вы ранее установили библиотеку pfodESP2866WiFi, полностью удалите этот каталог библиотеки.)

  • а) Загрузите этот файл pfodESP8266WiFiBufferedClient.zip на свой компьютер, переместите его на рабочий стол или в другую папку, которую вы легко найдете
  • б) Затем используйте пункт меню Arduino 1.8.5 IDE Sketch → Import Library → Add Library, чтобы установить его. (Если Arduino не позволяет вам установить его, потому что библиотека уже существует, найдите и удалите старую папку pfodESP8266BufferedClient, а затем импортируйте ее)
  • c) Остановите и перезапустите Arduino IDE и в разделе «Файл-> Примеры» вы должны увидеть pfodESP8266BufferedClient.

Установка сетевого ssid и пароля, а также IP и порта

После установки библиотеки pfodESP8266BufferedClient откройте IDE Arduino и скопируйте этот скетч Wifi_Bridge.ino в IDE. Перед программированием модуля вам необходимо установить ssid и пароль вашей сети и выбрать неиспользуемый IP.

Отредактируйте эти три строки в верхней части Wifi_Bridge.ino.

char ssid = "**** ***"; символьный пароль = "**** *****"; char staticIP = "10.1.1.180";

Я использую приложение Fing (Android или iOS) для сканирования моей локальной сети и определения уже используемых IP-адресов. Обычно безопасно выбирать неиспользуемый IP-адрес в диапазоне от 0,180 до 0,254.

Для начала вы можете оставить порт № 23, стандартный порт для подключения по telnet.

После внесения этих изменений вы можете запрограммировать ESP8266.

Программирование HUZZAH ESP8266

Чтобы запрограммировать HUZZAH ESP8266, подключите кабель USB к последовательному порту, как показано на фотографии. Проверьте фото и вашу проводку. Также см. Советы по программированию ESP8266 (сбой espcomm)

Я использую последовательный кабель Sparkfun USB - TTL 3V3, потому что на нем отмечены выводы TX и RX. Убедитесь, что провод TX подключен к контакту RX, а провод RX подключен к контакту TX, как показано выше. Если вы используете кабель Adafruit, на нем нет маркировки клемм, но он имеет цветовую маркировку: красный - питание, черный - заземление, зеленый - TX, а белый - RX.

Подключите кабель USB к последовательному порту к компьютеру и выберите его COM-порт в меню Инструменты → Порт. Оставьте частоту процессора, размер флэш-памяти и скорость загрузки по умолчанию.

Затем переведите модуль Adafruit HUZZAH ESP2866 в режим программирования, удерживая кнопку GPIO0 и нажав кнопку сброса, а затем отпустив кнопку GPIO0. Светодиод GPIO0 должен гореть тускло. Затем выберите Файл → Загрузить или используйте кнопку со стрелкой вправо, чтобы скомпилировать и загрузить программу. Если вы получаете сообщение об ошибке при загрузке, проверьте, правильно ли подключены ваши кабельные соединения, и повторите попытку.

По завершении программирования красный светодиод на модуле должен загореться. Это означает, что он успешно подключился к вашей локальной сети и запустил сервер для приема соединения.

Тестирование HUZZAH ESP2866

Чтобы проверить HUZZAH ESP2866, оставьте кабель для программирования подключенным, откройте Arduino IDE Tools → Serial Monitor и установите скорость 9600 бод (нижний правый угол). Затем откройте программу терминала на своем компьютере, я использую TeraTerm для Windows и CoolTerm для Mac, и подключаюсь к IP-адресу и порту, которые вы указали в эскизе Wifi_Bridge.ino.

При подключении красный светодиод на модуле должен начать мигать, указывая на наличие подключения. Теперь вы должны иметь возможность вводить текст в окно терминала вашего компьютера, и символы должны появиться в окне монитора Arduino IDE и наоборот.

Тайм-аут подключения к Wi-Fi

В коде Wifi_Bridge.ino указано время подключения.

uint32_t connectionTimeout = 60000; // Тайм-аут соединения 60 секунд

Если в течение 60 секунд модуль HUZZAH ESP8266 не получает данных WiFi, модули закрывают соединение и ждут нового. Это гарантирует, что модуль восстанавливается после «полузакрытых» соединений, которые произошли после того, как клиент просто исчез из-за плохого соединения Wi-Fi, потери питания на маршрутизаторе или принудительного выключения клиента. Дополнительные сведения см. В разделе «Обнаружение полуоткрытых (разорванных) соединений сокетов TCP / IP».

Это время ожидания подключения установлено на 60 секунд. но может уменьшаться или увеличиваться по мере необходимости. Установка его в 0 означает, что тайм-аут никогда не истечет, что не рекомендуется.

Программирование Feather nRF52

Чтобы запрограммировать Feather nRF52, следуйте инструкциям по загрузке и установке поддержки платы Arduino для Feather nRF52. Убедитесь, что вы можете подключиться к плате и запрограммировать ее через USB-кабель.

ПРИМЕЧАНИЕ. Отключите модуль HUZZAH ESP8266 от Feather nRF52 перед тем, как пытаться запрограммировать Feather

Подключение Feather nRF52 к устройству BLE состоит из двух шагов. Сначала необходимо определить MAC-адрес (и тип) на устройстве и проверить, поддерживает ли он службу Nordic UART с помощью TX Notify, а затем передать этот адрес и тип в эскиз моста.

Шаг 5: Подключение к устройству BLE

Подключение к устройству BLE
Подключение к устройству BLE
Подключение к устройству BLE
Подключение к устройству BLE
Подключение к устройству BLE
Подключение к устройству BLE

После программирования HUZZAH ESP8266 вам необходимо закодировать адрес BLE и тип устройства, к которому вы хотите подключиться, в скетч Feather nRF52. Это двухэтапный процесс. I) Запустите программу сканирования, чтобы найти близлежащие устройства BLE, которые реализуют Nordic UART Service (TX Notify), а затем скопируйте вывод этого сканера в эскиз перьевого моста, чтобы заставить его подключиться к этому устройству.

Сканирование периферийных устройств BLE

Чтобы определить совместимые периферийные устройства BLE, загрузите программу central_bleuart_scanner.ino в свой Feather nRF52. Эта программа постоянно сканирует новые устройства, а затем проверяет, поддерживают ли они службу Nordic UART с помощью TX Notify.

Скандинавская служба UART

Служба Nordic UART состоит из трех частей: UUID службы и характеристик RX и TX. Вот пример кода, созданного pfodDesignerV3 для RedBear NanoV2.

BLEService uartService = BLEService ("6E400001B5A3F393E0A9E50E24DCCA9E");

BLECharacteristic rxCharacteristic = BLECharacteristic ("6E400002B5A3F393E0A9E50E24DCCA9E", BLEWrite, BLE_MAX_LENGTH); BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003B5A3F393E0A9E50E24DCCA9E", BLENotify, BLE_MAX_LENGTH);

pfodDesignerV3 может сгенерировать образец кода для ряда модулей BLE. Однако из-за отсутствия спецификации BLE для «стандартного» соединения UART не все модули используют службу Nordic UART. Например, модули HM-10 (Itead BLE shield), RFduno и Romeo BLE используют свои собственные уникальные сервисы uart и поэтому не будут подключаться к Feather nRF52.

Следующие платы будут подключены: - Adafruit Bluefruit Feather nRF52, Arduino / Genuino 101, RedBearLab BLE Nano V2 и V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend и Flora Boards, Adafruit Bluefruit LE SPI (т.е. Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE или Bluefruit LE SPI Friend), а также платы, которые могут быть закодированы с помощью специальных сервисов, или платы, которые могут использовать библиотеку BLEPeripheral.

В качестве примера используется плата Arduino / Genuino 101 с кодом, сгенерированным pfodDesignerV3. Бесплатный pfodDesignerV3 позволяет создавать меню pfodApp, а затем генерирует код Arduino, необходимый для отображения этого точного меню на вашем мобильном телефоне Android с помощью (платного) pfodApp. pfodApp также будет подключаться через Wi-Fi, а также через Bluetooth Classic, BLE и SMS, и поэтому может подключаться через этот мост Wifi2BLE. Однако даже если вы не хотите использовать pfodApp в качестве управляющего приложения, вы все равно можете использовать pfodDesignerV3 для генерации кода сервиса Nordic UART для вашей платы BLE.

В этой учебной ссылке описывается настройка Arduino / Genuino 101 BLE и создание простого элемента управления включением / выключением светодиода с помощью pfodDesignerV3. Скетч, созданный pfodDesignerV3, называется Arduino101_led_control.ino.

Программирование Arduino / Genuino 101 с помощью Arduino101_led_control.ino позволит вам подключиться к pfodApp и отобразить следующий экран на вашем мобильном телефоне Android.

Однако это всего лишь пример, и вам не нужно покупать pfodApp для завершения этого проекта. Важной частью является то, что бесплатное приложение pfodDesignerV3 генерирует код для Arduino / Genuino 101, который реализует Nordic UART Service. Итак, давайте просканируем это.

Однако это всего лишь пример, и вам не нужно покупать pfodApp для завершения этого проекта. Важной частью является то, что бесплатное приложение pfodDesignerV3 генерирует код для Arduino / Genuino 101, который реализует Nordic UART Service. Итак, давайте просканируем это.

Сканирование для скандинавской службы UART

Когда модуль HUZZAH ESP8266 отключен от Feather nRF52, запрограммируйте Feather nRF52 с помощью central_bleuart_scanner.ino, а затем откройте инструменты Arduino IDE Tools → Serial Monitor и установите скорость передачи данных 9600. При включении Arduino / Genuino 101 вы получите результат, показанный на первый снимок экрана выше.

Как вы можете видеть, сканер обнаружил два устройства BLE, Arduino / Genuino 101 с обнаруженным на нем сервисом Nordic UART, НО характеристика TX не поддерживала Notify. Сканер также обнаружил модуль RFduino BLE, но RFduino не использует Nordic UART Service, а вместо этого использует свой собственный. Комитет Bluetooth берет на себя вину за то, что не указал «стандартную» службу UART, вместо этого предоставив каждому производителю возможность создавать свою.

Как описано выше, код 101 был сгенерирован pfodDesignerV3 в основном для использования с pfodApp. pfodApp не так тщательно разбирается в TX Notify, как код uart Feather nRF52. pfodApp работает с 101 как запрограммировано, но Feather nRF52 настаивает на TX Notify, поэтому необходимо небольшое изменение кода, чтобы удовлетворить Feather.

Откройте Arduino101_led_control.ino в среде Arduino IDE, и в верхней части вы найдете эти две строки. Вторая строка - это просто описание характеристики и не влияет на работу.

BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLEIndicate, BLE_MAX_LENGTH); BLEDescriptor txNameDescriptor = BLEDescriptor ("2901", "2901", Измените их на

BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLENotify, BLE_MAX_LENGTH); BLEDescriptor txNameDescriptor = BLEDescriptor («2901», «TX - (Уведомить)»);

Затем перепрограммируйте 101 с помощью этой отредактированной версии, Arduino101_Notify_led_control.ino. Затем, когда вы повторно запустите сканер Feather nRF52 (central_bleuart_scanner.ino), Serial Monitor покажет второй снимок экрана выше.

Теперь у Genuino 101 нет ошибок, и сканер распечатает код, необходимый для эскиза моста Feather nRF52, чтобы он подключился к 101. Сканер проверит каждое устройство, которое он найдет в пределах досягаемости. Красный светодиод мигает один раз для каждого устройства, обнаруженного с помощью Nordic UART Service (TX Notify).

Шаг 6: Подключение к периферийному устройству BLE

Светодиодная индикация

Feather nRF52 имеет два светодиода, синий и красный. Когда плата подключена к устройству BLE, синий светодиод горит постоянно, в противном случае он мигает. Сканер не остается подключенным к устройству, поэтому его синий светодиод обычно мигает. Красный светодиод мигает один раз для каждого устройства Nordic UART Service (TX Notify). При работе в качестве сканера красный светодиод подсчитывает количество обнаруженных устройств Nordic UART Service (TX Notify). При работе в качестве моста красный светодиод мигает один раз при подключении к кодовому адресу BLE.

Подключение к периферийному устройству BLE

Теперь, когда скетч сканера предоставил детали для устройства BLE, к которому вы хотите подключиться, вы можете скопировать вывод в скетч central_bleuart_bridge.ino. В верхней части этого эскиза вы найдете следующий код.

// Следующие три строки кода взяты из вывода central_bleuart_scanner.ino

const char * BLE_NAME = "GENUINO 101-FC8F"; const char * BLE_ADDRESS = "98: 4F: EE: 0C: FC: 8F"; const uint8_t BLE_ADDRESS_TYPE = 0;

Замените три строки кода выходными данными сканера для устройства BLE, к которому вы хотите подключиться. Затем запрограммируйте Feather nRF52 с отредактированным скетчем central_bleuart_bridge.ino.

Тестирование скетча central_bleuart_bridge

Прежде чем снова подключить HUZZAH ESP8266 к Feather nRF52, проверьте подключение к устройству BLE. Оставив Feather nRF52 подключенным к Arduino IDE, откройте Tools → Serial Monitor на скорости 9600 бод, а затем убедитесь, что ваше целевое устройство BLE включено.

Когда соединение установлено с вашим устройством BLE, как описано выше, синий светодиод будет гореть постоянно, а красный светодиод будет мигать каждые 10 секунд или около того. Это позволяет вам не устанавливать и поддерживать соединение.

Затем в Serial Monitor вы можете ввести команды, которые вы ожидаете отправить на свое устройство BLE, и наблюдать, как оно работает, и отслеживать любой ответ, который он отправляет обратно. Если все в порядке, вы можете выключить питание и подключить модуль HUZZAH ESP8266.

Шаг 7: Подключение к устройству BLE через Wi-Fi - Собираем все вместе

После того, как вы запрограммировали и протестировали модуль HUZZAH ESP8266 с его кодом моста (Wifi_Bridge.ino), настроенным для ssid и пароля и IP вашей сети, И запрограммировали и протестировали Feather nRF52 с его кодом моста (central_bleuart_bridge.ino), настроенным с адресом устройства BLE и введите, затем вы можете соединить их вместе и подключить USB-источник питания к модулю Feather, чтобы включить их обоих.

Красный светодиод модуля HUZZAH должен гореть непрерывно, когда он подключается к локальному сетевому маршрутизатору, а синий светодиод Feather Blue должен гореть постоянно, когда он подключается к вашему устройству BLE, а красный светодиод Feather Red должен мигать примерно каждые 10 секунд, показывая, что он включен. Устройство BLE подключено.

Откройте программу Telnet и подключитесь к IP-адресу и порту HUZZAH. Красный светодиод HUZZAH должен медленно мигать, указывая на то, что ваша программа подключена, и вы должны отправлять команды на свое устройство BLE через Wi-Fi, наблюдать за работой устройства BLE и видеть любой ответ в окне telnet. Помните, что если ваше устройство BLE не отправляет данные обратно в течение 60 секунд, код HUZZAH отключит соединение и отключится, а красный светодиод HUZZAH снова загорится.

Шаг 8: Справка - не работает

Сначала выполните шаги тестирования, описанные выше, Тестирование HUZZAH ESP2866 и Тестирование скетча central_bleuart_bridge.

Проблемы со сканированием

Если сканер не может найти ваше устройство BLE, он либо слишком далеко, либо не рекламируется, либо уже к чему-то подключен. Попробуйте переместить сканер ближе и выключить и снова включить устройство и выключить все остальные мобильные устройства, которые могут быть подключены к устройству BLE.

Если у вас получится такой вывод сканера.

Подключено к 98: 4F: EE: 0C: FC: 8F Ищу службу Nordic UART… Ничего не найдено ИЛИ Не обнаруживается !!!!! Не удалось идентифицировать скандинавскую службу UART !!!!!!!! Если вы ожидали Nordic UART Service, переместите сканер ближе к устройству BLE !!!!

Возможно, вы находитесь достаточно близко к устройству BLE, чтобы его обнаружить, но недостаточно близко, чтобы успешно выполнить обнаружение службы и найти службу Nordic UART. Попробуйте подойти ближе к устройству BLE.

В крайнем случае вы можете использовать бесплатное приложение Nordic nRF Connect для Android или iOS. Это приложение имеет лучший диапазон и чувствительность. Он сообщит вам, есть ли у устройства BLE сервис Nordic UART. Однако вам все равно нужно будет запустить сканер, подключиться и идентифицировать Nordic UART Serivice, прежде чем вы попытаетесь использовать мост Wifi2BLE, поскольку он использует код, похожий на код сканера.

Если вы хотите копнуть глубже, вы можете использовать модуль Adafruit Bluefruit LE Sniffer, чтобы увидеть, что находится в воздухе.

Проблемы с подключением BLE

Если вам удалось просканировать устройство BLE, то наиболее вероятные причины проблем с подключением: I) устройство BLE находится слишком далеко, II) что-то еще уже подключено к устройству BLE

Проблемы с подключением Wi-Fi

Если красный светодиод HUZZAH ESP8266 не горит постоянно, значит, у него нет подключения к вашей сети через маршрутизатор. Проверьте ssid и пароль у вас есть код в Wifi_Bridge.ino и используйте приложение Fing для Android или iOS, чтобы убедиться, что выделенный вами IP-адрес еще не используется. Попробуйте выключить все свои компьютеры и устройства и выключить и снова включить маршрутизатор (оставьте его выключенным на 20 секунд), а затем снова выполните сканирование с помощью Fing. Наконец, если соединение продолжает разрываться, запомните настройку тайм-аута соединения в коде Wifi_Bridge.ino.

Шаг 9: Дополнения и заключение

Представленный здесь проект является самой простой версией. Существует ряд возможных расширений, таких как: -

  • Feather nRF52 может подключаться к 4 устройствам BLE одновременно, поэтому вы можете изменить код, чтобы добавить больше действительных адресов и управлять до 4 устройств с одного Wi-Fi-соединения. См. Пример кода, поставляемый с установкой платы Feather nRF52.
  • Вы можете проделать дыру в своем маршрутизаторе, чтобы обеспечить доступ к устройству BLE из любого места в Интернете. См. Раздел Подключение устройств DIY IoT к Интернету с помощью pfodApp.
  • Вы можете использовать код из Cheap / Simple Wifi Shield, чтобы настроить параметры сети Wi-Fi для HUZZAH через веб-страницу без перепрограммирования. Вам потребуется добавить в схему кнопку настройки.
  • Вы можете добавить кнопку настройки (используя ту же кнопку, что и выше), которая заставляет Feather nRF52 сканировать устройства BLE с Nordic UART (TX Notify), а затем сохранять сведения о подключении для устройства с самым сильным сигналом. Чтобы сохранить результат, вам нужно будет использовать библиотеку nffs, которая поставляется с установкой платы Adafruit nRF52.
  • Вы можете добавить веб-страницу в код HUZZAH ESP8266, чтобы предоставить настраиваемый интерфейс для вашего устройства BLE. Вы также можете использовать pfodDesignerV3 и pfodApp для добавления настраиваемого интерфейса без каких-либо изменений в этот проект вообще.

Заключение

Этот простой проект обеспечивает Wi-Fi доступ к любому модулю Bluetooth Low Energy (BLE), который реализует Nordic UART с TX Notify. Мост Wifi2BLE полностью прозрачный. Он просто передает данные WiFi на устройство BLE и передает данные устройства BLE обратно в соединение WiFi.

Простая конструкция и подробные инструкции по тестированию делают этот проект подходящим для новичков, которые хотят получить доступ к своему устройству BLE со своего компьютера или за пределами обычного диапазона BLE.

Этот проект станет более важным, когда программное обеспечение устройства BLE догонит новую спецификацию Bluetooth V5 Mesh. Тогда Wifi2BLE обеспечит доступ в Интернет для автоматизации всего вашего дома.

Рекомендуемые: