/**************************************************************
|
|
*
|
|
* This script tries to auto-detect the baud rate
|
|
* and allows direct AT commands access
|
|
*
|
|
* TinyGSM Getting Started guide:
|
|
* http://tiny.cc/tiny-gsm-readme
|
|
*
|
|
**************************************************************/
|
|
|
|
// Select your modem:
|
|
#define TINY_GSM_MODEM_SIM800
|
|
// #define TINY_GSM_MODEM_SIM808
|
|
// #define TINY_GSM_MODEM_SIM900
|
|
// #define TINY_GSM_MODEM_A6
|
|
// #define TINY_GSM_MODEM_A7
|
|
// #define TINY_GSM_MODEM_M590
|
|
// #define TINY_GSM_MODEM_ESP8266
|
|
// #define TINY_GSM_MODEM_XBEE
|
|
|
|
// Set serial for debug console (to the Serial Monitor, speed 115200)
|
|
#define SerialMon Serial
|
|
|
|
// Set serial for AT commands (to the module)
|
|
// Use Hardware Serial on Mega, Leonardo, Micro
|
|
#define SerialAT Serial1
|
|
|
|
// or Software Serial on Uno, Nano
|
|
//#include <SoftwareSerial.h>
|
|
//SoftwareSerial SerialAT(2, 3); // RX, TX
|
|
|
|
#define TINY_GSM_DEBUG SerialMon
|
|
|
|
#include <TinyGsmClient.h>
|
|
|
|
// Module baud rate
|
|
uint32_t rate = 0; // Set to 0 for Auto-Detect
|
|
|
|
void setup() {
|
|
// Set console baud rate
|
|
SerialMon.begin(115200);
|
|
delay(5000);
|
|
}
|
|
|
|
void loop() {
|
|
|
|
if (!rate) {
|
|
rate = TinyGsmAutoBaud(SerialAT);
|
|
}
|
|
|
|
if (!rate) {
|
|
SerialMon.println(F("***********************************************************"));
|
|
SerialMon.println(F(" Module does not respond!"));
|
|
SerialMon.println(F(" Check your Serial wiring"));
|
|
SerialMon.println(F(" Check the module is correctly powered and turned on"));
|
|
SerialMon.println(F("***********************************************************"));
|
|
delay(30000L);
|
|
return;
|
|
}
|
|
|
|
SerialAT.begin(rate);
|
|
|
|
// Access AT commands from Serial Monitor
|
|
SerialMon.println(F("***********************************************************"));
|
|
SerialMon.println(F(" You can now send AT commands"));
|
|
SerialMon.println(F(" Enter \"AT\" (without quotes), and you should see \"OK\""));
|
|
SerialMon.println(F(" If it doesn't work, select \"Both NL & CR\" in Serial Monitor"));
|
|
SerialMon.println(F("***********************************************************"));
|
|
|
|
while(true) {
|
|
if (SerialAT.available()) {
|
|
SerialMon.write(SerialAT.read());
|
|
}
|
|
if (SerialMon.available()) {
|
|
SerialAT.write(SerialMon.read());
|
|
}
|
|
delay(0);
|
|
}
|
|
}
|
|
|