笔记本电脑和arduino之间通过以太网直接连接

时间:2014-01-08 14:44:08

标签: connection arduino ethernet

我用Arduino和以太网盾制作了一个项目。 Arduino正在托管一个网站,我可以通过我的笔记本电脑上的浏览器打开它。 Arduino通过以太网连接到路由器。所有这些都很好。

现在我必须在学校展示这个项目。为了防止令人不快的意外,我想通过以太网将Arduino直接连接到笔记本电脑。我的问题是我对这个话题的了解并不多。如果可能的话,请告诉我应该做些什么。

2 个答案:

答案 0 :(得分:9)

如果您将路由器带出循环,则需要:

为笔记本电脑的以太网连接分配手动IP地址,例如192.168.0.1

子网掩码255.255.255.0

为Arduino的以太网分配手动IP地址,例如192.168.0.2

子网掩码255.255.255.0

默认网关为空

使用交叉电缆链接两者(标准的补丁引线无效)

然后,您应该可以通过笔记本电脑在http://192.168.0.2上启动Arduino网站了。

看起来很聪明:)在笔记本电脑上编辑主机表(C:\ windows \ system32 \ drivers \ etc \ hosts for windows)(/ etc / hosts for linux) 并输入一个条目:

192.168.0.2 my.arduino

然后您可以使用http://my.arduino

访问它 祝你好运

答案 1 :(得分:0)

您必须为笔记本电脑和Arduino分配手动IP地址。 然后在草图中包含Ethernet.h并尝试建立以太网连接。最后,您可以在浏览器中输入Arduino的IP,在笔记本电脑中看到您的网页。例如:

#include <SPI.h> 
#include <Ethernet.h>
/******************** ETHERNET SETTINGS ********************/
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x85, 0xD9 };   //physical mac address
byte ip[] = { 192, 168, 1, 172 };                   // ip in lan
byte subnet[] = { 255, 255, 255, 0 };              //subnet mask
byte gateway[] = { 192, 168, 1, 254 };              // default gateway
EthernetServer server(80);                       //server port
void setup()
{
Ethernet.begin(mac,ip,gateway,subnet);     // initialize Ethernet device
server.begin();                                // start to listen for clients
pinMode(8, INPUT);                            // input pin for switch
}
void loop()
{
EthernetClient client = server.available();    // look for the client
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connnection: close");
client.println();
/* 
This portion is the webpage which will be
sent to client web browser one can use html , javascript
and another web markup language to make particular layout 
*/
client.println("<!DOCTYPE html>");      //web page is made using html
client.println("<html>");
client.println("<head>");
client.println("<title>Ethernet Tutorial</title>");
client.println("<meta http-equiv=\"refresh\" content=\"1\">");
/*
The above line is used to refresh the page in every 1 second
This will be sent to the browser as the following HTML code:
<meta http-equiv="refresh" content="1">
content = 1 sec i.e assign time for refresh 
*/
client.println("</head>");
client.println("<body>");
client.println("<h1>A Webserver Tutorial </h1>");
client.println("<h2>Observing State Of Switch</h2>");
client.print("<h2>Switch is:  </2>");
if (digitalRead(8))
{
client.println("<h3>ON</h3>");
}
else
{
client.println("<h3>OFF</h3>");
}
client.println("</body>");
client.println("</html>");
delay(1);         // giving time to receive the data
/*
The following line is important because it will stop the client
and look for the new connection in the next iteration i.e
EthernetClient client = server.available();
*/
client.stop();
}