admin管理员组文章数量:1558103
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/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不了解的同学可以去简单了解一下
版权声明:本文标题:Arduino Ethernet构建简易服务器 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1727352723a1109859.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论