我使用arduino UNO板与modem sim800l,希望将数据发送到mysql服务器,每10秒钟发送一次。在arduino IDE中打开串行监视器时,一切都正常工作(数据被保存到mysql数据库中),但是当关闭串行监视器时,它就无法工作。
我希望将我的系统远程连接到移动电源,但仅在打开arduino IDE串行监视器时才能正常工作。
如何编辑代码以使微控制器在未连接到计算机和未打开串行监视器的情况下工作?
我希望将我的系统远程连接到移动电源,但仅在打开arduino IDE串行监视器时才能正常工作。
如何编辑代码以使微控制器在未连接到计算机和未打开串行监视器的情况下工作?
#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(7, 8);
void setup()
{
gprsSerial.begin(19200);
Serial.begin(19200);
Serial.println("Config SIM900...");
delay(2000);
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\",\"internet\"");
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://server.net/test.php?data1=2&data2=3\"");
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());
}
}
delay
。您必须读取和解析从调制解调器接收到的响应。 - hlovdalSetup()
中打印Serial.availableForWrite()
的值吗? - Richard Chambers