Raspberry pi와 Node-RED를 사용하여 스마트 폰을 리모컨으로 만들 때까지의 이야기
7561 단어 전자 공작IoTRaspberryPinode-red
PC나 스마트폰의 브라우저로부터 조작할 수 있도록 하는 것을 목적으로 하고 있습니다.
javascript→Node-Red→python의 순서로 리모컨 조작의 커멘드가 흘러가는 설계로 합니다만, Node-Red에 UI 전부 갖게 해도 좋았을지도.
준비한 것
→에어컨의 조작한 결과, 온도 내려갔는지를 확인할 수 있으면 좋네요. 그래서 TI의 SensorTag (CC2650)를 사용하여 온도 측정도 했으므로 별도로 쓰고 싶다. 그 때의 참고 기사.
SensorTag에서 측정한 온도, 습도 등을 Raspberry Pi3를 통해 Ambient로 보내 그래프화
htps : // m / am Bien t / ms / 9b74bc8627c79 Aee cb0
RPi 리모컨화까지의 이야기
저렴한 스마트 리모컨을 만드는 방법
htps : // m / kjg / ms / 6b8 a f53421 54b62c9
여기 읽고 여러 가지 준비가 끝난다.
아래와 같이 커맨드 라인으로부터 기기의 조작을 할 수 있게 되어 있을 것
$ python3 irrp.py -p -g17 -f codes light:on
덧붙여 점등 회로에 대해서는 수중에 있던 Nch의 2SK2232를 사용해 이런 느낌으로 했다
(※) R1에 대해서는 LED의 부하 전류 생각해 적절한 값으로 해주세요.
Node-Red를 사용하여 irrp.py를 두드리는
irrp.py의 인수 중 다음 부분에 대해 웹 프런트 엔드에서 POST에서 받아 실행하는 흐름을 만듭니다.
$ python3 irrp.py -p -g17 -f codes <このぶぶん!>
결과, 이런 느낌의 흐름이 되었다
바쁜 사람들을 위해 내보낸 흐름 : htps : // 기주 b. 이 m/n c30mtd/r 삐-레-d-우-b-레모테콘 t-ro-r/b-b/마s로 r/그래서--d f w/f w. j 그런
웹 화면에서 Node-Red 흐름으로 요청 보내기
RPi에 Apache를 설정하고 웹 서버를 시작합니다.
버튼 등을 배치하고 버튼을 누르면 POST하는 함수에 대한 인수로 설정됩니다.
<button type="button" class="btn btn-primary" onclick="send_data('tv:power');">Power</button>
POST하는 함수에 대해서는 이런 느낌
function send_data(cmd)
{
console.log("send_data("+cmd+")");
//json
var json =
{
"cmd":cmd
};
//
// POST
//
var xhrReq = new XMLHttpRequest();
xhrReq.onreadystatechange = function()
{
if (xhrReq.readyState == 4 && xhrReq.status == 200)
{
var retText = xhrReq.responseText;
var ret = JSON.parse(retText);
console.log(retText);
}
else if (xhrReq.readyState == 4 && xhrReq.status != 200)
{
alert("失敗("+xhrReq.status+"");
}
};
xhrReq.open("POST", "<RPiのIPアドレス>:1880/send", true);
xhrReq.setRequestHeader("Content-Type", "text/json");
xhrReq.send(JSON.stringify(json));
}
그 외 소스 등은 이쪽↓
htps : // 기주 b. 코 m / n c30 mtd / r 피 - 레드 d 우 ぇ b 레모 테콘 t 롯 r
$ python3 irrp.py -p -g17 -f codes light:on
irrp.py의 인수 중 다음 부분에 대해 웹 프런트 엔드에서 POST에서 받아 실행하는 흐름을 만듭니다.
$ python3 irrp.py -p -g17 -f codes <このぶぶん!>
결과, 이런 느낌의 흐름이 되었다
바쁜 사람들을 위해 내보낸 흐름 : htps : // 기주 b. 이 m/n c30mtd/r 삐-레-d-우-b-레모테콘 t-ro-r/b-b/마s로 r/그래서--d f w/f w. j 그런
웹 화면에서 Node-Red 흐름으로 요청 보내기
RPi에 Apache를 설정하고 웹 서버를 시작합니다.
버튼 등을 배치하고 버튼을 누르면 POST하는 함수에 대한 인수로 설정됩니다.
<button type="button" class="btn btn-primary" onclick="send_data('tv:power');">Power</button>
POST하는 함수에 대해서는 이런 느낌
function send_data(cmd)
{
console.log("send_data("+cmd+")");
//json
var json =
{
"cmd":cmd
};
//
// POST
//
var xhrReq = new XMLHttpRequest();
xhrReq.onreadystatechange = function()
{
if (xhrReq.readyState == 4 && xhrReq.status == 200)
{
var retText = xhrReq.responseText;
var ret = JSON.parse(retText);
console.log(retText);
}
else if (xhrReq.readyState == 4 && xhrReq.status != 200)
{
alert("失敗("+xhrReq.status+"");
}
};
xhrReq.open("POST", "<RPiのIPアドレス>:1880/send", true);
xhrReq.setRequestHeader("Content-Type", "text/json");
xhrReq.send(JSON.stringify(json));
}
그 외 소스 등은 이쪽↓
htps : // 기주 b. 코 m / n c30 mtd / r 피 - 레드 d 우 ぇ b 레모 테콘 t 롯 r
<button type="button" class="btn btn-primary" onclick="send_data('tv:power');">Power</button>
function send_data(cmd)
{
console.log("send_data("+cmd+")");
//json
var json =
{
"cmd":cmd
};
//
// POST
//
var xhrReq = new XMLHttpRequest();
xhrReq.onreadystatechange = function()
{
if (xhrReq.readyState == 4 && xhrReq.status == 200)
{
var retText = xhrReq.responseText;
var ret = JSON.parse(retText);
console.log(retText);
}
else if (xhrReq.readyState == 4 && xhrReq.status != 200)
{
alert("失敗("+xhrReq.status+"");
}
};
xhrReq.open("POST", "<RPiのIPアドレス>:1880/send", true);
xhrReq.setRequestHeader("Content-Type", "text/json");
xhrReq.send(JSON.stringify(json));
}
Reference
이 문제에 관하여(Raspberry pi와 Node-RED를 사용하여 스마트 폰을 리모컨으로 만들 때까지의 이야기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nc30mtd/items/f64685005a5bc5195459텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)