summaryrefslogtreecommitdiff
path: root/libraries/SIM800/examples/GPRSTest
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/SIM800/examples/GPRSTest')
-rw-r--r--libraries/SIM800/examples/GPRSTest/GPRSTest.ino126
1 files changed, 126 insertions, 0 deletions
diff --git a/libraries/SIM800/examples/GPRSTest/GPRSTest.ino b/libraries/SIM800/examples/GPRSTest/GPRSTest.ino
new file mode 100644
index 0000000..e752166
--- /dev/null
+++ b/libraries/SIM800/examples/GPRSTest/GPRSTest.ino
@@ -0,0 +1,126 @@
+/*************************************************************************
+* Test sketch for SIM800 library
+* Distributed under GPL v2.0
+* Written by Stanley Huang <stanleyhuangyc@gmail.com>
+* For more information, please visit http://arduinodev.com
+*************************************************************************/
+
+#include "SIM800.h"
+
+#define APN "connect"
+static const char* url = "http://arduinodev.com/datetime.php";
+
+
+CGPRS_SIM800 gprs;
+uint32_t count = 0;
+uint32_t errors = 0;
+
+void setup()
+{
+ con.begin(9600);
+ while (!con);
+
+ con.println("SIM800 TEST");
+
+ for (;;) {
+ con.print("Resetting...");
+ while (!gprs.init()) {
+ con.write('.');
+ }
+ con.println("OK");
+
+ con.print("Setting up network...");
+ byte ret = gprs.setup(APN);
+ if (ret == 0)
+ break;
+ con.print("Error code:");
+ con.println(ret);
+ con.println(gprs.buffer);
+ }
+ con.println("OK");
+ delay(3000);
+
+ if (gprs.getOperatorName()) {
+ con.print("Operator:");
+ con.println(gprs.buffer);
+ }
+ int ret = gprs.getSignalQuality();
+ if (ret) {
+ con.print("Signal:");
+ con.print(ret);
+ con.println("dB");
+ }
+
+#if 0
+ sendCommand("AT+CSQ");
+ lcd.println("Dialing...");
+ if (sendCommand("ATD + +61402533012;", 10000)) {
+ lcd.println(buffer);
+ }
+ if (sendCommand("ATH"))
+ lcd.println(buffer);
+ delay(1000);
+#endif
+
+ gprs.sendCommand("AT+CMGF=1"); // sets the SMS mode to text
+ gprs.sendCommand("AT+CPMS=\"SM\",\"SM\",\"SM\""); // selects the memory
+
+ for (;;) {
+ if (gprs.httpInit()) break;
+ con.println(gprs.buffer);
+ gprs.httpUninit();
+ delay(1000);
+ }
+ delay(3000);
+}
+
+void loop()
+{
+ count++;
+
+ char mydata[16];
+ sprintf(mydata, "t=%lu", millis());
+ con.print("Requesting ");
+ con.print(url);
+ con.print('?');
+ con.println(mydata);
+ gprs.httpConnect(url, mydata);
+ while (gprs.httpIsConnected() == 0) {
+ // can do something here while waiting
+ con.write('.');
+ for (byte n = 0; n < 25 && !gprs.available(); n++) {
+ delay(10);
+ }
+ }
+ if (gprs.httpState == HTTP_ERROR) {
+ con.println("error");
+ errors++;
+ delay(3000);
+ return;
+ }
+ gprs.httpRead();
+ int ret;
+ while ((ret = gprs.httpIsRead()) == 0) {
+ // can do something here while waiting
+ }
+ if (gprs.httpState == HTTP_ERROR) {
+ con.println("error");
+ errors++;
+ delay(3000);
+ return;
+ }
+
+ // now we have received payload
+ con.print("\n[Payload]");
+ con.println(gprs.buffer);
+
+ // show stats
+ con.print("Total Requests:");
+ con.print(count);
+ if (errors) {
+ con.print(" Errors:");
+ con.print(errors);
+ }
+ con.println();
+}
+