bytebeam-arduino-sdk
bytebeam-arduino-sdk copied to clipboard
SetupClient_GSM does not compile
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_