Espruino:Примеры/Маяки iBeacon: различия между версиями
Myagkij (обсуждение | вклад) (Новая страница: «{{Espruino/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =<ref>[ www.espruino.com - ]</ref>= <syntaxhighligh...») |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 3: | Строка 3: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=<ref>[ www.espruino.com - ]</ref>= | =Маяки iBeacon<ref>[https://www.espruino.com/iBeacon www.espruino.com - iBeacons]</ref>= | ||
Примечание: Если вы используете маяки Eddystone, то вам нужна [https://www.espruino.com/Eddystone эта статья]. | |||
[https://ru.wikipedia.org/wiki/IBeacon iBeacon] – это формат маяков от Apple для передачи информации, показываемой в виде уведомлений на iPhone пользователя. | |||
<syntaxhighlight lang=" | Для этого всего лишь нужно воспользоваться [https://www.espruino.com/modules/ble_ibeacon.js модулем «ble_ibeacon»] (более подробно о модулях читайте [https://www.espruino.com/Modules тут]): | ||
<syntaxhighlight lang="javascript" enclose="div"> | |||
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-метровой дистанции (в дБ) | |||
}); | |||
</syntaxhighlight> | |||
Примечание: Чтобы воспользоваться этой функцией, вам понадобится 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: | |||
<syntaxhighlight lang="javascript" enclose="div"> | |||
NRF.setAdvertising([ | |||
require("ble_ibeacon").get(...), | |||
{} // это добавит «стандартный» пакет объявления, | |||
// показывающий название и так далее: | |||
], {interval:100}); | |||
</syntaxhighlight> | |||
Данные iBeacon, Eddystone и информация об уровне заряда батареи: | |||
<syntaxhighlight lang="javascript" enclose="div"> | |||
NRF.setAdvertising([ | |||
require("ble_ibeacon").get(...), | |||
require("ble_eddystone").get(...), | |||
{ 0x180F : [95] } | |||
], {interval:100}); | |||
</syntaxhighlight> | |||
=См.также= | =См.также= |
Версия от 11:59, 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});
См.также
Внешние ссылки