Arduino以太网控制器的制作

电子说

1.3w人已加入

描述

第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 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分