forked from alokshaw/TTGO-T-Call
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
cef716d
commit 8dda391
Showing
1 changed file
with
152 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
/************************************************************** | ||
* | ||
* This sketch connects to a website and downloads a page. | ||
* It can be used to perform HTTP/RESTful API calls. | ||
* | ||
* TinyGSM Getting Started guide: | ||
* https://tiny.cc/tinygsm-readme | ||
* | ||
**************************************************************/ | ||
|
||
// Select your modem: | ||
#define TINY_GSM_MODEM_SIM800 | ||
|
||
// Increase RX buffer if needed | ||
#define TINY_GSM_RX_BUFFER 512 | ||
|
||
// Define the serial console for debug prints, if needed | ||
//#define TINY_GSM_DEBUG SerialMon | ||
//#define DUMP_AT_COMMANDS | ||
|
||
// Uncomment this if you want to use SSL | ||
//#define USE_SSL | ||
|
||
// Set serial for debug console (to the Serial Monitor, default speed 115200) | ||
#define SerialMon Serial | ||
|
||
// Set serial for AT commands (to the module) | ||
#define SerialAT Serial1 | ||
|
||
// Your GPRS credentials (leave empty, if missing) | ||
const char apn[] = ""; // Your APN | ||
const char gprsUser[] = ""; // User | ||
const char gprsPass[] = ""; // Password | ||
const char simPIN[] = ""; // SIM card PIN code, if any | ||
|
||
// Server details | ||
const char server[] = "vsh.pp.ua"; | ||
const char resource[] = "/TinyGSM/logo.txt"; | ||
|
||
#include <TinyGsmClient.h> | ||
|
||
#ifdef DUMP_AT_COMMANDS | ||
#include <StreamDebugger.h> | ||
StreamDebugger debugger(SerialAT, SerialMon); | ||
TinyGsm modem(debugger); | ||
#else | ||
TinyGsm modem(SerialAT); | ||
#endif | ||
|
||
#ifdef USE_SSL | ||
TinyGsmClientSecure client(modem); | ||
const int port = 443; | ||
#else | ||
TinyGsmClient client(modem); | ||
const int port = 80; | ||
#endif | ||
|
||
void setup() { | ||
// Set console baud rate | ||
SerialMon.begin(115200); | ||
delay(10); | ||
|
||
// Set your reset, enable, power pins here | ||
pinMode(4, OUTPUT); | ||
pinMode(5, OUTPUT); | ||
digitalWrite(4, LOW); | ||
digitalWrite(5, HIGH); | ||
|
||
SerialMon.println("Wait..."); | ||
|
||
// Set GSM module baud rate and UART pins | ||
SerialAT.begin(115200, SERIAL_8N1, 26, 27); | ||
delay(3000); | ||
|
||
// 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: "); | ||
SerialMon.println(modemInfo); | ||
|
||
// Unlock your SIM card with a PIN if needed | ||
if (strlen(simPIN) && modem.getSimStatus() != 3 ) { | ||
modem.simUnlock(simPIN); | ||
} | ||
} | ||
|
||
void loop() { | ||
SerialMon.print("Waiting for network..."); | ||
if (!modem.waitForNetwork(240000L)) { | ||
SerialMon.println(" fail"); | ||
delay(10000); | ||
return; | ||
} | ||
SerialMon.println(" OK"); | ||
|
||
if (modem.isNetworkConnected()) { | ||
SerialMon.println("Network connected"); | ||
} | ||
|
||
SerialMon.print(F("Connecting to ")); | ||
SerialMon.print(apn); | ||
if (!modem.gprsConnect(apn, gprsUser, gprsPass)) { | ||
SerialMon.println(" fail"); | ||
delay(10000); | ||
return; | ||
} | ||
SerialMon.println(" OK"); | ||
|
||
SerialMon.print("Connecting to "); | ||
SerialMon.println(server); | ||
if (!client.connect(server, port)) { | ||
SerialMon.println(" fail"); | ||
delay(10000); | ||
return; | ||
} | ||
SerialMon.println(" OK"); | ||
|
||
// Make a HTTP GET request: | ||
SerialMon.println("Performing HTTP GET request..."); | ||
client.print(String("GET ") + resource + " HTTP/1.1\r\n"); | ||
client.print(String("Host: ") + server + "\r\n"); | ||
client.print("Connection: close\r\n\r\n"); | ||
client.println(); | ||
|
||
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")); | ||
|
||
modem.gprsDisconnect(); | ||
SerialMon.println(F("GPRS disconnected")); | ||
|
||
// Do nothing forevermore | ||
while (true) { | ||
delay(1000); | ||
} | ||
} |