mrubyとマイコンボードで“IoTを手作り”してみようmruby概論(3)(2/3 ページ)

» 2015年07月21日 07時00分 公開
[石井宏昌MONOist]

照度センサーの値をTCP/IPでサーバへ送信

 では次は、実際にenziボードにCdS(照度センサー)を装着し、イーサネット経由でデータを送ってみましょう。

 下図のような構成でenziボードへ装着したCdSセンサーから取得したデータを、サーバに見立てたPCへ送信します。

photo CdSセンサーとenziボードの接続イメージ

 この構成を機能させるコードは以下になります。

  1. io = AnalogIO.new(A0, INPUT) # CdS
  2. begin
  3. conn = TCPSocket.new("192.168.1.1", 50000)
  4. while true
  5. conn.send "#{claddr} #{io.read}\n" # Send to server
  6. delay 1000 # wait 1sec
  7. end
  8. rescue => e
  9. p e
  10. end
  11. conn.close

1行目 enziクラスライブラリ AnalogIO でA0にセットしたCdSを定義

3行面 enziクラスライブラリ TCPSoket

5行目 サーバに送信するデータは数値+改行コード #{io.read}は式展開で文字列に変換

8行目 例外処理

どうです?たった12行でセンサー値を取得し、送信しています。これをC言語で行うのは大変だと思います。

Copyright © ITmedia, Inc. All Rights Reserved.