Open roysG opened 3 years ago
Code:
`/** *
// Select your modem: //#define TINY_GSM_MODEM_SIM800 // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 // #define TINY_GSM_MODEM_SIM900
// #define TINY_GSM_MODEM_SIM5360 // #define TINY_GSM_MODEM_SIM7600 // #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 // #define TINY_GSM_MODEM_A7 // #define TINY_GSM_MODEM_M590 // #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
// Set serial for debug console (to the Serial Monitor, default speed 115200)
// Set serial for AT commands (to the module) // Use Hardware Serial on Mega, Leonardo, Micro //#define SerialAT Serial1
// or Software Serial on Uno, Nano
SoftwareSerial SerialAT(10, 9); // RX, TX
// Increase RX buffer to capture the entire response // Chips without internal buffering (A6/A7, ESP8266, M590) // need enough space in the buffer for the entire response // else data will be lost (and the http library will fail).
// See all AT commands, if wanted // #define DUMP_AT_COMMANDS
// Define the serial console for debug prints, if needed
// #define LOGGING // <- Logging is for the HTTP library
// Range to attempt to autobaud
// 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
// set GSM PIN, if any
// Your GPRS credentials, if any const char apn[] = ""; const char gprsUser[] = ""; const char gprsPass[] = "";
// Your WiFi connection credentials, if applicable const char wifiSSID[] = "YourSSID"; const char wifiPass[] = "YourWiFiPass";
// Server details const char server[] = "vsh.pp.ua"; const char resource[] = "/TinyGSM/logo.txt"; const int port = 80;
// Just in case someone defined the wrong thing..
StreamDebugger debugger(SerialAT, SerialMon); TinyGsm modem(debugger);
TinyGsm modem(SerialAT);
TinyGsmClient client(modem); HttpClient http(client, server, port);
void setup() { // Set console baud rate SerialMon.begin(115200); delay(10);
// !!!!!!!!!!! // Set your reset, enable, power pins here // !!!!!!!!!!!
SerialMon.println("Wait...");
// Set GSM module baud rate //TinyGsmAutoBaud(SerialAT, GSM_AUTOBAUD_MIN, GSM_AUTOBAUD_MAX); SerialAT.begin(115200); delay(6000);
// Restart takes quite some time // To skip it, call init() instead of restart() SerialMon.println("Initializing modem..."); modem.restart(); // modem.init();
String modemInfo = modem.getModemInfo(); SerialMon.print("Modem Info: "); SerialMon.println(modemInfo);
// Unlock your SIM card with a PIN if needed if ( GSM_PIN && modem.getSimStatus() != 3 ) { modem.simUnlock(GSM_PIN); }
}
void loop() {
// 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"); delay(10000); return; } SerialMon.println(" success");
// The XBee must run the gprsConnect function BEFORE waiting for network! modem.gprsConnect(apn, gprsUser, gprsPass);
SerialMon.print("Waiting for network..."); if (!modem.waitForNetwork()) { SerialMon.println(" fail"); delay(10000); return; } SerialMon.println(" success");
if (modem.isNetworkConnected()) { SerialMon.println("Network connected"); }
// GPRS connection parameters are usually set after network registration SerialMon.print(F("Connecting to ")); SerialMon.print(apn); if (!modem.gprsConnect(apn, gprsUser, gprsPass)) { SerialMon.println(" fail"); delay(10000); return; } SerialMon.println(" success");
if (modem.isGprsConnected()) {
SerialMon.println("GPRS connected");
}
SerialMon.print(F("Performing HTTP GET request... ")); int err = http.get(resource); if (err != 0) { SerialMon.println(F("failed to connect")); delay(10000); return; }
int status = http.responseStatusCode(); SerialMon.print(F("Response status code: ")); SerialMon.println(status); if (!status) { delay(10000); return; }
SerialMon.println(F("Response Headers:")); while (http.headerAvailable()) { String headerName = http.readHeaderName(); String headerValue = http.readHeaderValue(); SerialMon.println(" " + headerName + " : " + headerValue); }
int length = http.contentLength(); if (length >= 0) { SerialMon.print(F("Content length is: ")); SerialMon.println(length); } if (http.isResponseChunked()) { SerialMon.println(F("The response is chunked")); }
String body = http.responseBody(); SerialMon.println(F("Response:")); SerialMon.println(body);
SerialMon.print(F("Body length is: ")); SerialMon.println(body.length());
// Shutdown
http.stop(); SerialMon.println(F("Server disconnected"));
modem.networkDisconnect();
SerialMon.println(F("WiFi disconnected"));
modem.gprsDisconnect();
SerialMon.println(F("GPRS disconnected"));
// Do nothing forevermore while (true) { delay(1000); } }`
One more test result:
OK
+CFUN: 1
+CPIN: READY
SMS Ready [13114] ### Modem: SIMCom SIM7000 [13240] ### Daylight savings time state updated. [13246] ### Network time and time zone updated. Modem Info: SIM7000G R1529 Waiting for network... success Network connected Connecting to [83170] ### Unhandled: SdUz-5 [84179] ### Unhandled: OK success GPRS connected Connecting to vsh.pp.ua [85313] ### Unhandled: S*I=Izr 5 success Performing HTTP GET request... [86688] ### Unhandled: ?
But still Performing HTTP GET request not working..
This really looks like a baud rate/serial port accuracy error. Try to use hardware serial if at all possible. If you absolutely cannot use hardware serial, I strongly recommend using AltSoftSerial over SoftwareSerial for supported boards.
Wait... Initializing modem... [12453] ### TinyGSM Version: 0.10.9 [12454] ### TinyGSM Compiled Module: TinyGsmClientSIM7000 [12656] ### Unhandled: AR jH [12789] ### Modem: SIMCOM SIM7000G Modem Info: SIM7000G R1529 [13828] ### Unhandled: [14834] ### Daylight savings time state updated. [14840] ### Network time and time zone updated. [15846] ### Unhandled: OK Waiting for network...[16847] ### Unhandled: success Network connected Connecting to success GPRS connected Performing HTTP GET request... [18295] ### Daylight savings time state updated. [19276] ### Unhandled: [21918] ### Unhandled: [23011] ### Unhandled: [24013] ### Unhandled: [28015] ### Unhandled: [29017] ### Unhandled: