bytebeam-arduino-sdk icon indicating copy to clipboard operation
bytebeam-arduino-sdk copied to clipboard

SetupClient_GSM does not compile

Open reusables-official opened this issue 10 months ago • 9 comments

Board

esp32s3

Device Description

dev kitc1

Arduino-ESP32 Version

latest

Bytebeam Arduino SDK Version

latest

IDE Name

arduino IDE

Operating System

macOs 13.6.6

Problem Description

Running the SetupClient_GSM does not compile. The first error is due to a bad signature for Bytebeam.begin(&modem), which can be resolved by adding:

#define BYTEBEAM_ARDUINO_USE_MODEM to the top of the file.

However, the errors (pasted below) cannot be resolved with this line:

#undef BYTEBEAM_ARDUINO_USE_WIFI

and it is unclear how to override the definitions set in BytebeamArduinoDefines.h

Sketch

#define TINY_GSM_MODEM_SIM7600
// Added next two lines
#define BYTEBEAM_ARDUINO_USE_MODEM
#undef BYTEBEAM_ARDUINO_USE_WIFI

#include <TinyGsmClient.h>
#include <BytebeamArduino.h>
#include "arduino_secrets.h"

//
// By including the above header you got the access to the gloabl object named Bytebeam
// Use Bytebeam global object to perform the required operations
//

#define LED_PIN 42
#define MODEM_PWRKEY  20
#define MODEM_FLIGHT  19
#define MODEM_TX  36
#define MODEM_RX  37

// set GSM PIN, if any
#define GSM_PIN SECRET_PIN

#define SerialMon Serial
#define SerialAT Serial1

// Your GPRS credentials, if any
const char apn[]      = SECRET_APN;

TinyGsm modem(SerialAT);

// function to setup the modem with predefined credentials
void setupModem() {
  // configure your reset, enable pins here if needed
  pinMode(LED_PIN, OUTPUT);
  pinMode(MODEM_PWRKEY, OUTPUT);
  pinMode(MODEM_FLIGHT, OUTPUT);

  // set the status led pin low to indicate the start process
  digitalWrite(LED_PIN, LOW);

  // pull up power pin (IO:4) Modulator power key, need to powered up the modem
  // this pin must be held high for more than 1 second according to manual requirements
  digitalWrite(MODEM_PWRKEY, LOW);
  delay(100);
  digitalWrite(MODEM_PWRKEY, HIGH);
  delay(1000);
  digitalWrite(MODEM_PWRKEY, LOW);  
  
  // pull up the power pin (IO:25) Modulator flight mode control, need to enable modulator 
  // this pin must be set to high
  digitalWrite(MODEM_FLIGHT, HIGH);

  SerialMon.println("Modem Powered ON");

  // start the serial communication b/w esp32 and modem
  SerialAT.begin(115200, SERIAL_8N1, MODEM_RX, MODEM_TX);
  delay(6000);

  // Restart takes quite some time
  // To skip it, call init() instead of restart()
  // modem.restart();
  modem.init();

  // set the network mode (2 : Automatic)
  modem.setNetworkMode(38);

  String modemName = modem.getModemName();
  SerialMon.printf("Modem Name : ");
  SerialMon.println(modemName);

  String modemInfo = modem.getModemInfo();
  SerialMon.print("Modem Info : ");
  SerialMon.println(modemInfo);

  // Unlock your SIM card with a PIN if needed
  if(GSM_PIN && modem.getSimStatus() != 3) { 
    modem.simUnlock(GSM_PIN); 
  }

  SimStatus simStatus = modem.getSimStatus();

  if(simStatus != SIM_READY) {
    SerialMon.println("Couldn't Ready the SIM.");
    return;
  }
  SerialMon.println("SIM is Ready.");

  // high indicates the modem is initialized successfully
  digitalWrite(LED_PIN, HIGH);
  SerialMon.println("Modem Initialized Successfully !");

  SerialMon.println("Waiting for network...");
  if(!modem.waitForNetwork()) {
    SerialMon.println(" fail");
    delay(10000);
    return;
  }
  SerialMon.println(" success");

  if(modem.isNetworkConnected()) {
    SerialMon.println("Network connected");
  }

  // GPRS connection parameters are usually set after network registration
  SerialMon.print("Connecting to apn : ");
  SerialMon.println(apn);
  
  if (!modem.gprsConnect(apn)) {
    SerialMon.println(" fail");
    delay(10000);
    return;
  }
  SerialMon.println(" success");

  if(modem.isGprsConnected()) {
    SerialMon.println("GPRS connected");
  }
}

// function to sync time from ntp server with predefined credentials
void syncTimeFromNtp() {
  String dateTime = modem.getGSMDateTime(DATE_FULL);

  SerialMon.print("Current Time : ");
  SerialMon.println(dateTime);
  SerialMon.println();
}

void setup() {
  // put your setup code here, to run once:
  SerialMon.begin(115200);
  SerialMon.println();

  setupModem();
  syncTimeFromNtp();

  //
  //  Your other application setup stuff goes here
  //

  // setting up the device info i.e to be seen in the device shadow
  Bytebeam.status          = "Device is Up!";
  Bytebeam.softwareType    = "setup-gsm-client-ino";
  Bytebeam.softwareVersion = "1.0.0";
  Bytebeam.hardwareType    = "ESP32 Dev Module";
  Bytebeam.hardwareVersion = "rev1";

  // This method will initialize and start the bytebeam client
  // You can over-ride the default file system, file name and library logging options, if needed
  // eg. Bytebeam.begin(BytebeamArduino::LITTLEFS_FILE_SYSTEM, "/my_device_config.json", BytebeamLogger::LOG_INFO)
  if(!Bytebeam.begin(&modem)) {
    Serial.println("Bytebeam Client Initialization Failed.");
  } else {
    Serial.println("Bytebeam Client is Initialized Successfully.");
  }

  //
  // If above call is successfull then the bytebeam client is now configured for the use
  // You can always check for the logs in serial monitor for the status of the above call
  //

  // check if bytebeam client is connected or disconnected
  bool connectionStatus = Bytebeam.isConnected();

  if(!connectionStatus) {
    SerialMon.println("Bytebeam Client is Disconnected.");
  } else {
    SerialMon.println("Bytebeam Client is Connected.");
  }

  // Call the end method to stop and de-initialize the bytebeam client at any point of time in the code
  // Bytebeam.end();
}

void loop() {
  // put your main code here, to run repeatedly:

  //
  //  Your application regular stuff goes here
  //

  // This method will let you maintain the connection with the bytebeam cloud, In case
  // the connection is lost, it will attempt to reconnect to the bytebeam cloud
  Bytebeam.loop();

  // software delay, you can customize it as per your application needs
  delay(5000);
}

Debug Message

In file included from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduinoDefines.h:44,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamTime.h:4,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamLog.h:6,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduino.h:7,
                 from /private/var/folders/c0/j9v4g6bd73v6r7pmyn31jb000000gn/T/.arduinoIDE-unsaved202438-41671-j9mlnv.2j8dd/SetupClient_GSM/SetupClient_GSM.ino:6:
/Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamHTTPUpdate.h:24:5: error: 'HTTP_UPDATE_FAILED' conflicts with a previous declaration
     HTTP_UPDATE_FAILED,
     ^~~~~~~~~~~~~~~~~~
In file included from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduinoDefines.h:37,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamTime.h:4,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamLog.h:6,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduino.h:7,
                 from /private/var/folders/c0/j9v4g6bd73v6r7pmyn31jb000000gn/T/.arduinoIDE-unsaved202438-41671-j9mlnv.2j8dd/SetupClient_GSM/SetupClient_GSM.ino:6:
/Users/enzo/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/libraries/HTTPUpdate/src/HTTPUpdate.h:48:5: note: previous declaration 'HTTPUpdateResult HTTP_UPDATE_FAILED'
     HTTP_UPDATE_FAILED,
     ^~~~~~~~~~~~~~~~~~
In file included from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduinoDefines.h:44,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamTime.h:4,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamLog.h:6,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduino.h:7,
                 from /private/var/folders/c0/j9v4g6bd73v6r7pmyn31jb000000gn/T/.arduinoIDE-unsaved202438-41671-j9mlnv.2j8dd/SetupClient_GSM/SetupClient_GSM.ino:6:
/Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamHTTPUpdate.h:25:5: error: 'HTTP_UPDATE_NO_UPDATES' conflicts with a previous declaration
     HTTP_UPDATE_NO_UPDATES,
     ^~~~~~~~~~~~~~~~~~~~~~
In file included from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduinoDefines.h:37,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamTime.h:4,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamLog.h:6,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduino.h:7,
                 from /private/var/folders/c0/j9v4g6bd73v6r7pmyn31jb000000gn/T/.arduinoIDE-unsaved202438-41671-j9mlnv.2j8dd/SetupClient_GSM/SetupClient_GSM.ino:6:
/Users/enzo/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/libraries/HTTPUpdate/src/HTTPUpdate.h:49:5: note: previous declaration 'HTTPUpdateResult HTTP_UPDATE_NO_UPDATES'
     HTTP_UPDATE_NO_UPDATES,
     ^~~~~~~~~~~~~~~~~~~~~~
In file included from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduinoDefines.h:44,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamTime.h:4,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamLog.h:6,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduino.h:7,
                 from /private/var/folders/c0/j9v4g6bd73v6r7pmyn31jb000000gn/T/.arduinoIDE-unsaved202438-41671-j9mlnv.2j8dd/SetupClient_GSM/SetupClient_GSM.ino:6:
/Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamHTTPUpdate.h:26:5: error: 'HTTP_UPDATE_OK' conflicts with a previous declaration
     HTTP_UPDATE_OK
     ^~~~~~~~~~~~~~
In file included from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduinoDefines.h:37,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamTime.h:4,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamLog.h:6,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduino.h:7,
                 from /private/var/folders/c0/j9v4g6bd73v6r7pmyn31jb000000gn/T/.arduinoIDE-unsaved202438-41671-j9mlnv.2j8dd/SetupClient_GSM/SetupClient_GSM.ino:6:
/Users/enzo/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/libraries/HTTPUpdate/src/HTTPUpdate.h:50:5: note: previous declaration 'HTTPUpdateResult HTTP_UPDATE_OK'
     HTTP_UPDATE_OK
     ^~~~~~~~~~~~~~
In file included from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduinoDefines.h:44,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamTime.h:4,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamLog.h:6,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduino.h:7,
                 from /private/var/folders/c0/j9v4g6bd73v6r7pmyn31jb000000gn/T/.arduinoIDE-unsaved202438-41671-j9mlnv.2j8dd/SetupClient_GSM/SetupClient_GSM.ino:6:
/Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamHTTPUpdate.h:29:34: error: conflicting declaration 'typedef enum BytebeamHTTPUpdateResult t_httpUpdate_return'
 typedef BytebeamHTTPUpdateResult t_httpUpdate_return; // backward compatibility
                                  ^~~~~~~~~~~~~~~~~~~
In file included from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduinoDefines.h:37,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamTime.h:4,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamLog.h:6,
                 from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduino.h:7,
                 from /private/var/folders/c0/j9v4g6bd73v6r7pmyn31jb000000gn/T/.arduinoIDE-unsaved202438-41671-j9mlnv.2j8dd/SetupClient_GSM/SetupClient_GSM.ino:6:
/Users/enzo/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/libraries/HTTPUpdate/src/HTTPUpdate.h:53:26: note: previous declaration as 'typedef enum HTTPUpdateResult t_httpUpdate_return'
 typedef HTTPUpdateResult t_httpUpdate_return; // backward compatibility
                          ^~~~~~~~~~~~~~~~~~~
In file included from /Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduino.h:9,
                 from /private/var/folders/c0/j9v4g6bd73v6r7pmyn31jb000000gn/T/.arduinoIDE-unsaved202438-41671-j9mlnv.2j8dd/SetupClient_GSM/SetupClient_GSM.ino:6:
/Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamOTA.h:60:23: error: redeclaration of 'SSLClient BytebeamOTA::secureOTAClient'
             SSLClient secureOTAClient;
                       ^~~~~~~~~~~~~~~
/Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamOTA.h:54:30: note: previous declaration 'WiFiClientSecure BytebeamOTA::secureOTAClient'
             WiFiClientSecure secureOTAClient;
                              ^~~~~~~~~~~~~~~
/Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamOTA.h:61:51: error: redeclaration of 'BytebeamHTTPUpdate& BytebeamOTA::BytebeamUpdate'
             BytebeamHTTPUpdate& BytebeamUpdate =  BytebeamhttpUpdate;
                                                   ^~~~~~~~~~~~~~~~~~
/Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamOTA.h:55:43: note: previous declaration 'HTTPUpdate& BytebeamOTA::BytebeamUpdate'
             HTTPUpdate& BytebeamUpdate =  httpUpdate;
                                           ^~~~~~~~~~
In file included from /private/var/folders/c0/j9v4g6bd73v6r7pmyn31jb000000gn/T/.arduinoIDE-unsaved202438-41671-j9mlnv.2j8dd/SetupClient_GSM/SetupClient_GSM.ino:6:
/Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduino.h:182:23: error: redeclaration of 'SSLClient BytebeamArduino::secureClient'
             SSLClient secureClient;
                       ^~~~~~~~~~~~
/Users/enzo/Documents/Arduino/libraries/BytebeamArduino/src/BytebeamArduino.h:177:30: note: previous declaration 'WiFiClientSecure BytebeamArduino::secureClient'
             WiFiClientSecure secureClient;
                              ^~~~~~~~~~~~
Multiple libraries were found for "WiFi.h"
  Used: /Users/enzo/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/libraries/WiFi
  Not used: /Users/enzo/Documents/Arduino/libraries/WiFiNINA
exit status 1

Compilation error: exit status 1


### More Information

_No response_

reusables-official avatar Apr 09 '24 04:04 reusables-official