Espruino:Примеры/Маяки iBeacon: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
Строка 5: Строка 5:
=Маяки iBeacon<ref>[https://www.espruino.com/iBeacon www.espruino.com - iBeacons]</ref>=
=Маяки iBeacon<ref>[https://www.espruino.com/iBeacon www.espruino.com - iBeacons]</ref>=


Примечание: Если вы используете маяки Eddystone, то вам нужна [https://www.espruino.com/Eddystone эта статья].
'''Примечание:''' Если вы используете маяки [[Eddystone]], то вам нужна [https://www.espruino.com/Eddystone эта статья].
[https://ru.wikipedia.org/wiki/IBeacon iBeacon] – это формат маяков от Apple для передачи информации, показываемой в виде уведомлений на iPhone пользователя.
[https://ru.wikipedia.org/wiki/IBeacon iBeacon] – это формат маяков от [[Apple]] для передачи информации, показываемой в виде уведомлений на [[iPhone]] пользователя.


Для этого всего лишь нужно воспользоваться [https://www.espruino.com/modules/ble_ibeacon.js модулем «ble_ibeacon»] (более подробно о модулях читайте [https://www.espruino.com/Modules тут]):
Для этого всего лишь нужно воспользоваться [https://www.espruino.com/modules/ble_ibeacon.js модулем «ble_ibeacon»] (более подробно о модулях читайте [https://www.espruino.com/Modules тут]):
Строка 20: Строка 20:
</syntaxhighlight>
</syntaxhighlight>


Примечание: Чтобы воспользоваться этой функцией, вам понадобится UUID группы iBeacon-маяков от Apple.
'''Примечание:''' Чтобы воспользоваться этой функцией, вам понадобится [[UUID]] группы [[iBeacon-маяк]]ов от [[Apple]].


С этого момента Espruino начнёт транслировать данные всем прослушивающим устройствам, находящимся вокруг.
С этого момента [[Espruino]] начнёт транслировать данные всем прослушивающим устройствам, находящимся вокруг.


Примечание: Вы не можете рассылать BLE-объявления, когда подключены через Bluetooth, поэтому вам сначала нужно будет отключиться от Espruino, чтобы начать передачу данных.
'''Примечание:''' Вы не можете рассылать [[BLE-объявления]], когда подключены через [[Bluetooth]], поэтому вам сначала нужно будет отключиться от [[Espruino]], чтобы начать передачу данных.


Чтобы выключить рассылку iBeacon-данных, просто вызовите NRF.setAdvertising({});.
Чтобы выключить рассылку [[iBeacon-данных]], просто вызовите '''NRF.setAdvertising({});'''.


== Продвинутое использование ==
== Продвинутое использование ==
Строка 32: Строка 32:
'''Функция require("ble_ibeacon").advertise заменяет данные, рассылаемые [[Espruino]] (название, сервисы и т.д.), на [[iBeacon]]-пакет.'''
'''Функция require("ble_ibeacon").advertise заменяет данные, рассылаемые [[Espruino]] (название, сервисы и т.д.), на [[iBeacon]]-пакет.'''


При помощи функции require("ble_ibeacon").get (в которой заданы те же настройки, что и в advertise), можно прочесть массив рассылаемых данных. Затем их можно напрямую «скормить» функции NRF.setAdvertising(), которая позволяет вам задать и другие настройки (вроде частоты рассылки данных).
При помощи функции '''require("ble_ibeacon").get''' (в которой заданы те же настройки, что и в '''advertise'''), можно прочесть массив рассылаемых данных. Затем их можно напрямую ''«скормить»'' функции NRF.setAdvertising(), которая позволяет вам задать и другие настройки (вроде частоты рассылки данных).


Кроме того, в Espruino 1v92 и новее можно задать массив рассылаемых данных, чтобы Espruino отправляла каждый пакет по отдельности.  
Кроме того, в [[Espruino]] 1v92 и новее можно задать массив рассылаемых данных, чтобы [[Espruino]] отправляла каждый пакет по отдельности.  


Данные iBeacon и стандартная информация подключения Espruino:
Данные [[iBeacon]] и стандартная информация подключения [[Espruino]]:


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript" enclose="div">
Строка 46: Строка 46:
</syntaxhighlight>
</syntaxhighlight>


Данные iBeacon, Eddystone и информация об уровне заряда батареи:
Данные [[iBeacon]], [[Eddystone]] и информация об уровне заряда батареи:


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript" enclose="div">

Версия от 12:05, 6 марта 2021

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


Маяки iBeacon[1]

Примечание: Если вы используете маяки Eddystone, то вам нужна эта статья. iBeacon – это формат маяков от Apple для передачи информации, показываемой в виде уведомлений на iPhone пользователя.

Для этого всего лишь нужно воспользоваться модулем «ble_ibeacon» (более подробно о модулях читайте тут):

require("ble_ibeacon").advertise({
  // UUID группы iBeacon-маяков:
  uuid : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  major : 0x0001, // опционально
  minor : 0x0001, // опционально
  rssi : -59      // опциональная RSSI на 1-метровой дистанции (в дБ) 
});

Примечание: Чтобы воспользоваться этой функцией, вам понадобится UUID группы iBeacon-маяков от Apple.

С этого момента Espruino начнёт транслировать данные всем прослушивающим устройствам, находящимся вокруг.

Примечание: Вы не можете рассылать BLE-объявления, когда подключены через Bluetooth, поэтому вам сначала нужно будет отключиться от Espruino, чтобы начать передачу данных.

Чтобы выключить рассылку iBeacon-данных, просто вызовите NRF.setAdvertising({});.

Продвинутое использование

Функция require("ble_ibeacon").advertise заменяет данные, рассылаемые Espruino (название, сервисы и т.д.), на iBeacon-пакет.

При помощи функции require("ble_ibeacon").get (в которой заданы те же настройки, что и в advertise), можно прочесть массив рассылаемых данных. Затем их можно напрямую «скормить» функции NRF.setAdvertising(), которая позволяет вам задать и другие настройки (вроде частоты рассылки данных).

Кроме того, в Espruino 1v92 и новее можно задать массив рассылаемых данных, чтобы Espruino отправляла каждый пакет по отдельности.

Данные iBeacon и стандартная информация подключения Espruino:

NRF.setAdvertising([
 require("ble_ibeacon").get(...),
 {} // это добавит «стандартный» пакет объявления,
    // показывающий название и так далее: 
 ], {interval:100});

Данные iBeacon, Eddystone и информация об уровне заряда батареи:

NRF.setAdvertising([
  require("ble_ibeacon").get(...),
  require("ble_eddystone").get(...),
  { 0x180F : [95] }
  ], {interval:100});

См.также

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