diff --git a/examples/AllFunctions/AllFunctions.ino b/examples/AllFunctions/AllFunctions.ino index f6df8a6..d2a3565 100644 --- a/examples/AllFunctions/AllFunctions.ino +++ b/examples/AllFunctions/AllFunctions.ino @@ -70,16 +70,29 @@ //#define SMS_TARGET "+380xxxxxxxxx" //#define CALL_TARGET "+380xxxxxxxxx" -// Your GPRS credentials -// Leave empty, if missing user or pass +// Your GPRS credentials, if any const char apn[] = "YourAPN"; const char gprsUser[] = ""; const char gprsPass[] = ""; + +// Your WiFi connection credentials, if applicable const char wifiSSID[] = "YourSSID"; const char wifiPass[] = "YourWiFiPass"; #include +#if TINY_GSM_TEST_GPRS && not defined TINY_GSM_MODEM_HAS_GPRS +#define TINY_GSM_TEST_GPRS false +#define TINY_GSM_TEST_CALL false +#define TINY_GSM_TEST_SMS false +#define TINY_GSM_TEST_USSD false +#define TINY_GSM_TEST_WIFI true +#endif +#if TINY_GSM_TEST_WIFI && not defined TINY_GSM_MODEM_HAS_WIFI +#define TINY_GSM_USE_GPRS true +#define TINY_GSM_USE_WIFI false +#endif + #ifdef DUMP_AT_COMMANDS #include StreamDebugger debugger(SerialAT, SerialMon); diff --git a/examples/BlynkClient/BlynkClient.ino b/examples/BlynkClient/BlynkClient.ino index afaed31..0ae92ee 100644 --- a/examples/BlynkClient/BlynkClient.ino +++ b/examples/BlynkClient/BlynkClient.ino @@ -63,8 +63,7 @@ //SoftwareSerial SerialAT(2, 3); // RX, TX -// Your GPRS credentials -// Leave empty, if missing user or pass +// Your GPRS credentials, if any const char apn[] = "YourAPN"; const char user[] = ""; const char pass[] = ""; @@ -91,7 +90,7 @@ void setup() modem.restart(); String modemInfo = modem.getModemInfo(); - SerialMon.print("Modem: "); + SerialMon.print("Modem Info: "); SerialMon.println(modemInfo); // Unlock your SIM card with a PIN diff --git a/examples/FileDownload/FileDownload.ino b/examples/FileDownload/FileDownload.ino index 5d935bc..cfab6a7 100644 --- a/examples/FileDownload/FileDownload.ino +++ b/examples/FileDownload/FileDownload.ino @@ -61,17 +61,19 @@ // Add a reception delay - may be needed for a fast processor at a slow baud rate //#define TINY_GSM_YIELD() { delay(2); } +// Define how you're planning to connect to the internet #define TINY_GSM_USE_GPRS true #define TINY_GSM_USE_WIFI false // set GSM PIN, if any #define GSM_PIN "" -// Your GPRS credentials -// Leave empty, if missing user or pass +// Your GPRS credentials, if any const char apn[] = "YourAPN"; const char gprsUser[] = ""; const char gprsPass[] = ""; + +// Your WiFi connection credentials, if applicable const char wifiSSID[] = "YourSSID"; const char wifiPass[] = "YourWiFiPass"; @@ -82,6 +84,20 @@ const int port = 80; #include #include +// Just in case someone defined the wrong thing.. +#if TINY_GSM_USE_GPRS && not defined TINY_GSM_MODEM_HAS_GPRS +#undef TINY_GSM_USE_GPRS +#undef TINY_GSM_USE_WIFI +#define TINY_GSM_USE_GPRS false +#define TINY_GSM_USE_WIFI true +#endif +#if TINY_GSM_USE_WIFI && not defined TINY_GSM_MODEM_HAS_WIFI +#undef TINY_GSM_USE_GPRS +#undef TINY_GSM_USE_WIFI +#define TINY_GSM_USE_GPRS true +#define TINY_GSM_USE_WIFI false +#endif + const char resource[] = "/TinyGSM/test_1k.bin"; uint32_t knownCRC32 = 0x6f50d767; uint32_t knownFileSize = 1024; // In case server does not send it @@ -101,6 +117,12 @@ void setup() { SerialMon.begin(115200); delay(10); + // !!!!!!!!!!! + // Set your reset, enable, power pins here + // !!!!!!!!!!! + + SerialMon.println("Wait..."); + // Set GSM module baud rate SerialAT.begin(115200); delay(3000); @@ -109,9 +131,10 @@ void setup() { // To skip it, call init() instead of restart() SerialMon.println("Initializing modem..."); modem.restart(); + // modem.init(); String modemInfo = modem.getModemInfo(); - SerialMon.print("Modem: "); + SerialMon.print("Modem Info: "); SerialMon.println(modemInfo); #if TINY_GSM_USE_GPRS @@ -135,7 +158,8 @@ void printPercent(uint32_t readLength, uint32_t contentLength) { void loop() { -#if defined TINY_GSM_USE_WIFI && defined TINY_GSM_MODEM_HAS_WIFI +#if TINY_GSM_USE_WIFI + // Wifi connection parameters must be set before waiting for the network SerialMon.print(F("Setting SSID/password...")); if (!modem.networkConnect(wifiSSID, wifiPass)) { SerialMon.println(" fail"); @@ -162,7 +186,8 @@ void loop() { SerialMon.println("Network connected"); } -#if TINY_GSM_USE_GPRS && defined TINY_GSM_MODEM_HAS_GPRS +#if TINY_GSM_USE_GPRS + // GPRS connection parameters are usually set after network registration SerialMon.print(F("Connecting to ")); SerialMon.print(apn); if (!modem.gprsConnect(apn, gprsUser, gprsPass)) { @@ -171,6 +196,10 @@ void loop() { return; } SerialMon.println(" success"); + + if (modem.isGprsConnected()) { + SerialMon.println("GPRS connected"); + } #endif SerialMon.print(F("Connecting to ")); @@ -292,8 +321,14 @@ void loop() { client.stop(); SerialMon.println(F("Server disconnected")); +#if TINY_GSM_USE_WIFI + modem.networkDisconnect(); + SerialMon.println(F("WiFi disconnected")); +#endif +#if TINY_GSM_USE_GPRS modem.gprsDisconnect(); SerialMon.println(F("GPRS disconnected")); +#endif float duration = float(timeElapsed) / 1000; diff --git a/examples/HttpClient/HttpClient.ino b/examples/HttpClient/HttpClient.ino index 37bd6f2..d77f1de 100644 --- a/examples/HttpClient/HttpClient.ino +++ b/examples/HttpClient/HttpClient.ino @@ -63,20 +63,26 @@ #define TINY_GSM_DEBUG SerialMon //#define LOGGING // <- Logging is for the HTTP library +// Range to attempt to autobaud +#define GSM_AUTOBAUD_MIN 9600 +#define GSM_AUTOBAUD_MAX 115200 + // Add a reception delay - may be needed for a fast processor at a slow baud rate //#define TINY_GSM_YIELD() { delay(2); } +// Define how you're planning to connect to the internet #define TINY_GSM_USE_GPRS true #define TINY_GSM_USE_WIFI false // set GSM PIN, if any #define GSM_PIN "" -// Your GPRS credentials -// Leave empty, if missing user or pass +// Your GPRS credentials, if any const char apn[] = "YourAPN"; const char gprsUser[] = ""; const char gprsPass[] = ""; + +// Your WiFi connection credentials, if applicable const char wifiSSID[] = "YourSSID"; const char wifiPass[] = "YourWiFiPass"; @@ -88,6 +94,20 @@ const int port = 80; #include #include +// Just in case someone defined the wrong thing.. +#if TINY_GSM_USE_GPRS && not defined TINY_GSM_MODEM_HAS_GPRS +#undef TINY_GSM_USE_GPRS +#undef TINY_GSM_USE_WIFI +#define TINY_GSM_USE_GPRS false +#define TINY_GSM_USE_WIFI true +#endif +#if TINY_GSM_USE_WIFI && not defined TINY_GSM_MODEM_HAS_WIFI +#undef TINY_GSM_USE_GPRS +#undef TINY_GSM_USE_WIFI +#define TINY_GSM_USE_GPRS true +#define TINY_GSM_USE_WIFI false +#endif + #ifdef DUMP_AT_COMMANDS #include StreamDebugger debugger(SerialAT, SerialMon); @@ -111,7 +131,8 @@ void setup() { SerialMon.println("Wait..."); // Set GSM module baud rate - SerialAT.begin(115200); + // TinyGsmAutoBaud(SerialAT,GSM_AUTOBAUD_MIN,GSM_AUTOBAUD_MAX); + SerialAT.begin(9600); delay(3000); // Restart takes quite some time @@ -121,7 +142,7 @@ void setup() { // modem.init(); String modemInfo = modem.getModemInfo(); - SerialMon.print("Modem: "); + SerialMon.print("Modem Info: "); SerialMon.println(modemInfo); #if TINY_GSM_USE_GPRS @@ -134,7 +155,8 @@ void setup() { void loop() { -#if defined TINY_GSM_USE_WIFI && defined TINY_GSM_MODEM_HAS_WIFI +#if TINY_GSM_USE_WIFI + // Wifi connection parameters must be set before waiting for the network SerialMon.print(F("Setting SSID/password...")); if (!modem.networkConnect(wifiSSID, wifiPass)) { SerialMon.println(" fail"); @@ -161,7 +183,8 @@ void loop() { SerialMon.println("Network connected"); } -#if TINY_GSM_USE_GPRS && defined TINY_GSM_MODEM_HAS_GPRS +#if TINY_GSM_USE_GPRS + // GPRS connection parameters are usually set after network registration SerialMon.print(F("Connecting to ")); SerialMon.print(apn); if (!modem.gprsConnect(apn, gprsUser, gprsPass)) { @@ -170,6 +193,10 @@ void loop() { return; } SerialMon.println(" success"); + + if (modem.isGprsConnected()) { + SerialMon.println("GPRS connected"); + } #endif SerialMon.print(F("Performing HTTP GET request... ")); diff --git a/examples/HttpsClient/HttpsClient.ino b/examples/HttpsClient/HttpsClient.ino index 04874dd..6330ea9 100644 --- a/examples/HttpsClient/HttpsClient.ino +++ b/examples/HttpsClient/HttpsClient.ino @@ -55,20 +55,26 @@ #define TINY_GSM_DEBUG SerialMon //#define LOGGING // <- Logging is for the HTTP library +// Range to attempt to autobaud +#define GSM_AUTOBAUD_MIN 9600 +#define GSM_AUTOBAUD_MAX 115200 + // Add a reception delay - may be needed for a fast processor at a slow baud rate //#define TINY_GSM_YIELD() { delay(2); } +// Define how you're planning to connect to the internet #define TINY_GSM_USE_GPRS true #define TINY_GSM_USE_WIFI false // set GSM PIN, if any #define GSM_PIN "" -// Your GPRS credentials -// Leave empty, if missing user or pass +// Your GPRS credentials, if any const char apn[] = "YourAPN"; const char gprsUser[] = ""; const char gprsPass[] = ""; + +// Your WiFi connection credentials, if applicable const char wifiSSID[] = "YourSSID"; const char wifiPass[] = "YourWiFiPass"; @@ -80,6 +86,20 @@ const int port = 443; #include #include +// Just in case someone defined the wrong thing.. +#if TINY_GSM_USE_GPRS && not defined TINY_GSM_MODEM_HAS_GPRS +#undef TINY_GSM_USE_GPRS +#undef TINY_GSM_USE_WIFI +#define TINY_GSM_USE_GPRS false +#define TINY_GSM_USE_WIFI true +#endif +#if TINY_GSM_USE_WIFI && not defined TINY_GSM_MODEM_HAS_WIFI +#undef TINY_GSM_USE_GPRS +#undef TINY_GSM_USE_WIFI +#define TINY_GSM_USE_GPRS true +#define TINY_GSM_USE_WIFI false +#endif + #ifdef DUMP_AT_COMMANDS #include StreamDebugger debugger(SerialAT, SerialMon); @@ -103,7 +123,8 @@ void setup() { SerialMon.println("Wait..."); // Set GSM module baud rate - SerialAT.begin(115200); + // TinyGsmAutoBaud(SerialAT,GSM_AUTOBAUD_MIN,GSM_AUTOBAUD_MAX); + SerialAT.begin(9600); delay(3000); // Restart takes quite some time @@ -113,7 +134,7 @@ void setup() { // modem.init(); String modemInfo = modem.getModemInfo(); - SerialMon.print("Modem: "); + SerialMon.print("Modem Info: "); SerialMon.println(modemInfo); #if TINY_GSM_USE_GPRS @@ -131,7 +152,8 @@ void setup() { void loop() { -#if defined TINY_GSM_USE_WIFI && defined TINY_GSM_MODEM_HAS_WIFI +#if TINY_GSM_USE_WIFI + // Wifi connection parameters must be set before waiting for the network SerialMon.print(F("Setting SSID/password...")); if (!modem.networkConnect(wifiSSID, wifiPass)) { SerialMon.println(" fail"); @@ -158,7 +180,8 @@ void loop() { SerialMon.println("Network connected"); } -#if TINY_GSM_USE_GPRS && defined TINY_GSM_MODEM_HAS_GPRS +#if TINY_GSM_USE_GPRS + // GPRS connection parameters are usually set after network registration SerialMon.print(F("Connecting to ")); SerialMon.print(apn); if (!modem.gprsConnect(apn, gprsUser, gprsPass)) { @@ -167,10 +190,14 @@ void loop() { return; } SerialMon.println(" success"); + + if (modem.isGprsConnected()) { + SerialMon.println("GPRS connected"); + } #endif SerialMon.print(F("Performing HTTPS GET request... ")); - http.connectionKeepAlive(); // Currently, this is needed for HTTPS + http.connectionKeepAlive(); // Currently, this is needed for HTTPS int err = http.get(resource); if (err != 0) { SerialMon.println(F("failed to connect")); diff --git a/examples/MqttClient/MqttClient.ino b/examples/MqttClient/MqttClient.ino index 4b3878b..12649b7 100644 --- a/examples/MqttClient/MqttClient.ino +++ b/examples/MqttClient/MqttClient.ino @@ -67,27 +67,29 @@ // Range to attempt to autobaud #define GSM_AUTOBAUD_MIN 9600 -#define GSM_AUTOBAUD_MAX 38400 +#define GSM_AUTOBAUD_MAX 115200 // Add a reception delay - may be needed for a fast processor at a slow baud rate //#define TINY_GSM_YIELD() { delay(2); } -#define TINY_GSM_USE_GPRS true -#define TINY_GSM_USE_WIFI false +// Define how you're planning to connect to the internet +#define TINY_GSM_USE_GPRS false +#define TINY_GSM_USE_WIFI true // set GSM PIN, if any #define GSM_PIN "" -// Your GPRS credentials -// Leave empty, if missing user or pass -const char apn[] = "YourAPN"; +// Your GPRS credentials, if any +const char apn[] = "YourAPN"; const char gprsUser[] = ""; const char gprsPass[] = ""; -const char wifiSSID[] = "YourSSID"; + +// Your WiFi connection credentials, if applicable +const char wifiSSID[] = "YourSSID"; const char wifiPass[] = "YourWiFiPass"; // MQTT details -const char* broker = "test.mosquitto.org"; +const char* broker = "broker.hivemq.com"; const char* topicLed = "GsmClientTest/led"; const char* topicInit = "GsmClientTest/init"; @@ -96,6 +98,20 @@ const char* topicLedStatus = "GsmClientTest/ledStatus"; #include #include +// Just in case someone defined the wrong thing.. +#if TINY_GSM_USE_GPRS && not defined TINY_GSM_MODEM_HAS_GPRS +#undef TINY_GSM_USE_GPRS +#undef TINY_GSM_USE_WIFI +#define TINY_GSM_USE_GPRS false +#define TINY_GSM_USE_WIFI true +#endif +#if TINY_GSM_USE_WIFI && not defined TINY_GSM_MODEM_HAS_WIFI +#undef TINY_GSM_USE_GPRS +#undef TINY_GSM_USE_WIFI +#define TINY_GSM_USE_GPRS true +#define TINY_GSM_USE_WIFI false +#endif + #ifdef DUMP_AT_COMMANDS #include StreamDebugger debugger(SerialAT, SerialMon); @@ -111,6 +127,42 @@ int ledStatus = LOW; long lastReconnectAttempt = 0; +void mqttCallback(char* topic, byte* payload, unsigned int len) { + SerialMon.print("Message arrived ["); + SerialMon.print(topic); + SerialMon.print("]: "); + SerialMon.write(payload, len); + SerialMon.println(); + + // Only proceed if incoming message's topic matches + if (String(topic) == topicLed) { + ledStatus = !ledStatus; + digitalWrite(LED_PIN, ledStatus); + mqtt.publish(topicLedStatus, ledStatus ? "1" : "0"); + } +} + +boolean mqttConnect() { + SerialMon.print("Connecting to "); + SerialMon.print(broker); + + // Connect to MQTT Broker + boolean status = mqtt.connect("GsmClientTest"); + + // Or, if you want to authenticate MQTT: + //boolean status = mqtt.connect("GsmClientName", "mqtt_user", "mqtt_pass"); + + if (status == false) { + SerialMon.println(" fail"); + return false; + } + SerialMon.println(" success"); + mqtt.publish(topicInit, "GsmClientTest started"); + mqtt.subscribe(topicLed); + return mqtt.connected(); +} + + void setup() { // Set console baud rate SerialMon.begin(115200); @@ -125,7 +177,8 @@ void setup() { SerialMon.println("Wait..."); // Set GSM module baud rate - SerialAT.begin(115200); + // TinyGsmAutoBaud(SerialAT,GSM_AUTOBAUD_MIN,GSM_AUTOBAUD_MAX); + SerialAT.begin(9600); delay(3000); // Restart takes quite some time @@ -135,7 +188,7 @@ void setup() { // modem.init(); String modemInfo = modem.getModemInfo(); - SerialMon.print("Modem: "); + SerialMon.print("Modem Info: "); SerialMon.println(modemInfo); #if TINY_GSM_USE_GPRS @@ -145,7 +198,8 @@ void setup() { } #endif -#if defined TINY_GSM_USE_WIFI && defined TINY_GSM_MODEM_HAS_WIFI +#if TINY_GSM_USE_WIFI + // Wifi connection parameters must be set before waiting for the network SerialMon.print(F("Setting SSID/password...")); if (!modem.networkConnect(wifiSSID, wifiPass)) { SerialMon.println(" fail"); @@ -172,7 +226,8 @@ void setup() { SerialMon.println("Network connected"); } -#if TINY_GSM_USE_GPRS && defined TINY_GSM_MODEM_HAS_GPRS +#if TINY_GSM_USE_GPRS + // GPRS connection parameters are usually set after network registration SerialMon.print(F("Connecting to ")); SerialMon.print(apn); if (!modem.gprsConnect(apn, gprsUser, gprsPass)) { @@ -181,6 +236,10 @@ void setup() { return; } SerialMon.println(" success"); + + if (modem.isGprsConnected()) { + SerialMon.println("GPRS connected"); + } #endif // MQTT Broker setup @@ -188,26 +247,6 @@ void setup() { mqtt.setCallback(mqttCallback); } -boolean mqttConnect() { - SerialMon.print("Connecting to "); - SerialMon.print(broker); - - // Connect to MQTT Broker - boolean status = mqtt.connect("GsmClientTest"); - - // Or, if you want to authenticate MQTT: - //boolean status = mqtt.connect("GsmClientName", "mqtt_user", "mqtt_pass"); - - if (status == false) { - SerialMon.println(" fail"); - return false; - } - SerialMon.println(" success"); - mqtt.publish(topicInit, "GsmClientTest started"); - mqtt.subscribe(topicLed); - return mqtt.connected(); -} - void loop() { if (!mqtt.connected()) { @@ -226,18 +265,3 @@ void loop() { mqtt.loop(); } - -void mqttCallback(char* topic, byte* payload, unsigned int len) { - SerialMon.print("Message arrived ["); - SerialMon.print(topic); - SerialMon.print("]: "); - SerialMon.write(payload, len); - SerialMon.println(); - - // Only proceed if incoming message's topic matches - if (String(topic) == topicLed) { - ledStatus = !ledStatus; - digitalWrite(LED_PIN, ledStatus); - mqtt.publish(topicLedStatus, ledStatus ? "1" : "0"); - } -} diff --git a/examples/WebClient/WebClient.ino b/examples/WebClient/WebClient.ino index 9c63c62..8207c06 100644 --- a/examples/WebClient/WebClient.ino +++ b/examples/WebClient/WebClient.ino @@ -62,17 +62,20 @@ // Uncomment this if you want to use SSL //#define USE_SSL +// Define how you're planning to connect to the internet #define TINY_GSM_USE_GPRS true #define TINY_GSM_USE_WIFI false // set GSM PIN, if any #define GSM_PIN "" -// Your GPRS credentials -// Leave empty, if missing user or pass +// Your GPRS credentials, if any const char apn[] = "YourAPN"; const char gprsUser[] = ""; const char gprsPass[] = ""; + +// Your WiFi connection credentials, if applicable +const char wifiSSID[] = "YourSSID"; const char wifiPass[] = "YourWiFiPass"; // Server details @@ -81,6 +84,20 @@ const char resource[] = "/TinyGSM/logo.txt"; #include +// Just in case someone defined the wrong thing.. +#if TINY_GSM_USE_GPRS && not defined TINY_GSM_MODEM_HAS_GPRS +#undef TINY_GSM_USE_GPRS +#undef TINY_GSM_USE_WIFI +#define TINY_GSM_USE_GPRS false +#define TINY_GSM_USE_WIFI true +#endif +#if TINY_GSM_USE_WIFI && not defined TINY_GSM_MODEM_HAS_WIFI +#undef TINY_GSM_USE_GPRS +#undef TINY_GSM_USE_WIFI +#define TINY_GSM_USE_GPRS true +#define TINY_GSM_USE_WIFI false +#endif + #ifdef DUMP_AT_COMMANDS #include StreamDebugger debugger(SerialAT, SerialMon); @@ -120,7 +137,7 @@ void setup() { // modem.init(); String modemInfo = modem.getModemInfo(); - SerialMon.print("Modem: "); + SerialMon.print("Modem Info: "); SerialMon.println(modemInfo); #if TINY_GSM_USE_GPRS @@ -133,7 +150,8 @@ void setup() { void loop() { -#if defined TINY_GSM_USE_WIFI && defined TINY_GSM_MODEM_HAS_WIFI +#if TINY_GSM_USE_WIFI + // Wifi connection parameters must be set before waiting for the network SerialMon.print(F("Setting SSID/password...")); if (!modem.networkConnect(wifiSSID, wifiPass)) { SerialMon.println(" fail"); @@ -160,7 +178,8 @@ void loop() { SerialMon.println("Network connected"); } -#if TINY_GSM_USE_GPRS && defined TINY_GSM_MODEM_HAS_GPRS +#if TINY_GSM_USE_GPRS + // GPRS connection parameters are usually set after network registration SerialMon.print(F("Connecting to ")); SerialMon.print(apn); if (!modem.gprsConnect(apn, gprsUser, gprsPass)) { @@ -169,6 +188,10 @@ void loop() { return; } SerialMon.println(" success"); + + if (modem.isGprsConnected()) { + SerialMon.println("GPRS connected"); + } #endif SerialMon.print("Connecting to "); diff --git a/tools/Diagnostics/Diagnostics.ino b/tools/Diagnostics/Diagnostics.ino index b66e1b4..962043c 100644 --- a/tools/Diagnostics/Diagnostics.ino +++ b/tools/Diagnostics/Diagnostics.ino @@ -69,11 +69,12 @@ // set GSM PIN, if any #define GSM_PIN "" -// Your GPRS credentials -// Leave empty, if missing user or pass +// Your GPRS credentials, if any const char apn[] = "YourAPN"; const char gprsUser[] = ""; const char gprsPass[] = ""; + +// Your WiFi connection credentials, if applicable const char wifiSSID[] = "YourSSID"; const char wifiPass[] = "YourWiFiPass"; @@ -83,6 +84,20 @@ const char resource[] = "/TinyGSM/logo.txt"; #include +// Just in case someone defined the wrong thing.. +#if TINY_GSM_USE_GPRS && not defined TINY_GSM_MODEM_HAS_GPRS +#undef TINY_GSM_USE_GPRS +#undef TINY_GSM_USE_WIFI +#define TINY_GSM_USE_GPRS false +#define TINY_GSM_USE_WIFI true +#endif +#if TINY_GSM_USE_WIFI && not defined TINY_GSM_MODEM_HAS_WIFI +#undef TINY_GSM_USE_GPRS +#undef TINY_GSM_USE_WIFI +#define TINY_GSM_USE_GPRS true +#define TINY_GSM_USE_WIFI false +#endif + #ifdef DUMP_AT_COMMANDS #include StreamDebugger debugger(SerialAT, SerialMon); @@ -111,8 +126,8 @@ void setup() { SerialMon.println("Wait..."); // Set GSM module baud rate - TinyGsmAutoBaud(SerialAT,GSM_AUTOBAUD_MIN,GSM_AUTOBAUD_MAX); - // SerialAT.begin(115200); + // TinyGsmAutoBaud(SerialAT,GSM_AUTOBAUD_MIN,GSM_AUTOBAUD_MAX); + SerialAT.begin(115200); delay(3000); } @@ -147,6 +162,7 @@ void loop() { #endif #if TINY_GSM_USE_WIFI + // Wifi connection parameters must be set before waiting for the network SerialMon.print(F("Setting SSID/password...")); if (!modem.networkConnect(wifiSSID, wifiPass)) { SerialMon.println(" fail"); @@ -175,7 +191,8 @@ void loop() { } SerialMon.println(F(" [OK]")); -#if TINY_GSM_USE_GPRS && defined TINY_GSM_MODEM_HAS_GPRS +#if TINY_GSM_USE_GPRS + // GPRS connection parameters are usually set after network registration SerialMon.print("Connecting to "); SerialMon.print(apn); if (!modem.gprsConnect(apn, gprsUser, gprsPass)) { @@ -233,8 +250,14 @@ void loop() { client.stop(); SerialMon.println(F("Server disconnected")); +#if TINY_GSM_USE_WIFI + modem.networkDisconnect(); + SerialMon.println(F("WiFi disconnected")); +#endif +#if TINY_GSM_USE_GPRS modem.gprsDisconnect(); SerialMon.println(F("GPRS disconnected")); +#endif SerialMon.println(); SerialMon.println(F("************************"));