-
GR-CITRUSというmrubyが動くマイコンボードが面白そうなので買って試してみました。
-
セットアップは下記参照
- GR-CITRUS 特設 Rubicではじめよう!(Ruby編) http://gadget.renesas.com/ja/product/citrus_sp1.html
-
httpGetのレスポンスをSDカードに保存するメソッド(WiFi.httpGetSD)は最新のファームウエアでないと使えないので、下記を参照して更新する
- GR-CITRUS IoTワークショップ 進行(2016/11/19) http://japan.renesasrulz.com/gr_user_forum_japanese/b/weblog/archive/2016/11/19/gr-citrus-iot-2016-11-19.aspx
-
GR-CITRUS専用のクラスやメソッドがあるので下記を見ながらいろいろ試してみる
- GR-CITRUS 特設 クラス、メソッド早見表 http://gadget.renesas.com/ja/product/citrus_sp1z.html
とりあえずhttpGetのレスポンスをSDカードに保存して、それを読み出してコンソールに表示、を書いてみた
#!mruby
@usb = Serial.new 0
# デバッグ用のpメソッド
def p obj
@usb.print obj.to_s
end
System.useSD
System.useWiFi
# Station(子機)モードにする
WiFi.setMode 1
WiFi.connect "ssid", "password"
p WiFi.ipconfig
# 複数接続可能モードの設定 mode: 0:1接続のみ, 1:4接続まで可能 らしいがよくわかりません…
WiFi.multiConnect 1
WiFi.httpGetSD "response.txt", "google.com"
WiFi.disconnect
# ファイル番号0としてresponse.txtをReadモード(0)で開く
SD.open 0, "response.txt", 0
# readの引数はファイル番号ファイル番号、返り値はデータ(バイト)、ファイルの最後なら-1
while (c = SD.read(0)) > 0
p c.chr
end
SD.close 0
無事にhttpGetのレスポンスがSDカードに保存されたのを確認できました
- メモ
- 成功した後にファイル名を変えて再実行するとWiFi.httpGetSDが7を返して(7: 受信したファイルの生成に失敗した)、新しくファイルが作成されない。なぜ…