diff --git a/ETH_MYSQL/ETH_MYSQL.ino b/ETH_MYSQL/ETH_MYSQL.ino new file mode 100644 index 0000000..2c415af --- /dev/null +++ b/ETH_MYSQL/ETH_MYSQL.ino @@ -0,0 +1,76 @@ +/* + Arduino leonardo eth v3 and mysql + This example demonstrates how to store data in a + table in mysql from 4 button connected to pins 2, 3, 4, 5 + For this, we will create a special database and table for testing. + The following are the SQL commands you will need to run in order to setup + your database for running this sketch. + + CREATE DATABASE machine; + CREATE TABLE machine.state ( + num integer primary key auto_increment, + message char(40), + recorded timestamp + ); + + Here we see one database and a table with three fields; a primary key that + is an auto_increment, a string, and a timestamp. This will demonstrate how + to save a date and time of when the row was inserted, which can help you + determine when data was recorded or updated. + + INSTRUCTIONS FOR USE + + 1) Create the database and table as shown above. + 2) Change the address of the server to the IP address of your MySQL server in my case my IP is 192.186.157.77 + 3) Change the user and password to a valid MySQL user and password in my case it is sa and 156444 + 4) install mysql library in your ide go to sketch > include library > manage library + and in the filter your search type mysql then install it + 5) arduino leonardo use etehrnet2 library so you need to install it in your ide go to sketch > include library > manage library + and in the filter your search type ethernet2 then install it + 6) also you need to modify this file MySQL_Packet.h the original created by Dr.Charles is - include + the new is - include otherwise it will give your error message and not compiled + 7) Connect a USB cable to your Arduino + 8) Select the arduino leonardo eth board and port + 9) Compile and upload the sketch to your Arduino + 10) connect 4 push button between ground and pins 2, 3, 4, 5 through 10k Ohm resistor + 11) After the sketch has run for some time , press some push buttons and open a mysql client and issue + the command: SELECT * FROM machine.state; to see the data + recorded. Note the field values and how the database handles both the + auto_increment and timestamp fields for us. You can clear the data with. + "DELETE FROM machine.state". + + Note: The MAC on your board in back if not you can put any thing but make sure it is unique in your network . + Note your mysql default port address is 3306 but this will conflict with Skype so you can change it to 3307 in both your + sketch and your Mysql and make sore this port is open in your server firewall . + + Created by: Samir Mohamad tawfik 28-1-2018 + samirtwf@gmail.com +*/ + +#include +#include +#include + +byte mac_addr[] = { 0x90, 0xA2, 0xDA, 0x10, 0xBD, 0x8C }; + +IPAddress server_addr(192,168,1,100); // IP of the MySQL *server* here +char user[] = "gateway"; // MySQL user login username +char password[] = "password"; // MySQL user login password + +EthernetClient client; +MySQL_Connection conn((Client *)&client); + +void setup() { + EthernetClass(mac_addr); + if (conn.connect(server_addr, 3306, user, password)) { + delay(1000); + } + } +void loop() { + delay(1000); + char INSERT_SQL[] = "INSERT INTO machine.state (message) VALUES ('machine one on')"; + MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn); + cur_mem->execute(INSERT_SQL); + delete cur_mem; + delay(1000); + }