/********************************************************************************************************************************* 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 ETHERNET_DEBUG 4 #define MYSQL_DEBUG_PORT Serial // Debug Level from 0 to 4 #define _MYSQL_LOGLEVEL_ 2 #if ( defined(ARDUINO_PORTENTA_H7_M7) || defined(ARDUINO_PORTENTA_H7_M4) ) #if defined(BOARD_NAME) #undef BOARD_NAME #endif #if defined(CORE_CM7) #warning Using Portenta H7 M7 core #define BOARD_NAME "PORTENTA_H7_M7" #else #warning Using Portenta H7 M4 core #define BOARD_NAME "PORTENTA_H7_M4" #endif #define ETHERNET_USE_PORTENTA_H7 true #define USE_ETHERNET_PORTENTA_H7 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(ETHERNET_USE_SAMD) #undef ETHERNET_USE_SAMD #endif #define ETHERNET_USE_SAMD 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(ETHERNET_USE_NRF528XX) #undef ETHERNET_USE_NRF528XX #endif #define ETHERNET_USE_NRF528XX true #endif #if ( defined(ARDUINO_SAM_DUE) || defined(__SAM3X8E__) ) #if defined(ETHERNET_USE_SAM_DUE) #undef ETHERNET_USE_SAM_DUE #endif #define ETHERNET_USE_SAM_DUE true #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(ETHERNET_USE_STM32) #undef ETHERNET_USE_STM32 #endif #define ETHERNET_USE_STM32 true #endif #if ( defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_ADAFRUIT_FEATHER_RP2040) || defined(ARDUINO_GENERIC_RP2040) ) #if defined(ETHERNET_USE_RPIPICO) #undef ETHERNET_USE_RPIPICO #endif #define ETHERNET_USE_RPIPICO true #endif #if defined(ETHERNET_USE_SAMD) // For SAMD // Default pin 10 to SS/CS #define USE_THIS_SS_PIN 10 #if ( defined(ARDUINO_SAMD_ZERO) && !defined(SEEED_XIAO_M0) ) #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" #ifdef USE_THIS_SS_PIN #undef USE_THIS_SS_PIN #endif #define USE_THIS_SS_PIN A1 #warning define SEEED_XIAO_M0 USE_THIS_SS_PIN == A1 #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(__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 (ETHERNET_USE_SAM_DUE) // Default pin 10 to SS/CS #define USE_THIS_SS_PIN 10 #define BOARD_TYPE "SAM DUE" #elif (ETHERNET_USE_NRF528XX) // Default pin 10 to SS/CS #define USE_THIS_SS_PIN 10 #if defined(NRF52840_FEATHER) #define BOARD_TYPE "NRF52840_FEATHER" #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" #elif defined(NRF52840_CIRCUITPLAY) #define BOARD_TYPE "NRF52840_CIRCUITPLAY" #elif defined(NRF52840_CLUE) #define BOARD_TYPE "NRF52840_CLUE" #elif defined(NRF52840_METRO) #define BOARD_TYPE "NRF52840_METRO" #elif defined(NRF52840_PCA10056) #define BOARD_TYPE "NRF52840_PCA10056" #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(ARDUINO_NRF52_ADAFRUIT) #define BOARD_TYPE "ARDUINO_NRF52_ADAFRUIT" #else #define BOARD_TYPE "nRF52 Unknown" #endif #elif ( defined(CORE_TEENSY) ) // Default pin 10 to SS/CS #define USE_THIS_SS_PIN 10 #if defined(__IMXRT1062__) // For Teensy 4.1/4.0 #if defined(ARDUINO_TEENSY41) #define BOARD_TYPE "TEENSY 4.1" // Use true for NativeEthernet Library, false if using other Ethernet libraries #define USE_NATIVE_ETHERNET true #elif defined(ARDUINO_TEENSY40) #define BOARD_TYPE "TEENSY 4.0" #else #define #endif #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 (ETHERNET_USE_STM32) #if defined(STM32F0) #define BOARD_TYPE "STM32F0" #elif defined(STM32F1) #define BOARD_TYPE "STM32F1" #elif defined(STM32F2) #define BOARD_TYPE "STM32F2" #elif defined(STM32F3) #define BOARD_TYPE "STM32F3" #elif defined(STM32F4) #define BOARD_TYPE "STM32F4" #elif defined(STM32F7) #define BOARD_TYPE "STM32F7" #elif defined(STM32L0) #define BOARD_TYPE "STM32L0" #elif defined(STM32L1) #define BOARD_TYPE "STM32L1" #elif defined(STM32L4) #define BOARD_TYPE "STM32L4" #elif defined(STM32H7) #define BOARD_TYPE "STM32H7" #elif defined(STM32G0) #define BOARD_TYPE "STM32G0" #elif defined(STM32G4) #define BOARD_TYPE "STM32G4" #elif defined(STM32WB) #define BOARD_TYPE "STM32WB" #elif defined(STM32MP1) #define BOARD_TYPE "STM32MP1" #else #define BOARD_TYPE "STM32 Unknown" #endif #elif ( defined(ESP8266) ) // For ESP8266 #warning Use ESP8266 architecture #include #define ETHERNET_USE_ESP8266 #define BOARD_TYPE "ESP8266" #elif ( defined(ESP32) ) // For ESP32 #warning Use ESP32 architecture #define ETHERNET_USE_ESP32 #define BOARD_TYPE "ESP32" #define W5500_RST_PORT 21 #elif ETHERNET_USE_RPIPICO // Default pin 5 (in Mbed) or 17 to SS/CS #if defined(ARDUINO_ARCH_MBED) // For RPI Pico using Arduino Mbed RP2040 core // SCK: GPIO2, MOSI: GPIO3, MISO: GPIO4, SS/CS: GPIO5 #define USE_THIS_SS_PIN 17 #if defined(BOARD_NAME) #undef BOARD_NAME #endif #if defined(ARDUINO_RASPBERRY_PI_PICO) #define BOARD_TYPE "MBED RASPBERRY_PI_PICO" #elif defined(ARDUINO_ADAFRUIT_FEATHER_RP2040) #define BOARD_TYPE "MBED DAFRUIT_FEATHER_RP2040" #elif defined(ARDUINO_GENERIC_RP2040) #define BOARD_TYPE "MBED GENERIC_RP2040" #else #define BOARD_TYPE "MBED Unknown RP2040" #endif #else // For RPI Pico using E. Philhower RP2040 core #if (USING_SPI2) // SCK: GPIO14, MOSI: GPIO15, MISO: GPIO12, SS/CS: GPIO13 for SPI1 #define USE_THIS_SS_PIN 13 #else // SCK: GPIO18, MOSI: GPIO19, MISO: GPIO16, SS/CS: GPIO17 for SPI0 #define USE_THIS_SS_PIN 17 #endif #endif #define SS_PIN_DEFAULT USE_THIS_SS_PIN // For RPI Pico #warning Use RPI-Pico RP2040 architecture #else // For Mega // Default pin 10 to SS/CS #define USE_THIS_SS_PIN 10 #define BOARD_TYPE "AVR Mega" #endif #if defined(ARDUINO_BOARD) #define BOARD_NAME ARDUINO_BOARD #else #ifndef BOARD_NAME #define BOARD_NAME BOARD_TYPE #endif #endif #include // Ethernet_Shield_W5200, EtherCard, EtherSia libraries are not supported // To override the default CS/SS pin. Don't use unless you know exactly which pin to use // You can define here or customize for each board at same place with BOARD_TYPE // Check @ defined(SEEED_XIAO_M0) //#define USE_THIS_SS_PIN 22 //21 //5 //4 //2 //15 // Only one of the following to be true. #define USE_ETHERNET_GENERIC true #define USE_ETHERNET_ESP8266 false #define USE_ETHERNET_ENC false #define USE_ETHERNET_LAN8742A false #define USE_ETHERNET_LAN8720 false #define USE_CUSTOM_ETHERNET false #define USE_UIP_ETHERNET false ////// #if USE_CUSTOM_ETHERNET // You have to include an Ethernet library in your program //#include "Ethernet_XYZ.h" #include "EthernetLarge.h" #define SHIELD_TYPE "Custom Ethernet using EthernetLarge Library" #endif #if (_MYSQL_LOGLEVEL_ > 1) #if USE_ETHERNET_PORTENTA_H7 #warning Use Portenta Ethernet lib #elif USE_QN_ETHERNET #warning Using QNEthernet lib for Teensy 4.1. Must also use Teensy Packages Patch or error #elif USE_NATIVE_ETHERNET #warning Using NativeEthernet lib for Teensy 4.1. Must also use Teensy Packages Patch or error #elif USE_ETHERNET_GENERIC #warning Using Ethernet_Generic lib #elif USE_ETHERNET_ESP8266 #warning Using Ethernet_ESP8266 lib #elif USE_ETHERNET_ENC #warning Using EthernetENC lib #elif USE_ETHERNET_LAN8742A #warning Using LAN8742A Ethernet & STM32Ethernet lib #elif USE_CUSTOM_ETHERNET #warning Using Custom Ethernet library #else #define USE_ETHERNET_GENERIC true #warning Using Ethernet_Generic lib #endif #endif #if !( USE_ETHERNET_ENC || USE_ETHERNET_ESP8266 || USE_UIP_ETHERNET || USE_ETHERNET_LAN8742A || USE_ETHERNET_LAN8720 || USE_NATIVE_ETHERNET || \ USE_QN_ETHERNET || USE_CUSTOM_ETHERNET || USE_ETHERNET_PORTENTA_H7 || USE_CUSTOM_ETHERNET ) #define USE_ETHERNET_GENERIC true #endif #if USE_ETHERNET_GENERIC #define ETHERNET_LARGE_BUFFERS #define _ETG_LOGLEVEL_ 1 #endif // Enter a MAC address and IP address for your controller below. #define NUMBER_OF_MAC 20 byte mac[][NUMBER_OF_MAC] = { { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x01 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xBE, 0x02 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x03 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xBE, 0x04 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x05 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xBE, 0x06 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x07 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xBE, 0x08 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x09 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xBE, 0x0A }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x0B }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xBE, 0x0C }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x0D }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xBE, 0x0E }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x0F }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xBE, 0x10 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x11 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xBE, 0x12 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x13 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0xBE, 0x14 }, }; #endif //defines_h