@m_seki の

I like ruby tooから引っ越し

どうなったらIoTなんだろ

2年前に書いたrendez-vous、当時は3DSの画像の受け渡し用だったけど、今はマリシス(ラズパイとWebCamによる愛犬観察システム)やラズパイのIPアドレス通知とかに使われてます。
それを改造して、dRubyで待ち合わせの中身にアクセスできるようにしました。*1

class RdVUp < WEBrick::CGI
 include ERB::Util

 def initialize(*args)
   super(*args)
   @rdv = RdVSpace.new
 end

 attr_reader :rdv # ← これを増やしただけ
 ...

これにより、Webサービス版のrendez-voussとdRuby経由で待ち合わせができます。
あるチャネルにラズパイから水温計のデータが送られてくるのですが、それを取得するにはこんな感じ。

$ irb -rdrb
irb(main):001:0> ro = DRbObject.new_with_uri('druby://localhost:54331')
=> #<RdVUp:0x9199ad4>
irb(main):001:0> ro.rdv.take('チャネル名')
=> ["text/plain", "26.75\t2015-07-29 17:57:10\n"]

これを使って水温*2をin-memory dripで記録して、ERBで整形したページがこれ。

http://www.druby.org/chart.html

*1:なお、前のバージョンは次のページにあります。- http://d.hatena.ne.jp/m_seki/20130827#1377614857

*2:時間帯によって水温だったり室温だったりするんだけどね。

ラズパイで水温を計ってみた

ラズパイの1-wireで水温を測りたかったので、メダカの鉢を用意しました。

配線等はこちらを参考にしました。

http://blog.livedoor.jp/victory7com/archives/33399310.html

用意した水温計とバッテリーはこれ。

ちいさなブレッドボードに挿して100均のプラスチックの薬箱に収納しました。写真は後で。
レイアウト的に電源を取れなかったので、ダンボーのモバイルバッテリーを接続しました。
このバッテリーで18時間くらい稼働しそうだったけど、充電する時間も考えなくちゃならない。とりあえず約15時間屋外で運用してあとは屋内で充電するようにしました。

計測した水温はrendez-vousのサービスに定期的にwriteします。応用はそのうち考える。