Arduino以太网屏蔽不会检测到断开连接

时间:2016-04-22 13:11:13

标签: c++ sockets arduino client-server ethernet

我有以太网盾的c ++服务器和Arduino UNO客户端。 我的问题是服务器断开任何断开连接(c#服务器,Android应用程序),除了Arduino之外。没有理由,我猜Arduino插座仍在运行,即使在Arduino没有电源之后也是如此。 这是Arduino代码:

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddress ip(192, 168, 1, 4);

EthernetClient client;

void setup()
{
  Serial.begin(9600);
  while (!Serial) 
  {
    ;
  }

  if (Ethernet.begin(mac) == 0) 
  {
    Serial.println("Failed to configure Ethernet using DHCP");
    Ethernet.begin(mac, ip);
  }

  delay(1000);
  Serial.println("connecting...");

  if (client.connect("192.168.1.11", 1626))
  {
    Serial.println("connected");
  }
  else 
  {
    Serial.println("connection failed");
  }

}

void loop()
{
  client.write("hello", strlen("hello")+1); 

  if (!client.connected())
  {
      Serial.println("connection failed");
     client.stop();
     return;
 }
}

Arduino如何在没有电源的情况下自动关闭它的插座?

1 个答案:

答案 0 :(得分:0)

只有Arduino ,你就无法做到。 Arduino无法在没有电源的情况下自动关闭其插座。 Arduino不像笔记本电脑或Android,因为他们有自己的电池组,几乎没有大脑做出相应的反应。此外,可怜的事情甚至都不知道电力什么时候会爆炸。

然而 ,可以做到。给你的Arduino一个自己的移动电源。你可以读取这个powerbank的电压电平并设置阈值点,让你的Arduino关闭并进入睡眠状态。