Arduino Ethernet para construir um servidor simples
Primeiro, vamos apresentar os dispositivos usados:
placa de expansão Ethernet
Em seguida, usaremos o Arduino e a placa de expansão Ethernet como servidor web, acessaremos o servidor na LAN através do navegador, obteremos os dados de temperatura e umidade do lado do Arduino e os exibiremos no navegador.
Primeiro, precisamos obter as informações de configuração da rede local (cabo de rede):
Aqui pegamos o endereço IP e MAC, o código é o seguinte:
byte mac[] = {
0xEC, 0xA8, 0x6B, 0x60, 0x15, 0x79 }; // 设定MAC地址、IP地址
IPAddress ip(10, 21, 30, 15);
EthernetServer server(80); // 初始化Ethernet库 HTTP默认端口为80
Em seguida, você pode começar a se conectar à Ethernet e construir o servidor:
void setup() {
// 初始化串口通信
Serial.begin(9600);
Ethernet.begin(mac, ip); // 开始ethernet连接,并作为服务器初始化
server.begin();
Serial.print( "server is at " );
Serial.println(Ethernet.localIP()); //监视器打印当前IP地址
}
Neste ponto, você pode ver que o endereço IP está impresso no monitor serial e o garçom foi ativado neste momento.
Para saber mais sobre o Arduino Ethernet, você pode consultar este artigo:
https://blog.csdn.net/WIZnet2012/article/details/42777167
Em seguida, obteremos os dados de temperatura e umidade do Arduino e os exibiremos no navegador.
Não vou falar sobre conteúdo relacionado ao DHT11 aqui, basta acessar o código:
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();
}
Os resultados são os seguintes:
Os alunos que não sabem js podem ir para um entendimento simples