Espruino:Примеры/Быстрый старт (Bluetooth LE): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
Строка 9: Строка 9:
===Puck.js===
===Puck.js===


Puck.js можно питать либо от отдельной батареи, либо от установленной внутрь него батарейки. Однако во втором случае нужно помнить, что между батарейкой и печатной платой находится прозрачная пластиковая вкладка – она нужна, чтобы между ними не было контакта, а Puck.js оставался в выключенном состоянии.
[[Puck.js]] можно питать либо от отдельной батареи, либо от установленной внутрь него батарейки. Однако во втором случае нужно помнить, что между батарейкой и печатной платой находится прозрачная пластиковая вкладка – она нужна, чтобы между ними не было контакта, а [[Puck.js]] оставался в выключенном состоянии.


Чтобы включить его, выполните следующее:
Чтобы включить его, выполните следующее:
* Снимите с Puck.js верхнюю крышку.
* Снимите с [[Puck.js]] верхнюю крышку.
* Выньте печатную плату.
* Выньте печатную плату.
* Если батарейка установлена, выньте её с помощью тупого объекта и снимите прозрачную пластиковую вкладку.
* Если батарейка установлена, выньте её с помощью тупого объекта и снимите прозрачную пластиковую вкладку.
* Вставьте батарейку обратно. Минусовая сторона батарейки должна находиться лицом к печатной плате Puck.js. В результате должен один раз очень быстро мигнуть красный светодиод.
* Вставьте батарейку обратно. Минусовая сторона батарейки должна находиться лицом к печатной плате [[Puck.js]]. В результате должен один раз очень быстро мигнуть красный светодиод.
* Если загорелся зелёный светодиод или не выключился красный светодиод, то это произошло из-за того, что вы случайно нажали на кнопку, пока вставляли батарейку. Выньте батарейку и попробуйте снова, но в этот раз постарайтесь не нажимать на кнопку, находящуюся рядом с батарейкой.  
* Если загорелся зелёный светодиод или не выключился красный [[светодиод]], то это произошло из-за того, что вы случайно нажали на кнопку, пока вставляли батарейку. Выньте батарейку и попробуйте снова, но в этот раз постарайтесь не нажимать на кнопку, находящуюся рядом с батарейкой.  
* Соберите Puck.js. Чтобы кнопка работала правильно, та сторона платы, на которой находится батарейка, должна смотреть на чёрную часть пластикового корпуса, а кнопка, находящаяся рядом с батарейкой, должна находиться как можно дальше от выступа на корпусе.
* Соберите [[Puck.js]]. '''Чтобы кнопка работала правильно, та сторона платы, на которой находится батарейка, должна смотреть на чёрную часть пластикового корпуса, а кнопка, находящаяся рядом с батарейкой, должна находиться как можно дальше от выступа на корпусе'''.


Изображения с демонстрацией правильной ориентации батарейки и корпуса Puck.js смотрите в [https://www.espruino.com/Puck.js#turning-puck-js-on этой статье].
Изображения с демонстрацией правильной ориентации батарейки и корпуса [[Puck.js]] смотрите в [https://www.espruino.com/Puck.js#turning-puck-js-on этой статье].


Для простых задач прошивка, установленная на Puck.js по умолчанию, подходит нормально, но разработчики постоянно её улучшают и добавляют в неё новые функции. Чтобы выжать из Puck.js максимум, рекомендуем в самом начала работы с ним [https://www.espruino.com/Puck.js#firmware-updates обновить прошивку] до последней версии.
Для простых задач прошивка, установленная на [[Puck.js]] по умолчанию, подходит нормально, но разработчики постоянно её улучшают и добавляют в неё новые функции. Чтобы выжать из [[Puck.js]] максимум, рекомендуем в самом начала работы с ним [https://www.espruino.com/Puck.js#firmware-updates обновить прошивку] до последней версии.


=== Pixl.js ===
=== Pixl.js ===


Запитать Pixl.js можно тремя способами:
Запитать [[Pixl.js]] можно тремя способами:
* При помощи кабеля Micro USB (на Pixl.js нет возможности передавать данные по USB).
* При помощи кабеля [[Micro USB]] (на [[Pixl.js]] нет возможности передавать данные по [[USB]]).
* Вставив батарейку CR2032 в соответствующий держатель на плате (минусовая сторона батарейки должна находиться лицом к печатной плате Pixl.js).
* Вставив батарейку [[CR2032]] в соответствующий держатель на плате (минусовая сторона батарейки должна находиться лицом к печатной плате [[Pixl.js]]).
* Подключив источник питания (напряжение должно быть меньше 16 вольт) между контактами Vin и GND на Pixl.js.
* Подключив источник питания (напряжение должно быть ''меньше 16 вольт'') между контактами '''Vin''' и '''GND''' на [[Pixl.js]].


Для простых задач прошивка, установленная на Pixl.js по умолчанию, подходит нормально, но разработчики постоянно улучшают её и добавляют в неё новые функции.  
Для простых задач прошивка, установленная на [[Pixl.js]] по умолчанию, подходит нормально, но разработчики постоянно улучшают её и добавляют в неё новые функции.  


Чтобы выжать из Pixl.js максимум, рекомендуем в самом начале работы [https://www.espruino.com/Pixl.js#firmware-updates обновить прошивку] до последней версии.
Чтобы выжать из [[Pixl.js]] максимум, рекомендуем в самом начале работы [https://www.espruino.com/Pixl.js#firmware-updates обновить прошивку] до последней версии.


=== Bangle.js ===
=== Bangle.js ===


Чтобы подать питание на Bangle.js, просто нажмите на кнопку BTN1 (верхняя кнопка справа).
Чтобы подать питание на [[Bangle.js]], просто нажмите на кнопку '''BTN1''' (верхняя кнопка справа).


Если Bluetooth отключен (по умолчанию он включен на Bangle.js):
Если [[Bluetooth]] отключен (по умолчанию он включен на [[Bangle.js]]):
* Нажмите среднюю кнопку (BTN2) на Bangle.js.
* Нажмите среднюю кнопку ('''BTN2''') на [[Bangle.js]].
* При помощи нижней кнопки (BTN3) пролистайте до настроек (Settings).
* При помощи нижней кнопки ('''BTN3''') пролистайте до настроек ('''Settings''').
* Нажмите BTN2, чтобы выбрать пункт «Settings».
* Нажмите '''BTN2''', чтобы выбрать пункт '''«Settings»'''.
* Далее возможны два варианта:
* Далее возможны два варианта:
** Либо: Убедитесь, что в настройках «BLE» и «Programmable» стоит «On», чтобы включить у Bangle.js режим программирования. Затем выберите «Back», чтобы выйти из меню настроек.
** '''Либо:''' Убедитесь, что в настройках '''«BLE»''' и '''«Programmable»''' стоит '''«On»''', чтобы включить у [[Bangle.js]] режим программирования. Затем выберите '''«Back»''', чтобы выйти из меню настроек.
** Либо: Найдите пункт «Make Connectable», выберите его и пока отложите Bangle.js, оставив на нём меню Connectable.
** '''Либо:''' Найдите пункт '''«Make Connectable»''', выберите его и пока отложите [[Bangle.js]], оставив на нём меню '''Connectable'''.


Более подробно читайте в [https://www.espruino.com/Bangle.js+Getting+Started ознакомительной статье, посвящённой Bangle.js].
Более подробно читайте в [https://www.espruino.com/Bangle.js+Getting+Started ознакомительной статье, посвящённой Bangle.js].
Строка 52: Строка 52:
Более подробно о питании [https://www.espruino.com/MDBT42Q#getting-started MDBT42Q] читайте на соответствующей странице.
Более подробно о питании [https://www.espruino.com/MDBT42Q#getting-started MDBT42Q] читайте на соответствующей странице.


Хотя на заранее запрограммированные модули MDBT42Q уже установлена прошивка, которая подходит для выполнения простых задач, разработчики постоянно её улучшают и добавляют в неё новые функции.
Хотя на заранее запрограммированные модули [[MDBT42Q]] уже установлена прошивка, которая подходит для выполнения простых задач, разработчики постоянно её улучшают и добавляют в неё новые функции.


Чтобы выжать из модуля MDBT42Q максимум, рекомендуем сначала [https://www.espruino.com/MDBT42Q#firmware-updates обновить его прошивку] до последней версии.
Чтобы выжать из модуля [[MDBT42Q]] максимум, рекомендуем сначала [https://www.espruino.com/MDBT42Q#firmware-updates обновить его прошивку] до последней версии.


=== Ruuvitag ===
=== Ruuvitag ===


Более подробно о питании Ruuvitag читайте в [https://lab.ruuvi.com/start/ соответствующей статье].
Более подробно о питании '''Ruuvitag''' читайте в [https://lab.ruuvi.com/start/ соответствующей статье].


=== Nordic Thingy:52 ===
=== Nordic Thingy:52 ===


На устройства Thingy прошивка Espruino по умолчанию не установлена. Более подробно о том, как установить её, а также о питании Thingy:52 читайте в [https://www.espruino.com/Thingy52#getting-started этой статье].
На устройства '''Thingy''' прошивка [[Espruino]] по умолчанию не установлена. Более подробно о том, как установить её, а также о питании [[Thingy:52]] читайте в [https://www.espruino.com/Thingy52#getting-started этой статье].


=== Nordic nRF52832DK ===
=== Nordic nRF52832DK ===


Просто подключите свой nRF52832DK к USB-коннектору. [https://www.espruino.com/nRF52832DK#getting-started На него также нужно будет записать прошивку Espruino].
Просто подключите свой [[nRF52832DK]] к [[USB-коннектор]]у. [https://www.espruino.com/nRF52832DK#getting-started На него также нужно будет записать прошивку Espruino].


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


Кроме того, [https://www.espruino.com/Puck.js Puck.js] и [https://www.espruino.com/Pixl.js Pixl.js] могут работать как NFC-метки, способные направлять ваш телефон (если он поддерживает NFC) по нужным URL-ссылкам.
Кроме того, [https://www.espruino.com/Puck.js Puck.js] и [https://www.espruino.com/Pixl.js Pixl.js] могут работать как NFC-метки, способные направлять ваш телефон (если он поддерживает [[NFC]]) по нужным URL-ссылкам.


== Требования ==
== Требования ==


Для того, чтобы пользоваться BLE, в вашем компьютере должен быть установлен адаптер с поддержкой Bluetooth 4.0 (адаптеры, поддерживающие версии до 4.0, работать не будут). Впрочем, Bluetooth 4 поддерживается почти всеми современными компьютерами, но вам, возможно, понадобится внешний Bluetooth-адаптер, если ваш компьютер...
Для того, чтобы пользоваться [[BLE]], в вашем компьютере должен быть установлен адаптер с поддержкой [[Bluetooth 4.0]] (адаптеры, поддерживающие версии до 4.0, работать не будут). Впрочем, Bluetooth 4 поддерживается почти всеми современными компьютерами, но вам, возможно, понадобится внешний Bluetooth-адаптер, если ваш компьютер...
* ...это Apple Mac, изготовленный до 2012 года.
* ...это [[Apple Mac]], изготовленный до 2012 года.
* ...это ПК на Windows, чья версия Windows ниже 10.
* ...это [[ПК]] на [[Windows]], чья версия [[Windows]] ниже 10.
* ...это настольный ПК (не ноутбук), т.к. у него вообще может не быть поддержки беспроводной передачи данных.
* ...это настольный [[ПК]] (не ноутбук), т.к. у него вообще может не быть поддержки беспроводной передачи данных.
* ...работает на Linux. Большая часть встроенного BLE-функционала на ноутбуках по-прежнему имеет много багов. Более надёжно будет воспользоваться внешним USB-адаптером.
* ...работает на [[Linux]]. Большая часть встроенного BLE-функционала на ноутбуках по-прежнему имеет много багов. Более надёжно будет воспользоваться внешним [[USB-адаптер]]ом.


Если ваш компьютер не поддерживает BLE, то можно воспользоваться USB-адаптером для BLE – они компактные, недорогие (около 10 долларов), и купить их можно практически везде. В данный момент на рынке преобладают вот эти два типа USB-адаптеров для Bluetooth:
Если ваш компьютер не поддерживает [[BLE]], то можно воспользоваться [[USB-адаптер]]ом для [[BLE]] – они компактные, недорогие (''около 10 долларов''), и купить их можно практически везде. В данный момент на рынке преобладают вот эти два типа [[USB-адаптер]]ов для [[Bluetooth]]:
* Адаптеры на чипсете Broadcom (например, BCM20702) – они хорошо работают на всех платформах.
* '''Адаптеры на чипсете [[Broadcom]] (например, [[BCM20702]])''' – они хорошо работают на всех платформах.
* Адаптеры производства фирмы Cambridge Silicon Radio (CSR) – адаптеры этого типа хорошо работают на Linux и Windows. Раньше они хорошо работали на Mac, но их поддержка пропала после ОС-обновления High Sierra, так что рекомендуем остановить выбор на модуле от Broadcom.
* '''Адаптеры производства фирмы [[Cambridge Silicon Radio]] ([[CSR]])''' – адаптеры этого типа хорошо работают на [[Linux]] и [[Windows]]. Раньше они хорошо работали на [[Mac]], но их поддержка пропала после ОС-обновления '''High Sierra''', так что рекомендуем остановить выбор на модуле от [[Broadcom]].


Чтобы точно купить подходящий адаптер, рекомендуем покупать ТОЛЬКО те адаптеры, в описании которых явно написано «CSR» или «Broadcom». Модуль BlueGiga BLED112 РАБОТАТЬ НЕ БУДЕТ – это устройство с последовательным портом, а не Bluetooth-адаптер общего пользования.
Чтобы точно купить подходящий адаптер, рекомендуем покупать '''ТОЛЬКО''' те адаптеры, в описании которых явно написано '''«CSR»''' или '''«Broadcom»'''. Модуль [[BlueGiga BLED112]] '''РАБОТАТЬ НЕ БУДЕТ''' – это устройство с последовательным портом, а не [[Bluetooth-адаптер]] общего пользования.


Вот список рабочих и протестированных USB-адаптеров для Bluetooth:
Вот список рабочих и протестированных [[USB-адаптер]]ов для [[Bluetooth]]:
* [https://www.amazon.com/gp/product/B01J3AMITS iAmotus UD-400M] – Broadcom BCM20702A1
* [https://www.amazon.com/gp/product/B01J3AMITS iAmotus UD-400M] – [[Broadcom BCM20702A1]]
* [https://www.amazon.com/gp/product/B009ZIILLI Plugable USB-BT4LE] – Broadcom BCM20702A1
* [https://www.amazon.com/gp/product/B009ZIILLI Plugable USB-BT4LE] – [[Broadcom BCM20702A1]]
* [https://shop.espruino.com/ble/usb-bluetooth Feasycom FSC-BP119] – чипсет CSR с внешней антенной
* [https://shop.espruino.com/ble/usb-bluetooth Feasycom FSC-BP119] – чипсет [[CSR]] с внешней антенной
* [https://www.amazon.com/gp/product/B01AXGYS30 Whitelabel 06Q Nano] – чипсет CSR
* [https://www.amazon.com/gp/product/B01AXGYS30 Whitelabel 06Q Nano] – чипсет [[CSR]]
* [https://www.amazon.com/gp/product/B01J35AUS4 Whitelabel BM35] – чипсет CSR
* [https://www.amazon.com/gp/product/B01J35AUS4 Whitelabel BM35] – чипсет [[CSR]]
* [https://www.amazon.com/dp/product/B0775YF36R Unbranded 'CSR 4.0'] – чипсет CSR
* [https://www.amazon.com/dp/product/B0775YF36R Unbranded 'CSR 4.0'] – чипсет [[CSR]]


== Работа с Espruino-устройством ==
== Работа с Espruino-устройством ==


По умолчанию ПК видит Espruino как BLE-устройство с последовательным портом. Подключаясь к этому последовательному порту, вы при помощи командной стоки получаете полный доступ к встроенному JavaScript-интерпретатору Espruino.
По умолчанию [[ПК]] видит [[Espruino]] как [[BLE-устройство]] с последовательным портом. Подключаясь к этому последовательному порту, вы при помощи командной стоки получаете полный доступ к встроенному [[JavaScript-интерпретатор]]у [[Espruino]].


Примечание: Последовательные BLE-порты (также известные как «Nordic UART») не будут отображаться в списке последовательных устройств вашей ОС.
'''Примечание:''' Последовательные [[BLE-порт]]ы (также известные как '''«Nordic UART»''') не будут отображаться в списке последовательных устройств вашей [[ОС]].


Далее, чтобы начать работать с Espruino, у вас есть два варианта:
Далее, чтобы начать работать с [[Espruino]], у вас есть два варианта:
* [https://www.espruino.com/Quick+Start+BLE#using-the-espruino-ide Используйте IDE Espruino] или инструмент командной строки для записи кода на Espruino.
* [https://www.espruino.com/Quick+Start+BLE#using-the-espruino-ide Используйте IDE Espruino] или инструмент командной строки для записи кода на [[Espruino]].
* [https://www.espruino.com/Quick+Start+BLE#sending-individual-commands Отправляйте на Espruino отдельные JavaScript-команды] (вместо полноценного программирования).
* [https://www.espruino.com/Quick+Start+BLE#sending-individual-commands Отправляйте на Espruino отдельные JavaScript-команды] (вместо полноценного программирования).


Строка 108: Строка 108:
=== Использование IDE Espruino через Web Bluetooth ===
=== Использование IDE Espruino через Web Bluetooth ===


Примечание: На этом компьютере Web Bluetooth уже включен.
'''Примечание:''' На этом компьютере [[Web Bluetooth]] '''уже включен'''.


Если ваш компьютер поддерживает Web Bluetooth, то это простейший способ начать работать с Espruino.  
Если ваш компьютер поддерживает [[Web Bluetooth]], то это простейший способ начать работать с [[Espruino]].  


Вам понадобится самая новая версия браузера [https://www.google.com/chrome/ Google Chrome] или Opera на одной из следующих платформ:
Вам понадобится самая новая версия браузера [https://www.google.com/chrome/ Google Chrome] или [[Opera]] на одной из следующих платформ:


==== Mac OS ====
==== Mac OS ====


Нужна версия Yosemite или новее, и также проверьте, поддерживается ли BLE на вашем Mac:
Нужна версия [[Yosemite]] или новее, и также проверьте, поддерживается ли [[BLE]] на вашем [[Mac]]:
* Кликните на логотип Apple, а затем на About this Mac слева вверху
* Кликните на логотип '''Apple''', а затем на '''About this Mac''' слева вверху
* Кликните на System Report
* Кликните на '''System Report'''
* Кликните на Bluetooth под Hardware
* Кликните на '''Bluetooth''' под '''Hardware'''
* Посмотрите, написано ли там Bluetooth Low Energy Supported
* Посмотрите, написано ли там '''Bluetooth Low Energy Supported'''


Если нет:
Если нет:
* Купите USB-адаптер с поддержкой Bluetooth 4.0 или новее (он стоит примерно 10 долларов) – [https://www.espruino.com/Quick+Start+BLE#requirements см. раздел «Требования» выше].
* Купите [[USB-адаптер]] с поддержкой [[Bluetooth 4.0]] или новее (он стоит примерно 10 долларов) – [https://www.espruino.com/Quick+Start+BLE#requirements см. раздел «Требования» выше].
* Откройте терминал и напишите там «sudo nvram bluetoothHostControllerSwitchBehavior=al­ways» (чтобы вернуться к старым настройкам, напишите «sudo nvram -d bluetoothHostControllerSwitchBehavior»).
* Откройте терминал и напишите там '''«sudo nvram bluetoothHostControllerSwitchBehavior=al­ways»''' (чтобы вернуться к старым настройкам, напишите '''«sudo nvram -d bluetoothHostControllerSwitchBehavior»''').
* Перезагрузите Mac.
* Перезагрузите [[Mac]].
* Убедитесь, что отключили (или выключили сопряжение) все Bluetooth-устройства, использующие внутренний Bluetooth – они могут помешать «маку» использовать новый адаптер.
* Убедитесь, что отключили (или выключили сопряжение) все [[Bluetooth-устройства]], использующие внутренний [[Bluetooth]] – они могут помешать '''«маку»''' использовать новый адаптер.


==== Windows ====
==== Windows ====


Windows 10 полностью поддерживает Web Bluetooth – с условием, если вы используете самую новую версию [https://www.google.com/chrome/ Google Chrome] (v70 и выше) и ваш ПК оснащен функционалом для BLE-связи (он есть у всех новых ноутбуков).
[[Windows 10]] полностью поддерживает [[Web Bluetooth]] – с условием, если вы используете самую новую версию [https://www.google.com/chrome/ Google Chrome] (v70 и выше) и ваш [[ПК]] оснащен функционалом для BLE-связи (он есть у всех новых ноутбуков).


Если у вас нет Windows 10, вам нужно будет установить [https://www.espruino.com/Quick+Start+BLE#with-an-application ПК-приложение для IDE Espruino] – с его помощью вы получите прямой доступ к Bluetooth-адаптеру.
Если у вас нет [[Windows 10]], вам нужно будет установить [https://www.espruino.com/Quick+Start+BLE#with-an-application ПК-приложение для IDE Espruino] – с его помощью вы получите прямой доступ к Bluetooth-адаптеру.


==== Linux ====
==== Linux ====


В Chrome нет официальной поддержки Linux. Но благодаря наличию поддержки ChromeOS вы можете включить и поддержку Linux:
В [[Chrome]] нет официальной поддержки [[Linux]]. Но благодаря наличию поддержки [[ChromeOS]] вы можете включить и поддержку [[Linux]]:
Вам понадобится BlueZ 5.41+ (5.43 – более стабильная версия) – узнать версию можно с помощью bluetoothd --version. Если он не установлен, установите его ([https://www.espruino.com/Web+Bluetooth+On+Linux инструкции тут]).
Вам понадобится '''BlueZ 5.41+''' ('''5.43''' – более стабильная версия) – узнать версию можно с помощью '''bluetoothd --version'''. Если он не установлен, установите его ([https://www.espruino.com/Web+Bluetooth+On+Linux инструкции тут]).


* Впишите в адресной строке chrome://flags.
* Впишите в адресной строке '''chrome://flags'''.
* Выберите Enabled рядом с пунктом Experimental Web Platform Features (chrome://flags/#enable-experimental-web-platform-features).
* Выберите '''Enabled''' рядом с пунктом '''Experimental Web Platform Features''' (chrome://flags/#enable-experimental-web-platform-features).
* Перезапустите браузер.
* Перезапустите браузер.


==== Chromebook ====
==== Chromebook ====


Все хромбуки с Bluetooth должны поддерживать Web Bluetooth.
Все хромбуки с [[Bluetooth]] должны поддерживать [[Web Bluetooth]].


==== Android ====
==== Android ====


На устройствах с Android 6 (Marshmallow) Web Bluetooth поддерживается по умолчанию.
На устройствах с [[Android 6]] ([[Marshmallow]]) [[Web Bluetooth]] поддерживается по умолчанию.


На устройствах с Android 5 (Lollipop) [https://stackoverflow.com/questions/34810194/can-i-try-web-bluetooth-on-chrome-for-android-lollipop поверх ADB можно воспользоваться Chromium].
На устройствах с [[Android 5]] ([[Lollipop]]) [https://stackoverflow.com/questions/34810194/can-i-try-web-bluetooth-on-chrome-for-android-lollipop поверх ADB можно воспользоваться Chromium].


==== iOS (iPhone, iPad) ====
==== iOS (iPhone, iPad) ====


Встроенный веб-браузер Apple не поддерживает Web Bluetooth. Вам нужно будет [https://itunes.apple.com/us/app/webble/id1193531073 установить приложение WebBLE].
Встроенный веб-браузер [[Apple]] не поддерживает [[Web Bluetooth]]. Вам нужно будет [https://itunes.apple.com/us/app/webble/id1193531073 установить приложение WebBLE].


После этого вы сможете получить доступ к Web Bluetooth через любую веб-страницу, просматриваемую с помощью WebBLE.
После этого вы сможете получить доступ к [[Web Bluetooth]] через любую веб-страницу, просматриваемую с помощью [[WebBLE]].


== Когда Web Bluetooth будет настроен: ==
== Когда Web Bluetooth будет настроен: ==


* Перейдите на [https://www.puck-js.com/go сайт Puck.js]. Там вам должны сообщить, что у вас включен Web Bluetooth.
* Перейдите на [https://www.puck-js.com/go сайт Puck.js]. Там вам должны сообщить, что у вас включен [[Web Bluetooth]].
* Кликните на гиперссылку [https://www.espruino.com/ide/ Espruino Web IDE].
* Кликните на гиперссылку [https://www.espruino.com/ide/ Espruino Web IDE].
* Кликните на жёлтую кнопку Connect/Disconnect слева вверху.
* Кликните на жёлтую кнопку Connect/Disconnect слева вверху.
Строка 167: Строка 167:
[[File:Quick_Start_BLE_connect_1.png|center]]
[[File:Quick_Start_BLE_connect_1.png|center]]


* Появится список доступных вариантов для подключения – выберите Web Bluetooth.
* Появится список доступных вариантов для подключения – выберите [[Web Bluetooth]].


[[File:Quick_Start_BLE_connect2_2.png|center]]
[[File:Quick_Start_BLE_connect2_2.png|center]]


* Должен появиться список устройств. Кликните на своё устройство (в конце названия вашего устройства должны быть 4 символа – это последние 4 символа MAC-адреса вашего устройства).
* Должен появиться список устройств. Кликните на своё устройство (в конце названия вашего устройства должны быть 4 символа – это последние 4 символа [[MAC-адрес]]а вашего устройства).


[[File:Quick_Start_BLE_connect3_3.png|center]]
[[File:Quick_Start_BLE_connect3_3.png|center]]
Строка 180: Строка 180:
== Использование ПК-приложения ==
== Использование ПК-приложения ==


На некоторых платформах (Windows или Linux со старыми версиями Bluez) Web Bluetooth пока не поддерживается.
На некоторых платформах ([[Windows]] или [[Linux]] со старыми версиями [[Bluez]]) [[Web Bluetooth]] пока не поддерживается.


Если это ваш случай, то вам нужно будет установить ПК-приложение для Windows. Устанавливается оно при помощи [https://www.espruino.com/Web+IDE#as-a-native-application вот этого установщика] – не используйте версию из Chrome Web Store, о которой рассказывалось в начале статьи, так как с её помощью доступ к Bluetooth-устройствам получить будет нельзя.
Если это ваш случай, то вам нужно будет установить ПК-приложение для [[Windows]]. Устанавливается оно при помощи [https://www.espruino.com/Web+IDE#as-a-native-application вот этого установщика] – не используйте версию из [[Chrome Web Store]], о которой рассказывалось в начале статьи, так как с её помощью доступ к [[Bluetooth-устройства]]м получить будет нельзя.


Установив, запустите IDE Espruino – не удивляйтесь, но она будет сильно похожа на онлайн-IDE Espruino, которую вы тоже, возможно, установили, если раньше уже использовали обычные USB-устройства Espruino.
Установив, запустите [[IDE Espruino]] – не удивляйтесь, но она будет сильно похожа на онлайн-IDE Espruino, которую вы тоже, возможно, установили, если раньше уже использовали обычные USB-устройства [[Espruino]].


[[File:Quick_Start_BLE_webidewindows_4.png|center]]
[[File:Quick_Start_BLE_webidewindows_4.png|center]]


'''Примечания:'''
'''Примечания:'''
* На Windows последовательные BLE-устройства (Nordic UART Service) вроде Espruino не воспринимаются как устройства с последовательным портом. Если меню подключения в IDE показывает устройства, начинающиеся со слова «COM» (например, «COM5») – это не ваши устройства и подключиться к ним не получится.
* На [[Windows]] последовательные [[BLE-устройства]] ([[Nordic UART Service]]) вроде [[Espruino]] не воспринимаются как устройства с последовательным портом. Если меню подключения в [[IDE]] показывает устройства, начинающиеся со слова '''«COM»''' (например, '''«COM5»''') – это не ваши устройства и подключиться к ним не получится.
* При использовании Windows 8.1/10 или новее вам нужно будет выполнить сопряжение вашего Espruino-устройства при помощи Bluetooth-меню Windows – лишь после этого оно появится в онлайн-IDE. Для устройств с поддержкой Web Bluetooth это не нужно.
* При использовании [[Windows 8.1]]/10 или новее вам нужно будет выполнить сопряжение вашего [[Espruino-устройства]] при помощи [[Bluetooth]]-меню [[Windows]] – лишь после этого оно появится в онлайн-IDE. '''Для устройств с поддержкой [[Web Bluetooth]] это не нужно.'''
* Если вы используете Bluetooth-адаптер и Windows 10, вам необходимо использовать встроенное Bluetooth-ПО Windows, а не устанавливать то, что было в комплекте с Bluetooth-адаптером. Зачастую ПО адаптера не даёт выполнить сопряжение с BLE-устройством и увидеть его при помощи API Windows 10.
* Если вы используете [[Bluetooth-адаптер]] и [[Windows 10]], вам необходимо использовать встроенное Bluetooth-ПО [[Windows]], а не устанавливать то, что было в комплекте с [[Bluetooth-адаптер]]ом. Зачастую ПО адаптера не даёт выполнить сопряжение с BLE-устройством и увидеть его при помощи API [[Windows 10]].
* Если вы используете Windows 7, вам нужно будет сначала [https://www.espruino.com/Web+IDE#zadig настроить Bluetooth-адаптер при помощи Zadig].  
* Если вы используете [[Windows 7]], вам нужно будет сначала [https://www.espruino.com/Web+IDE#zadig настроить Bluetooth-адаптер при помощи Zadig].  


На Linux, Mac OS и других платформах вам нужно будет установить NPM (инструкции можно найти на [https://github.com/espruino/EspruinoWebIDE#installing-from-npm GitHub-странице онлайн-IDE]).
На [[Linux]], [[Mac OS]] и других платформах вам нужно будет установить [[NPM]] (инструкции можно найти на [https://github.com/espruino/EspruinoWebIDE#installing-from-npm GitHub-странице онлайн-IDE]).


Когда всё будет настроено, можно попробовать [https://www.espruino.com/Quick+Start+BLE#next написать какой-нибудь код].
Когда всё будет настроено, можно попробовать [https://www.espruino.com/Quick+Start+BLE#next написать какой-нибудь код].
Строка 200: Строка 200:
=== Через Raspberry Pi ===
=== Через Raspberry Pi ===


Есть два способа использования Raspberry Pi для управления Espruino-устройствами.
Есть два способа использования [[Raspberry Pi]] для управления [[Espruino-устройства]]ми.
* Можно воспользоваться Espruino Hub (даёт возможность использовать MQTT-мост) и интерфейсом Node-RED (подробнее читайте в [https://www.espruino.com/BLE%20Node-RED руководстве по Node-RED]).
* Можно воспользоваться [[Espruino Hub]] (даёт возможность использовать [[MQTT-мост]]) и интерфейсом [[Node-RED]] (подробнее читайте в [https://www.espruino.com/BLE%20Node-RED руководстве по Node-RED]).
* Можно воспользоваться Raspberry Pi для [https://www.espruino.com/Raspberry+Pi+Web+IDE хостинга веб-версии IDE].
* Можно воспользоваться [[Raspberry Pi]] для [https://www.espruino.com/Raspberry+Pi+Web+IDE хостинга веб-версии IDE].


Когда всё будет настроено, можно попробовать [https://www.espruino.com/Quick+Start+BLE#next написать какой-нибудь код].
Когда всё будет настроено, можно попробовать [https://www.espruino.com/Quick+Start+BLE#next написать какой-нибудь код].
Строка 210: Строка 210:
В худшем случае у вас вообще может не оказаться компьютера для BLE-коммуникации.
В худшем случае у вас вообще может не оказаться компьютера для BLE-коммуникации.


Но не отчаивайтесь! Ко многим устройствам можно подключиться напрямую при помощи конвертера USB-TTL:
Но не отчаивайтесь! Ко многим устройствам можно подключиться напрямую при помощи конвертера [[USB-TTL]]:
* [https://www.espruino.com/Puck.js#serial-console Последовательное соединение с Puck.js]
* [https://www.espruino.com/Puck.js#serial-console Последовательное соединение с Puck.js]
* [https://www.espruino.com/Pixl.js#serial-console Последовательное соединение с Pixl.js]
* [https://www.espruino.com/Pixl.js#serial-console Последовательное соединение с Pixl.js]
Строка 221: Строка 221:
== Командная строка ==
== Командная строка ==


Вы можете воспользоваться приложением Espruino для командной строки. Оно работает под [https://nodejs.org/en/ Node.js], так что вам понадобится:
Вы можете воспользоваться приложением [[Espruino]] для командной строки. Оно работает под [https://nodejs.org/en/ Node.js], так что вам понадобится:
* Установить [https://nodejs.org/en/ Node.js]
* Установить [https://nodejs.org/en/ Node.js]
* В командной строке впишите npm install -g espruino (на Linux перед командой надо будет вписать sudo)
* В командной строке впишите '''npm install -g espruino''' (на [[Linux]] перед командой надо будет вписать '''sudo''')
* На Linux вам нужно будет запустить sudo setcap cap_net_raw+eip $(eval readlink -f `which node`), чтобы дать Node.js разрешение на использование BLE (или придётся запускать его через sudo).
* На [[Linux]] вам нужно будет запустить '''sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)''', чтобы дать [[Node.js]] разрешение на использование [[BLE]] (или придётся запускать его через '''sudo''').
* После того, как это будет выполнено, можно вызвать справку, написав espruino –help
* После того, как это будет выполнено, можно вызвать справку, написав '''espruino –help'''
* Чтобы подключиться, напишите espruino --list, чтобы узнать список устройств, а затем скопируйте MAC-адрес своего устройства и напишите espruino -p aa:bb:cc:dd:ee, чтобы подключиться.
* Чтобы подключиться, напишите '''espruino --list''', чтобы узнать список устройств, а затем скопируйте [[MAC-адрес]] своего устройства и напишите '''espruino -p aa:bb:cc:dd:ee''', чтобы подключиться.
* Дважды нажмите Ctrl+C, чтобы выйти.
* Дважды нажмите {{клавиша|Ctrl}}+{{клавиша|C}}, чтобы выйти.
* Можете также написать espruino -p aa:bb:cc:dd:ee -w filename.js, чтобы загрузить файл, войти в режим терминала, а затем загрузить его снова после внесения изменений (можете использовать свой любимый редактор).
* Можете также написать '''espruino -p aa:bb:cc:dd:ee -w filename.js''', чтобы загрузить файл, войти в режим терминала, а затем загрузить его снова после внесения изменений (можете использовать свой любимый редактор).
* Теперь можете попробовать [https://www.espruino.com/Quick+Start+BLE#next написать какой-нибудь код]!
* Теперь можете попробовать [https://www.espruino.com/Quick+Start+BLE#next написать какой-нибудь код]!


Строка 235: Строка 235:
=== Использование приложения Bluefruit Connect ===
=== Использование приложения Bluefruit Connect ===


Это простейшее решение для iOS:
Это простейшее решение для [[iOS]]:
* Запустите приложение.
* Запустите приложение.
* Выберите Espruino-устройство, с которым хотите начать коммуникацию, и кликните на Connect.
* Выберите [[Espruino-устройство]], с которым хотите начать коммуникацию, и кликните на '''Connect'''.
* Кликните на UART.
* Кликните на [[UART]].
* После подключения можно вводить различные команды – см. раздел «Команды» ниже.
* После подключения можно вводить различные команды – см. раздел '''«Команды»''' ниже.


=== Приложение nRF UART ===  
=== Приложение nRF UART ===  


* Запустите приложение.
* Запустите приложение.
* Нажмите на Connect и выберите Espruino-устройство.
* Нажмите на Connect и выберите [[Espruino-устройство]].
* Напишите команды в консоли – см. раздел «Команды» ниже.
* Напишите команды в консоли – см. раздел «Команды» ниже.


Примечание: В этом приложении вам нужно будет перед отправкой строчки нажать на клавишу Enter. Если у вас iOS, то это нужно будет cделать при помощи копирования/вставки кода в блокнот – что гораздо муторнее (при использовании приложения Adafruit, о котором говорится выше, всё это делается гораздо проще).
'''Примечание:''' В этом приложении вам нужно будет перед отправкой строчки нажать на клавишу {{клавиша|Enter}}. Если у вас [[iOS]], то это нужно будет cделать при помощи копирования/вставки кода в блокнот – что гораздо муторнее (при использовании приложения '''Adafruit''', о котором говорится выше, всё это делается гораздо проще).


=== Веб-сайт ===
=== Веб-сайт ===


BLE-устройствами Espruino можно управлять с помощью веб-сайта с Web Bluetooth – с условием, что вы используете совместимый браузер.  
[[BLE-устройства]]ми [[Espruino]] можно управлять с помощью веб-сайта с [[Web Bluetooth]] – с условием, что вы используете совместимый браузер.  


Web Bluetooth можно использовать и напрямую, но разработчики Espruino также создали для этого специальную библиотеку. Просто добавьте в код вашего сайта, обслуживаемого при помощи HTTPS, фрагмент <script src="https://puck-js.com/puck.js"></script>, и вы сможете выполнять команды, просто вызывая JS-код вроде:
[[Web Bluetooth]] можно использовать и напрямую, но разработчики [[Espruino]] также создали для этого специальную библиотеку. Просто добавьте в код вашего сайта, обслуживаемого при помощи [[HTTPS]], фрагмент '''<script src="https://puck-js.com/puck.js"></script>''', и вы сможете выполнять команды, просто вызывая JS-код вроде:


<syntaxhighlight lang="javascript" enclose="div">
Puck.write('LED1.set();\n');
Puck.write('LED1.set();\n');
</syntaxhighlight>


Соответствующее руководство можно найти [https://www.espruino.com/Web%20Bluetooth тут].
Соответствующее руководство можно найти [https://www.espruino.com/Web%20Bluetooth тут].
Строка 261: Строка 263:
=== Ваше собственное приложение ===
=== Ваше собственное приложение ===


Вы можете создать собственное приложение для управления Espruino на любой платформе.
Вы можете создать собственное приложение для управления [[Espruino]] на любой платформе.


Для самого базового управления вам нужно лишь подключиться к Bluetooth-устройству Espruino и характеристике с идентификатором 6e400002b5a3f393e0a9e50e24dcca9e. После этого вы сможете многократно записывать на неё данные, чтобы отправлять команды на Espruino.
Для самого базового управления вам нужно лишь подключиться к Bluetooth-устройству [[Espruino]] и характеристике с идентификатором '''6e400002b5a3f393e0a9e50e24dcca9e'''. После этого вы сможете многократно записывать на неё данные, чтобы отправлять команды на Espruino.


=== Команды ===
=== Команды ===
Строка 270: Строка 272:


* Должен загореться красный светодиод.
* Должен загореться красный светодиод.
* Теперь можете написать LED1.reset(), чтобы выключить светодиод. Светодиоды LED2 и LED3 тоже работают.
* Теперь можете написать LED1.reset(), чтобы выключить светодиод. [[Светодиод]]ы '''LED2''' и '''LED3''' тоже работают.
* Обратите внимание, что вам также будут приходить ответы. Например, команда BTN.read() вернёт true или false – в зависимости от того, нажата кнопка или нет.
* Обратите внимание, что вам также будут приходить ответы. Например, команда BTN.read() вернёт '''true''' или '''false''' – в зависимости от того, нажата кнопка или нет.


== Возникли какие-то проблемы? ==
== Возникли какие-то проблемы? ==
Строка 307: Строка 309:
* Также можно пробежаться по [http://forum.espruino.com/ форуму, посвящённому Espruino]
* Также можно пробежаться по [http://forum.espruino.com/ форуму, посвящённому Espruino]


Примечание: Espruino работает и на многих других устройствах, и информация выше касается их всех. Если в руководстве специально не говорится о том, что оно предназначено для вашего устройства, то, возможно, вам нужно будет поменять некоторые названия контактов и немного переподключить компоненты, чтобы всё это соответствовало контактам на вашем устройстве.
'''Примечание:''' [[Espruino]] работает и на многих других устройствах, и информация выше касается их всех. Если в руководстве специально не говорится о том, что оно предназначено для вашего устройства, то, возможно, вам нужно будет поменять некоторые названия контактов и немного переподключить компоненты, чтобы всё это соответствовало контактам на вашем устройстве.


== Энергопотребление ==
== Энергопотребление ==


По умолчанию Bluetooth-устройства Espruino не требовательны к энергопотреблению и могут спокойно работать от батареи (более подробно читайте в соответствующей статье о вашей плате). Если на них раз в минуту будет запускаться какой-то маленький JavaScript-код или нажиматься кнопка, это не сильно повлияет на срок работы батареи.
По умолчанию Bluetooth-устройства [[Espruino]] не требовательны к энергопотреблению и могут спокойно работать от батареи (более подробно читайте в соответствующей статье о вашей плате). Если на них раз в минуту будет запускаться какой-то маленький JavaScript-код или нажиматься кнопка, это не сильно повлияет на срок работы батареи.


Однако есть ситуации, когда заряд батареи расходуется очень быстро:
Однако есть ситуации, когда заряд батареи расходуется очень быстро:
* Включенный светодиод расходует в 100 раз больше энергии, чем не включенный.
* Включенный [[светодиод]] расходует ''в 100 раз больше энергии'', чем не включенный.
* При активном Bluetooth-подключении расходуется в 20 раз больше энергии, чем при отсутствии такого подключения – но при условии, если в это время также передаются данные. Спустя 1-2 минуты без активности Espruino переключится в энергосберегающий режим с более низкой пропускной способностью – он расходует примерно столько же энергии, что и при отключенном Bluetooth-соединении. При возобновлении активности Espruino вновь переключится в режим с высокой пропускной способностью.
* При активном Bluetooth-подключении расходуется ''в 20 раз больше энергии'', чем при отсутствии такого подключения – но при условии, если в это время также передаются данные. ''Спустя 1-2 минуты без активности'' [[Espruino]] переключится в энергосберегающий режим с более низкой пропускной способностью – он расходует примерно столько же энергии, что и при отключенном Bluetooth-соединении. При возобновлении активности Espruino вновь переключится в режим с высокой пропускной способностью.
* Непрерывный запуск JavaScript-кода (например, while(true);) будет расходовать в 200 раз больше энергии, чем в ситуации, когда никакой код не выполняется вообще. Если выполнять JavaScript-код по событиям (например, при помощи setWatch(myCode, BTN) или setInterval(myCode, 100000)), это будет расходовать ничтожное количество энергии.
* Непрерывный запуск JavaScript-кода (например, while(true);) будет расходовать ''в 200 раз больше энергии'', чем в ситуации, когда никакой код не выполняется вообще. Если выполнять JavaScript-код по событиям (например, при помощи setWatch(myCode, BTN) или setInterval(myCode, 100000)), это будет расходовать ничтожное количество энергии.


То есть, если вы '''экспериментируете''' с устройством, но сам загруженный код пока использовать не собираетесь, рекомендуем либо отсоединить батарею, либо подключиться к устройству и напечатать reset() – чтобы этот код не работал в фоновом режиме, разряжая батарею.
То есть, если вы '''экспериментируете''' с устройством, но сам загруженный код пока использовать не собираетесь, рекомендуем либо отсоединить батарею, либо подключиться к устройству и напечатать reset() – чтобы этот код не работал в фоновом режиме, разряжая батарею.
Строка 325: Строка 327:
* [https://www.espruino.com/MDBT42Q#power-consumption Энергопотребление MDBT42Q]
* [https://www.espruino.com/MDBT42Q#power-consumption Энергопотребление MDBT42Q]
* [https://www.espruino.com/Bangle.js#power-consumption Энергопотребление Bangle.js]
* [https://www.espruino.com/Bangle.js#power-consumption Энергопотребление Bangle.js]
<syntaxhighlight lang="javascript" enclose="div">
</syntaxhighlight>


=См.также=
=См.также=

Версия от 18:49, 2 марта 2021

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Быстрый старт (Bluetooth LE)[1]

Включение

Puck.js

Puck.js можно питать либо от отдельной батареи, либо от установленной внутрь него батарейки. Однако во втором случае нужно помнить, что между батарейкой и печатной платой находится прозрачная пластиковая вкладка – она нужна, чтобы между ними не было контакта, а Puck.js оставался в выключенном состоянии.

Чтобы включить его, выполните следующее:

  • Снимите с Puck.js верхнюю крышку.
  • Выньте печатную плату.
  • Если батарейка установлена, выньте её с помощью тупого объекта и снимите прозрачную пластиковую вкладку.
  • Вставьте батарейку обратно. Минусовая сторона батарейки должна находиться лицом к печатной плате Puck.js. В результате должен один раз очень быстро мигнуть красный светодиод.
  • Если загорелся зелёный светодиод или не выключился красный светодиод, то это произошло из-за того, что вы случайно нажали на кнопку, пока вставляли батарейку. Выньте батарейку и попробуйте снова, но в этот раз постарайтесь не нажимать на кнопку, находящуюся рядом с батарейкой.
  • Соберите Puck.js. Чтобы кнопка работала правильно, та сторона платы, на которой находится батарейка, должна смотреть на чёрную часть пластикового корпуса, а кнопка, находящаяся рядом с батарейкой, должна находиться как можно дальше от выступа на корпусе.

Изображения с демонстрацией правильной ориентации батарейки и корпуса Puck.js смотрите в этой статье.

Для простых задач прошивка, установленная на Puck.js по умолчанию, подходит нормально, но разработчики постоянно её улучшают и добавляют в неё новые функции. Чтобы выжать из Puck.js максимум, рекомендуем в самом начала работы с ним обновить прошивку до последней версии.

Pixl.js

Запитать Pixl.js можно тремя способами:

  • При помощи кабеля Micro USB (на Pixl.js нет возможности передавать данные по USB).
  • Вставив батарейку CR2032 в соответствующий держатель на плате (минусовая сторона батарейки должна находиться лицом к печатной плате Pixl.js).
  • Подключив источник питания (напряжение должно быть меньше 16 вольт) между контактами Vin и GND на Pixl.js.

Для простых задач прошивка, установленная на Pixl.js по умолчанию, подходит нормально, но разработчики постоянно улучшают её и добавляют в неё новые функции.

Чтобы выжать из Pixl.js максимум, рекомендуем в самом начале работы обновить прошивку до последней версии.

Bangle.js

Чтобы подать питание на Bangle.js, просто нажмите на кнопку BTN1 (верхняя кнопка справа).

Если Bluetooth отключен (по умолчанию он включен на Bangle.js):

  • Нажмите среднюю кнопку (BTN2) на Bangle.js.
  • При помощи нижней кнопки (BTN3) пролистайте до настроек (Settings).
  • Нажмите BTN2, чтобы выбрать пункт «Settings».
  • Далее возможны два варианта:
    • Либо: Убедитесь, что в настройках «BLE» и «Programmable» стоит «On», чтобы включить у Bangle.js режим программирования. Затем выберите «Back», чтобы выйти из меню настроек.
    • Либо: Найдите пункт «Make Connectable», выберите его и пока отложите Bangle.js, оставив на нём меню Connectable.

Более подробно читайте в ознакомительной статье, посвящённой Bangle.js.

MDBT42Q

Более подробно о питании MDBT42Q читайте на соответствующей странице.

Хотя на заранее запрограммированные модули MDBT42Q уже установлена прошивка, которая подходит для выполнения простых задач, разработчики постоянно её улучшают и добавляют в неё новые функции.

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

Ruuvitag

Более подробно о питании Ruuvitag читайте в соответствующей статье.

Nordic Thingy:52

На устройства Thingy прошивка Espruino по умолчанию не установлена. Более подробно о том, как установить её, а также о питании Thingy:52 читайте в этой статье.

Nordic nRF52832DK

Просто подключите свой nRF52832DK к USB-коннектору. На него также нужно будет записать прошивку Espruino.

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

Кроме того, Puck.js и Pixl.js могут работать как NFC-метки, способные направлять ваш телефон (если он поддерживает NFC) по нужным URL-ссылкам.

Требования

Для того, чтобы пользоваться BLE, в вашем компьютере должен быть установлен адаптер с поддержкой Bluetooth 4.0 (адаптеры, поддерживающие версии до 4.0, работать не будут). Впрочем, Bluetooth 4 поддерживается почти всеми современными компьютерами, но вам, возможно, понадобится внешний Bluetooth-адаптер, если ваш компьютер...

  • ...это Apple Mac, изготовленный до 2012 года.
  • ...это ПК на Windows, чья версия Windows ниже 10.
  • ...это настольный ПК (не ноутбук), т.к. у него вообще может не быть поддержки беспроводной передачи данных.
  • ...работает на Linux. Большая часть встроенного BLE-функционала на ноутбуках по-прежнему имеет много багов. Более надёжно будет воспользоваться внешним USB-адаптером.

Если ваш компьютер не поддерживает BLE, то можно воспользоваться USB-адаптером для BLE – они компактные, недорогие (около 10 долларов), и купить их можно практически везде. В данный момент на рынке преобладают вот эти два типа USB-адаптеров для Bluetooth:

  • Адаптеры на чипсете Broadcom (например, BCM20702) – они хорошо работают на всех платформах.
  • Адаптеры производства фирмы Cambridge Silicon Radio (CSR) – адаптеры этого типа хорошо работают на Linux и Windows. Раньше они хорошо работали на Mac, но их поддержка пропала после ОС-обновления High Sierra, так что рекомендуем остановить выбор на модуле от Broadcom.

Чтобы точно купить подходящий адаптер, рекомендуем покупать ТОЛЬКО те адаптеры, в описании которых явно написано «CSR» или «Broadcom». Модуль BlueGiga BLED112 РАБОТАТЬ НЕ БУДЕТ – это устройство с последовательным портом, а не Bluetooth-адаптер общего пользования.

Вот список рабочих и протестированных USB-адаптеров для Bluetooth:

Работа с Espruino-устройством

По умолчанию ПК видит Espruino как BLE-устройство с последовательным портом. Подключаясь к этому последовательному порту, вы при помощи командной стоки получаете полный доступ к встроенному JavaScript-интерпретатору Espruino.

Примечание: Последовательные BLE-порты (также известные как «Nordic UART») не будут отображаться в списке последовательных устройств вашей ОС.

Далее, чтобы начать работать с Espruino, у вас есть два варианта:

Использование IDE Espruino

Использование IDE Espruino через Web Bluetooth

Примечание: На этом компьютере Web Bluetooth уже включен.

Если ваш компьютер поддерживает Web Bluetooth, то это простейший способ начать работать с Espruino.

Вам понадобится самая новая версия браузера Google Chrome или Opera на одной из следующих платформ:

Mac OS

Нужна версия Yosemite или новее, и также проверьте, поддерживается ли BLE на вашем Mac:

  • Кликните на логотип Apple, а затем на About this Mac слева вверху
  • Кликните на System Report
  • Кликните на Bluetooth под Hardware
  • Посмотрите, написано ли там Bluetooth Low Energy Supported

Если нет:

  • Купите USB-адаптер с поддержкой Bluetooth 4.0 или новее (он стоит примерно 10 долларов) – см. раздел «Требования» выше.
  • Откройте терминал и напишите там «sudo nvram bluetoothHostControllerSwitchBehavior=al­ways» (чтобы вернуться к старым настройкам, напишите «sudo nvram -d bluetoothHostControllerSwitchBehavior»).
  • Перезагрузите Mac.
  • Убедитесь, что отключили (или выключили сопряжение) все Bluetooth-устройства, использующие внутренний Bluetooth – они могут помешать «маку» использовать новый адаптер.

Windows

Windows 10 полностью поддерживает Web Bluetooth – с условием, если вы используете самую новую версию Google Chrome (v70 и выше) и ваш ПК оснащен функционалом для BLE-связи (он есть у всех новых ноутбуков).

Если у вас нет Windows 10, вам нужно будет установить ПК-приложение для IDE Espruino – с его помощью вы получите прямой доступ к Bluetooth-адаптеру.

Linux

В Chrome нет официальной поддержки Linux. Но благодаря наличию поддержки ChromeOS вы можете включить и поддержку Linux: Вам понадобится BlueZ 5.41+ (5.43 – более стабильная версия) – узнать версию можно с помощью bluetoothd --version. Если он не установлен, установите его (инструкции тут).

  • Впишите в адресной строке chrome://flags.
  • Выберите Enabled рядом с пунктом Experimental Web Platform Features (chrome://flags/#enable-experimental-web-platform-features).
  • Перезапустите браузер.

Chromebook

Все хромбуки с Bluetooth должны поддерживать Web Bluetooth.

Android

На устройствах с Android 6 (Marshmallow) Web Bluetooth поддерживается по умолчанию.

На устройствах с Android 5 (Lollipop) поверх ADB можно воспользоваться Chromium.

iOS (iPhone, iPad)

Встроенный веб-браузер Apple не поддерживает Web Bluetooth. Вам нужно будет установить приложение WebBLE.

После этого вы сможете получить доступ к Web Bluetooth через любую веб-страницу, просматриваемую с помощью WebBLE.

Когда Web Bluetooth будет настроен:

  • Перейдите на сайт Puck.js. Там вам должны сообщить, что у вас включен Web Bluetooth.
  • Кликните на гиперссылку Espruino Web IDE.
  • Кликните на жёлтую кнопку Connect/Disconnect слева вверху.
  • Появится список доступных вариантов для подключения – выберите Web Bluetooth.
  • Должен появиться список устройств. Кликните на своё устройство (в конце названия вашего устройства должны быть 4 символа – это последние 4 символа MAC-адреса вашего устройства).

Использование ПК-приложения

На некоторых платформах (Windows или Linux со старыми версиями Bluez) Web Bluetooth пока не поддерживается.

Если это ваш случай, то вам нужно будет установить ПК-приложение для Windows. Устанавливается оно при помощи вот этого установщика – не используйте версию из Chrome Web Store, о которой рассказывалось в начале статьи, так как с её помощью доступ к Bluetooth-устройствам получить будет нельзя.

Установив, запустите IDE Espruino – не удивляйтесь, но она будет сильно похожа на онлайн-IDE Espruino, которую вы тоже, возможно, установили, если раньше уже использовали обычные USB-устройства Espruino.

Примечания:

  • На Windows последовательные BLE-устройства (Nordic UART Service) вроде Espruino не воспринимаются как устройства с последовательным портом. Если меню подключения в IDE показывает устройства, начинающиеся со слова «COM» (например, «COM5») – это не ваши устройства и подключиться к ним не получится.
  • При использовании Windows 8.1/10 или новее вам нужно будет выполнить сопряжение вашего Espruino-устройства при помощи Bluetooth-меню Windows – лишь после этого оно появится в онлайн-IDE. Для устройств с поддержкой Web Bluetooth это не нужно.
  • Если вы используете Bluetooth-адаптер и Windows 10, вам необходимо использовать встроенное Bluetooth-ПО Windows, а не устанавливать то, что было в комплекте с Bluetooth-адаптером. Зачастую ПО адаптера не даёт выполнить сопряжение с BLE-устройством и увидеть его при помощи API Windows 10.
  • Если вы используете Windows 7, вам нужно будет сначала настроить Bluetooth-адаптер при помощи Zadig.

На Linux, Mac OS и других платформах вам нужно будет установить NPM (инструкции можно найти на GitHub-странице онлайн-IDE).

Когда всё будет настроено, можно попробовать написать какой-нибудь код.

Через Raspberry Pi

Есть два способа использования Raspberry Pi для управления Espruino-устройствами.

Когда всё будет настроено, можно попробовать написать какой-нибудь код.

Через проводное соединение

В худшем случае у вас вообще может не оказаться компьютера для BLE-коммуникации.

Но не отчаивайтесь! Ко многим устройствам можно подключиться напрямую при помощи конвертера USB-TTL:

После этого можно воспользоваться обычной онлайн-IDE Espruino (инструкции об использовании онлайн-версии IDE Espruino при проводном последовательном соединении ищите тут).

Командная строка

Вы можете воспользоваться приложением Espruino для командной строки. Оно работает под Node.js, так что вам понадобится:

  • Установить Node.js
  • В командной строке впишите npm install -g espruino (на Linux перед командой надо будет вписать sudo)
  • На Linux вам нужно будет запустить sudo setcap cap_net_raw+eip $(eval readlink -f `which node`), чтобы дать Node.js разрешение на использование BLE (или придётся запускать его через sudo).
  • После того, как это будет выполнено, можно вызвать справку, написав espruino –help
  • Чтобы подключиться, напишите espruino --list, чтобы узнать список устройств, а затем скопируйте MAC-адрес своего устройства и напишите espruino -p aa:bb:cc:dd:ee, чтобы подключиться.
  • Дважды нажмите  Ctrl + C , чтобы выйти.
  • Можете также написать espruino -p aa:bb:cc:dd:ee -w filename.js, чтобы загрузить файл, войти в режим терминала, а затем загрузить его снова после внесения изменений (можете использовать свой любимый редактор).
  • Теперь можете попробовать написать какой-нибудь код!

Отправка отдельных команд

Использование приложения Bluefruit Connect

Это простейшее решение для iOS:

  • Запустите приложение.
  • Выберите Espruino-устройство, с которым хотите начать коммуникацию, и кликните на Connect.
  • Кликните на UART.
  • После подключения можно вводить различные команды – см. раздел «Команды» ниже.

Приложение nRF UART

  • Запустите приложение.
  • Нажмите на Connect и выберите Espruino-устройство.
  • Напишите команды в консоли – см. раздел «Команды» ниже.

Примечание: В этом приложении вам нужно будет перед отправкой строчки нажать на клавишу  ↵ Enter . Если у вас iOS, то это нужно будет cделать при помощи копирования/вставки кода в блокнот – что гораздо муторнее (при использовании приложения Adafruit, о котором говорится выше, всё это делается гораздо проще).

Веб-сайт

BLE-устройствами Espruino можно управлять с помощью веб-сайта с Web Bluetooth – с условием, что вы используете совместимый браузер.

Web Bluetooth можно использовать и напрямую, но разработчики Espruino также создали для этого специальную библиотеку. Просто добавьте в код вашего сайта, обслуживаемого при помощи HTTPS, фрагмент <script src="https://puck-js.com/puck.js"></script>, и вы сможете выполнять команды, просто вызывая JS-код вроде:

Puck.write('LED1.set();\n');

Соответствующее руководство можно найти тут.

Ваше собственное приложение

Вы можете создать собственное приложение для управления Espruino на любой платформе.

Для самого базового управления вам нужно лишь подключиться к Bluetooth-устройству Espruino и характеристике с идентификатором 6e400002b5a3f393e0a9e50e24dcca9e. После этого вы сможете многократно записывать на неё данные, чтобы отправлять команды на Espruino.

Команды

Напишите LED1.set() и кликните на кнопку отправки.

  • Должен загореться красный светодиод.
  • Теперь можете написать LED1.reset(), чтобы выключить светодиод. Светодиоды LED2 и LED3 тоже работают.
  • Обратите внимание, что вам также будут приходить ответы. Например, команда BTN.read() вернёт true или false – в зависимости от того, нажата кнопка или нет.

Возникли какие-то проблемы?

Поищите их решение здесь:

Что дальше?

Ознакомьтесь с этим руководством – оно поможет вам сделать первые шаги в написании кода.

Кроме того, по ссылкам ниже есть много подробной информации по разным платам, а также списки руководств для них:

А по этим ссылкам можно найти более общую информацию:

Примечание: Espruino работает и на многих других устройствах, и информация выше касается их всех. Если в руководстве специально не говорится о том, что оно предназначено для вашего устройства, то, возможно, вам нужно будет поменять некоторые названия контактов и немного переподключить компоненты, чтобы всё это соответствовало контактам на вашем устройстве.

Энергопотребление

По умолчанию Bluetooth-устройства Espruino не требовательны к энергопотреблению и могут спокойно работать от батареи (более подробно читайте в соответствующей статье о вашей плате). Если на них раз в минуту будет запускаться какой-то маленький JavaScript-код или нажиматься кнопка, это не сильно повлияет на срок работы батареи.

Однако есть ситуации, когда заряд батареи расходуется очень быстро:

  • Включенный светодиод расходует в 100 раз больше энергии, чем не включенный.
  • При активном Bluetooth-подключении расходуется в 20 раз больше энергии, чем при отсутствии такого подключения – но при условии, если в это время также передаются данные. Спустя 1-2 минуты без активности Espruino переключится в энергосберегающий режим с более низкой пропускной способностью – он расходует примерно столько же энергии, что и при отключенном Bluetooth-соединении. При возобновлении активности Espruino вновь переключится в режим с высокой пропускной способностью.
  • Непрерывный запуск JavaScript-кода (например, while(true);) будет расходовать в 200 раз больше энергии, чем в ситуации, когда никакой код не выполняется вообще. Если выполнять JavaScript-код по событиям (например, при помощи setWatch(myCode, BTN) или setInterval(myCode, 100000)), это будет расходовать ничтожное количество энергии.

То есть, если вы экспериментируете с устройством, но сам загруженный код пока использовать не собираетесь, рекомендуем либо отсоединить батарею, либо подключиться к устройству и напечатать reset() – чтобы этот код не работал в фоновом режиме, разряжая батарею.

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

См.также

Внешние ссылки