电子说
第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
全部0条评论
快来发表一下你的评论吧 !