Я пытаюсь отправить данные из аналогового датчика 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();
}
Да, я постоянно получаю соединение ... но получаю его только один раз. –
Вы имеете в виду один раз каждые 5 секунд? – Naaz