From a7d45b91c922df49e274c7e426d0295ce42ca37d Mon Sep 17 00:00:00 2001 From: Volodymyr Shymanskyy Date: Sun, 29 Apr 2018 22:23:35 +0300 Subject: [PATCH] Add Hologram Dash example --- examples/more/Hologram_Dash/Hologram_Dash.ino | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 examples/more/Hologram_Dash/Hologram_Dash.ino diff --git a/examples/more/Hologram_Dash/Hologram_Dash.ino b/examples/more/Hologram_Dash/Hologram_Dash.ino new file mode 100644 index 0000000..cd3d502 --- /dev/null +++ b/examples/more/Hologram_Dash/Hologram_Dash.ino @@ -0,0 +1,127 @@ +/************************************************************** + * + * This sketch connects to a website and downloads a page. + * It can be used to perform HTTP/RESTful API calls. + * + * TinyGSM Getting Started guide: + * http://tiny.cc/tiny-gsm-readme + * + **************************************************************/ + +// Hologram Dash uses UBLOX U2 modems +#define TINY_GSM_MODEM_UBLOX + +// Increase RX buffer if needed +//#define TINY_GSM_RX_BUFFER 512 + +#include + +// Uncomment this if you want to see all AT commands +//#define DUMP_AT_COMMANDS + +// Set serial for debug console (to the Serial Monitor, speed 115200) +#define SerialMon Serial + +// We'll be using SerialSystem in Passthrough mode +#define SerialAT SerialSystem + +// 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"; +const int port = 80; + +#ifdef DUMP_AT_COMMANDS + #include + StreamDebugger debugger(SerialAT, SerialMon); + TinyGsm mdm(debugger); +#else + TinyGsm mdm(SerialAT); +#endif + +TinyGsmClient client(mdm); + +void setup() { + // Set console baud rate + SerialMon.begin(115200); + delay(10); + + // Set up Passthrough + HologramCloud.enterPassthrough(); + delay(3000); + + // Restart takes quite some time + // To skip it, call init() instead of restart() + SerialMon.println(F("Initializing modem...")); + mdm.restart(); + + String modemInfo = mdm.getModemInfo(); + SerialMon.print(F("Modem: ")); + SerialMon.println(modemInfo); + + // Unlock your SIM card with a PIN + //mdm.simUnlock("1234"); +} + +void loop() { + SerialMon.print(F("Waiting for network...")); + if (!mdm.waitForNetwork()) { + SerialMon.println(" fail"); + delay(10000); + return; + } + SerialMon.println(" OK"); + + SerialMon.print(F("Connecting to ")); + SerialMon.print(apn); + if (!mdm.gprsConnect(apn, user, pass)) { + SerialMon.println(" fail"); + delay(10000); + return; + } + SerialMon.println(" OK"); + + SerialMon.print(F("Connecting to ")); + SerialMon.print(server); + if (!client.connect(server, port)) { + SerialMon.println(" fail"); + delay(10000); + return; + } + SerialMon.println(" OK"); + + // Make a HTTP GET request: + client.print(String("GET ") + resource + " HTTP/1.0\r\n"); + client.print(String("Host: ") + server + "\r\n"); + client.print("Connection: close\r\n\r\n"); + + unsigned long timeout = millis(); + while (client.connected() && millis() - timeout < 10000L) { + // Print available data + while (client.available()) { + char c = client.read(); + SerialMon.print(c); + timeout = millis(); + } + } + SerialMon.println(); + + // Shutdown + + client.stop(); + SerialMon.println(F("Server disconnected")); + + mdm.gprsDisconnect(); + SerialMon.println(F("GPRS disconnected")); + + // Do nothing forevermore + while (true) { + delay(1000); + } +} +