我创建了一个网页,其中只包含几个具有值的div。我想从arduino访问这些值。我已经使用WiFly屏蔽将我的arduino连接到我的wifi网络。我不确定如何从我所建立的网站上检索数据。
网站为https://googledrive.com/host/0B5gW3AYRbRMoYU5RaHpNS2ZEY3c/dataRequest.html
该页面需要15秒才能加载数据,因此请耐心等待。
FIND-THE-CONTENT-HERE
String COORDINATES = RETRIEVED-DATA
if (COORDINATES == THESE-COORDINATES) {
Int value = VALUE-INSIDE-DIV
}
LOOP TO KEEP CHECKING DATA(IF IT HAS BEEN UPDATED)
连接到wifi的当前草图
#include <SPI.h>
#include <WiFly.h>
#include "Credentials.h"
char serverName[] = "googledrive.com";
void setup() {
Serial.begin(9600);
//Serial.println("\n\r\n\rWiFly Shield Terminal Routine");
WiFly.begin();
if (!WiFly.join(ssid, passphrase)) {
Serial.println("Association failed.");
while (1) {
// Hang on failure.
}
}
Serial.println("Associated!");
}
void loop() {
}
答案 0 :(得分:0)
您将无法从Arduino获取数据。
当客户访问该页面时,他们会看到一个数字列表:
129
63
...
70
但该URL不会返回此数字列表。该URL返回一些在客户端运行的javascript代码,然后呈现这些数字。客户端CPU和浏览器完成查询数据库并生成您在屏幕上看到的所有工作。
Arduino只会看到页面源代码。右键单击页面,然后选择&#34;查看源&#34;你会看到Arduino会看到什么。为了让Arduino呈现页面,它必须有一个javascript引擎,远远超出你用微控制器运行的能力。
您需要做的是服务器端呈现,以便在发送页面之前完成所有工作。在这种情况下,服务器将执行所有繁重的工作,Arduino将只解析文本。您甚至不必使用HTML - 页面可以简单地呈现为纯文本,这将很好地利用微控制器的功能。
答案 1 :(得分:0)
jd5ca是正确的,这个值是由JS推断出来的,但是由于你无法得到数据,他错了; 如果你模仿arduino上的javascript(将JS代码“端口”转换为arduino),你就不需要JS引擎。
通常JS会做一些GET来获取JXON / XML格式的数据,这只是一个关于不同URI的GET,有时WebSocket也参与其中仍然可以实现arduino。 但在这种情况下,似乎JS正在做一些不同的事情,从女巫解析一些数据我无法帮助你,因为我缺乏JQuery知识。遗憾