Espruino:Примеры/BLE и сервис If This Then That
Поддержать проект | Содержание | Резерв | Справочник по API | Модули | Примеры | Резерв | Резерв | Резерв | Резерв | Резерв |
Содержание
BLE и сервис If This Then That [1]
В сервисе If This Then That есть апплет Maker, упрощающий взаимодействие (например активацию) с устройствами через интернет.
Если вы используете Espruino-устройство, подключенное напрямую к интернету, вам нужно будет всего лишь вызвать специальный URL (позже мы расскажем, как это сделать). Но при использовании Puck.js вам понадобится «мост» – нечто, что будет принимать сообщения по BLE и превращать их в веб-страничные запросы в интернете.
Получение URL-ссылки IFTT
- Создаем аккаунт в If This Then That.
- В правом верхнем углу кликаем на New Applet.
- Кликаем на +this, ищем Webhooks и кликаем на него.
- Кликаем на Receive a web request.
- Вводим «puck_pressed» в поле для названия события.
- Кликаем на +that и выбираем задачу, которую надо выполнить. Возможно, email, чтобы отправить самому себе электронное письмо.
- Прокликиваем через оставшиеся страницы и кликаем на Finish.
- Теперь, чтобы найти URL, переходим в эпплет Maker.
- Справа вверху кликаем на Settings.
- Сервис покажет URL вроде: «https://maker.ifttt.com/use/jghfJHGFhjkgHJKGjhgJHgkHfRDhgfKJtfrjgh»
- Копируем этот URL и вставляем в адресную строку браузера
- Вверху будет показано URL вроде «https://maker.ifttt.com/trigger/{event}/with/key/jghfJHGFhjkgHJKGjhgJHgkHfRDhgfKJtfrjgh»
- Заменяем {event} на puck_pressed (который ввели ранее) и получаем URL вроде:
https://maker.ifttt.com/trigger/puck_pressed/with/key/jghfJHGFhjkgHJKGjhgJHgkHfRDhgfKJtfrjgh
Это то, что вам нужно будет скопировать и вставить ниже. Или же этот URL можно будет использовать для доступа, если вы используете Espruino-плату, подключенную к интернету.
HTML-код
Создаем веб-страницу, содержащую код ниже. Её нужно будет хостить на HTTPS.
О том, как это делать, можно прочесть, например, тут.
<html>
<head>
<title>IFTTT Web Bluetooth Example</title>
</head>
<body>
<pre id="log"></pre>
<button>Click here to start</button><br/>
<iframe id="ifttt" style="width:640px;height:32px"></iframe>
<script src="https://www.puck-js.com/puck.js"></script>
<script type="text/javascript">
// ------------------------------------- ЗАМЕНИ МЕНЯ
var URL = "https://maker.ifttt.com/trigger/puck_pressed/with/key/jghfJHGFhjkgHJKGjhgJHgkHfRDhgfKJtfrjgh";
// ------------------------------------- ЗАМЕНИ МЕНЯ
var button = document.getElementsByTagName('button')[0];
var logelement = document.getElementById('log');
var iftttRequests = 0;
function log(txt) {
logelement.innerHTML += txt+"\n";
}
function ifttt() {
document.getElementById('ifttt').src = URL+"?"+iftttRequests;
iftttRequests++;
}
// Вызывается, когда мы получаем строчку данных:
function onLine(v) {
log("Получили: "+JSON.stringify(v));
if (v.indexOf("Pressed")>=0) {
log("Вызываем IFTTT");
ifttt();
}
}
// После клика подключаемся или отключаемся:
var connection;
button.addEventListener("click", function() {
if (connection) {
log("Отключаем соединение");
connection.close();
connection = undefined;
}
log("Создаем соединение");
Puck.connect(function(c) {
if (!c) {
log("Подключиться не удалось!");
return;
}
log("Подключение...");
connection = c;
// Обрабатываем полученные данные
// и вызываем online() каждый раз, когда получаем строчку:
var buf = "";
connection.on("data", function(d) {
buf += d;
var i = buf.indexOf("\n");
while (i>=0) {
onLine(buf.substr(0,i));
buf = buf.substr(i+1);
i = buf.indexOf("\n");
}
});
// Сначала выполняем сброс Puck.js.
connection.write("\x10reset();\n", function() {
// Ждем, пока Puck.js выполнит сброс.
setTimeout(function() {
// Теперь даём Puck.js команду
// передавать по Bluetooth текущие данные о яркости
// 10 раз в секунду.
connection.write("\x10setWatch(function(){Bluetooth.println('Нажата');},BTN,{repeat:true,debounce:50,edge:'rising'});\n",
function() { log("Готово!"); });
}, 1500);
});
});
});
</script>
</body>
</html>
Осталось кликнуть на Click here to start – теперь, когда вы будете нажимать на кнопку на Puck.js, это будет вызывать IFTT.
Примечание: Если вы веб-разработчик, вам наверняка захочется сделать так, чтобы код выше использовал AJAX-запрос. Но, к сожалению, в IFTT нельзя задать заголовок Access-Control-Allow-Origin, так что вам придется, скорее всего, использовать IFrame.
См.также
Ссылки на полезные ресурсы
- AliExpress — глобальная виртуальная (в Интернете) торговая площадка, предоставляющая возможность покупать товары производителей из КНР;
- computeruniverse.net - Интернет-магазин компьютеров(Промо код 5 Евро на первую покупку:FWWC3ZKQ);
- DigitalOcean - американский провайдер облачных инфраструктур, с главным офисом в Нью-Йорке и с центрами обработки данных по всему миру;
- Викиум - Онлайн-тренажер для мозга
- Like Центр - Центр поддержки и развития предпринимательства.
- Gamersbay - лучший магазин по бустингу для World of Warcraft.
- Ноотропы OmniMind N°1 - Усиливает мозговую активность. Повышает мотивацию. Улучшает память.
- Санкт-Петербургская школа телевидения - это федеральная сеть образовательных центров, которая имеет филиалы в 37 городах России.
- Lingualeo.com — интерактивный онлайн-сервис для изучения и практики английского языка в увлекательной игровой форме.
- Junyschool (Джунискул) – международная школа программирования и дизайна для детей и подростков от 5 до 17 лет, где ученики осваивают компьютерную грамотность, развивают алгоритмическое и креативное мышление, изучают основы программирования и компьютерной графики, создают собственные проекты: игры, сайты, программы, приложения, анимации, 3D-модели, монтируют видео.
- Умназия - Интерактивные онлайн-курсы и тренажеры для развития мышления детей 6-13 лет
- SkillBox - это один из лидеров российского рынка онлайн-образования. Среди партнеров Skillbox ведущий разработчик сервисного дизайна AIC, медиа-компания Yoola, первое и самое крупное русскоязычное аналитическое агентство Tagline, онлайн-школа дизайна и иллюстрации Bang! Bang! Education, оператор PR-рынка PACO, студия рисования Draw&Go, агентство performance-маркетинга Ingate, scrum-студия Sibirix, имидж-лаборатория Персона.
- «Нетология» — это университет по подготовке и дополнительному обучению специалистов в области интернет-маркетинга, управления проектами и продуктами, дизайна, Data Science и разработки. В рамках Нетологии студенты получают ценные теоретические знания от лучших экспертов Рунета, выполняют практические задания на отработку полученных навыков, общаются с экспертами и единомышленниками. Познакомиться со всеми продуктами подробнее можно на сайте https://netology.ru, линейка курсов и профессий постоянно обновляется.
- StudyBay Brazil – это онлайн биржа для португалоговорящих студентов и авторов! Студент получает уникальную работу любого уровня сложности и больше свободного времени, в то время как у автора появляется дополнительный заработок и бесценный опыт.
- Автор24 — самая большая в России площадка по написанию учебных работ: контрольные и курсовые работы, дипломы, рефераты, решение задач, отчеты по практике, а так же любой другой вид работы. Сервис сотрудничает с более 70 000 авторов. Более 1 000 000 работ уже выполнено.
- StudyBay – это онлайн биржа для англоязычных студентов и авторов! Студент получает уникальную работу любого уровня сложности и больше свободного времени, в то время как у автора появляется дополнительный заработок и бесценный опыт.
Внешние ссылки