382 lines
14 KiB
C
382 lines
14 KiB
C
/****************************************************************************************************************************
|
|
defines.h
|
|
Library for communicating with a MySQL or MariaDB Server
|
|
|
|
Based on and modified from Dr. Charles A. Bell's MySQL_Connector_Arduino Library https://github.com/ChuckBell/MySQL_Connector_Arduino
|
|
to support nRF52, SAMD21/SAMD51, SAM DUE, STM32F/L/H/G/WB/MP1, ESP8266, ESP32, etc. boards using W5x00, ENC28J60, LAM8742A Ethernet,
|
|
WiFiNINA, ESP-AT, built-in ESP8266/ESP32 WiFi.
|
|
|
|
The library provides simple and easy Client interface to MySQL or MariaDB Server.
|
|
|
|
Built by Khoi Hoang https://github.com/khoih-prog/MySQL_MariaDB_Generic
|
|
Licensed under MIT license
|
|
**********************************************************************************************************************************/
|
|
|
|
#ifndef defines_h
|
|
#define defines_h
|
|
|
|
#define DEBUG_ESP8266_AT_WEBSERVER_PORT Serial
|
|
|
|
// Debug Level from 0 to 4
|
|
#define _ESP_AT_LOGLEVEL_ 1
|
|
|
|
#define MYSQL_DEBUG_PORT Serial
|
|
|
|
// Debug Level from 0 to 4
|
|
#define _MYSQL_LOGLEVEL_ 1
|
|
|
|
#if ! (ESP8266 || ESP32 )
|
|
// Select only one of these libraries, only for boards other than ESP8266/ESP32
|
|
#define USING_WIFI_ESP8266_AT false
|
|
#define USING_WIFININA_GENERIC false
|
|
#define USING_WIFININA false
|
|
#define USING_WIFIESPAT_LIB true
|
|
#define USING_WIFI_CUSTOM false
|
|
#endif
|
|
|
|
#if defined(ARDUINO_SAMD_MKR1000)
|
|
#if defined(USE_WIFI_NINA)
|
|
#undef USE_WIFI_NINA
|
|
#endif
|
|
#define USE_WIFI_NINA false
|
|
#define USE_WIFI101 true
|
|
#endif
|
|
|
|
#if ( defined(NRF52840_FEATHER) || defined(NRF52832_FEATHER) || defined(NRF52_SERIES) || defined(ARDUINO_NRF52_ADAFRUIT) || \
|
|
defined(NRF52840_FEATHER_SENSE) || defined(NRF52840_ITSYBITSY) || defined(NRF52840_CIRCUITPLAY) || defined(NRF52840_CLUE) || \
|
|
defined(NRF52840_METRO) || defined(NRF52840_PCA10056) || defined(PARTICLE_XENON) || defined(NINA_B302_ublox) || defined(NINA_B112_ublox) )
|
|
#if defined(WIFI_USE_NRF528XX)
|
|
#undef WIFI_USE_NRF528XX
|
|
#endif
|
|
#define WIFI_USE_NRF528XX true
|
|
#endif
|
|
|
|
#if ( defined(ARDUINO_SAMD_ZERO) || defined(ARDUINO_SAMD_MKR1000) || defined(ARDUINO_SAMD_MKRWIFI1010) \
|
|
|| defined(ARDUINO_SAMD_NANO_33_IOT) || defined(ARDUINO_SAMD_MKRFox1200) || defined(ARDUINO_SAMD_MKRWAN1300) || defined(ARDUINO_SAMD_MKRWAN1310) \
|
|
|| defined(ARDUINO_SAMD_MKRGSM1400) || defined(ARDUINO_SAMD_MKRNB1500) || defined(ARDUINO_SAMD_MKRVIDOR4000) || defined(__SAMD21G18A__) \
|
|
|| defined(ARDUINO_SAMD_CIRCUITPLAYGROUND_EXPRESS) || defined(__SAMD21E18A__) || defined(__SAMD51__) || defined(__SAMD51J20A__) || defined(__SAMD51J19A__) \
|
|
|| defined(__SAMD51G19A__) || defined(__SAMD51P19A__) || defined(__SAMD21G18A__) )
|
|
#if defined(WIFI_USE_SAMD)
|
|
#undef WIFI_USE_SAMD
|
|
#endif
|
|
#define WIFI_USE_SAMD true
|
|
#endif
|
|
|
|
#if ( defined(ARDUINO_SAM_DUE) || defined(__SAM3X8E__) )
|
|
#if defined(WIFI_USE_SAM_DUE)
|
|
#undef WIFI_USE_SAM_DUE
|
|
#endif
|
|
#define WIFI_USE_SAM_DUE true
|
|
#warning Use SAM_DUE architecture
|
|
#endif
|
|
|
|
#if ( defined(STM32F0) || defined(STM32F1) || defined(STM32F2) || defined(STM32F3) ||defined(STM32F4) || defined(STM32F7) || \
|
|
defined(STM32L0) || defined(STM32L1) || defined(STM32L4) || defined(STM32H7) ||defined(STM32G0) || defined(STM32G4) || \
|
|
defined(STM32WB) || defined(STM32MP1) )
|
|
#if defined(WIFI_USE_STM32)
|
|
#undef WIFI_USE_STM32
|
|
#endif
|
|
#define WIFI_USE_STM32 true
|
|
#endif
|
|
|
|
#if ( defined(ARDUINO_NANO_RP2040_CONNECT) || defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_RASPBERRY_PI_PICO) || \
|
|
defined(ARDUINO_GENERIC_RP2040) || defined(ARDUINO_ADAFRUIT_FEATHER_RP2040) )
|
|
#if defined(WIFI_USE_RP2040)
|
|
#undef WIFI_USE_RP2040
|
|
#endif
|
|
#define WIFI_USE_RP2040 true
|
|
#endif
|
|
|
|
#ifdef CORE_TEENSY
|
|
#if ( USING_WIFI_ESP8266_AT || USING_WIFIESPAT_LIB )
|
|
// For Teensy 4.1/4.0
|
|
#define EspSerial Serial2 //Serial2, Pin RX2 : 7, TX2 : 8
|
|
#endif
|
|
|
|
#if defined(__IMXRT1062__)
|
|
// For Teensy 4.1/4.0
|
|
#define BOARD_TYPE "TEENSY 4.1/4.0"
|
|
#elif defined(__MK66FX1M0__)
|
|
#define BOARD_TYPE "Teensy 3.6"
|
|
#elif defined(__MK64FX512__)
|
|
#define BOARD_TYPE "Teensy 3.5"
|
|
#elif defined(__MKL26Z64__)
|
|
#define BOARD_TYPE "Teensy LC"
|
|
#elif defined(__MK20DX256__)
|
|
#define BOARD_TYPE "Teensy 3.2" // and Teensy 3.1 (obsolete)
|
|
#elif defined(__MK20DX128__)
|
|
#define BOARD_TYPE "Teensy 3.0"
|
|
#elif defined(__AVR_AT90USB1286__)
|
|
#error Teensy 2.0++ not supported yet
|
|
#elif defined(__AVR_ATmega32U4__)
|
|
#error Teensy 2.0 not supported yet
|
|
#else
|
|
// For Other Boards
|
|
#define BOARD_TYPE "Unknown Teensy Board"
|
|
#endif
|
|
|
|
#elif defined(WIFI_USE_NRF528XX)
|
|
#if ( USING_WIFI_ESP8266_AT || USING_WIFIESPAT_LIB )
|
|
#define EspSerial Serial1
|
|
#endif
|
|
|
|
#if defined(NRF52840_FEATHER)
|
|
#define BOARD_TYPE "NRF52840_FEATHER_EXPRESS"
|
|
#elif defined(NRF52832_FEATHER)
|
|
#define BOARD_TYPE "NRF52832_FEATHER"
|
|
#elif defined(NRF52840_FEATHER_SENSE)
|
|
#define BOARD_TYPE "NRF52840_FEATHER_SENSE"
|
|
#elif defined(NRF52840_ITSYBITSY)
|
|
#define BOARD_TYPE "NRF52840_ITSYBITSY_EXPRESS"
|
|
#elif defined(NRF52840_CIRCUITPLAY)
|
|
#define BOARD_TYPE "NRF52840_CIRCUIT_PLAYGROUND"
|
|
#elif defined(NRF52840_CLUE)
|
|
#define BOARD_TYPE "NRF52840_CLUE"
|
|
#elif defined(NRF52840_METRO)
|
|
#define BOARD_TYPE "NRF52840_METRO_EXPRESS"
|
|
#elif defined(NRF52840_PCA10056)
|
|
#define BOARD_TYPE "NORDIC_NRF52840DK"
|
|
#elif defined(NINA_B302_ublox)
|
|
#define BOARD_TYPE "NINA_B302_ublox"
|
|
#elif defined(NINA_B112_ublox)
|
|
#define BOARD_TYPE "NINA_B112_ublox"
|
|
#elif defined(PARTICLE_XENON)
|
|
#define BOARD_TYPE "PARTICLE_XENON"
|
|
#elif defined(MDBT50Q_RX)
|
|
#define BOARD_TYPE "RAYTAC_MDBT50Q_RX"
|
|
#elif defined(ARDUINO_NRF52_ADAFRUIT)
|
|
#define BOARD_TYPE "ARDUINO_NRF52_ADAFRUIT"
|
|
#else
|
|
#define BOARD_TYPE "nRF52 Unknown"
|
|
#endif
|
|
|
|
#elif defined(WIFI_USE_SAMD)
|
|
#if ( USING_WIFI_ESP8266_AT || USING_WIFIESPAT_LIB )
|
|
// For SAMD
|
|
#define EspSerial Serial1
|
|
#endif
|
|
|
|
#if defined(ARDUINO_SAMD_ZERO)
|
|
#define BOARD_TYPE "SAMD Zero"
|
|
#elif defined(ARDUINO_SAMD_MKR1000)
|
|
#define BOARD_TYPE "SAMD MKR1000"
|
|
#elif defined(ARDUINO_SAMD_MKRWIFI1010)
|
|
#define BOARD_TYPE "SAMD MKRWIFI1010"
|
|
#elif defined(ARDUINO_SAMD_NANO_33_IOT)
|
|
#define BOARD_TYPE "SAMD NANO_33_IOT"
|
|
#elif defined(ARDUINO_SAMD_MKRFox1200)
|
|
#define BOARD_TYPE "SAMD MKRFox1200"
|
|
#elif ( defined(ARDUINO_SAMD_MKRWAN1300) || defined(ARDUINO_SAMD_MKRWAN1310) )
|
|
#define BOARD_TYPE "SAMD MKRWAN13X0"
|
|
#elif defined(ARDUINO_SAMD_MKRGSM1400)
|
|
#define BOARD_TYPE "SAMD MKRGSM1400"
|
|
#elif defined(ARDUINO_SAMD_MKRNB1500)
|
|
#define BOARD_TYPE "SAMD MKRNB1500"
|
|
#elif defined(ARDUINO_SAMD_MKRVIDOR4000)
|
|
#define BOARD_TYPE "SAMD MKRVIDOR4000"
|
|
#elif defined(ARDUINO_SAMD_CIRCUITPLAYGROUND_EXPRESS)
|
|
#define BOARD_TYPE "SAMD ARDUINO_SAMD_CIRCUITPLAYGROUND_EXPRESS"
|
|
#elif defined(ADAFRUIT_FEATHER_M0_EXPRESS)
|
|
#define BOARD_TYPE "SAMD21 ADAFRUIT_FEATHER_M0_EXPRESS"
|
|
#elif defined(ADAFRUIT_METRO_M0_EXPRESS)
|
|
#define BOARD_TYPE "SAMD21 ADAFRUIT_METRO_M0_EXPRESS"
|
|
#elif defined(ADAFRUIT_CIRCUITPLAYGROUND_M0)
|
|
#define BOARD_TYPE "SAMD21 ADAFRUIT_CIRCUITPLAYGROUND_M0"
|
|
#elif defined(ADAFRUIT_GEMMA_M0)
|
|
#define BOARD_TYPE "SAMD21 ADAFRUIT_GEMMA_M0"
|
|
#elif defined(ADAFRUIT_TRINKET_M0)
|
|
#define BOARD_TYPE "SAMD21 ADAFRUIT_TRINKET_M0"
|
|
#elif defined(ADAFRUIT_ITSYBITSY_M0)
|
|
#define BOARD_TYPE "SAMD21 ADAFRUIT_ITSYBITSY_M0"
|
|
#elif defined(ARDUINO_SAMD_HALLOWING_M0)
|
|
#define BOARD_TYPE "SAMD21 ARDUINO_SAMD_HALLOWING_M0"
|
|
#elif defined(ADAFRUIT_METRO_M4_EXPRESS)
|
|
#define BOARD_TYPE "SAMD51 ADAFRUIT_METRO_M4_EXPRESS"
|
|
#elif defined(ADAFRUIT_GRAND_CENTRAL_M4)
|
|
#define BOARD_TYPE "SAMD51 ADAFRUIT_GRAND_CENTRAL_M4"
|
|
#elif defined(ADAFRUIT_FEATHER_M4_EXPRESS)
|
|
#define BOARD_TYPE "SAMD51 ADAFRUIT_FEATHER_M4_EXPRESS"
|
|
#elif defined(ADAFRUIT_ITSYBITSY_M4_EXPRESS)
|
|
#define BOARD_TYPE "SAMD51 ADAFRUIT_ITSYBITSY_M4_EXPRESS"
|
|
#elif defined(ADAFRUIT_TRELLIS_M4_EXPRESS)
|
|
#define BOARD_TYPE "SAMD51 ADAFRUIT_TRELLIS_M4_EXPRESS"
|
|
#elif defined(ADAFRUIT_PYPORTAL)
|
|
#define BOARD_TYPE "SAMD51 ADAFRUIT_PYPORTAL"
|
|
#elif defined(ADAFRUIT_PYPORTAL_M4_TITANO)
|
|
#define BOARD_TYPE "SAMD51 ADAFRUIT_PYPORTAL_M4_TITANO"
|
|
#elif defined(ADAFRUIT_PYBADGE_M4_EXPRESS)
|
|
#define BOARD_TYPE "SAMD51 ADAFRUIT_PYBADGE_M4_EXPRESS"
|
|
#elif defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE)
|
|
#define BOARD_TYPE "SAMD51 ADAFRUIT_METRO_M4_AIRLIFT_LITE"
|
|
#elif defined(ADAFRUIT_PYGAMER_M4_EXPRESS)
|
|
#define BOARD_TYPE "SAMD51 ADAFRUIT_PYGAMER_M4_EXPRESS"
|
|
#elif defined(ADAFRUIT_PYGAMER_ADVANCE_M4_EXPRESS)
|
|
#define BOARD_TYPE "SAMD51 ADAFRUIT_PYGAMER_ADVANCE_M4_EXPRESS"
|
|
#elif defined(ADAFRUIT_PYBADGE_AIRLIFT_M4)
|
|
#define BOARD_TYPE "SAMD51 ADAFRUIT_PYBADGE_AIRLIFT_M4"
|
|
#elif defined(ADAFRUIT_MONSTER_M4SK_EXPRESS)
|
|
#define BOARD_TYPE "SAMD51 ADAFRUIT_MONSTER_M4SK_EXPRESS"
|
|
#elif defined(ADAFRUIT_HALLOWING_M4_EXPRESS)
|
|
#define BOARD_TYPE "SAMD51 ADAFRUIT_HALLOWING_M4_EXPRESS"
|
|
#elif defined(SEEED_WIO_TERMINAL)
|
|
#define BOARD_TYPE "SAMD SEEED_WIO_TERMINAL"
|
|
#elif defined(SEEED_FEMTO_M0)
|
|
#define BOARD_TYPE "SAMD SEEED_FEMTO_M0"
|
|
#elif defined(SEEED_XIAO_M0)
|
|
#define BOARD_TYPE "SAMD SEEED_XIAO_M0"
|
|
#elif defined(Wio_Lite_MG126)
|
|
#define BOARD_TYPE "SAMD SEEED Wio_Lite_MG126"
|
|
#elif defined(WIO_GPS_BOARD)
|
|
#define BOARD_TYPE "SAMD SEEED WIO_GPS_BOARD"
|
|
#elif defined(SEEEDUINO_ZERO)
|
|
#define BOARD_TYPE "SAMD SEEEDUINO_ZERO"
|
|
#elif defined(SEEEDUINO_LORAWAN)
|
|
#define BOARD_TYPE "SAMD SEEEDUINO_LORAWAN"
|
|
#elif defined(SEEED_GROVE_UI_WIRELESS)
|
|
#define BOARD_TYPE "SAMD SEEED_GROVE_UI_WIRELESS"
|
|
#elif defined(__SAMD21E18A__)
|
|
#define BOARD_TYPE "SAMD21E18A"
|
|
#elif defined(__SAMD21G18A__)
|
|
#define BOARD_TYPE "SAMD21G18A"
|
|
#elif defined(__SAMD51G19A__)
|
|
#define BOARD_TYPE "SAMD51G19A"
|
|
#elif defined(__SAMD51J19A__)
|
|
#define BOARD_TYPE "SAMD51J19A"
|
|
#elif defined(__SAMD51P19A__)
|
|
#define BOARD_TYPE "__SAMD51P19A__"
|
|
#elif defined(__SAMD51J20A__)
|
|
#define BOARD_TYPE "SAMD51J20A"
|
|
#elif defined(__SAM3X8E__)
|
|
#define BOARD_TYPE "SAM3X8E"
|
|
#elif defined(__CPU_ARC__)
|
|
#define BOARD_TYPE "CPU_ARC"
|
|
#elif defined(__SAMD51__)
|
|
#define BOARD_TYPE "SAMD51"
|
|
#else
|
|
#define BOARD_TYPE "SAMD Unknown"
|
|
#endif
|
|
|
|
#elif defined(WIFI_USE_STM32)
|
|
#if ( USING_WIFI_ESP8266_AT || USING_WIFIESPAT_LIB )
|
|
// For STM32
|
|
#if defined(ARDUINO_NUCLEO_F767ZI)
|
|
#warning Nucleo-144 NUCLEO_F767ZI board selected, using HardwareSerial Serial1 @ pin D0/RX and D1/TX
|
|
// RX TX
|
|
HardwareSerial Serial1(D0, D1);
|
|
#elif defined(ARDUINO_NUCLEO_L053R8)
|
|
#warning Nucleo-64 NUCLEO_L053R8 board selected, using HardwareSerial Serial1 @ pin D0/RX and D1/TX
|
|
// RX TX
|
|
HardwareSerial Serial1(D0, D1); // (PA3, PA2);
|
|
#endif
|
|
|
|
#warning EspSerial using SERIAL_PORT_HARDWARE, can be Serial or Serial1. See your board variant.h
|
|
#define EspSerial SERIAL_PORT_HARDWARE //Serial1
|
|
#endif
|
|
|
|
#if defined(STM32F0)
|
|
#warning STM32F0 board selected
|
|
#define BOARD_TYPE "STM32F0"
|
|
#elif defined(STM32F1)
|
|
#warning STM32F1 board selected
|
|
#define BOARD_TYPE "STM32F1"
|
|
#elif defined(STM32F2)
|
|
#warning STM32F2 board selected
|
|
#define BOARD_TYPE "STM32F2"
|
|
#elif defined(STM32F3)
|
|
#warning STM32F3 board selected
|
|
#define BOARD_TYPE "STM32F3"
|
|
#elif defined(STM32F4)
|
|
#warning STM32F4 board selected
|
|
#define BOARD_TYPE "STM32F4"
|
|
#elif defined(STM32F7)
|
|
#warning STM32F7 board selected
|
|
#define BOARD_TYPE "STM32F7"
|
|
#elif defined(STM32L0)
|
|
#warning STM32L0 board selected
|
|
#define BOARD_TYPE "STM32L0"
|
|
#elif defined(STM32L1)
|
|
#warning STM32L1 board selected
|
|
#define BOARD_TYPE "STM32L1"
|
|
#elif defined(STM32L4)
|
|
#warning STM32L4 board selected
|
|
#define BOARD_TYPE "STM32L4"
|
|
#elif defined(STM32H7)
|
|
#warning STM32H7 board selected
|
|
#define BOARD_TYPE "STM32H7"
|
|
#elif defined(STM32G0)
|
|
#warning STM32G0 board selected
|
|
#define BOARD_TYPE "STM32G0"
|
|
#elif defined(STM32G4)
|
|
#warning STM32G4 board selected
|
|
#define BOARD_TYPE "STM32G4"
|
|
#elif defined(STM32WB)
|
|
#warning STM32WB board selected
|
|
#define BOARD_TYPE "STM32WB"
|
|
#elif defined(STM32MP1)
|
|
#warning STM32MP1 board selected
|
|
#define BOARD_TYPE "STM32MP1"
|
|
#else
|
|
#warning STM32 unknown board selected
|
|
#define BOARD_TYPE "STM32 Unknown"
|
|
#endif
|
|
|
|
#elif (ESP8266)
|
|
#warning ESP8266 board selected
|
|
#define BOARD_TYPE ARDUINO_BOARD
|
|
|
|
#elif (ESP32)
|
|
#warning ESP32 board selected
|
|
#define BOARD_TYPE ARDUINO_BOARD
|
|
|
|
#elif defined(WIFI_USE_RP2040) && !defined(ARDUINO_ARCH_MBED)
|
|
|
|
// For RP2040
|
|
#if ( USING_WIFI_ESP8266_AT || USING_WIFIESPAT_LIB )
|
|
#define EspSerial Serial1
|
|
#endif
|
|
|
|
#elif defined(WIFI_USE_RP2040) && defined(ARDUINO_ARCH_MBED)
|
|
|
|
#warning Using ARDUINO_ARCH_MBED
|
|
|
|
// For MBED RP2040
|
|
#if ( USING_WIFI_ESP8266_AT || USING_WIFIESPAT_LIB )
|
|
#define EspSerial Serial1
|
|
#endif
|
|
|
|
#if ( defined(ARDUINO_NANO_RP2040_CONNECT) || defined(ARDUINO_RASPBERRY_PI_PICO) || \
|
|
defined(ARDUINO_GENERIC_RP2040) || defined(ARDUINO_ADAFRUIT_FEATHER_RP2040) )
|
|
// Only undef known BOARD_NAME to use better one
|
|
#undef BOARD_NAME
|
|
#endif
|
|
|
|
#if defined(ARDUINO_RASPBERRY_PI_PICO)
|
|
#define BOARD_NAME "MBED RASPBERRY_PI_PICO"
|
|
#elif defined(ARDUINO_ADAFRUIT_FEATHER_RP2040)
|
|
#define BOARD_NAME "MBED ADAFRUIT_FEATHER_RP2040"
|
|
#elif defined(ARDUINO_GENERIC_RP2040)
|
|
#define BOARD_NAME "MBED GENERIC_RP2040"
|
|
#elif defined(ARDUINO_NANO_RP2040_CONNECT)
|
|
#define BOARD_NAME "MBED NANO_RP2040_CONNECT"
|
|
#else
|
|
// Use default BOARD_NAME if exists
|
|
#if !defined(BOARD_NAME)
|
|
#define BOARD_NAME "MBED Unknown RP2040"
|
|
#endif
|
|
#endif
|
|
|
|
#else
|
|
// For Mega
|
|
#if ( USING_WIFI_ESP8266_AT || USING_WIFIESPAT_LIB )
|
|
#define EspSerial Serial1
|
|
#endif
|
|
|
|
#define BOARD_TYPE "AVR Mega"
|
|
#endif
|
|
|
|
#ifndef BOARD_NAME
|
|
#define BOARD_NAME BOARD_TYPE
|
|
#endif
|
|
|
|
#endif //defines_h
|