2015-09-08 1 views
0

Я пытаюсь отправить данные из аналогового датчика 1 на arduino yun в электронную таблицу в документах google через pushingbox.com. Таким образом, у меня есть линг между pushingbox и рабочими документами google, но его связь между Yun и pushingbox, с которыми я борюсь. Я подключил Yun через ethernet к сети, и это соединение работает нормально.Arduino Yun Data Logging to Google Docs (Spreadsheet)

MAC-адрес и IP-адрес изменены с моего оригинала. Кажется, не может найти, почему этот код не работает. Он просто говорит «connect ...» на последовательном мониторе. Ниже я вставил свой код.

Кто-то, пожалуйста, помогите мне.

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

//------------------------------------------------------------------------------- 
byte mac[] = { 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA }; //Setting MAC Address 
char server[] = "api.pushingbox.com"; //pushingbox API server 
IPAddress ip(000,000,000,00); //Arduino IP address. Only used when DHCP is turned off. 
EthernetClient client; //define 'client' as object 
String data; //GET query with data 
float suhu; //suhu (bahasa Indonesia) means temperature 
boolean koneksi = false; 
//------------------------------------------------------------------------------ 
void setup() { 
    Serial.begin(9600); 
    if (Ethernet.begin(mac) == 0) { 
    Serial.println("Failed to configure Ethernet using DHCP"); 
    Ethernet.begin(mac, ip); 
    } 
    delay(1000); 
} 
//------------------------------------------------------------------------------ 
void loop(){ 
    int baca_ADC = analogRead(1); //read analog input on pin A1 
    suhu = baca_ADC * 5.0 * 100.0/1024.0; // ADC to celcius conversion 
    kemasData(); //packing GET query with data 
    Serial.println("connecting..."); 
    if (client.connect(server, 80)) { 
    sendData(); 
    koneksi = true; //connected = true 
    } 
    else{ 
    Serial.println("connection failed"); 
    } 
    // loop 
    while(koneksi){ 
    if (client.available()) { 
    char c = client.read(); //save http header to c 
    Serial.print(c); //print http header to serial monitor 
    } 
    if (!client.connected()) { 
    Serial.println(); 
    Serial.println("disconnecting."); 
      Serial.print("Temperature Sent :"); 
      Serial.println(suhu); //print sent value to serial monitor 
    client.stop(); 
      koneksi = false; 
      data = ""; //data reset 
    } 
    } 
    delay(5000); // interval 
} 

void kemasData(){ 
    data+=""; 
    data+="GET /pushingbox?devid=xxxxxxxxxxxxxxxx&tempData="; //GET request query to pushingbox API 
    data+=suhu; 
    data+=" HTTP/1.1"; 
} 
void sendData(){ 
    Serial.println("connected"); 
    client.println(data); 
    client.println("Host: api.pushingbox.com"); 
    client.println("Connection: close"); 
    client.println(); 
} 

ответ

0

Я думаю, что ваш код застрял в то время как() цикл, вы получаете соединяющую ...... постоянно переписывают каждые 5 секунд или только один раз? если однажды я думаю, что это определенно цикл while()

+0

Да, я постоянно получаю соединение ... но получаю его только один раз. –

+0

Вы имеете в виду один раз каждые 5 секунд? – Naaz

Смежные вопросы