第1步:零件
一個(gè)Arduino
一個(gè)Arduino以太網(wǎng)屏蔽板
一個(gè)面包板
一個(gè)LED
連接線
一條以太網(wǎng)電纜
步驟2:初始硬件設(shè)置
如果您具有較新的Arduino以太網(wǎng)屏蔽板,它將在其背面寫(xiě)有Mac地址。
在將屏蔽板連接到Arduino板之前請(qǐng)分別寫(xiě)下該地址。
要設(shè)置,只需將屏蔽層的插頭插入Arduino。
使用以太網(wǎng)電纜將Arduino以太網(wǎng)屏蔽層連接到Networ通過(guò)路由器k。
請(qǐng)注意,以太網(wǎng)屏蔽層連接到引腳10、11、12、13,因此不能使用。
將LED的正極連接到面包板上,然后依次連接到引腳8和
步驟3:獲取基本信息(MAC地址,IP地址,端口號(hào))
如果您具有較新的Shields之一,則應(yīng)在背面寫(xiě)上Mac地址。
IP地址將取決于您的本地網(wǎng)絡(luò),并且可以使用Comamnd Promt來(lái)查找。
打開(kāi)命令提示符并輸入“ ipconfig”
然后它會(huì)顯示您的IP地址,默認(rèn)網(wǎng)關(guān)和子網(wǎng)掩碼
您還將需要使用的端口。端口80是HTTP的默認(rèn)端口,但由于我的互聯(lián)網(wǎng)提供商阻止了它,最終我使用了端口8081。
步驟4:
/*
Web服務(wù)器
簡(jiǎn)單的Web服務(wù)器
電路:
*以太網(wǎng)屏蔽連接到引腳10、11、12、13
*/
//------------------------------------------------- -------------------------------------------------- ----
#include
#include
//在下面輸入控制器的MAC地址和IP地址。
byte mac [] = { 0x90、0xA2、0xDA,0x0D,0x48、0xD3};
//IP地址將取決于您的本地網(wǎng)絡(luò):
//為控制器分配IP地址:
IPAddress ip(192,168, 1,20);
IPAddress網(wǎng)關(guān)(192,168,1,1);
IPAddress子網(wǎng)(255、255、255、0);
//用要使用的端口初始化以太網(wǎng)服務(wù)器庫(kù)。
EthernetServer服務(wù)器(8081);
字符串readString;
//------------------------------- -------------------------------------------------- ------------------------結(jié)果//--------------------- ----------------------------
//聲明的任何其他代碼:
//將引腳8聲明為L(zhǎng)ED因?yàn)槟蔷褪俏覀円B接LED的方式。您可以使用任何其他引腳,然后必須更改引腳號(hào)。
int led = 8;
//- -----------------------------------------------結(jié)果//------------------------------------------------ -------------------------------------------------- -----
void setup()
{
//----------------------------- --------------------
//額外設(shè)置代碼:
pinMode(led,OUTPUT);//選擇要控制的引腳
//--------------------------------------- ----------結(jié)果//----------------------------------- -------------------------------------------------- ------------------
//啟用串行數(shù)據(jù)打印
Serial.begin(9600);
//啟動(dòng)Ethernet
Ethernet.begin (mac,ip,網(wǎng)關(guān),子網(wǎng));
server.begin();
Serial.print(“服務(wù)器位于”);
Serial.println(Ethernet.localIP());
Serial.println(“ LED控制器測(cè)試1.0”);
}
//----------------------------- -------------------------------------------------- ------------------------結(jié)果//--------------------- -------------------------------------------------- --------------------------------
void loop()
{
//聽(tīng)傳入客戶端
EthernetClient客戶端= server.available();
如果(客戶端)
{
Serial.println(“新客戶端”);
而(client.connected())
{
if(client.available())
{
char c = client.read();
//通過(guò)char HTTP請(qǐng)求讀取char
if(readString.length( )《100)
{
//將字符存儲(chǔ)到字符串
readString + = c;
//Serial.print(c);
Serial.write(c);
//如果您已到達(dá)該行的末尾(收到換行符
//字符)并且該行為空白,則表明http請(qǐng)求已結(jié)束,
//因此您可以發(fā)送回復(fù)
//如果HTTP請(qǐng)求已結(jié)束
if(c ==‘ n’){
Serial.println(readString);//打印到串行監(jiān)視器以進(jìn)行調(diào)試
//------------------------------------- -------------------------------------------------- -----------------
//需要顯示站點(diǎn):
client.println(“ HTTP/1.1 200 OK”);//發(fā)送新頁(yè)面
client.println(“ Content-Type:text/html”);
client.println();
client.println(“”);
客戶端.println( “”);//搜索----------------------------------- -------------------------------------------------- -------------------結(jié)果//-------------------------- -----------------------
//顯示的內(nèi)容:
client.println(““);
client.println(”
“);
client.println(” “);
client.println(”
“);
client.println(“
家庭自動(dòng)化
”);
client.println(“
”);
client.println(“
”);
client.println(“ 打開(kāi)燈光”);
client.println(“
”);
客戶端。 println(“
”);
client.println(“ 關(guān)閉燈光
”);
客戶端.println(“ ”);
client.println(“ ”);
delay(1);
//停止client
client.stop();
//--------------------------------------------- ----
//需要的代碼可以實(shí)現(xiàn):
if(readString.indexOf(“?lighton”)》 0)//檢查on
{
digitalWrite(8,HIGH);//將引腳8設(shè)置為高電平
Serial.println(“ Led On”);
}
else {
if(readString.indexOf(“?lightoff”)》 0)//檢查是否關(guān)閉
{
digitalWrite(8,LOW);//將引腳8設(shè)置為低
Serial.println(“ Led Off”);
}
}
//清除下一個(gè)讀取的字符串
readString =“”;
//給Web瀏覽器時(shí)間來(lái)接收數(shù)據(jù)
delay(1);
//關(guān)閉連接:
client.stop();
Serial.println(“ client unonnected”);
}
}
}
}
}
}
責(zé)任編輯:wv
-
控制器
+關(guān)注
關(guān)注
114文章
17817瀏覽量
194187 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
197100
發(fā)布評(píng)論請(qǐng)先 登錄
KSZ8841-16M/-32M:?jiǎn)味丝?b class='flag-5'>以太網(wǎng)MAC控制器的技術(shù)剖析與應(yīng)用前景
LAN9116:高效單芯片10/100非PCI以太網(wǎng)控制器的技術(shù)剖析
DP83816:10/100 Mb/s集成PCI以太網(wǎng)控制器的深度解析
車載以太網(wǎng)協(xié)議轉(zhuǎn)換器操作教程# 車載以太網(wǎng)# 轉(zhuǎn)換器# 硬件# 教程# 汽車# 技術(shù)# 操作
探索Microchip LAN9215:16位非PCI 10/100以太網(wǎng)控制器的卓越性能
探索Microchip LAN9211:高性能以太網(wǎng)控制器的卓越之選
深度剖析ENC28J60:獨(dú)立以太網(wǎng)控制器的設(shè)計(jì)與應(yīng)用指南
KSZ8841-16M/-32M:?jiǎn)味丝?b class='flag-5'>以太網(wǎng)MAC控制器的卓越之選
KSZ8851SNL/SNLI:?jiǎn)味丝?b class='flag-5'>以太網(wǎng)控制器的卓越之選
解析 LAN9215i:16 位非 PCI 10/100 以太網(wǎng)控制器的卓越之選
KSZ8851SNL/SNLI單端口以太網(wǎng)控制器:設(shè)計(jì)與應(yīng)用全解析
基于Microchip LAN8650/1的10BASE-T1S以太網(wǎng)控制器技術(shù)解析
ENC28J60數(shù)據(jù)手冊(cè)中文版(帶 SPI 接口的獨(dú)立 以太網(wǎng)控制器)
Microchip LAN9211-ABZJ 集成 10/100 以太網(wǎng) PHY的以太網(wǎng)控制器
Arduino以太網(wǎng)控制器的制作
評(píng)論