diff --git a/examples/more/Industruino/Industruino.ino b/examples/more/Industruino/Industruino.ino new file mode 100644 index 0000000..5e30f86 --- /dev/null +++ b/examples/more/Industruino/Industruino.ino @@ -0,0 +1,160 @@ +/************************************************************** + * + * This sketch connects to a website and downloads a page. + * It can be used to perform HTTP/RESTful API calls. + * + * For this example, you need to install ArduinoHttpClient library: + * https://github.com/arduino-libraries/ArduinoHttpClient + * or from http://librarymanager/all#ArduinoHttpClient + * + * TinyGSM Getting Started guide: + * http://tiny.cc/tiny-gsm-readme + * + * For more HTTP API examples, see ArduinoHttpClient library + * + **************************************************************/ + +// Industruino uses SIM800H +#define TINY_GSM_MODEM_SIM800 + +// Increase RX buffer if needed +//#define TINY_GSM_RX_BUFFER 512 + +#include +#include + +// Uncomment this if you want to see all AT commands +//#define DUMP_AT_COMMANDS + +// Uncomment this if you want to use SSL +//#define USE_SSL + +// Set serial for debug console (to the Serial Monitor, speed 115200) +#define SerialMon SerialUSB + +// Select Serial1 or Serial depending on your module configuration +#define SerialAT Serial1 + +// 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"; + +#ifdef DUMP_AT_COMMANDS + #include + StreamDebugger debugger(SerialAT, SerialMon); + TinyGsm modem(debugger); +#else + TinyGsm modem(SerialAT); +#endif + +#ifdef USE_SSL + TinyGsmClientSecure client(modem); + HttpClient http(client, server, 443); +#else + TinyGsmClient client(modem); + HttpClient http(client, server, 80); +#endif + +void setup() { + // Turn on modem with 1 second pulse on D6 + pinMode(6, OUTPUT); + digitalWrite(6, HIGH); + delay(1000); + digitalWrite(6, LOW); + + // Set console baud rate + SerialMon.begin(115200); + delay(10); + + // Set GSM module baud rate + SerialAT.begin(115200); + delay(3000); + + // Restart takes quite some time + // To skip it, call init() instead of restart() + SerialMon.println(F("Initializing modem...")); + modem.restart(); + + String modemInfo = modem.getModemInfo(); + SerialMon.print(F("Modem: ")); + SerialMon.println(modemInfo); + + // Unlock your SIM card with a PIN + //modem.simUnlock("1234"); +} + +void loop() { + SerialMon.print(F("Waiting for network...")); + if (!modem.waitForNetwork()) { + SerialMon.println(" fail"); + delay(10000); + return; + } + SerialMon.println(" OK"); + + SerialMon.print(F("Connecting to ")); + SerialMon.print(apn); + if (!modem.gprsConnect(apn, user, pass)) { + SerialMon.println(" fail"); + delay(10000); + return; + } + SerialMon.println(" OK"); + + 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.println(status); + if (!status) { + delay(10000); + return; + } + + 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.gprsDisconnect(); + SerialMon.println(F("GPRS disconnected")); + + // Do nothing forevermore + while (true) { + delay(1000); + } +} +