66 Forked from Blynk library v0.6.1 https://github.com/blynkkk/blynk-library/releases
77 Built by Khoi Hoang https://github.com/khoih-prog/BlynkGSM_ESPManager
88 Licensed under MIT license
9- Version: 1.0.8
9+ Version: 1.0.9
1010
1111 Version Modified By Date Comments
1212 ------- ----------- ---------- -----------
1919 1.0.6 K Hoang 07/04/2020 Enable adding dynamic custom parameters from sketch
2020 1.0.7 K Hoang 09/04/2020 SSID password maxlen is 63 now. Permit special chars # and % in input data.
2121 1.0.8 K Hoang 14/04/2020 Fix bug.
22+ 1.0.9 K Hoang 31/05/2020 Update to use LittleFS for ESP8266 core 2.7.1+. Add Configurable Config Portal Title,
23+ Default Config Data and DRD. Add MultiWiFi/Blynk features for WiFi and GPRS/GSM
2224 *****************************************************************************************************************************/
2325
24- #ifndef ESP32
25- #error This code is intended to run on the ESP32 platform! Please check your Tools->Board setting.
26- #endif
27-
28- #define BLYNK_PRINT Serial
29- #define BLYNK_HEARTBEAT 60
30-
31- // TTGO T-Call pin definitions
32- #define MODEM_RST 5
33- #define MODEM_PWKEY 4
34- #define MODEM_POWER_ON 23
35-
36- #define MODEM_TX 27
37- #define MODEM_RX 26
38-
39- #define I2C_SDA 21
40- #define I2C_SCL 22
41-
42- // Select your modem:
43- #define TINY_GSM_MODEM_SIM800
44- // #define TINY_GSM_MODEM_SIM808
45- // #define TINY_GSM_MODEM_SIM868
46- // #define TINY_GSM_MODEM_SIM900
47- // #define TINY_GSM_MODEM_SIM5300
48- // #define TINY_GSM_MODEM_SIM5320
49- // #define TINY_GSM_MODEM_SIM5360
50- // #define TINY_GSM_MODEM_SIM7000
51- // #define TINY_GSM_MODEM_SIM7100
52- // #define TINY_GSM_MODEM_SIM7500
53- // #define TINY_GSM_MODEM_SIM7600
54- // #define TINY_GSM_MODEM_SIM7800
55- // #define TINY_GSM_MODEM_UBLOX
56- // #define TINY_GSM_MODEM_SARAR4
57- // #define TINY_GSM_MODEM_M95
58- // #define TINY_GSM_MODEM_BG96
59- // #define TINY_GSM_MODEM_A6
60- // #define TINY_GSM_MODEM_A7
61- // #define TINY_GSM_MODEM_M590
62- // #define TINY_GSM_MODEM_MC60
63- // #define TINY_GSM_MODEM_MC60E
64- // #define TINY_GSM_MODEM_XBEE
65- // #define TINY_GSM_MODEM_SEQUANS_MONARCH
66-
67-
68- // Increase RX buffer if needed
69- #define TINY_GSM_RX_BUFFER 1024
70-
71- #include < TinyGsmClient.h>
72-
73- #define USE_SPIFFS true
74- // #define USE_SPIFFS false
75-
76- // #define USE_BLYNK_WM false
77- #define USE_BLYNK_WM true
78-
79- #define EEPROM_SIZE 2048
80- #define EEPROM_START 512
81-
82- #include < BlynkSimpleTinyGSM_M.h>
83-
84- #if USE_BLYNK_WM
85- #include < BlynkSimpleEsp32_GSM_WFM.h>
86-
87- #define USE_DYNAMIC_PARAMETERS true
88-
89- // ///////////// Start dynamic Credentials ///////////////
90-
91- // Defined in <BlynkSimpleEsp32_GSM_WFM.h>
92- /* *************************************
93- #define MAX_ID_LEN 5
94- #define MAX_DISPLAY_NAME_LEN 16
95-
96- typedef struct
97- {
98- char id [MAX_ID_LEN + 1];
99- char displayName [MAX_DISPLAY_NAME_LEN + 1];
100- char *pdata;
101- uint8_t maxlen;
102- } MenuItem;
103- **************************************/
104-
105- #if USE_DYNAMIC_PARAMETERS
106-
107- #define MAX_MQTT_SERVER_LEN 34
108- char MQTT_Server [MAX_MQTT_SERVER_LEN + 1 ] = " " ;
109-
110- #define MAX_MQTT_PORT_LEN 6
111- char MQTT_Port [MAX_MQTT_PORT_LEN + 1 ] = " " ;
112-
113- #define MAX_MQTT_USERNAME_LEN 34
114- char MQTT_UserName [MAX_MQTT_USERNAME_LEN + 1 ] = " " ;
115-
116- #define MAX_MQTT_PW_LEN 34
117- char MQTT_PW [MAX_MQTT_PW_LEN + 1 ] = " " ;
118-
119- #define MAX_MQTT_SUBS_TOPIC_LEN 34
120- char MQTT_SubsTopic [MAX_MQTT_SUBS_TOPIC_LEN + 1 ] = " " ;
121-
122- #define MAX_MQTT_PUB_TOPIC_LEN 34
123- char MQTT_PubTopic [MAX_MQTT_PUB_TOPIC_LEN + 1 ] = " " ;
124-
125- MenuItem myMenuItems [] =
126- {
127- { " mqtt" , " MQTT Server" , MQTT_Server, MAX_MQTT_SERVER_LEN },
128- { " mqpt" , " Port" , MQTT_Port, MAX_MQTT_PORT_LEN },
129- { " user" , " MQTT UserName" , MQTT_UserName, MAX_MQTT_USERNAME_LEN },
130- { " mqpw" , " MQTT PWD" , MQTT_PW, MAX_MQTT_PW_LEN },
131- { " subs" , " Subs Topics" , MQTT_SubsTopic, MAX_MQTT_SUBS_TOPIC_LEN },
132- { " pubs" , " Pubs Topics" , MQTT_PubTopic, MAX_MQTT_PUB_TOPIC_LEN },
133- };
134-
135- uint16_t NUM_MENU_ITEMS = sizeof (myMenuItems) / sizeof (MenuItem); // MenuItemSize;
136-
137- #else
138-
139- MenuItem myMenuItems [] = {};
140-
141- uint16_t NUM_MENU_ITEMS = 0 ;
142- #endif
143-
144-
145- // ///// // End dynamic Credentials ///////////
146-
147- #else
148- #include < BlynkSimpleEsp32_GSM_WF.h>
149-
150- // Your WiFi credentials.
151- #define ssid " ****"
152- #define pass " ****"
153-
154- #define USE_LOCAL_SERVER true
155- // #define USE_LOCAL_SERVER false
156-
157- #if USE_LOCAL_SERVER
158- #define wifi_blynk_tok " ****"
159- #define gsm_blynk_tok " ****"
160- // #define blynk_server "account.duckdns.org"
161- #define blynk_server " xxx.xxx.xxx.xxx"
162- #else
163- #define wifi_blynk_tok " ****"
164- #define gsm_blynk_tok " ****"
165- #define blynk_server " blynk-cloud.com"
166- #endif
167-
168- #define apn " rogers-core-appl1.apn"
169- #define gprsUser " " // "wapuser1"
170- #define gprsPass " " // "wap"
171- #endif
172-
173- #define BLYNK_HARDWARE_PORT 8080
174-
175- #include < TinyGsmClient.h>
176-
177- // Set serial for debug console (to the Serial Monitor, default speed 115200)
178- #define SerialMon Serial
179-
180- #define RXD2 16
181- #define TXD2 17
182- // Use ESP32 Serial2 for GSM
183- #define SerialAT Serial2
184-
185- // Uncomment this if you want to see all AT commands
186- #define DUMP_AT_COMMANDS false
187-
188- // #include <SoftwareSerial.h>
189- // SoftwareSerial SerialAT(MODEM_RX, MODEM_TX); // RX, TX
190-
191- #if DUMP_AT_COMMANDS
192- #include < StreamDebugger.h>
193- StreamDebugger debugger (SerialAT, SerialMon);
194- TinyGsm modem (debugger);
195- #else
196- TinyGsm modem (SerialAT);
197- #endif
26+ #include " defines.h"
27+ #include " Credentials.h"
28+ #include " dynamicParams.h"
19829
19930void heartBeatPrint (void )
20031{
@@ -254,7 +85,8 @@ void setup()
25485 SerialMon.begin (115200 );
25586 while (!SerialMon);
25687
257- SerialMon.println (F (" \n Start ESP32-WIFI-GSM" ));
88+ SerialMon.print (F (" \n Start ESP32-WIFI-GSM using " ));
89+ SerialMon.println (CurrentFileFS);
25890
25991 // Set-up modem reset, enable, power pins
26092 pinMode (MODEM_PWKEY, OUTPUT);
@@ -276,7 +108,7 @@ void setup()
276108
277109#if USE_BLYNK_WM
278110 // Use configurable AP IP, instead of default IP 192.168.4.1
279- Blynk_WF.setConfigPortalIP (IPAddress (192 , 168 , 100 , 1 ));
111+ Blynk_WF.setConfigPortalIP (IPAddress (192 , 168 , 240 , 1 ));
280112 // Use channel = 0 => random Config Portal WiFi channel to avoid conflict
281113 Blynk_WF.setConfigPortalChannel (0 );
282114 // Set personalized Hostname
@@ -299,7 +131,7 @@ void setup()
299131 Serial.print (F (" gprs apn = " ));
300132 Serial.println (localBlynkGSM_ESP32_config.apn );
301133
302- if (String (localBlynkGSM_ESP32_config.apn ) == String ( " nothing " ) )
134+ if (String (localBlynkGSM_ESP32_config.apn ) == NO_CONFIG )
303135 {
304136 Serial.println (F (" No valid stored apn. Must run WiFi to Open config portal" ));
305137 valid_apn = false ;
@@ -308,20 +140,28 @@ void setup()
308140 {
309141 valid_apn = true ;
310142
311- Blynk_GSM.config (modem, localBlynkGSM_ESP32_config.gsm_blynk_tok , localBlynkGSM_ESP32_config.blynk_server , BLYNK_HARDWARE_PORT);
312- GSM_CONNECT_OK = Blynk_GSM.connectNetwork (localBlynkGSM_ESP32_config.apn , localBlynkGSM_ESP32_config.gprsUser ,
313- localBlynkGSM_ESP32_config.gprsPass );
143+ for (int index = 0 ; index < NUM_BLYNK_CREDENTIALS; index++)
144+ {
145+ Blynk_GSM.config (modem, localBlynkGSM_ESP32_config.Blynk_Creds [index].gsm_blynk_token ,
146+ localBlynkGSM_ESP32_config.Blynk_Creds [index].blynk_server , localBlynkGSM_ESP32_config.blynk_port );
314147
315- if (GSM_CONNECT_OK)
316- Blynk_GSM.connect ();
148+ GSM_CONNECT_OK = Blynk_GSM.connectNetwork (localBlynkGSM_ESP32_config.apn , localBlynkGSM_ESP32_config.gprsUser ,
149+ localBlynkGSM_ESP32_config.gprsPass );
150+
151+ if (GSM_CONNECT_OK)
152+ {
153+ if ( Blynk_GSM.connect () == true )
154+ break ;
155+ }
156+ }
317157 }
318158#endif
319159}
320160
321161#if (USE_BLYNK_WM && USE_DYNAMIC_PARAMETERS)
322162void displayCredentials (void )
323163{
324- Serial.println (" Your stored Credentials :" );
164+ Serial.println (" \n Your stored Credentials :" );
325165
326166 for (int i = 0 ; i < NUM_MENU_ITEMS; i++)
327167 {
0 commit comments