首頁 > 評測 > 基于.net平臺的Wi-Fi開發(fā)板——netduino3 Wi-Fi評測

基于.net平臺的Wi-Fi開發(fā)板——netduino3 Wi-Fi評測

.net   Wi-Fi   netduino   CC3100   STM32   
  • 作者:netlhx
  • 來源:21ic
  • [導(dǎo)讀]
  • C#工程師的福音來了:Netduino 3 Wi-Fi是netduino的第三代產(chǎn)品,硬件開源。Netduino 3 Wi-Fi開發(fā)板使用STM32F427VI作為主控,同時使用TI CC3100作為網(wǎng)絡(luò)接口,提供網(wǎng)絡(luò)訪問能力。

上面的代碼很簡單,和使用其它編程工具如MDK相比較而言,可以看出邏輯基本是一樣的,設(shè)定一個GPIO端口,然后反復(fù)寫入0和1,實現(xiàn)LED燈的閃爍。

現(xiàn)在來將代碼寫入到netduino 3 Wi-Fi開發(fā)板,看它會不會動。先設(shè)置工程的屬性,使得可以正確將代碼下載到開發(fā)板。打開工程文件的屬性對話框,作如下設(shè)置

14.jpg

圖14:配置工程文件

如果設(shè)置無誤,就可以開始下載代碼到開發(fā)板了。點擊IDE工具欄上的Start按鈕,就會編譯代碼并將它下載到開發(fā)板,稍微等幾秒后,應(yīng)該可以看到開發(fā)板上的LED燈開始了。

作為一款Wi-Fi開發(fā)板,怎能少得了網(wǎng)絡(luò)功能的體驗?zāi)?接下來,咱們體驗一下網(wǎng)絡(luò)應(yīng)用,建立一個小小的Web服務(wù)器,然后通過網(wǎng)絡(luò)來控制板載的LED燈的亮和滅。仍然按照前面介紹的方面,建立一個新的工程WebServer,設(shè)定相關(guān)的參數(shù)。在Program.cs文件中添加如下代碼

public class Program

{

public static void Main()

{

// write your code here

OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);

int port = 80;

Thread.Sleep(8000);

Microsoft.SPOT.Net.NetworkInformation.NetworkInterface

networkInterface =

Microsoft.SPOT.Net.NetworkInformation.NetworkInterface.

GetAllNetworkInterfaces()[0];

Debug.Print("my ip address: " + networkInterface.IPAddress.ToString());

Socket listenerSocket = new Socket(AddressFamily.InterNetwork,

SocketType.Stream,

ProtocolType.Tcp);

IPEndPoint listenerEndPoint = new IPEndPoint(IPAddress.Any, port);

Debug.Print("setting up socket");

listenerSocket.Bind(listenerEndPoint);

listenerSocket.Listen(1);

Debug.Print("listening");

while (true)

{

Debug.Print(".");

Socket clientSocket = listenerSocket.Accept();

bool dataReady = clientSocket.Poll(5000000, SelectMode.SelectRead);

if (dataReady && clientSocket.Available > 0)

{

byte[] buffer = new byte[clientSocket.Available];

int bytesRead = clientSocket.Receive(buffer);

string request =

new string(System.Text.Encoding.UTF8.GetChars(buffer));

Debug.Print(request);

if (request.IndexOf("ON") >= 0)

{

led.Write(true);

}

else if (request.IndexOf("OFF") >= 0)

{

led.Write(false);

}

string statusText = "LED is " + (led.Read() ? "ON" : "OFF") + ".";

string response =

"HTTP/1.1 200 OK\r\n" +

"Content-Type: text/html; charset=utf-8\r\n\r\n" +

"" +

"" + statusText + "";

clientSocket.Send(System.Text.Encoding.UTF8.GetBytes(response));

}

clientSocket.Close();

}

}

}

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開放投稿

熱門標(biāo)簽
項目外包 more+