2017-04-20 13 views
1

센서 데이터를 MySQL 서버로 보내려고하지만이를 수행 할 수 없습니다. 나는 다른 질문에서 몇 가지 유사한 예를 따라 왔지만 효과가 없다. Arduino 코드는 아래와 같습니다. 아이디어는 부하에서 전압과 전류를 측정하여 MySQL 서버로 보내는 것입니다. TIA.센서 데이터를 Arduino 및 Sim900a를 사용하여 MySQL 서버로 전송

#include <SoftwareSerial.h> 
SoftwareSerial gprsSerial(7, 8); 

//variables that imitates actual voltage and current data 
float a=random(300.0); 
float b=random(2.00); 
char c[10]="B110";  

void setup() { 
    gprsSerial.begin(19200); 
    Serial.begin(19200); 
    Serial.println("Config SIM900A..."); 
    delay(2000);`enter code here` 
    Serial.println("Done!..."); 
    gprsSerial.flush(); 
    Serial.flush(); 
    // attach or detach from GPRS service 
    gprsSerial.println("AT+CGATT?"); 
    delay(100); 
    toSerial(); 
    // bearer settings 
    gprsSerial.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\""); 
    delay(2000); 
    toSerial(); 
    // bearer settings 
    gprsSerial.println("AT+SAPBR=3,1,\"APN\",\"my carrier apn here\""); 
    delay(2000); 
    toSerial(); 
    // bearer settings 
    gprsSerial.println("AT+SAPBR=1,1"); 
    delay(2000); 
    toSerial(); 
} 

void loop() { 
    // initialize http service 
    gprsSerial.println("AT+HTTPINIT"); 
    delay(2000); 
    toSerial(); 
    // set http param value 
    gprsSerial.println("AT+HTTPPARA=\"URL\",\"http://mocdl.net/api/data/create?voltage="" + a + ""&current="" + b + "" &load_id="" + c + ""\""); 
    delay(2000); 
    toSerial(); 
    // set http action type 0 = GET, 1 = POST, 2 = HEAD 
    gprsSerial.println("AT+HTTPACTION=0"); 
    delay(6000); 
    toSerial(); 
    // read server response 
    gprsSerial.println("AT+HTTPREAD"); 
    delay(1000); 
    toSerial(); 
    gprsSerial.println(""); 
    gprsSerial.println("AT+HTTPTERM"); 
    toSerial(); 
    delay(300); 
    gprsSerial.println(""); 
    delay(10000); 
} 

void toSerial() { 
    while(gprsSerial.available()!=0) { 
    Serial.write(gprsSerial.read()); 
    } 
} 

답변

0

를 추가해야합니다.

또한 프로그램을 약간 변경해야합니다.

gprsSerial.println("AT+HTTPPARA=\"URL\",\"http://mocdl.net/api/data/create?voltage="" + a + ""&current="" + b + "" &load_id="" + c + ""\""); 

위의 행은 예상대로 작동하지 않습니다. 다음과 같이

그래서 HTTP 요청 줄을 편집

gprsSerial.println("AT+HTTPPARA=\"URL\",\"http://mocdl.net/api/data/create?voltage=%f&current=%f&load_id=%f\"",a,b,c); 
0

APN을 설정해야합니다.

내 경우 예를 들어 나는 Panciz이 (내가 생각하는 당신은 이미 알고) 당신에게 APN을 설정해야합니다 말했듯이

mySerial.println("AT+SAPBR=3,1,\"APN\",\"internet\"")