今回は、生成済みFeedにRubyスクリプトでデータを飛ばす方法を紹介します。
下準備
- XivelyにDeviceのFeedを生成
- 上記にsensor1、sensor2というチャンネルを生成
- gem 「xively-rb」を入れる。*1
コード
次のコードでは、ランダム値を10秒毎に10回送ります。
require 'xively-rb' APIKEY = # your api key # FEEDID = # your feed id # c = Xively::Client.new(APIKEY) puts c.get("/v2/feeds/%s.json" % FEEDID.to_s) post_path = ["/v2/feeds/%s/datastreams/%s/datapoints" % [FEEDID.to_s, 'sensor1'], "/v2/feeds/%s/datastreams/%s/datapoints" % [FEEDID.to_s, 'sensor2']] 10.times do |i| val = [rand(20),rand(20)] (0..1).each do |i| datapoint = Xively::Datapoint.new(:at => Time.now, :value => val[i].to_s) c.post(post_path[i], :body => {:datapoints => [datapoint]}.to_json) end puts "sent:: %d , %d" % [val[0], val[1]] sleep(10) end
API-keyとFeedIDについては、以前の記事を参照してください
結果
上記のコードが無事動けば、feedに以下のようなグラフが出る筈です。
pushの度にチョコチョコ動いて愉しいです。
参考もと
*1:注意::真っ新から導入すると時間がかかります。依存関係が相当あるので。Raspberry Piだと光回線でも2時間以上かかりました……