불과 300엔으로 IoT 버튼을 만드는 방법
5886 단어 RaspberryPi블루투스IoTNode.js
이런걸 발견했어
100엔 숍에서 물색하고 있으면, 이런 것을 발견했어. 100엔 숍인데 300엔 ※이었지만, 여러가지 놀 수 있을 것이므로 무심코 충동 사 버렸어. (※ 나중에 아마존을 보면 1 엔에서 팔았습니다 )
블루투스로 스마트폰에 커맨드를 보낼 수 있다는 것은 스마트폰이 아니라 라즈파이와 블루투스로 연결되면, 물리 버튼과 웹을 연계시키는 IoT같을 수 있을 것 같네요. 예를 들면 버튼을 누르면 Amazon에서 주문할 수 있다니 Dash 버튼이라든가. 이번에는 LINE에 메시지를 Push 통지하는 LINE 버튼을 만들어 보겠습니다.
준비하는 것
만드는 방법
라즈파이와 원격 셔터 연결
우선은 라즈파이와 리모트 셔터를 Bluetooth로 페어링 해요. 블루투스를 사용하기 위해 필요한 패키지를 라즈파이에 설치한다.
sudo apt-get install bluez bluetooth libbluetooth-dev build-essential
다음은 bluetooth의 페어링이다. 원격 셔터는 측면 스위치를 켜면 잠시 동안 페어링 대기 상태가 될 것입니다. 라즈파이에서 bluetoothctl
명령으로 페어링합시다. 이름이 AB Shutter3
인 장치가 원격 셔터입니다.
$ bluetoothctl
[bluetooth]# power on
[bluetooth]# scan on ←リモートシャッターをペアリング待ちにしておく
...
Device FF:FF:7F:F1:XX:XX AB Shutter3 ←これがリモートシャッター
...
[bluetooth]# info FF:FF:7F:F1:XX:XX
Device FF:FF:7F:F1:XX:XX
Name: AB Shutter3
Alias: AB Shutter3
Appearance: 0x03c1
Icon: input-keyboard
Paired: yes
Trusted: yes
Blocked: no
Connected: no
LegacyPairing: no
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb)
UUID: Battery Service (0000180f-0000-1000-8000-00805f9b34fb)
UUID: Human Interface Device (00001812-0000-1000-8000-00805f9b34fb)
Modalias: usb:v248Ap8266d0001
[bluetooh]# pair F:FF:7F:F1:XX:XX
버튼 조작 감지
페어링이 완료되면, 이번에는 리모트 셔터 버튼의 조작을 검지하는 프로그램을 개발하겠습니다! , , 라고 생각하면 , 이미 완성하고 있는 것을 GitHub로 찾아 버렸다. . "bluebutton"이라는 소프트웨어다. 길게 누르면 보통 누름도 구분할 수 있을 것 같다. Ruby2 이상이 필요하므로 즉시 설치하자.
sudo apt-get install ruby
sudo gem install bluebutton
설정 파일에서 버튼을 눌렀을 때의 동작을 스스로 결정할 수 있는 것 같다. ~/config/bluebutton
라는 파일 이름으로 다음 파일을 만들었습니다.
keyup=curl -XPOST 'https://my-app.now.sh/postLineMessage'
keydown=echo DOWN
longup=echo LONG UP
longdown=echo LONG DOWN
버튼을 눌렀다가 놓았을 때, LINE에의 투고를 트리거하는 API( https://my-app.now.sh
)를 두드리는 설정이야. 이 API는 다음 번 이후로 만들어 갈거야. 그 이외의 동작(버튼 길게 누르기 등)은 화면에 로그를 출력할 뿐이에요.
$ bluebutton -d="Shutter3" -c ~/config/bluebutton
이제 원격 셔터 버튼을 누르면 API에 요청을 던지게 되었습니다. 버튼 조작이 인식되고 있는지 동작 확인을 해 보자.
위의 이미지에서는 라즈파이가 Mac에서 로그인하여 bluebutton의 실행 화면을 표시하게 해요. 10m 정도 떨어져도 버튼 조작을 감지해 주었어.
다음 번에는 Node.js를 사용하여 LINE 봇에 게시하는 API를 개발, Now.sh에 배포하여 IoT 버튼을 완성하겠습니다.
추가
sudo apt-get install bluez bluetooth libbluetooth-dev build-essential
$ bluetoothctl
[bluetooth]# power on
[bluetooth]# scan on ←リモートシャッターをペアリング待ちにしておく
...
Device FF:FF:7F:F1:XX:XX AB Shutter3 ←これがリモートシャッター
...
[bluetooth]# info FF:FF:7F:F1:XX:XX
Device FF:FF:7F:F1:XX:XX
Name: AB Shutter3
Alias: AB Shutter3
Appearance: 0x03c1
Icon: input-keyboard
Paired: yes
Trusted: yes
Blocked: no
Connected: no
LegacyPairing: no
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb)
UUID: Battery Service (0000180f-0000-1000-8000-00805f9b34fb)
UUID: Human Interface Device (00001812-0000-1000-8000-00805f9b34fb)
Modalias: usb:v248Ap8266d0001
[bluetooh]# pair F:FF:7F:F1:XX:XX
sudo apt-get install ruby
sudo gem install bluebutton
keyup=curl -XPOST 'https://my-app.now.sh/postLineMessage'
keydown=echo DOWN
longup=echo LONG UP
longdown=echo LONG DOWN
$ bluebutton -d="Shutter3" -c ~/config/bluebutton
$ npm install openjtalk
speak.js
const OpenJTalk = require('openjtalk');
const mei = new OpenJTalk();
mei.talk('ボタンが押されたよ', 250);
config/bluebutton
keyup=node ~/speak.js && curl -XPOST https://xxx.now.sh -d '{msg: "xx"}'
Reference
이 문제에 관하여(불과 300엔으로 IoT 버튼을 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/vimyum/items/8b7548ca8cf45383c5b0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)