Arduino Ethernet para construir um servidor simples

Arduino Ethernet para construir um servidor simples

Primeiro, vamos apresentar os dispositivos usados:
placa de expansão Ethernet

insira a descrição da imagem aqui
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):

insira a descrição da imagem aquiAqui 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:
insira a descrição da imagem aquiOs alunos que não sabem js podem ir para um entendimento simples

Acho que você gosta

Origin blog.csdn.net/ws15168689087/article/details/120998877
Recomendado
Clasificación