mirror of
				https://github.com/KevinMidboe/TinyGSM.git
				synced 2025-10-29 18:00:18 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/**************************************************************
 | 
						|
 *
 | 
						|
 * 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_UBLOX
 | 
						|
// #define TINY_GSM_MODEM_BG96
 | 
						|
// #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(3000);
 | 
						|
}
 | 
						|
 | 
						|
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);
 | 
						|
  }
 | 
						|
}
 | 
						|
 |