Save data of temperature and humidity on MySQL with Arduino Uno and Wifly

Picture of Save data of temperature and humidity on MySQL with Arduino Uno and Wifly
Hello guys, i make this instructable for the people that  liked the electronics and the botanic, with this you have the data about  the temperatura and the humidity of your orchard and register this in a data base MySQL.

For this proyect you need some knowledge of programing in PHP and MySQL, we will make three archive .php, but this I'll explain in the following steps.
Remove these adsRemove these ads by Signing Up

Step 1: You need this

Picture of You need this
For this project, you need:

Arduino UNO or similar board  ($29.95)

WiFly Shield ($89.95)

Grove - Moisture sensor ($4.99)

Six Jumper Wires ($4.50)

DS18B20 Temperature Sensor with metal tip ($10.59)

If only  need, One protoboar ($9.58)


you need a server WEB, with PHP and database MySQL. I used the NAS of QNAP TS-110, is perfect for this project.

Step 2: Setting the temperature sensor and humidity

Picture of Setting the temperature sensor and humidity
DS18B20 sensor is connected as follows. The position pin of the sensor Grove

Step 3: Connecting all in Arduino

Picture of Connecting all in Arduino
Now, we will connect the two sensors on the Arduino shield Wifly:

-For the temperature sensor, the pin order is: GND-VCC in 5v power - SIG in digital pin 3.

-For the Moisture sensor, the pin order is: GND - 3.3V VCC in power - SIG in the analog pin 0.

Step 4: Preparing the database Mysql

In the query of NySQL you need put this code:

CREATE TABLE `your_database`.`tempmoi` (
`temp1` VARCHAR( 255 ) NOT NULL ,
`moi1` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
1-40 of 56Next »
PramodK436 minutes ago
ExclusiveT1 month ago

Hello camilo.
thanks for your nice post which was very helpful.

i want to make a data storage and monitoring using Arduino uno & Arduino ethernet shield W5100. please help me by PHP & Arduino code.

Thanks and waiting for replay.

camilo.n1012 (author)  ExclusiveT1 month ago

Hi ! In the case for the Ethernet Shiel, you only need modify the data of the Shield, then, you work with the variables "temp" and "sensorValue". If you have more doubts, write me to my email

Regards and good luck !

Hola Camilo:

Muy buen tutorial, felicidades.

Que tendria que cambiar en el script de arduino, estoy utilizando un Wifi Shield cc3000 de Adafruit en lugar del WiiFly?

camilo.n1012 (author)  Victor ManuelR1 month ago

Hola Victor ! Bueno para serte honesto, no he trabajado nunca con ese modulo, pero como el programa es genérico en sus variables, lo que te debe importar al momento de trabajar con otros módulos, es que tus variables "temp" y "sensorValue" no cambien cuando manipules el Script. Si tienes más dudas me avisas ! Exito y muchas gracias !

Nurul AqilahM5 months ago

hye.. nice posting..can you help me?because im beginner in this programming. where to put all of the code for database mysql?

camilo.n1012 (author)  Nurul AqilahM5 months ago
Hi ! For the use of MySQL you must have a server that hosted on same hosting or plan, then you only need to upload the .sql file to import the table. Greetings!

Is it possible to do the same with Ultrasonic sensor and what code is necessary to do?

how to that?im really newbie...

deepikaaa3 months ago

hi,can we implement this using arduino ethernet shield

Nurul AqilahM4 months ago

hye..where i have to put all this files?i just manually added?

KingEverest5 months ago


Can this work with water flow sensor? I need to create a similar project but to measure the flow rate of water. The sensor type i'm intending to use is SKU: POW110D3B.

Thanks and awaiting for your reply

camilo.n1012 (author)  KingEverest5 months ago
Hi !
Yes, you can, I recommend use this tutorial to get the sensor code:

Good luck !

Hola... excelente trabajo... por lo que he visto envias datos desde tu arduino a una base de datos en SQL, y la visualizas en un browser.... pero en el caso que quieras activar una señal digital, lo haces desde tu front por medio del SQL o desde tu front directamente hacia Arduino?

camilo.n1012 (author)  eddie.morochotinoco5 months ago
Hola Eddie. Si te refieres al Front-end de una señal digital, debe ser por medio del Arduino. Saludos !
Mrcalleman5 months ago


I tried the link but the page could not be found. Any idea?

Best regards Carl

dappelboom6 months ago

Thanks for the great instructions!

one small error/typo found in the arduino code:

should be:

Being dyslectic it took my 20 minutes to figure this out (-:

But once I found the error, ot worked like a charm and was easily adjusted for my needs.

camilo.n1012 (author)  dappelboom6 months ago

Hi ! Thanks for correct the mistake, not pass without noticing. I've already changed the page. Thank you very much!

ivanvarella6 months ago

Hey guys, I am new here. How can I download the files (.php and .ino)?

Thanks. :)

camilo.n1012 (author)  ivanvarella6 months ago
Hi Ivan ! This is the link where you can download the files :

Good lucky !

Hello. I'm doing a project that is based on receiving data of temperature, wind speed and things like that. But I'm using Arduino Yún in case of Arduino Uno+Wifly.

Which differences will be having the code?

camilo.n1012 (author)  oscar.r.gallardo.376 months ago
Hi Oscar, well, for your case, I recommend you read this Instructables:

The difference lies in Bridge and in which language you want to work with to the database, if PHO or Python. It will depend on your project.

If you need more information about working with databases Arduino YUN, please tell me to help.

Many luck!
Amirul928 months ago

hello. I just want to asking about the connect.php. What do you mean by "your_ipserver" ?

camilo.n1012 (author)  Amirul928 months ago
Hi, "your_ip server" is the address where you host the server MySQL. In this case, is "", to connect the localhost.

hai. I'm having a problem with the arduino coding. It said as shown in the image:

camilo.n1012 (author)  Amirul928 months ago

This error is because you have not included the OneWire library, I recommend you download the version 2.0 from here:

OmkarD11 months ago

Hi Camilo,

Nice tutorial !!

I am trying to upload temperature from temperature sensor. I am using temperature sensor, arduino uno, arduino ethernet shield and RJ 45 cable. I am using Xampp( database running on my PC. I have created a table(temp) in this database(temp_database). I have saved php files in my computer at C:xampp/htdocs/temp_database. I have hooked up Ethernet Shield to one of internet ports in my home. After all this i don't find table getting updated by temperature values. Is there any mistake? Please guide me.Here is the source code for Arduino:

#include "SPI.h"

#include "Ethernet.h"

const int temperaturePin = A0;

byte mac[] = { 0x90, 0xA2, 0xDB, 0x0F, 0x3A, 0xDF };

byte ip[] = { 131, 247, 19, 140 }; this is the ip address for Ethernet Shield

byte gateway[] = { 131, 225, 3, 254 };

byte subnet[] = { 255, 255, 252, 0 };

EthernetClient client ;

char server[] = "";

void setup() {

// Open serial communications and wait for port to open:


while (!Serial) {

; // wait for serial port to connect. Needed for Leonardo only


// start the Ethernet connection:

if (Ethernet.begin(mac) == 0) {

Serial.println("Failed to configure Ethernet using DHCP");

// no point in carrying on, so do nothing forevermore:

// try to congifure using IP address instead of DHCP:

Ethernet.begin(mac, ip);


// give the Ethernet shield a second to initialize:




void loop()


if( client.connect(server, 80))


float tem = getTemp();

Serial.println( tem );

client.print( "GET /add.php?");


client.print( tem );

client.println( " HTTP/1.1");

client.println( "Host: localhost" );

client.println( "Content-Type: application/x-www-form-urlencoded" );

client.println( "Connection: close" );





delay( 5000 );


float getTemp() {

float voltage, V,t ;

voltage = analogRead(temperaturePin) ;

V = voltage * 0.004882814 ;

t = (V - 0.5) * 100.0;

return t;


Here is the conec.php file


function Conection(){

if (!($link=mysql_connect("localhost","root","8282"))) {



if (!mysql_select_db("temp_database",$link)){



return $link;



Here is the add.php file:




$Sql="INSERT INTO 'temp'('temp1') VALUE ('".$_GET["temp1"]."')";


header("Location: insertareg.php");


Here is the insertareg.php file:



<title>Data of Sensor</title>



<h1>Data from the temperature sensor</h1>

<form action="add.php" method="get">



<td>Temperature </td>

<td><input type="text" name="temp1" size="20" maxlength="30"></td>



<input type="submit" name="accion" value="Grabar">






$result=mysql_query("select * from temp order by id desc",$link);


<table border="1" cellspacing="1" cellpadding="1">


<td> Temperature  </td>



while($row = mysql_fetch_array($result)) {

printf("<tr><td>  %s </td></tr>", $row["temp1"]);







jbuenaseda1 year ago

Hi! I'm having an error in instareg.php It says

Warning: mysql_select_db() expects parameter 2 to be resource, object given in C:\xampp\htdocs\WEB2\php_files\conec.php on line 9

Can\'t use sensordata :

what should I do in here? anyone help?

jbuenaseda1 year ago

Hi! What will I write in this? Can you provide an example?

if (!($link=mysql_connect("your_ipserver","your_user","your_pass")))

fabmsg1 year ago

Hi! very nice tutorial. thanks!

is there any Ethernet version?

Hi! Nice tutorial!

I have a question

Where specifically are suppose to be the add.php, conec.php, insertareg.php???

Thanks for your time! :)

camilo.n1012 (author)  thernandez colon1 year ago

Hi ! These files must be hosted on your serve to be consulted for the database.

Much success and regards !

Hi Camilo! Thanks for your answer.

Can I know what library for the WiFly Antenna did you used in this project?

I have try with two and the program and I get errors such as:

"byte has not been declared"

"Client has not been declared"

I think that must be a problem with the library I am using :)

Thanks a lot for your help! ;)

camilo.n1012 (author)  thernandez colon1 year ago

Hi ! c:

I recommend that you download it from Github, this link:

In all modes, being very honest, it is recommended that if you work with Arduino and Wifi, you better have your the Arduino YUN.

If you have further questions do not hesitate to say them c:

Regards !!

Hi Camilo,

Did you have the problem "Client has not been declared"?

I am using the same library that you used and im getting this problem. Please if you solve it help me :)

Thanks for your help ;)

I bought the Arduino UNO R3 Recently :(

Did the Arduino UNO gave you some problem in this project?

Hello I have a project of home automation and I am trying to program the wifly, I have configured this module .I want to actually insert the sensor values from the arduino and display it in a web interface and save them in the database mysql I have tested this example but the table is still empty.Also, i dont understand why the instruction of GET is shown in the serial !!! , Can you help me please?

I'am using arduino uno + WIFLY RN-171 + XBEE shield
this is the execution of the code :

Sans titre.png
darrigan1 year ago

Hi! Why did you write


and not



Thank you.

Turbovix2 years ago
Dear, to perform the build I get the following message:

In file included from C:\Arduino\arduino-1.0.1\libraries\WiFly/WiFly.h:4,
from wifly_twosensors.cpp:13:
C:\Arduino\arduino-1.0.1\libraries\WiFly/SpiUart.h:62: error: conflicting return type specified for 'virtual void SpiUartDevice::write(byte)'
C:\Arduino\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'
In file included from C:\Arduino\arduino-1.0.1\libraries\WiFly/WiFly.h:8,
from wifly_twosensors.cpp:13:
C:\Arduino\arduino-1.0.1\libraries\WiFly/Client.h:21: error: conflicting return type specified for 'virtual void Client::write(byte)'
C:\Arduino\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'
C:\Arduino\arduino-1.0.1\libraries\WiFly/Client.h:23: error: conflicting return type specified for 'virtual void Client::write(const uint8_t*, size_t)'
C:\Arduino\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:50: error: overriding 'virtual size_t Print::write(const uint8_t*, size_t)'

Hi, do u solve the problem? i also facing it ><

1-40 of 56Next »