Arduino Yún

yun_eye

今回はArduino Yúnを使ったチュートリアルです。
基本的にはArduino Yúnの公式ページを参考にしています。

まず、Yunについての説明をしておきます。
Arduino YúnはWiFi機能付きのArduinoボードで、昨年発売された比較的新しいマイコンボードです。
このArduino YúnにはLinuxが搭載されているため、無線LANや有線LANに接続できる仕組みになっています。
今回はこのyunをwebサーバーとして使ってみます。(※webサーバーとして使用する場合には別途micro SD カードが必要です。)

yunを手に入れて最初にすることはデバイスのConfigurationです。yunの電源が入っている状態で http://arduino.local もしくは 192.168.240.1にアクセスします。

password

初期の出荷状態であればパスワードは “arduino”になっているはずです。

ログインするとデバイスの設定ページに飛びます。このページの中央にある「WIRELESS PARAMETER 」という項目でwifiのアクセスポイントを設定します。
そして、一番下にあるRESET API ACCESSにチェックを入れて「configuration」ボタンを押すと設定完了です。

お次はarduino側のスケッチ。
Arduino IDEにはyunが使えるバージョンが必要です。
僕の環境はArduino 1.5.8で実装しています。

 
#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>
 
YunServer server;
String msg;

void setup () {
   
  Serial.begin(9600);
  Bridge.begin();
  server.listenOnLocalhost();
  server.begin();  
}
  
void loop () {
  //*********Read new message from the client**************
  YunClient client = server.accept(); //check new clients
     
  if(client) {
    String command = client.readStringUntil('/');  //read the incoming data 
    Serial.println("command = ");
    Serial.println(command);  
    if (command == "msg") {      
      msg= client.readStringUntil('/');             // read the incoming data
      Serial.println("message = ");
      Serial.println(msg);          
    }
    client.stop();   
  }  
}

HTML

<!DOCTYPE HTML>
<head>
<title>Yun Messages</title>
<script type="text/javascript" src="zepto.min.js"></script> 
</head>
<body>
<H1> Insert your message </H1> 
<form name="msgform" onSubmit="return sendMsg()">
<input type="text" name="msg">
<input type="submit" value="Yun it!" >
</form>
<script type="text/javascript">   
     
function sendMsg() {    
$.get('/arduino/msg/' + document.msgform.msg.value + '/',
    function(){
        alert("Success");
    }
);
return false;
 
}
</script>
</body>

htmlのファイルはSDカードに保存します。ここで注意しなければ行けないのが、フォルダ構成です。
yunからは以下のパスの情報を読み取るみたいです。

/arduino/www/

なのでSDカードの直下フォルダに「arduino」フォルダを作り、その中に「www」フォルダを作ます。そしてwebページ用のファイルを「www」フォルダの中に入れます。

これで準備が整いました。
最初にyunで設定したネットワークと同一のネットワークにいる状態で以下のアドレスにアクセスすると、ページが表示されるはずです。

 http://arduino.local/sd/test.html

「arduino.local」のドメイン名はconfigurationで入力した「Yun Name」です。
表示されたフォームに適当な文字を入力して「送信」ボタンを押すと、arduino側のシリアルモニタで入力した文字列が表示されます。

試してみた結果ですが、通信速度が若干遅く感じました。
websocketやnode.jsを使えば少しは改善されると思うので、改善できたらまた記事にしたいと思います。

You may also like...