mirror of
				https://github.com/KevinMidboe/TinyGSM.git
				synced 2025-10-29 18:00:18 +00:00 
			
		
		
		
	Update examples
This commit is contained in:
		| @@ -7,8 +7,9 @@ | ||||
|  * TinyGSM Getting Started guide: | ||||
|  *   http://tiny.cc/tiny-gsm-readme | ||||
|  * | ||||
|  * ATTENTION! Downloading big files requires quite a lot | ||||
|  * of knowledge - so this is for more experienced developers. | ||||
|  * ATTENTION! Downloading big files requires of knowledge of | ||||
|  * the TinyGSM internals and some modem specifics, | ||||
|  * so this is for more experienced developers. | ||||
|  * | ||||
|  **************************************************************/ | ||||
|  | ||||
| @@ -22,17 +23,17 @@ | ||||
| // #define TINY_GSM_MODEM_ESP8266 | ||||
| // #define TINY_GSM_MODEM_XBEE | ||||
|  | ||||
| // Increase RX buffer | ||||
| #define TINY_GSM_RX_BUFFER 1030 | ||||
| // Increase RX buffer if needed | ||||
| #define TINY_GSM_RX_BUFFER 1024 | ||||
|  | ||||
| #include <TinyGsmClient.h> | ||||
| #include <CRC32.h> | ||||
|  | ||||
| // Uncomment this if you want to see all AT commands | ||||
| //#define DUMP_AT_COMMANDS | ||||
| //#define TINY_GSM_DEBUG Serial | ||||
|  | ||||
| // Your GPRS credentials | ||||
| // Leave empty, if missing user or pass | ||||
| const char apn[]  = "YourAPN"; | ||||
| const char user[] = ""; | ||||
| const char pass[] = ""; | ||||
| // Set serial for debug console (to the Serial Monitor, default speed 115200) | ||||
| #define SerialMon Serial | ||||
|  | ||||
| // Use Hardware Serial on Mega, Leonardo, Micro | ||||
| #define SerialAT Serial1 | ||||
| @@ -41,28 +42,34 @@ const char pass[] = ""; | ||||
| //#include <SoftwareSerial.h> | ||||
| //SoftwareSerial SerialAT(2, 3); // RX, TX | ||||
|  | ||||
| #include <TinyGsmClient.h> | ||||
| #include <CRC32.h> | ||||
|  | ||||
| // Your GPRS credentials | ||||
| // Leave empty, if missing user or pass | ||||
| const char apn[]  = "YourAPN"; | ||||
| const char user[] = ""; | ||||
| const char pass[] = ""; | ||||
|  | ||||
| // Server details | ||||
| const char server[] = "vsh.pp.ua"; | ||||
| const int  port = 80; | ||||
|  | ||||
| const char resource[]  = "/TinyGSM/test_1k.bin"; | ||||
| uint32_t knownCRC32    = 0x6f50d767; | ||||
| uint32_t knownFileSize = 1024;   // In case server does not send it | ||||
|  | ||||
| #ifdef DUMP_AT_COMMANDS | ||||
|   #include <StreamDebugger.h> | ||||
|   StreamDebugger debugger(SerialAT, Serial); | ||||
|   StreamDebugger debugger(SerialAT, SerialMon); | ||||
|   TinyGsm modem(debugger); | ||||
| #else | ||||
|   TinyGsm modem(SerialAT); | ||||
| #endif | ||||
|  | ||||
| TinyGsmClient client(modem); | ||||
|  | ||||
| const char server[] = "cdn.rawgit.com"; | ||||
| const int  port     = 80; | ||||
|  | ||||
| const char resource[]  = "/vshymanskyy/tinygsm/master/extras/test_1k.bin"; | ||||
| uint32_t knownCRC32    = 0x6f50d767; | ||||
| uint32_t knownFileSize = 1024;   // In case server does not send it | ||||
|  | ||||
| void setup() { | ||||
|   // Set console baud rate | ||||
|   Serial.begin(115200); | ||||
|   SerialMon.begin(115200); | ||||
|   delay(10); | ||||
|  | ||||
|   // Set GSM module baud rate | ||||
| @@ -71,12 +78,12 @@ void setup() { | ||||
|  | ||||
|   // Restart takes quite some time | ||||
|   // To skip it, call init() instead of restart() | ||||
|   Serial.println("Initializing modem..."); | ||||
|   SerialMon.println(F("Initializing modem...")); | ||||
|   modem.restart(); | ||||
|  | ||||
|   String modemInfo = modem.getModemInfo(); | ||||
|   Serial.print("Modem: "); | ||||
|   Serial.println(modemInfo); | ||||
|   SerialMon.print(F("Modem: ")); | ||||
|   SerialMon.println(modemInfo); | ||||
|  | ||||
|   // Unlock your SIM card with a PIN | ||||
|   //modem.simUnlock("1234"); | ||||
| @@ -85,43 +92,42 @@ void setup() { | ||||
| void printPercent(uint32_t readLength, uint32_t contentLength) { | ||||
|   // If we know the total length | ||||
|   if (contentLength != -1) { | ||||
|     Serial.print("\r "); | ||||
|     Serial.print((100.0 * readLength) / contentLength); | ||||
|     Serial.print('%'); | ||||
|     SerialMon.print("\r "); | ||||
|     SerialMon.print((100.0 * readLength) / contentLength); | ||||
|     SerialMon.print('%'); | ||||
|   } else { | ||||
|     Serial.println(readLength); | ||||
|     SerialMon.println(readLength); | ||||
|   } | ||||
| } | ||||
|  | ||||
| void loop() { | ||||
|   Serial.print("Waiting for network..."); | ||||
|   SerialMon.print(F("Waiting for network...")); | ||||
|   if (!modem.waitForNetwork()) { | ||||
|     Serial.println(" fail"); | ||||
|     SerialMon.println(" fail"); | ||||
|     delay(10000); | ||||
|     return; | ||||
|   } | ||||
|   Serial.println(" OK"); | ||||
|   SerialMon.println(" OK"); | ||||
|  | ||||
|   Serial.print("Connecting to "); | ||||
|   Serial.print(apn); | ||||
|   SerialMon.print(F("Connecting to ")); | ||||
|   SerialMon.print(apn); | ||||
|   if (!modem.gprsConnect(apn, user, pass)) { | ||||
|     Serial.println(" fail"); | ||||
|     SerialMon.println(" fail"); | ||||
|     delay(10000); | ||||
|     return; | ||||
|   } | ||||
|   Serial.println(" OK"); | ||||
|   SerialMon.println(" OK"); | ||||
|  | ||||
|   Serial.print("Connecting to "); | ||||
|   Serial.print(server); | ||||
|  | ||||
|   // if you get a connection, report back via serial: | ||||
|   SerialMon.print(F("Connecting to ")); | ||||
|   SerialMon.print(server); | ||||
|   if (!client.connect(server, port)) { | ||||
|     Serial.println(" fail"); | ||||
|     SerialMon.println(" fail"); | ||||
|     delay(10000); | ||||
|     return; | ||||
|   } | ||||
|   Serial.println(" OK"); | ||||
|   // Make a HTTP request: | ||||
|   SerialMon.println(" OK"); | ||||
|  | ||||
|   // Make a HTTP GET request: | ||||
|   client.print(String("GET ") + resource + " HTTP/1.0\r\n"); | ||||
|   client.print(String("Host: ") + server + "\r\n"); | ||||
|   client.print("Connection: close\r\n\r\n"); | ||||
| @@ -129,20 +135,20 @@ void loop() { | ||||
|   long timeout = millis(); | ||||
|   while (client.available() == 0) { | ||||
|     if (millis() - timeout > 5000L) { | ||||
|       Serial.println(">>> Client Timeout !"); | ||||
|       SerialMon.println(F(">>> Client Timeout !")); | ||||
|       client.stop(); | ||||
|       delay(10000L); | ||||
|       return; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   Serial.println("Reading response header"); | ||||
|   SerialMon.println(F("Reading response header")); | ||||
|   uint32_t contentLength = knownFileSize; | ||||
|  | ||||
|   while (client.available()) { | ||||
|     String line = client.readStringUntil('\n'); | ||||
|     line.trim(); | ||||
|     //Serial.println(line);    // Uncomment this to show response header | ||||
|     //SerialMon.println(line);    // Uncomment this to show response header | ||||
|     line.toLowerCase(); | ||||
|     if (line.startsWith("content-length:")) { | ||||
|       contentLength = line.substring(line.lastIndexOf(':') + 1).toInt(); | ||||
| @@ -151,7 +157,7 @@ void loop() { | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   Serial.println("Reading response data"); | ||||
|   SerialMon.println(F("Reading response data")); | ||||
|   timeout = millis(); | ||||
|   uint32_t readLength = 0; | ||||
|   CRC32 crc; | ||||
| @@ -161,7 +167,7 @@ void loop() { | ||||
|   while (readLength < contentLength && client.connected() && millis() - timeout < 10000L) { | ||||
|     while (client.available()) { | ||||
|       uint8_t c = client.read(); | ||||
|       //Serial.print((char)c);       // Uncomment this to show data | ||||
|       //SerialMon.print((char)c);       // Uncomment this to show data | ||||
|       crc.update(c); | ||||
|       readLength++; | ||||
|       if (readLength % (contentLength / 13) == 0) { | ||||
| @@ -172,22 +178,24 @@ void loop() { | ||||
|   } | ||||
|   printPercent(readLength, contentLength); | ||||
|   timeElapsed = millis() - timeElapsed; | ||||
|   Serial.println(); | ||||
|   SerialMon.println(); | ||||
|  | ||||
|   // Shutdown | ||||
|  | ||||
|   client.stop(); | ||||
|   Serial.println("Server disconnected"); | ||||
|   SerialMon.println(F("Server disconnected")); | ||||
|  | ||||
|   modem.gprsDisconnect(); | ||||
|   Serial.println("GPRS disconnected"); | ||||
|   Serial.println(); | ||||
|   SerialMon.println(F("GPRS disconnected")); | ||||
|  | ||||
|   float duration = float(timeElapsed) / 1000; | ||||
|  | ||||
|   Serial.print("Content-Length: ");   Serial.println(contentLength); | ||||
|   Serial.print("Actually read:  ");   Serial.println(readLength); | ||||
|   Serial.print("Calc. CRC32:    0x"); Serial.println(crc.finalize(), HEX); | ||||
|   Serial.print("Known CRC32:    0x"); Serial.println(knownCRC32, HEX); | ||||
|   Serial.print("Duration:       ");   Serial.print(duration); Serial.println("s"); | ||||
|   SerialMon.println(); | ||||
|   SerialMon.print("Content-Length: ");   SerialMon.println(contentLength); | ||||
|   SerialMon.print("Actually read:  ");   SerialMon.println(readLength); | ||||
|   SerialMon.print("Calc. CRC32:    0x"); SerialMon.println(crc.finalize(), HEX); | ||||
|   SerialMon.print("Known CRC32:    0x"); SerialMon.println(knownCRC32, HEX); | ||||
|   SerialMon.print("Duration:       ");   SerialMon.print(duration); SerialMon.println("s"); | ||||
|  | ||||
|   // Do nothing forevermore | ||||
|   while (true) { | ||||
|   | ||||
| @@ -10,6 +10,8 @@ | ||||
|  * TinyGSM Getting Started guide: | ||||
|  *   http://tiny.cc/tiny-gsm-readme | ||||
|  * | ||||
|  * For more HTTP API examples, see ArduinoHttpClient library | ||||
|  * | ||||
|  **************************************************************/ | ||||
|  | ||||
| // Select your modem: | ||||
| @@ -21,8 +23,17 @@ | ||||
| // #define TINY_GSM_MODEM_M590 | ||||
| // #define TINY_GSM_MODEM_ESP8266 | ||||
|  | ||||
| // Increase RX buffer | ||||
| #define TINY_GSM_RX_BUFFER 600 | ||||
| // Increase RX buffer if needed | ||||
| //#define TINY_GSM_RX_BUFFER 512 | ||||
|  | ||||
| #include <TinyGsmClient.h> | ||||
| #include <ArduinoHttpClient.h> | ||||
|  | ||||
| // Uncomment this if you want to see all AT commands | ||||
| //#define DUMP_AT_COMMANDS | ||||
|  | ||||
| // Set serial for debug console (to the Serial Monitor, default speed 115200) | ||||
| #define SerialMon Serial | ||||
|  | ||||
| // Use Hardware Serial on Mega, Leonardo, Micro | ||||
| #define SerialAT Serial1 | ||||
| @@ -31,9 +42,6 @@ | ||||
| //#include <SoftwareSerial.h> | ||||
| //SoftwareSerial SerialAT(2, 3); // RX, TX | ||||
|  | ||||
| //#define DUMP_AT_COMMANDS | ||||
| //#define TINY_GSM_DEBUG Serial | ||||
|  | ||||
|  | ||||
| // Your GPRS credentials | ||||
| // Leave empty, if missing user or pass | ||||
| @@ -41,18 +49,14 @@ const char apn[]  = "YourAPN"; | ||||
| const char user[] = ""; | ||||
| const char pass[] = ""; | ||||
|  | ||||
| // Name of the server we want to connect to | ||||
| const char server[] = "cdn.rawgit.com"; | ||||
| // Server details | ||||
| const char server[] = "vsh.pp.ua"; | ||||
| const char resource[] = "/TinyGSM/logo.txt"; | ||||
| const int  port = 80; | ||||
| // Path to download (this is the bit after the hostname in the URL) | ||||
| const char resource[] = "/vshymanskyy/tinygsm/master/extras/logo.txt"; | ||||
|  | ||||
| #include <TinyGsmClient.h> | ||||
| #include <ArduinoHttpClient.h> | ||||
|  | ||||
| #ifdef DUMP_AT_COMMANDS | ||||
|   #include <StreamDebugger.h> | ||||
|   StreamDebugger debugger(SerialAT, Serial); | ||||
|   StreamDebugger debugger(SerialAT, SerialMon); | ||||
|   TinyGsm modem(debugger); | ||||
| #else | ||||
|   TinyGsm modem(SerialAT); | ||||
| @@ -63,7 +67,7 @@ HttpClient http(client, server, port); | ||||
|  | ||||
| void setup() { | ||||
|   // Set console baud rate | ||||
|   Serial.begin(115200); | ||||
|   SerialMon.begin(115200); | ||||
|   delay(10); | ||||
|  | ||||
|   // Set GSM module baud rate | ||||
| @@ -72,46 +76,45 @@ void setup() { | ||||
|  | ||||
|   // Restart takes quite some time | ||||
|   // To skip it, call init() instead of restart() | ||||
|   Serial.println("Initializing modem..."); | ||||
|   SerialMon.println(F("Initializing modem...")); | ||||
|   modem.restart(); | ||||
|  | ||||
|   String modemInfo = modem.getModemInfo(); | ||||
|   Serial.print("Modem: "); | ||||
|   Serial.println(modemInfo); | ||||
|   SerialMon.print(F("Modem: ")); | ||||
|   SerialMon.println(modemInfo); | ||||
|  | ||||
|   // Unlock your SIM card with a PIN | ||||
|   //modem.simUnlock("1234"); | ||||
| } | ||||
|  | ||||
| void loop() { | ||||
|   Serial.print(F("Waiting for network...")); | ||||
|   SerialMon.print(F("Waiting for network...")); | ||||
|   if (!modem.waitForNetwork()) { | ||||
|     Serial.println(" fail"); | ||||
|     SerialMon.println(" fail"); | ||||
|     delay(10000); | ||||
|     return; | ||||
|   } | ||||
|   Serial.println(" OK"); | ||||
|   SerialMon.println(" OK"); | ||||
|  | ||||
|   Serial.print(F("Connecting to ")); | ||||
|   Serial.print(apn); | ||||
|   SerialMon.print(F("Connecting to ")); | ||||
|   SerialMon.print(apn); | ||||
|   if (!modem.gprsConnect(apn, user, pass)) { | ||||
|     Serial.println(" fail"); | ||||
|     SerialMon.println(" fail"); | ||||
|     delay(10000); | ||||
|     return; | ||||
|   } | ||||
|   Serial.println(" OK"); | ||||
|   SerialMon.println(" OK"); | ||||
|  | ||||
|  | ||||
|   Serial.print(F("Performing HTTP GET request... ")); | ||||
|   SerialMon.print(F("Performing HTTP GET request... ")); | ||||
|   int err = http.get(resource); | ||||
|   if (err != 0) { | ||||
|     Serial.println("failed to connect"); | ||||
|     SerialMon.println(F("failed to connect")); | ||||
|     delay(10000); | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   int status = http.responseStatusCode(); | ||||
|   Serial.println(status); | ||||
|   SerialMon.println(status); | ||||
|   if (!status) { | ||||
|     delay(10000); | ||||
|     return; | ||||
| @@ -120,29 +123,32 @@ void loop() { | ||||
|   while (http.headerAvailable()) { | ||||
|     String headerName = http.readHeaderName(); | ||||
|     String headerValue = http.readHeaderValue(); | ||||
|     //Serial.println(headerName + " : " + headerValue); | ||||
|     //SerialMon.println(headerName + " : " + headerValue); | ||||
|   } | ||||
|  | ||||
|   int length = http.contentLength(); | ||||
|   if (length >= 0) { | ||||
|     Serial.println(String("Content length is: ") + length); | ||||
|     SerialMon.print(F("Content length is: ")); | ||||
|     SerialMon.println(length); | ||||
|   } | ||||
|   if (http.isResponseChunked()) { | ||||
|     Serial.println("This response is chunked"); | ||||
|     SerialMon.println(F("The response is chunked")); | ||||
|   } | ||||
|  | ||||
|   String body = http.responseBody(); | ||||
|   Serial.println("Response:"); | ||||
|   Serial.println(body); | ||||
|   SerialMon.println(F("Response:")); | ||||
|   SerialMon.println(body); | ||||
|  | ||||
|   Serial.println(String("Body length is: ") + body.length()); | ||||
|   SerialMon.print(F("Body length is: ")); | ||||
|   SerialMon.println(body.length()); | ||||
|  | ||||
|   // Shutdown | ||||
|  | ||||
|   http.stop(); | ||||
|   SerialMon.println(F("Server disconnected")); | ||||
|  | ||||
|   modem.gprsDisconnect(); | ||||
|   Serial.println("GPRS disconnected"); | ||||
|   SerialMon.println(F("GPRS disconnected")); | ||||
|  | ||||
|   // Do nothing forevermore | ||||
|   while (true) { | ||||
|   | ||||
| @@ -10,15 +10,26 @@ | ||||
|  * TinyGSM Getting Started guide: | ||||
|  *   http://tiny.cc/tiny-gsm-readme | ||||
|  * | ||||
|  * SSL/TLS is currently supported only with SIM8xx series | ||||
|  * For more HTTP API examples, see ArduinoHttpClient library | ||||
|  * | ||||
|  **************************************************************/ | ||||
|  | ||||
| // Select your modem | ||||
| // SSL/TLS is currently supported only with SIM8xx series | ||||
| // Select your modem: | ||||
| #define TINY_GSM_MODEM_SIM800 | ||||
| //#define TINY_GSM_MODEM_SIM808 | ||||
| // #define TINY_GSM_MODEM_SIM808 | ||||
|  | ||||
| // Increase RX buffer | ||||
| #define TINY_GSM_RX_BUFFER 64 | ||||
| // Increase RX buffer if needed | ||||
| //#define TINY_GSM_RX_BUFFER 512 | ||||
|  | ||||
| #include <TinyGsmClient.h> | ||||
| #include <ArduinoHttpClient.h> | ||||
|  | ||||
| // Uncomment this if you want to see all AT commands | ||||
| //#define DUMP_AT_COMMANDS | ||||
|  | ||||
| // Set serial for debug console (to the Serial Monitor, default speed 115200) | ||||
| #define SerialMon Serial | ||||
|  | ||||
| // Use Hardware Serial on Mega, Leonardo, Micro | ||||
| #define SerialAT Serial1 | ||||
| @@ -27,9 +38,6 @@ | ||||
| //#include <SoftwareSerial.h> | ||||
| //SoftwareSerial SerialAT(2, 3); // RX, TX | ||||
|  | ||||
| //#define DUMP_AT_COMMANDS | ||||
| //#define TINY_GSM_DEBUG Serial | ||||
|  | ||||
|  | ||||
| // Your GPRS credentials | ||||
| // Leave empty, if missing user or pass | ||||
| @@ -37,18 +45,14 @@ const char apn[]  = "YourAPN"; | ||||
| const char user[] = ""; | ||||
| const char pass[] = ""; | ||||
|  | ||||
| // Name of the server we want to connect to | ||||
| const char server[] = "cdn.rawgit.com"; | ||||
| // Server details | ||||
| const char server[] = "vsh.pp.ua"; | ||||
| const char resource[] = "/TinyGSM/logo.txt"; | ||||
| const int  port = 443; | ||||
| // Path to download (this is the bit after the hostname in the URL) | ||||
| const char resource[] = "/vshymanskyy/tinygsm/master/extras/logo.txt"; | ||||
|  | ||||
| #include <TinyGsmClient.h> | ||||
| #include <ArduinoHttpClient.h> | ||||
|  | ||||
| #ifdef DUMP_AT_COMMANDS | ||||
|   #include <StreamDebugger.h> | ||||
|   StreamDebugger debugger(SerialAT, Serial); | ||||
|   StreamDebugger debugger(SerialAT, SerialMon); | ||||
|   TinyGsm modem(debugger); | ||||
| #else | ||||
|   TinyGsm modem(SerialAT); | ||||
| @@ -59,7 +63,7 @@ HttpClient http(client, server, port); | ||||
|  | ||||
| void setup() { | ||||
|   // Set console baud rate | ||||
|   Serial.begin(115200); | ||||
|   SerialMon.begin(115200); | ||||
|   delay(10); | ||||
|  | ||||
|   // Set GSM module baud rate | ||||
| @@ -68,53 +72,51 @@ void setup() { | ||||
|  | ||||
|   // Restart takes quite some time | ||||
|   // To skip it, call init() instead of restart() | ||||
|   Serial.println("Initializing modem..."); | ||||
|   SerialMon.println(F("Initializing modem...")); | ||||
|   modem.restart(); | ||||
|  | ||||
|   String modemInfo = modem.getModemInfo(); | ||||
|   Serial.print("Modem: "); | ||||
|   Serial.println(modemInfo); | ||||
|   SerialMon.print(F("Modem: ")); | ||||
|   SerialMon.println(modemInfo); | ||||
|  | ||||
|   // Unlock your SIM card with a PIN | ||||
|   //modem.simUnlock("1234"); | ||||
|  | ||||
|   if (!modem.hasSSL()) { | ||||
|     SerialMon.println(F("SSL is not supported by this modem")); | ||||
|     while(true) { delay(1000); } | ||||
|   } | ||||
| } | ||||
|  | ||||
| void loop() { | ||||
|   if (!modem.hasSSL()) { | ||||
|     Serial.println("SSL is not supported by this modem"); | ||||
|     delay(10000); | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   Serial.print(F("Waiting for network...")); | ||||
|   SerialMon.print(F("Waiting for network...")); | ||||
|   if (!modem.waitForNetwork()) { | ||||
|     Serial.println(" fail"); | ||||
|     SerialMon.println(" fail"); | ||||
|     delay(10000); | ||||
|     return; | ||||
|   } | ||||
|   Serial.println(" OK"); | ||||
|   SerialMon.println(" OK"); | ||||
|  | ||||
|   Serial.print(F("Connecting to ")); | ||||
|   Serial.print(apn); | ||||
|   SerialMon.print(F("Connecting to ")); | ||||
|   SerialMon.print(apn); | ||||
|   if (!modem.gprsConnect(apn, user, pass)) { | ||||
|     Serial.println(" fail"); | ||||
|     SerialMon.println(" fail"); | ||||
|     delay(10000); | ||||
|     return; | ||||
|   } | ||||
|   Serial.println(" OK"); | ||||
|   SerialMon.println(" OK"); | ||||
|  | ||||
|  | ||||
|   Serial.print(F("Performing HTTP GET request... ")); | ||||
|   SerialMon.print(F("Performing HTTPS GET request... ")); | ||||
|   http.connectionKeepAlive(); // Currently, this is needed for HTTPS | ||||
|   int err = http.get(resource); | ||||
|   if (err != 0) { | ||||
|     Serial.println("failed to connect"); | ||||
|     SerialMon.println(F("failed to connect")); | ||||
|     delay(10000); | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   int status = http.responseStatusCode(); | ||||
|   Serial.println(status); | ||||
|   SerialMon.println(status); | ||||
|   if (!status) { | ||||
|     delay(10000); | ||||
|     return; | ||||
| @@ -123,29 +125,32 @@ void loop() { | ||||
|   while (http.headerAvailable()) { | ||||
|     String headerName = http.readHeaderName(); | ||||
|     String headerValue = http.readHeaderValue(); | ||||
|     //Serial.println(headerName + " : " + headerValue); | ||||
|     //SerialMon.println(headerName + " : " + headerValue); | ||||
|   } | ||||
|  | ||||
|   int length = http.contentLength(); | ||||
|   if (length >= 0) { | ||||
|     Serial.println(String("Content length is: ") + length); | ||||
|     SerialMon.print(F("Content length is: ")); | ||||
|     SerialMon.println(length); | ||||
|   } | ||||
|   if (http.isResponseChunked()) { | ||||
|     Serial.println("This response is chunked"); | ||||
|     SerialMon.println(F("The response is chunked")); | ||||
|   } | ||||
|  | ||||
|   String body = http.responseBody(); | ||||
|   Serial.println("Response:"); | ||||
|   Serial.println(body); | ||||
|   SerialMon.println(F("Response:")); | ||||
|   SerialMon.println(body); | ||||
|  | ||||
|   Serial.println(String("Body length is: ") + body.length()); | ||||
|   SerialMon.print(F("Body length is: ")); | ||||
|   SerialMon.println(body.length()); | ||||
|  | ||||
|   // Shutdown | ||||
|  | ||||
|   http.stop(); | ||||
|   SerialMon.println(F("Server disconnected")); | ||||
|  | ||||
|   modem.gprsDisconnect(); | ||||
|   Serial.println("GPRS disconnected"); | ||||
|   SerialMon.println(F("GPRS disconnected")); | ||||
|  | ||||
|   // Do nothing forevermore | ||||
|   while (true) { | ||||
|   | ||||
| @@ -17,13 +17,16 @@ | ||||
| // #define TINY_GSM_MODEM_M590 | ||||
| // #define TINY_GSM_MODEM_ESP8266 | ||||
|  | ||||
| // Increase RX buffer if needed | ||||
| //#define TINY_GSM_RX_BUFFER 512 | ||||
|  | ||||
| #include <TinyGsmClient.h> | ||||
|  | ||||
| // Your GPRS credentials | ||||
| // Leave empty, if missing user or pass | ||||
| const char apn[]  = "YourAPN"; | ||||
| const char user[] = ""; | ||||
| const char pass[] = ""; | ||||
| // Uncomment this if you want to see all AT commands | ||||
| //#define DUMP_AT_COMMANDS | ||||
|  | ||||
| // Set serial for debug console (to the Serial Monitor, default speed 115200) | ||||
| #define SerialMon Serial | ||||
|  | ||||
| // Use Hardware Serial on Mega, Leonardo, Micro | ||||
| #define SerialAT Serial1 | ||||
| @@ -32,17 +35,31 @@ const char pass[] = ""; | ||||
| //#include <SoftwareSerial.h> | ||||
| //SoftwareSerial SerialAT(2, 3); // RX, TX | ||||
|  | ||||
| TinyGsm modem(SerialAT); | ||||
| TinyGsmClient client(modem); | ||||
|  | ||||
| const char server[] = "cdn.rawgit.com"; | ||||
| const char resource[] = "/vshymanskyy/tinygsm/master/extras/logo.txt"; | ||||
| // Your GPRS credentials | ||||
| // Leave empty, if missing user or pass | ||||
| const char apn[]  = "YourAPN"; | ||||
| const char user[] = ""; | ||||
| const char pass[] = ""; | ||||
|  | ||||
| // Server details | ||||
| const char server[] = "vsh.pp.ua"; | ||||
| const char resource[] = "/TinyGSM/logo.txt"; | ||||
| const int  port = 80; | ||||
|  | ||||
| #ifdef DUMP_AT_COMMANDS | ||||
|   #include <StreamDebugger.h> | ||||
|   StreamDebugger debugger(SerialAT, SerialMon); | ||||
|   TinyGsm modem(debugger); | ||||
| #else | ||||
|   TinyGsm modem(SerialAT); | ||||
| #endif | ||||
|  | ||||
| TinyGsmClient client(modem); | ||||
|  | ||||
| void setup() { | ||||
|   // Set console baud rate | ||||
|   Serial.begin(115200); | ||||
|   SerialMon.begin(115200); | ||||
|   delay(10); | ||||
|  | ||||
|   // Set GSM module baud rate | ||||
| @@ -51,43 +68,43 @@ void setup() { | ||||
|  | ||||
|   // Restart takes quite some time | ||||
|   // To skip it, call init() instead of restart() | ||||
|   Serial.println(F("Initializing modem...")); | ||||
|   SerialMon.println(F("Initializing modem...")); | ||||
|   modem.restart(); | ||||
|  | ||||
|   String modemInfo = modem.getModemInfo(); | ||||
|   Serial.print("Modem: "); | ||||
|   Serial.println(modemInfo); | ||||
|   SerialMon.print(F("Modem: ")); | ||||
|   SerialMon.println(modemInfo); | ||||
|  | ||||
|   // Unlock your SIM card with a PIN | ||||
|   //modem.simUnlock("1234"); | ||||
| } | ||||
|  | ||||
| void loop() { | ||||
|   Serial.print(F("Waiting for network...")); | ||||
|   SerialMon.print(F("Waiting for network...")); | ||||
|   if (!modem.waitForNetwork()) { | ||||
|     Serial.println(" fail"); | ||||
|     SerialMon.println(" fail"); | ||||
|     delay(10000); | ||||
|     return; | ||||
|   } | ||||
|   Serial.println(" OK"); | ||||
|   SerialMon.println(" OK"); | ||||
|  | ||||
|   Serial.print(F("Connecting to ")); | ||||
|   Serial.print(apn); | ||||
|   SerialMon.print(F("Connecting to ")); | ||||
|   SerialMon.print(apn); | ||||
|   if (!modem.gprsConnect(apn, user, pass)) { | ||||
|     Serial.println(" fail"); | ||||
|     SerialMon.println(" fail"); | ||||
|     delay(10000); | ||||
|     return; | ||||
|   } | ||||
|   Serial.println(" OK"); | ||||
|   SerialMon.println(" OK"); | ||||
|  | ||||
|   Serial.print(F("Connecting to ")); | ||||
|   Serial.print(server); | ||||
|   SerialMon.print(F("Connecting to ")); | ||||
|   SerialMon.print(server); | ||||
|   if (!client.connect(server, port)) { | ||||
|     Serial.println(" fail"); | ||||
|     SerialMon.println(" fail"); | ||||
|     delay(10000); | ||||
|     return; | ||||
|   } | ||||
|   Serial.println(" OK"); | ||||
|   SerialMon.println(" OK"); | ||||
|  | ||||
|   // Make a HTTP GET request: | ||||
|   client.print(String("GET ") + resource + " HTTP/1.0\r\n"); | ||||
| @@ -99,17 +116,19 @@ void loop() { | ||||
|     // Print available data | ||||
|     while (client.available()) { | ||||
|       char c = client.read(); | ||||
|       Serial.print(c); | ||||
|       SerialMon.print(c); | ||||
|       timeout = millis(); | ||||
|     } | ||||
|   } | ||||
|   Serial.println(); | ||||
|   SerialMon.println(); | ||||
|  | ||||
|   // Shutdown | ||||
|  | ||||
|   client.stop(); | ||||
|   Serial.println("Server disconnected"); | ||||
|   SerialMon.println(F("Server disconnected")); | ||||
|  | ||||
|   modem.gprsDisconnect(); | ||||
|   Serial.println("GPRS disconnected"); | ||||
|   SerialMon.println(F("GPRS disconnected")); | ||||
|  | ||||
|   // Do nothing forevermore | ||||
|   while (true) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user