Samples_wlan - gfd-dennou-club/mrubyc-esp32 GitHub Wiki

はじめに

WLAN クラスのメソッドについては,Class_WLAN を参照されたい.

Wi-Fi の接続

src/master.rb を以下のように編集する.make monitor でネットワークパラメタが表示されることを確認する.

Web サーバ上の HTML ファイルにアクセスする例

wlan = WLAN.new('STA')
wlan.connect("SSID", "パスフレーズ")  # 自分の環境に合わせて設定.2.4GHz帯を使うこと.

# ネットワークパラメタを表示
puts wlan.ifconfig  # 全パラメタ
puts wlan.ip        # IP アドレス
puts wlan.mac       # MAC アドレス

loop do
  if ( wlan.connected? ) #通信が確立していたら
    hoge = HTTP.get( "https://hoge.matsue-ct.ac.jp/~sugiyama/test.htm")
    puts hoge
    break
  end
  sleep 1
end
puts "PROGRAM FINISHED"

Web サーバ上の PHP スクリプトに GET メソッドでデータを渡す例

wlan = WLAN.new('STA')
wlan.connect("SSID", "パスフレーズ")  # 自分の環境に合わせて設定.2.4GHz帯を使うこと.

# ネットワークパラメタを表示
puts wlan.ifconfig  # 全パラメタ
puts wlan.ip        # IP アドレス
puts wlan.mac       # MAC アドレス

loop do
  if ( wlan.connected? ) #通信が確立していたら
    hoge = HTTP.get( "https://hoge.matsue-ct.ac.jp/~sugiyama/test.php?name=hero&cal=20")
    puts hoge
    break
  end
  sleep 1
end
puts "PROGRAM FINISHED"

Web サーバ上の PHP スクリプトに GET メソッドでデータを渡す例.BASIC 認証利用の場合.

wlan = WLAN.new('STA')
wlan.connect("SSID", "パスフレーズ")  # 自分の環境に合わせて設定.2.4GHz帯を使うこと.

# ネットワークパラメタを表示
puts wlan.ifconfig  # 全パラメタ
puts wlan.ip        # IP アドレス
puts wlan.mac       # MAC アドレス

loop do
  if ( wlan.connected? ) #通信が確立していたら
    hoge = HTTP.get( "https://hoge.matsue-ct.ac.jp/~sugiyama/test.php?name=hoge&cal=10", user:"hogehoge", passwd:"herohero" )   #Basic認証で使う文字列はダブルクォーテーションで囲むこと.
    puts hoge
    break
  end
  sleep 1
end
puts "PROGRAM FINISHED"

Web サーバ上の PHP スクリプトに POST メソッドでデータを渡す例.

wlan = WLAN.new('STA')
wlan.connect("SSID", "パスフレーズ")  # 自分の環境に合わせて設定.2.4GHz帯を使うこと.

# ネットワークパラメタを表示
puts wlan.ifconfig  # 全パラメタ
puts wlan.ip        # IP アドレス
puts wlan.mac       # MAC アドレス

loop do
  if ( wlan.connected? ) #通信が確立していたら
    # Web サーバ上の PHP スクリプトに POST メソッドでデータを渡す例.
    url       = "https://hoge.matsue-ct.ac.jp/~sugiyama/test.php"
    post_data = "{\"name\":\"hero\", \"tel\":\"foo\", \"num\":23}" #文字列にはクォーテーションが必要.数字には不要.
    hoge = HTTP.post( url, post_data )
    puts hoge
    break
  end
  sleep 1
end
puts "PROGRAM FINISHED"

Web サーバ上の PHP スクリプトに POST メソッドでデータを渡す例.BASIC 認証利用の場合.

wlan = WLAN.new('STA')
wlan.connect("SSID", "パスフレーズ")  # 自分の環境に合わせて設定.2.4GHz帯を使うこと.

# ネットワークパラメタを表示
puts wlan.ifconfig  # 全パラメタ
puts wlan.ip        # IP アドレス
puts wlan.mac       # MAC アドレス

loop do
  if ( wlan.connected? ) #通信が確立していたら
    url       = "https://hoge.matsue-ct.ac.jp/~sugiyama/test.php"
    post_data = "{\"name\":\"hoge\", \"tel\":\"hero\", \"num\":100}" #文字列にはクォーテーションが必要.数字には不要.
    hoge = HTTP.post( url, post_data, user:"hogehoge", passwd:"herohero" ) #Basic認証で使う文字列はダブルクォーテーションで囲むこと.
    puts hoge
    break
  end
  sleep 1
end
puts "PROGRAM FINISHED"

参考:テスト用 PHP スクリプト

上記の動作確認で使っている PHP スクリプトは以下のようになっている.

<?php
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
    $name = $_GET['name'];
    $cal  = $_GET['cal'];
    if ($name && $cal){
        echo "GET request recieved \n";
        echo "name : ". $name . "\n";
        echo "cal :  ". $cal . "\n";
    }
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $data = json_decode(file_get_contents('php://input'), true);
    if ($data) {
        echo "POST request received". "\n";
        foreach ($data as $key => $value) {
            echo $key . ": " . $value . "\n";
        }
    } else {
        echo "No data received\n";
    }
}
?>