先日行ったデブサミでのハンズオン、それから、最近各地方で開催しているIoT Kitハンズオンで使っているGR SAKURAを.NET Micro Frameworkデバイスとして使うためのセットアップ方法を解説します。
GR SAKURAを既に持っている方、是非、お試しください。
※本説明は、2015年3月31日現在の情報に基づいて記載しています。
GR SAKURAの.NET Micro Framework化は、TinyCLRという.NET Micro Frameworkの実行エンジンファームウェアをGR SAKURAに書き込むことで行います。
この作業を行うために、ルネサスさんから提供されているFDTというツールをまず、PCにインストールしてください。
public class Program
{
public static void Main()
{
Debug.Print(Resources.GetString(Resources.StringResources.String1));
var program = new Program();
program.LChika(500);
}
Program()
{
LED = new OutputPort(LEDpin, false);
}
public void LChika(int msec)
{
bool status = false;
while (true)
{
status = !status;
SetLED(status);
Thread.Sleep(msec);
}
}
public void SetLED(bool on)
{
LED.Write(on);
}
static Cpu.Pin LEDpin = (Cpu.Pin)80; // PA0 - GPIO 80: LED
OutputPort LED;
}
といったようなコードで実行できます。
また、HTTPでWebにアクセスしたい場合は、参照に、Microsoft.SPOT.Net、Sysmte.Http、System.IOの3つのアセンブリを追加し
string ipAddr = "";
foreach (var ni in Microsoft.SPOT.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces())
{
if (ni.NetworkInterfaceType == Microsoft.SPOT.Net.NetworkInformation.NetworkInterfaceType.Ethernet)
{
if (!ni.IsDhcpEnabled)
{
ni.EnableDhcp();
}
Thread.Sleep(1000);
ipAddr = ni.IPAddress;
if (ipAddr != "" && ipAddr != "0.0.0.0")
{
if (!ni.IsDynamicDnsEnabled)
{
ni.EnableDynamicDns();
}
break;
}
}
}
if (ipAddr != "0.0.0.0")
{
using (var request = HttpWebRequest.Create("http://www.bing.com") as HttpWebRequest)
{
try
{
using (var response = request.GetResponse() as HttpWebResponse)
{
Debug.Print("Status - " + response.StatusCode);
using (var stream = new StreamReader(response.GetResponseStream()))
{
string content = stream.ReadToEnd();
Debug.Print(content);
}
}
}
catch (Exception ex)
{
Debug.Print(ex.Message);
}
}
}
こんなパターンでWebサービスとの通信可能です。
ただ、残念なことにメモリが少ないため、SSLはサポートされていません。
なので、http://aka.ms/IoTKitHoLから公開しているStep1~5までのハンズオンは全て実施することできませんが、Event Hubへの接続をASP.NET Webアプリに変えたり工夫すれば、Step4、5は実施できるので挑戦してみてください。