112 lines
3.9 KiB
Arduino
112 lines
3.9 KiB
Arduino
|
/*********************************************************************************************************************************
|
||
|
Connect.ino
|
||
|
|
||
|
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
|
||
|
**********************************************************************************************************************************/
|
||
|
|
||
|
/*
|
||
|
MySQL Connector/Arduino Example : connect
|
||
|
|
||
|
This example demonstrates how to connect to a MySQL server from an
|
||
|
Arduino using an Arduino-compatible Ethernet shield. Note that "compatible"
|
||
|
means it must conform to the Ethernet class library or be a derivative
|
||
|
with the same classes and methods.
|
||
|
|
||
|
For more information and documentation, visit the wiki:
|
||
|
https://github.com/ChuckBell/MySQL_Connector_Arduino/wiki.
|
||
|
|
||
|
INSTRUCTIONS FOR USE
|
||
|
|
||
|
1) Change the address of the server to the IP address of the MySQL server
|
||
|
2) Change the user and password to a valid MySQL user and password
|
||
|
3) Connect a USB cable to your Arduino
|
||
|
4) Select the correct board and port
|
||
|
5) Compile and upload the sketch to your Arduino
|
||
|
6) Once uploaded, open Serial Monitor (use 115200 speed) and observe
|
||
|
|
||
|
If you do not see messages indicating you have a connection, refer to the
|
||
|
manual for troubleshooting tips. The most common issues are the server is
|
||
|
not accessible from the network or the user name and password is incorrect.
|
||
|
|
||
|
Note: The MAC address can be anything so long as it is unique on your network.
|
||
|
|
||
|
Created by: Dr. Charles A. Bell
|
||
|
*/
|
||
|
|
||
|
#include "defines.h"
|
||
|
|
||
|
#include <MySQL_Generic.h>
|
||
|
|
||
|
// Select the static Local IP address according to your local network
|
||
|
IPAddress ip(192, 168, 2, 222);
|
||
|
|
||
|
#define USING_HOST_NAME true
|
||
|
|
||
|
#if USING_HOST_NAME
|
||
|
// Optional using hostname, and Ethernet built-in DNS lookup
|
||
|
char server[] = "your_account.ddns.net"; // change to your server's hostname/URL
|
||
|
#else
|
||
|
IPAddress server(192, 168, 2, 112);
|
||
|
#endif
|
||
|
|
||
|
uint16_t server_port = 5698; //3306;
|
||
|
|
||
|
char default_database[] = "world";
|
||
|
|
||
|
char user[] = "invited-guest"; // MySQL user login username
|
||
|
char password[] = "the-invited-guest"; // MySQL user login password
|
||
|
|
||
|
MySQL_Connection conn((Client *)&client);
|
||
|
|
||
|
void setup()
|
||
|
{
|
||
|
Serial.begin(115200);
|
||
|
while (!Serial && millis() < 5000); // wait for serial port to connect
|
||
|
|
||
|
MYSQL_DISPLAY3("\nStarting Connect on", BOARD_NAME, ", with", SHIELD_TYPE);
|
||
|
MYSQL_DISPLAY(MYSQL_MARIADB_GENERIC_VERSION);
|
||
|
|
||
|
// start the ethernet connection and the server:
|
||
|
// Use DHCP dynamic IP and random mac
|
||
|
uint16_t index = millis() % NUMBER_OF_MAC;
|
||
|
// Use Static IP
|
||
|
//Ethernet.begin(mac[index], ip);
|
||
|
Ethernet.begin(mac[index]);
|
||
|
|
||
|
MYSQL_DISPLAY1("Using mac index =", index);
|
||
|
MYSQL_DISPLAY1("Connected! IP address:", Ethernet.localIP());
|
||
|
|
||
|
MYSQL_DISPLAY3("Connecting to SQL Server @", server, ", Port =", server_port);
|
||
|
MYSQL_DISPLAY3("User =", user, ", PW =", password);
|
||
|
}
|
||
|
|
||
|
void loop()
|
||
|
{
|
||
|
MYSQL_DISPLAY("Connecting...");
|
||
|
|
||
|
//if (conn.connect(server, server_port, user, password, default_database))
|
||
|
if (conn.connectNonBlocking(server, server_port, user, password, default_database) != RESULT_FAIL)
|
||
|
{
|
||
|
MYSQL_DISPLAY("Closing connection...");
|
||
|
conn.close(); // close the connection
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
MYSQL_DISPLAY("\nConnect failed. Trying again on next iteration.");
|
||
|
}
|
||
|
|
||
|
MYSQL_DISPLAY("\nSleeping...");
|
||
|
MYSQL_DISPLAY("================================================");
|
||
|
|
||
|
delay(60000);
|
||
|
}
|