アプリとラズパイ勉強記

個人的備忘録とメモ。Unity話題が少なくなったのでタイトル変更しました

ラズパイ、node.jsで緊急地震速報

      2017/10/19

現在のところ、家のラズパイで天気予報などを定時で喋らせたりしている。
緊急地震速報なども流せたら便利っぽいなと思いつつも、APIがわからないとか色々あって諦め掛けていた。

しかしtwitterでかなり精度の高いアカウント(bot)が存在しているのでそれを元に喋らせればいいのでは、と思いつきやってみた

まずはbot。

こちらが精度高く他の多数のbotにも利用されてるみたい。

CSVをパースしたり地域や震度で選定するのが今の所面倒なのでこちらのbotがツイートしたら瞬時に喋り出すようにしたい。

twitterのリアルタイム検知はどうする→Node.jsからstreaming APIを使用
以前にslackでhubotを作成した際にNodeはインストールしてあるのでここら辺は割愛

npmでnode-twitterインストール

ラズベリーパイとNode.jsでtwitter定時ボット(前半)

とても簡単。使うtwitterAPIはstreaming API


{
const execSync = require('child_process').execSync;
var twitter = require('twitter');

var bot = new twitter({
consumer_key : '',
consumer_secret : '',
access_token_key : '',
access_token_secret : ''
});

bot.stream('statuses/filter',
          {follow: 'XXXXXXXX'}, //フォロー中のアカウントのtwitterID
          function(stream) {

          stream.on('data', function(tweet) {

              //tweetがあれば読み上げ
	      var result =  execSync('/home/pi/aquestalkpi/AquesTalkPi ' + tweet.text + '| aplay').toString();
			  
          });

          stream.on('error', function(error) {
              console.log(error);
          });
          }
         );
		 
		 }

ツイッターIDがわかれば特定の人のツイートが監視できるということがわかりました。もっと冴えたやり方があるかもしれませんが、とりあえず。
ラズパイが喋るのはAquesTalkPiを使っています。いきなり喋るのがびっくりするので通知音を先にならすとかいいかも。

ツイッターID調べるのが面倒な件ですが、下記サービスで使わせていただきました

Twitter IDチェッカー

これで我が家のラズパイも地震速報を伝えるように。永続化と再起動しても動作するようにはまだしてないですが。

Node.jsでforeverを使ってスクリプトの起動を永続化する

この辺りで。さらには光も追加したい!と思ったらAmazonでちょうどいいのが

お値段も手頃だし、次に試してみたいところ。

【追記】上記のままのコードではRTやリプまで取れてしまって大変やかましいことになりますので、RTや重複を取らない工夫をして各自修正ください。

 - raspberry Pi