我用Arduino和以太网盾制作了一个项目。 Arduino正在托管一个网站,我可以通过我的笔记本电脑上的浏览器打开它。 Arduino通过以太网连接到路由器。所有这些都很好。
现在我必须在学校展示这个项目。为了防止令人不快的意外,我想通过以太网将Arduino直接连接到笔记本电脑。我的问题是我对这个话题的了解并不多。如果可能的话,请告诉我应该做些什么。
答案 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();
}