obniz + 거리 센서 + MP3 모듈로 Amazon Echo 시작
그리고 센서를 사용하여 자동으로 스킬 기동시키고 싶네요?
그렇다고 해서, 주회 지연의 재료입니다만, 이하의 기사에 인스파이어 되어, obniz로 해 보았습니다
사용한 것
htps : // 코 m / h - 타카 우마 / ms / 24135 39cf4b80519 2
※배선 더럽고 미안해
초음파 거리 센서 HC-SR04
동영상
Grove MP3 모듈
코드
50cm의 거리에서 5초간이라는 것이 기준입니다. 배선은 코드를 참조하십시오.
우선 수중의 Mac에서 움직이고 있습니다. 그 중 RPi Zero W로 옮길 예정.
로직은 을 매우 참고로 했습니다. 고마워요.
$ npm init
$ npm install obniz —-save
index.js
var Obniz = require("obniz");
var obniz = new Obniz("OBNIZ_ID_HERE");
const DISTANCE = 500;
const DETECT_COUNT = 5;
obniz.onconnect = async function () {
// mp3初期化
const mp3 = obniz.wired("Grove_MP3", { gnd: 5, vcc: 6, mp3_rx: 7, mp3_tx: 8 });
await mp3.initWait();
// 距離センサー初期化
const hcsr04 = obniz.wired("HC-SR04", {gnd:0, echo:1, trigger:2, vcc:3});
hcsr04.temp = 20;
let sayFlg = false;
let count = 0;
// ループ
while(true) {
let avg = 0;
let cnt = 0;
for (let i=0; i<3; i++) { // measure three time. and calculate average
const val = await hcsr04.measureWait();
if (val) {
cnt++;
avg += val;
}
}
if (cnt > 1) {
avg /= cnt;
}
if (!sayFlg) {
if (avg < DISTANCE) {
count++;
if (count >= DETECT_COUNT) {
sayFlg = true;
count = 0;
await mp3.play(1);
}
} else {
count = 0;
}
} else {
if (avg > DISTANCE) {
count++;
if (count >= DETECT_COUNT) {
sayFlg = false;
count = 0;
}
} else {
count = 0;
}
}
console.log("----------------")
console.log(`DISTANCE: ${avg}`);
console.log(`COUNT: ${count}`);
console.log(`SAYFLG: ${sayFlg}`);
await obniz.wait(1000);
}
}
실행
$ node index.js
DISTANCE: 307.03373200276
COUNT: 0
SAYFLG: true
----------------
DISTANCE: 308.4072286603679
COUNT: 0
SAYFLG: true
・・・
Alexa 스킬은 이 이야기의 본질이 아니므로 할애합니다. 자세한 내용은 아래를 참조하십시오.
기타
요약
Alexa 스킬과 같은 Node.js로 쓸 수 있으므로 다르다는 것을 기억하지 않아도 좋고 (라고는 말하면서 이번은 논코딩으로 만든 스킬입니다만), 공식적으로 샘플 코드도 많이 있으므로, 나와 같이 보자 보네요 로 코드 쓰고 있는 레벨이라면 매우 도움이 됩니다.
다른 센서와도 그 중 시도해보고 싶습니다.
Reference
이 문제에 관하여(obniz + 거리 센서 + MP3 모듈로 Amazon Echo 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kun432/items/f24c03c6b42db0a2c3a5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)