diff --git a/examples/AllFunctions/AllFunctions.ino b/examples/AllFunctions/AllFunctions.ino index 7a417d1..ff44e08 100644 --- a/examples/AllFunctions/AllFunctions.ino +++ b/examples/AllFunctions/AllFunctions.ino @@ -10,11 +10,13 @@ **************************************************************/ // Select your modem: -//#define TINY_GSM_MODEM_SIM800 +#define TINY_GSM_MODEM_SIM800 // #define TINY_GSM_MODEM_SIM808 +// #define TINY_GSM_MODEM_SIM868 // #define TINY_GSM_MODEM_SIM900 -#define TINY_GSM_MODEM_SIM7000 +// #define TINY_GSM_MODEM_SIM7000 // #define TINY_GSM_MODEM_UBLOX +// #define TINY_GSM_MODEM_SARAR4 // #define TINY_GSM_MODEM_M95 // #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_A6 @@ -24,8 +26,9 @@ // #define TINY_GSM_MODEM_MC60E // #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_XBEE +// #define TINY_GSM_MODEM_SEQUANS_MONARCH -// Set serial for debug console (to the Serial Monitor, speed 115200) +// Set serial for debug console (to the Serial Monitor, default speed 115200) #define SerialMon Serial // Set serial for AT commands (to the module) @@ -36,10 +39,13 @@ //#include //SoftwareSerial SerialAT(2, 3); // RX, TX - +// See all AT commands, if wanted //#define DUMP_AT_COMMANDS + +// See the debugging, if wanted #define TINY_GSM_DEBUG SerialMon +// Range to attempt to autobaud #define GSM_AUTOBAUD_MIN 9600 #define GSM_AUTOBAUD_MAX 38400 @@ -47,6 +53,7 @@ * Test enabled */ #define TINY_GSM_USE_GPRS true +#define TINY_GSM_USE_WIFI false #define TINY_GSM_USE_CALL true #define TINY_GSM_USE_SMS true #define TINY_GSM_USE_USSD true @@ -65,6 +72,8 @@ const char apn[] = "YourAPN"; const char user[] = ""; const char pass[] = ""; +const char wifiSSID[] = "YourSSID"; +const char wifiPass[] = "SSIDpw"; #include @@ -82,11 +91,18 @@ void setup() { delay(10); // Set your reset, enable, power pins here + pinMode(20, OUTPUT); + digitalWrite(20, HIGH); + + pinMode(23, OUTPUT); + digitalWrite(23, HIGH); + DBG("Wait..."); delay(3000); // Set GSM module baud rate TinyGsmAutoBaud(SerialAT,GSM_AUTOBAUD_MIN,GSM_AUTOBAUD_MAX); + // SerialAT.begin(9600); } void loop() { @@ -111,6 +127,16 @@ void loop() { modem.simUnlock(GSM_PIN); } +#if TINY_GSM_USE_WIFI + SerialMon.print(F("Setting SSID/password...")); + if (!modem.networkConnect(wifiSSID, wifiPass)) { + SerialMon.println(" fail"); + delay(10000); + return; + } + SerialMon.println(" OK"); +#endif + DBG("Waiting for network..."); if (!modem.waitForNetwork()) { delay(10000); @@ -221,6 +247,11 @@ void loop() { } #endif +#if TINY_GSM_USE_WIFI + modem.networkDisconnect(); + DBG("WiFi disconnected"); +#endif + #if TINY_GSM_POWERDOWN // Try to power-off (modem may decide to restart automatically) // To turn off modem completely, please use Reset/Enable pins diff --git a/examples/BlynkClient/BlynkClient.ino b/examples/BlynkClient/BlynkClient.ino index 95f8163..8b17772 100644 --- a/examples/BlynkClient/BlynkClient.ino +++ b/examples/BlynkClient/BlynkClient.ino @@ -30,11 +30,12 @@ // Select your modem: #define TINY_GSM_MODEM_SIM800 -// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 +// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM7000 // #define TINY_GSM_MODEM_UBLOX +// #define TINY_GSM_MODEM_SARAR4 // #define TINY_GSM_MODEM_M95 // #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_A6 @@ -44,6 +45,7 @@ // #define TINY_GSM_MODEM_MC60E // #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_XBEE +// #define TINY_GSM_MODEM_SEQUANS_MONARCH #include #include diff --git a/examples/FileDownload/FileDownload.ino b/examples/FileDownload/FileDownload.ino index e42629a..966e2d7 100644 --- a/examples/FileDownload/FileDownload.ino +++ b/examples/FileDownload/FileDownload.ino @@ -15,11 +15,12 @@ // Select your modem: #define TINY_GSM_MODEM_SIM800 -// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 +// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM7000 // #define TINY_GSM_MODEM_UBLOX +// #define TINY_GSM_MODEM_SARAR4 // #define TINY_GSM_MODEM_M95 // #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_A6 @@ -29,6 +30,7 @@ // #define TINY_GSM_MODEM_MC60E // #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_XBEE +// #define TINY_GSM_MODEM_SEQUANS_MONARCH // Increase RX buffer if needed #define TINY_GSM_RX_BUFFER 1024 diff --git a/examples/HttpClient/HttpClient.ino b/examples/HttpClient/HttpClient.ino index f699167..25a622d 100644 --- a/examples/HttpClient/HttpClient.ino +++ b/examples/HttpClient/HttpClient.ino @@ -19,11 +19,12 @@ // Select your modem: #define TINY_GSM_MODEM_SIM800 -// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 +// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM7000 // #define TINY_GSM_MODEM_UBLOX +// #define TINY_GSM_MODEM_SARAR4 // #define TINY_GSM_MODEM_M95 // #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_A6 @@ -32,6 +33,8 @@ // #define TINY_GSM_MODEM_MC60 // #define TINY_GSM_MODEM_MC60E // #define TINY_GSM_MODEM_ESP8266 +// #define TINY_GSM_MODEM_XBEE +// #define TINY_GSM_MODEM_SEQUANS_MONARCH // Increase RX buffer to capture the entire response // Chips without internal buffering (A6/A7, ESP8266, M590) diff --git a/examples/HttpsClient/HttpsClient.ino b/examples/HttpsClient/HttpsClient.ino index 40287a1..0299805 100644 --- a/examples/HttpsClient/HttpsClient.ino +++ b/examples/HttpsClient/HttpsClient.ino @@ -21,6 +21,7 @@ // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 // #define TINY_GSM_MODEM_UBLOX +// #define TINY_GSM_MODEM_SARAR4 // #define TINY_GSM_MODEM_ESP8266 // Increase RX buffer to capture the entire response diff --git a/examples/MqttClient/MqttClient.ino b/examples/MqttClient/MqttClient.ino index b7bbd8d..1bea009 100644 --- a/examples/MqttClient/MqttClient.ino +++ b/examples/MqttClient/MqttClient.ino @@ -29,11 +29,12 @@ // Select your modem: #define TINY_GSM_MODEM_SIM800 -// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 +// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM7000 // #define TINY_GSM_MODEM_UBLOX +// #define TINY_GSM_MODEM_SARAR4 // #define TINY_GSM_MODEM_M95 // #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_A6 @@ -43,6 +44,7 @@ // #define TINY_GSM_MODEM_MC60E // #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_XBEE +// #define TINY_GSM_MODEM_SEQUANS_MONARCH #include #include diff --git a/examples/WebClient/WebClient.ino b/examples/WebClient/WebClient.ino index e773b81..314c3ad 100644 --- a/examples/WebClient/WebClient.ino +++ b/examples/WebClient/WebClient.ino @@ -10,11 +10,12 @@ // Select your modem: #define TINY_GSM_MODEM_SIM800 -// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 +// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM7000 // #define TINY_GSM_MODEM_UBLOX +// #define TINY_GSM_MODEM_SARAR4 // #define TINY_GSM_MODEM_M95 // #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_A6 @@ -24,21 +25,13 @@ // #define TINY_GSM_MODEM_MC60E // #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_XBEE +// #define TINY_GSM_MODEM_SEQUANS_MONARCH // Increase RX buffer if needed -//#define TINY_GSM_RX_BUFFER 512 - -// See the debugging, if wanted -//#define TINY_GSM_DEBUG Serial -//#define LOGGING +#define TINY_GSM_RX_BUFFER 512 // Add a reception delay, if needed -//#define TINY_GSM_YIELD() { delay(1); } - -#include - -// Uncomment this if you want to see all AT commands -//#define DUMP_AT_COMMANDS +#define TINY_GSM_YIELD() { delay(1); } // Uncomment this if you want to use SSL //#define USE_SSL @@ -46,6 +39,7 @@ // Set serial for debug console (to the Serial Monitor, default speed 115200) #define SerialMon Serial +// Set serial for AT commands (to the module) // Use Hardware Serial on Mega, Leonardo, Micro #define SerialAT Serial1 @@ -53,6 +47,21 @@ //#include //SoftwareSerial SerialAT(2, 3); // RX, TX +// See all AT commands, if wanted +//#define DUMP_AT_COMMANDS + +// See the debugging, if wanted +#define TINY_GSM_DEBUG SerialMon + +// Range to attempt to autobaud +#define GSM_AUTOBAUD_MIN 9600 +#define GSM_AUTOBAUD_MAX 38400 + +#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 @@ -66,6 +75,8 @@ const char wifiPass[] = "SSIDpw"; const char server[] = "vsh.pp.ua"; const char resource[] = "/TinyGSM/logo.txt"; +#include + #ifdef DUMP_AT_COMMANDS #include StreamDebugger debugger(SerialAT, SerialMon); @@ -86,22 +97,28 @@ void setup() { // Set console baud rate SerialMon.begin(115200); delay(10); - SerialMon.println(F("Wait...")); + + // Set your reset, enable, power pins here + pinMode(20, OUTPUT); + digitalWrite(20, HIGH); pinMode(23, OUTPUT); - digitalWrite(23, LOW); + digitalWrite(23, HIGH); + + SerialMon.println("Wait..."); + delay(3000); // Set GSM module baud rate + // TinyGsmAutoBaud(SerialAT,GSM_AUTOBAUD_MIN,GSM_AUTOBAUD_MAX); SerialAT.begin(9600); - delay(3000); // Restart takes quite some time // To skip it, call init() instead of restart() - SerialMon.println(F("Initializing modem...")); + SerialMon.println("Initializing modem..."); modem.restart(); String modemInfo = modem.getModemInfo(); - SerialMon.print(F("Modem: ")); + SerialMon.print("Modem: "); SerialMon.println(modemInfo); // Unlock your SIM card with a PIN @@ -110,34 +127,27 @@ void setup() { void loop() { - if (modem.hasWifi()) { - SerialMon.print(F("Setting SSID/password...")); - if (!modem.networkConnect(wifiSSID, wifiPass)) { - SerialMon.println(" fail"); - delay(10000); - return; - } - SerialMon.println(" OK"); - } - else if (modem.getModemName().indexOf("XBee") >= 0) { - SerialMon.print(F("Setting APN")); - if (!modem.gprsConnect(apn)) { - SerialMon.println(" fail"); - delay(10000); - return; - } - SerialMon.println(" OK"); +#if TINY_GSM_USE_WIFI + SerialMon.print(F("Setting SSID/password...")); + if (!modem.networkConnect(wifiSSID, wifiPass)) { + SerialMon.println(" fail"); + delay(10000); + return; } + SerialMon.println(" OK"); +#endif - SerialMon.print(F("Waiting for network...")); + SerialMon.print("Waiting for network..."); if (!modem.waitForNetwork()) { - SerialMon.println(" fail"); delay(10000); return; } - SerialMon.println(" OK"); - if (modem.hasGPRS()) { + if (modem.isNetworkConnected()) { + SerialMon.print("Network connected"); + } + +#if TINY_GSM_USE_GPRS SerialMon.print(F("Connecting to ")); SerialMon.print(apn); if (!modem.gprsConnect(apn, gprsUser, gprsPass)) { @@ -146,9 +156,9 @@ void loop() { return; } SerialMon.println(" OK"); - } +#endif - SerialMon.print(F("Connecting to ")); + SerialMon.print("Connecting to "); SerialMon.print(server); if (!client.connect(server, port)) { SerialMon.println(" fail"); @@ -178,14 +188,14 @@ void loop() { client.stop(); SerialMon.println(F("Server disconnected")); - if (modem.hasWifi()) { +#if TINY_GSM_USE_WIFI modem.networkDisconnect(); SerialMon.println(F("WiFi disconnected")); - } - else { +#endif +#if TINY_GSM_USE_GPRS modem.gprsDisconnect(); SerialMon.println(F("GPRS disconnected")); - } +#endif // Do nothing forevermore while (true) { diff --git a/src/TinyGsmClient.h b/src/TinyGsmClient.h index 40c1d97..cb18c82 100644 --- a/src/TinyGsmClient.h +++ b/src/TinyGsmClient.h @@ -52,7 +52,7 @@ #define TINY_GSM_MODEM_HAS_GPRS #define TINY_GSM_MODEM_HAS_SSL #include - typedef TinyGsmUBLOX TinyGsm; + typedef TinyGsmSaraR4 TinyGsm; typedef TinyGsmSaraR4::GsmClient TinyGsmClient; typedef TinyGsmSaraR4::GsmClientSecure TinyGsmClientSecure;