Arduino Uno Wifi库无法正常工作

时间:2016-08-06 11:07:29

标签: c++ wifi arduino-uno esp8266

我最近购买了Arduino Uno WIFI。它说它已经集成了ESP8266 wifi模块,使其成为WIFI准备就绪。我已成功连接到我的wifi和wifi控制台。我还使用测试WebServer Blink测试来使用pin 13 rest api命令。我遇到的问题超出了这个例子。我搜索了WIFI文档,但只能找到{armino不适用的this documentation for the WIFI-Shield

我在示例中看到他们导入#include <ArduinoWiFi.h>但我找不到这个库文档。我可以使用这个新的arduino wifi吗?有任何人对此有经验吗?我曾尝试使用#include <WIFI.h>,但它说我没有wifi sheild。

错误:

WebServerBlink.ino:14:23: error: 'class ArduinoWifiClass' has no member named 'status'

CODE:

#include <Wire.h>
#include <ArduinoWiFi.h>

/*
on your borwser, you type http://<IP>/arduino/webserver/ or http://<hostname>.local/arduino/webserver/

http://labs.arduino.org/WebServerBlink

*/
void setup() {
    pinMode(13,OUTPUT);
    Wifi.begin();
    Wifi.println("WebServer Server is up");
    Wifi.println(Wifi.status()); //Line 14:23:: This will not work
}
void loop() {

    while(Wifi.available()){
      process(Wifi);
    }
  delay(50);
}

void process(WifiData client) {
  // read the command
  String command = client.readStringUntil('/');

  // is "digital" command?
  if (command == "webserver") {
    WebServer(client);
  }

  if (command == "digital") {
    digitalCommand(client);
  }
}

void WebServer(WifiData client) {

          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          client.println("<html>");

          client.println("<head> </head>");
          client.print("<body>");

          client.print("Click<input type=button onClick=\"var w=window.open('/arduino/digital/13/1','_parent');w.close();\"value='ON'>pin13 ON<br>");
          client.print("Click<input type=button onClick=\"var w=window.open('/arduino/digital/13/0','_parent');w.close();\"value='OFF'>pin13 OFF<br>");

          client.print("</body>");
          client.println("</html>");
          client.print(DELIMITER); // very important to end the communication !!! 

}

void digitalCommand(WifiData client) {
  int pin, value;

  // Read pin number
  pin = client.parseInt();

  // If the next character is a '/' it means we have an URL
  // with a value like: "/digital/13/1"
  if (client.read() == '/') {
    value = client.parseInt();
    digitalWrite(pin, value);
  }

  // Send feedback to client
  client.print(F("Pin D"));
  client.print(pin);
  client.print(F(" set to "));
  client.print(value);
  client.print(EOL);

}

2 个答案:

答案 0 :(得分:0)

来自arduino的Arduino Uno WIFI(http://www.arduino.org/products/boards/arduino-uno-wifi)与来自arduino的Arduino WiFi Shield(www.arduino.cc/en/Main/ArduinoWiFiShield)之间存在很大差异。的 CC

这是您的Arduino Uno WIFI的一个很好的起点: http://www.arduino.org/learning/getting-started/getting-started-with-arduino-uno-wifi

下一个重点是,您需要使用Arduino 1.7(来自arduino.org),尤其是OTA编程。来自arduino.cc的Arduino 1.6.x无法正常工作。

不幸的是,他们并没有真正发展他们的arduinowifi库。

答案 1 :(得分:0)

我在Linux IDE 1.8.1上遇到了同样的问题,我解决了这个问题:

获取https://github.com/arduino-org/Arduino/tree/master/libraries/ArduinoWiFi 添加它..... arduino-1.8.1 / libraries / ArduinoWiFi / 重启IDE。您可以在File-&gt; Examples-&gt; ArduinoWiFi下打开并运行示例草图。

我认为它适用于任何平台上的任何IDE。