/********* Pleasedontcode.com **********
Pleasedontcode thanks you for automatic code generation! Enjoy your code!
- Terms and Conditions:
You have a non-exclusive, revocable, worldwide, royalty-free license
for personal and commercial use. Attribution is optional; modifications
are allowed, but you're responsible for code maintenance. We're not
liable for any loss or damage. For full terms,
please visit pleasedontcode.com/termsandconditions.
- Project: GSM Interface
- Source Code NOT compiled for: ESP32 DevKit V1
- Source Code created on: 2024-08-03 16:49:11
********* Pleasedontcode.com **********/
/****** SYSTEM REQUIREMENTS *****/
/****** SYSTEM REQUIREMENT 1 *****/
/* Use TinyGSM library to initialize modem with APN */
/* "airtelgprs.com", establish GSM connection, enable */
/* GNSS module for location data capture, and display */
/* all activity logs on Serial Monitor. */
/****** SYSTEM REQUIREMENT 2 *****/
/* add #define TINY_GSM_MODEM_SIM7600 */
/****** END SYSTEM REQUIREMENTS *****/
/****** DEFINITION OF LIBRARIES *****/
#include
#include // Cohere Client library for API interaction
#include // Adafruit SSD1306 OLED display library
#include // U8g2 library for Adafruit GFX support
#include // TinyGSM library for GSM communication
/****** FUNCTION PROTOTYPES *****/
void setup(void);
void loop(void);
/***** DEFINITION OF Hardware Serial *****/
#define modem Serial2 // TX_PIN: D17, RX_PIN: D16
/***** DEFINITION OF I2C PINS *****/
const uint8_t myDisplay_SSD1306OledDisplay_I2C_PIN_SDA_D21 = 21; // I2C SDA pin
const uint8_t myDisplay_SSD1306OledDisplay_I2C_PIN_SCL_D22 = 22; // I2C SCL pin
const uint8_t myDisplay_SSD1306OledDisplay_I2C_SLAVE_ADDRESS = 0x3C; // I2C Slave address
/****** DEFINITION OF LIBRARIES CLASS INSTANCES *****/
WiFiClientSecure client; // Secure WiFi client for HTTPS connections
CohereClient cohereClient(&client, "YOUR_API_KEY"); // Initialize CohereClient with the secure client and API key
// Initialize the display object with I2C address and reset pin
#define OLED_RESET -1 // No reset pin used for I2C
Adafruit_SSD1306 display(OLED_RESET); // Create display object
// Initialize U8G2_FOR_ADAFRUIT_GFX object
U8G2_FOR_ADAFRUIT_GFX u8g2_for_adafruit_gfx; // Create U8G2 object
// Initialize TinyGSM modem
#define TINY_GSM_MODEM_SIM7600 // Define the modem type
TinyGsmClient gsmClient(modem); // Create GSM client
TinyGsm modem(gsmClient); // Create modem instance
void setup(void)
{
// Initialize the modem serial communication
modem.begin(115200);
Serial.begin(115200); // Start serial communication for debugging
// Initialize the display
display.begin(SSD1306_SWITCHCAPVCC, myDisplay_SSD1306OledDisplay_I2C_SLAVE_ADDRESS); // Initialize with I2C address
display.clearDisplay(); // Clear the display buffer
// Connect U8G2 to the display
u8g2_for_adafruit_gfx.begin(display); // Connect u8g2 procedures to Adafruit GFX
// Connect to GSM network
connectToGSM(); // Call function to connect to GSM
}
void loop(void)
{
// Example usage of the CohereClient
int max_tokens = 200; // Maximum tokens for the API call
String prompt = "Once upon a time in a magical land called"; // Prompt for the API call
// Make an API call and get the response
String response = cohereClient.makeAPICall(max_tokens, prompt);
// Print the text output from the response
String output = cohereClient.text_output(response);
Serial.println(output);
delay(5000); // Delay for readability
Serial.println(""); // Print a new line for separation
// Print the full response for debugging
String fullResponse = cohereClient.full_response(response);
Serial.println(fullResponse);
delay(5000); // Delay for readability
}
/****** FUNCTION TO CONNECT TO GSM *****/
void connectToGSM()
{
// Set modem parameters
modem.restart(); // Restart the modem
Serial.println("Connecting to GSM...");
// Connect to the GSM network
if (!modem.gprsConnect("airtelgprs.com", "", "")) // Replace with your APN, username, and password
{
Serial.println("GPRS connection failed");
return;
}
Serial.println("Connected to GSM"); // Confirm connection
}
/****** FUNCTION TO CONNECT TO WiFi *****/
void connectToWiFi()
{
// Replace with your WiFi credentials
const char* ssid = "WIFI_SSID"; // Your WiFi SSID
const char* password = "WIFI_PW"; // Your WiFi password
WiFi.begin(ssid, password); // Start the WiFi connection
while (WiFi.status() != WL_CONNECTED) // Wait for connection
{
delay(500);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi"); // Confirm connection
}
/* END CODE */