第1步:零件
一個Arduino
一個Arduino以太網屏蔽板
一個面包板
一個LED
連接線
一條以太網電纜
步驟2:初始硬件設置
如果您具有較新的Arduino以太網屏蔽板,它將在其背面寫有Mac地址。
在將屏蔽板連接到Arduino板之前請分別寫下該地址。
要設置,只需將屏蔽層的插頭插入Arduino。
使用以太網電纜將Arduino以太網屏蔽層連接到Networ通過路由器k。
請注意,以太網屏蔽層連接到引腳10、11、12、13,因此不能使用。
將LED的正極連接到面包板上,然后依次連接到引腳8和
步驟3:獲取基本信息(MAC地址,IP地址,端口號)
如果您具有較新的Shields之一,則應在背面寫上Mac地址。
IP地址將取決于您的本地網絡,并且可以使用Comamnd Promt來查找。
打開命令提示符并輸入“ ipconfig”
然后它會顯示您的IP地址,默認網關和子網掩碼
您還將需要使用的端口。端口80是HTTP的默認端口,但由于我的互聯網提供商阻止了它,最終我使用了端口8081。
步驟4:
/*
Web服務器
簡單的Web服務器
電路:
*以太網屏蔽連接到引腳10、11、12、13
*/
//------------------------------------------------- -------------------------------------------------- ----
#include
#include
//在下面輸入控制器的MAC地址和IP地址。
byte mac [] = { 0x90、0xA2、0xDA,0x0D,0x48、0xD3};
//IP地址將取決于您的本地網絡:
//為控制器分配IP地址:
IPAddress ip(192,168, 1,20);
IPAddress網關(192,168,1,1);
IPAddress子網(255、255、255、0);
//用要使用的端口初始化以太網服務器庫。
EthernetServer服務器(8081);
字符串readString;
//------------------------------- -------------------------------------------------- ------------------------結果//--------------------- ----------------------------
//聲明的任何其他代碼:
//將引腳8聲明為LED因為那就是我們要連接LED的方式。您可以使用任何其他引腳,然后必須更改引腳號。
int led = 8;
//- -----------------------------------------------結果//------------------------------------------------ -------------------------------------------------- -----
void setup()
{
//----------------------------- --------------------
//額外設置代碼:
pinMode(led,OUTPUT);//選擇要控制的引腳
//--------------------------------------- ----------結果//----------------------------------- -------------------------------------------------- ------------------
//啟用串行數據打印
Serial.begin(9600);
//啟動Ethernet
Ethernet.begin (mac,ip,網關,子網);
server.begin();
Serial.print(“服務器位于”);
Serial.println(Ethernet.localIP());
Serial.println(“ LED控制器測試1.0”);
}
//----------------------------- -------------------------------------------------- ------------------------結果//--------------------- -------------------------------------------------- --------------------------------
void loop()
{
//聽傳入客戶端
EthernetClient客戶端= server.available();
如果(客戶端)
{
Serial.println(“新客戶端”);
而(client.connected())
{
if(client.available())
{
char c = client.read();
//通過char HTTP請求讀取char
if(readString.length( )《100)
{
//將字符存儲到字符串
readString + = c;
//Serial.print(c);
Serial.write(c);
//如果您已到達該行的末尾(收到換行符
//字符)并且該行為空白,則表明http請求已結束,
//因此您可以發送回復
//如果HTTP請求已結束
if(c ==‘ n’){
Serial.println(readString);//打印到串行監視器以進行調試
//------------------------------------- -------------------------------------------------- -----------------
//需要顯示站點:
client.println(“ HTTP/1.1 200 OK”);//發送新頁面
client.println(“ Content-Type:text/html”);
client.println();
client.println(“”);
客戶端.println( “”);//搜索----------------------------------- -------------------------------------------------- -------------------結果//-------------------------- -----------------------
//顯示的內容:
client.println(““);
client.println(”
“);
client.println(” “);
client.println(”
“);
client.println(“
家庭自動化
”);
client.println(“
”);
client.println(“
”);
client.println(“ 打開燈光”);
client.println(“
”);
客戶端。 println(“
”);
client.println(“ 關閉燈光
”);
客戶端.println(“ ”);
client.println(“ ”);
delay(1);
//停止client
client.stop();
//--------------------------------------------- ----
//需要的代碼可以實現:
if(readString.indexOf(“?lighton”)》 0)//檢查on
{
digitalWrite(8,HIGH);//將引腳8設置為高電平
Serial.println(“ Led On”);
}
else {
if(readString.indexOf(“?lightoff”)》 0)//檢查是否關閉
{
digitalWrite(8,LOW);//將引腳8設置為低
Serial.println(“ Led Off”);
}
}
//清除下一個讀取的字符串
readString =“”;
//給Web瀏覽器時間來接收數據
delay(1);
//關閉連接:
client.stop();
Serial.println(“ client unonnected”);
}
}
}
}
}
}
責任編輯:wv
-
控制器
+關注
關注
114文章
16963瀏覽量
182894 -
Arduino
+關注
關注
188文章
6491瀏覽量
190094
發布評論請先 登錄

AN4754-將Microchip橋接控制器與外部以太網PHY搭配使用

使用C2000 EtherCAT從站控制器的SMI進行以太網PHY配置

MSP432E401Y Simplelink? 以太網微控制器數據表

MSP432E401Y Simplelink? 以太網微控制器數據表

車載以太網與傳統以太網的區別
DP83815單芯片10/100 Mb/s以太網控制器數據表

DP83816-EX單芯片10/100 Mb/s以太網控制器數據表

以太網要怎么連接
工業以太網和普通以太網區別在哪

評論