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

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

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

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

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

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

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

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

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

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

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

8行目 例外処理

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

Copyright © ITmedia, Inc. All Rights Reserved.