Posted at

Raspberry PiとSORACOM Airで動画と連携するハードウェアを作る

More than 1 year has passed since last update.

Maker Faire Tokyo 2017で①ヒートガンでポップコーンを作り、②キャンディーを砕いて溶かしてポップコーンに色付けするという展示をしました。写真と動画はこちら。

https://sweetelectronics.wordpress.com/2017/08/09/mft2017/

私が担当したパートは


  • srt.jsを使ってYouTubeの字幕としてハードウェアにコマンドを送信

  • Raspberry Piでコマンドを受信して、接続されたソレノイドを駆動してキャンディを砕く

  • 砕かれたキャンディを手作業で心を込めてフライパンで溶かす

というシステム構成で仕立てたのですが、多くの来場者から不思議がっていただきまして、特にRaspberry PiにSORACOMのSIMを挿してPusher(WebSocket)で待ち受けるという構成は様々なところで使えると思いますので、書いてみることにします。


事前にすること


お買い物

スイッチサイエンスさんで入手できます。

Raspberry Pi 3

https://www.switch-science.com/catalog/2800/

SORACOMスターターキット

https://www.switch-science.com/catalog/2767/


Pusherにお申込み

こちらを参考にしてください。

http://qiita.com/alingogo/items/a52dfccc2e4711c5f521


PHPでPusherへ送る

こういうのを置いて、push.php?text=1にアクセスしてPusherのデバッグ画面に文字列が届いてると成功です。


push.php

require_once('external/Pusher.php');

$pusher_ini = parse_ini_file("api.ini",true)["pusher"];
$text = $_GET["text"];

$pusher = new Pusher(
$pusher_ini["key"],
$pusher_ini["secret"],
$pusher_ini["app_id"],
['encrypted'=>true]
);
$data['message'] = $text;
$pusher->trigger('test_channel', 'my_event', $data);



Raspberry PiとSORACOM SIMが届いたら


Rasberry Piをソラコムに認識させる

このあたりを参考に。

http://qiita.com/CLCL/items/95693f6a8daefc73ddaa


node.jsでPusherから受け取り、Arduinoへ送信

こういうのを置きました。


pusher.js

var Pusher = require('pusher-js/node');

var SerialPort = require('serialport');
var conf = require('config');
var fs = require('fs');

var sp = null;

// Arduinoが刺さっているポートを探索
var files = fs.readdirSync('/dev/');
files.forEach(function(file){
if( file.match(/tty.usbmodem/) ){
sp = new SerialPort('/dev/'+file, {
baudRate: 115200
});
}
})

if( sp == null ){
console.log("disconnected");
return;
}else{
var pusher = new Pusher(conf.app_id, {
encrypted: true
});
var channel = pusher.subscribe('test_channel');
channel.bind('my_event', function(data) {
// 送られてきた文字が数字1桁のときだけArduinoに送信
if( data.message.match(/^[0-9]$/) ){
sp.write(data.message);
}
});
}



Raspberry Piにサービスとして登録

このあたりを参考に。

http://qiita.com/yosi-q/items/55d6d3d6834c778ae2ea


まとめ

Maker Faire Tokyoのようなイベントでネットワーク環境を構築するのも一苦労だし、構築してもWiFiもBluetoothも混線しがちで一苦労なところを、ソラコムの登場により一気に解決した気がします。