Espruino:Примеры/Освещение, реагирующее на открывание/закрывание двери, с помощью Puck.js: различия между версиями

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


=Освещение, реагирующее на открывание/закрывание двери, с помощью Puck.js<ref>[https://www.espruino.com/Puck.js+Door+Light www.espruino.com - Door Controlled Light with Puck.js]</ref>=
=Освещение, реагирующее на открывание/закрывание двери, с помощью Puck.js<ref>[https://www.espruino.com/Puck.js+Door+Light www.espruino.com - Door Controlled Light with Puck.js]</ref>=
Освещение, реагирующее на открывание/закрывание двери, с помощью Puck.js


Видео ниже демонстрирует, как при помощи [https://www.espruino.com/Puck.js Puck.js] определять закрытие/открытие двери и использовать это для управления другими устройствами.
Видео ниже демонстрирует, как при помощи [https://www.espruino.com/Puck.js Puck.js] определять закрытие/открытие двери и использовать это для управления другими устройствами.


Чтобы определить, находится ли рядом с Puck.js магнит, мы воспользуемся встроенным в Puck.js магнетометром.
Чтобы определить, находится ли рядом с [[Puck.js]] [[магнит]], мы воспользуемся встроенным в [[Puck.js]] [[магнетометр]]ом.


[Видео]
[https://www.youtube.com/watch?v=T3YbwAtgrcg&feature=emb_title Puck js Door Controlled Light]


Код, используемый в этом видео – ниже:
Код, используемый в этом видео – ниже:
Строка 71: Строка 69:
== Где купить ==
== Где купить ==


Дистанционно управляемые ИК-светодиоды вроде тех, что показаны в видео, можно купить на [https://www.ebay.com/sch/i.html?_nkw=rgb+led+light+ir+remote+control&_sacat=0&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5337979701&customid=&toolid=10001&mkevt=1 eBay]. Они также продаются в виде полосы.
Дистанционно управляемые [[ИК-светодиод]]ы вроде тех, что показаны в видео, можно купить на [https://www.ebay.com/sch/i.html?_nkw=rgb+led+light+ir+remote+control&_sacat=0&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5337979701&customid=&toolid=10001&mkevt=1 eBay]. Они также продаются в виде полосы.


'''Примечание:''' Хотя некоторые из этих светодиодов выглядят одинаково, они часто используют разные коды управления. Единственный способ точно убедиться, что вы используете правильные коды – [http://wikihandbk.com/wiki/Espruino:Примеры/Запись_и_воспроизведение_ИК-сигналов_при_помощи_Puck.js это записать их самому].
'''Примечание:''' Хотя некоторые из этих светодиодов выглядят одинаково, они часто используют разные коды управления. Единственный способ точно убедиться, что вы используете правильные коды – [http://wikihandbk.com/wiki/Espruino:Примеры/Запись_и_воспроизведение_ИК-сигналов_при_помощи_Puck.js это записать их самому].
Строка 85: Строка 83:
{{Навигационная таблица/Espruino}}
{{Навигационная таблица/Espruino}}
{{Навигационная таблица/Телепорт}}
{{Навигационная таблица/Телепорт}}
[[Категория:Примеры]]
[[Категория:Пример]]
[[Категория:Puck.mag()]]
[[Категория:mag()]]
[[Категория:Puck]]
[[Категория:Math.sqrt()]]
[[Категория:Math]]
[[Категория:sqrt()]]
[[Категория:digitalPulse]]
[[Категория:digitalPulse()]]
[[Категория:Puck.on()]]
[[Категория:on()]]
[[Категория:Puck.magOn()]]
[[Категория:magOn()]]
[[Категория:NRF.requestDevice]]
[[Категория:NRF]]
[[Категория:requestDevice]]
[[Категория:requestDevice()]]
[[Категория:print()]]
[[Категория:print]]
[[Категория:require]]
[[Категория:require()]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]
[[Категория:]]

Версия от 15:23, 25 июня 2021

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


Освещение, реагирующее на открывание/закрывание двери, с помощью Puck.js[1]

Видео ниже демонстрирует, как при помощи Puck.js определять закрытие/открытие двери и использовать это для управления другими устройствами.

Чтобы определить, находится ли рядом с Puck.js магнит, мы воспользуемся встроенным в Puck.js магнетометром.

Puck js Door Controlled Light

Код, используемый в этом видео – ниже:

Мигание светодиодом при открытии/закрытии двери

var zero = Puck.mag();
var doorOpen = false;
function onMag(p) {
  p.x -= zero.x;
  p.y -= zero.y;
  p.z -= zero.z;
  var s = Math.sqrt(p.x*p.x + p.y*p.y + p.z*p.z);
  var open = s<1000;
  if (open!=doorOpen) {
    doorOpen = open;
    digitalPulse(open ? LED1 : LED2, 1,1000);
  }
}

Puck.on('mag', onMag);
Puck.magOn();

Дистанционное управление ИК-светодиодом

function send(cmd) {
  NRF.requestDevice({ filters: [{ namePrefix: 'Puck.js' }] }).then(function(device) {
    require("ble_simple_uart").write(device, cmd, function() {
      print('Готово!');
    });
  });
}

var zero = Puck.mag();
var isOpen = false;
function onMag(p) {
  p.x -= zero.x;
  p.y -= zero.y;
  p.z -= zero.z;
  var s = Math.sqrt(p.x*p.x + p.y*p.y + p.z*p.z);
  var open = s<1000;
  if (open != isOpen) {
    isOpen = open;
    digitalPulse(open ? LED1 : LED2,1,1000);
    if (open)    
          send("Puck.IR([8.9,4.5,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,1.7,0.5,1.8,0.5,1.7,0.5,1.7,0.5,1.7,0.5,1.7,0.5,1.7,0.5,1.8,0.5,1.7,0.5,1.7,0.5,1.7,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,1.7,0.5,1.7,0.5,1.7,0.5,1.8,0.5,1.7,0.5,39.9,8.9,2.3,0.5,96.2,8.9,2.3,0.5]);\n");
    else
       send("Puck.IR([8.9,4.5,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,1.7,0.5,1.8,0.5,1.7,0.5,1.7,0.5,1.8,0.5,1.7,0.5,1.7,0.5,1.8,0.5,0.6,0.5,1.7,0.5,1.7,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,0.6,0.5,1.7,0.5,0.6,0.5,0.6,0.5,1.8,0.5,1.7,0.5,1.7,0.5,1.8,0.5,1.7,0.5,39.9,8.9,2.3,0.5,96.2,8.9,2.3,0]);\n");

  }
}
Puck.on('mag', onMag);
Puck.magOn();

Где купить

Дистанционно управляемые ИК-светодиоды вроде тех, что показаны в видео, можно купить на eBay. Они также продаются в виде полосы.

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

См.также

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

[[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]] [[Категория:]]