Arduino Ethernet构建简易服务器

Arduino Ethernet构建简易服务器

首先先介绍一下用到的器件:
Ethernet扩展板

在这里插入图片描述
接下来,我们将使用Arduino和Ethernet扩展板作为Web服务器,通过浏览器在局域网内访问该服务器,获取Arduino端的温湿度数据,显示到浏览器上。
首先,我们需要获取本地网络的设置信息(网线):

在这里插入图片描述这里我们取IP和MAC地址,代码如下:

byte mac[] = {
   0xEC, 0xA8, 0x6B, 0x60, 0x15, 0x79 };         // 设定MAC地址、IP地址
IPAddress ip(10, 21, 30, 15);
EthernetServer server(80);                       // 初始化Ethernet库   HTTP默认端口为80

接下来便可以开始连接Ethernet,构建服务器:

void  setup() {
// 初始化串口通信
   Serial.begin(9600);

   Ethernet.begin(mac, ip);                        // 开始ethernet连接,并作为服务器初始化
   server.begin();
   Serial.print( "server is at " );
   Serial.println(Ethernet.localIP());             //监视器打印当前IP地址
}

此时,在串口监视器中可以看到IP地址被打印,此时的服务员已经开启。
想要了解更多的Arduino Ethernet的内容,可以参考这篇文章:
https://blog.csdn.net/WIZnet2012/article/details/42777167

接下来,我们将实现获取Arduino端的温湿度数据,显示到浏览器上。
这里不再讲DHT11相关的内容了,直接上代码:

void  loop() {

    float h = dht.readHumidity();          //取湿度
    float t = dht.readTemperature();       //取温度
  
   // 监听客户端传来的数据
   EthernetClient client = server.available();
   Ethernet.maintain();

  client.println( "HTTP/1.1 200 OK" );
  client.println( "Content-Type: text/html" );
  client.println( "Connection: close" );
  client.println();
  client.println( "<!DOCTYPE HTML>" );
  client.println( "<html>" ); 
  client.println( "<meta http-equiv=\"refresh\" content=\"10\">" );   // 添加一个meta刷新标签, 浏览器会每10秒刷新一次
  client.print( "Temperture:");
  client.print( t );
  client.println( "C" );
  client.println( "<br></br>" );
  client.print( "Humidity:");
  client.print( h );
  client.println( "%" );
  client.println( "<br></br>" );

  client.println( "<button onclick='refresh()'>Refresh</button>" );      //实现点击刷新
  
  client.println( "</html>" );

  client.println( " <script type = 'text/javascript'> " );
  client.println( " function refresh(){ location.reload(); } " );
  client.println( " </script> " );
  // 等待浏览器接收数据
  delay(1000);
     // 断开连接
  client.stop();
}

结果如下:
在这里插入图片描述对js不了解的同学可以去简单了解一下

猜你喜欢

转载自blog.csdn.net/ws15168689087/article/details/120998877
今日推荐