help 
sorry i wanna ask 
how to save data logger with sd card module in arduino? and what i must add to my sketch?
my project for my final test, it is control lamp with esp8266, but have no data log, i wanna add data log with sd card module, thanks
my sketch
#include 
#define DEBUG true
SoftwareSerial esp8266(6,7); // tx 6, rx 7
void setup() 
{ 
Serial.begin(9600); 
esp8266.begin(9600); // your esp’s baud rate might be different
pinMode(10,OUTPUT); 
digitalWrite(10,HIGH); 
pinMode(11,OUTPUT); 
digitalWrite(11,HIGH); 
pinMode(12,OUTPUT); 
digitalWrite(12,HIGH); 
pinMode(13,OUTPUT); 
digitalWrite(13,HIGH);
/* 
//PIN2 
pinMode(2,OUTPUT); 
digitalWrite(2, HIGH); 
//PIN3 
pinMode(3,OUTPUT); 
digitalWrite(3,HIGH); 
//PIN4 
pinMode(4,OUTPUT); 
digitalWrite(4,HIGH); 
//PIN5 
pinMode(5,OUTPUT); 
digitalWrite(5,HIGH); 
//PIN6 
pinMode(6,OUTPUT); 
digitalWrite(6,HIGH); 
//PIN7 
pinMode(7,OUTPUT); 
digitalWrite(7,HIGH); 
//PIN8 
pinMode(8,OUTPUT); 
digitalWrite(8,HIGH); 
//PIN9 
pinMode(9,OUTPUT); 
digitalWrite(9,HIGH); 
*/
// Reset modul 
sendCommand(‘AT+RST\r\n’,2000,DEBUG); 
// Konfigurasikan sebagai Akses poin 
sendCommand(‘AT+CWMODE=3\r\n’,1000,DEBUG); 
// Sesuaikan dengan SSID dan Password 
sendCommand(‘AT+CWJAP=\’UBL Penguin\’,\’M4s1hY4ngL4m4#$\’\r\n’,10000,DEBUG); 
// sendCommand(‘AT+CWJAP=\’panadol\’,\’cobaajadulu\’\r\n’,10000,DEBUG); 
// Mendapatkan IP adress 
sendCommand(‘AT+CIFSR\r\n’,1000,DEBUG); 
// Konfigurasikan untuk multiple connection 
sendCommand(‘AT+CIPMUX=1\r\n’,1000,DEBUG); 
// Aktifkan server pada port 80 
sendCommand(‘AT+CIPSERVER=1,80\r\n’,1000,DEBUG);
Serial.println(‘Arduino Siap’);
}
void loop() 
{ 
if(esp8266.available()) // check if the esp is sending a message 
{
if(esp8266.find(‘+IPD,’)) 
{ 
delay(1000); // wait for the serial buffer to fill up (read all the serial data) 
// get the connection id so that we can then disconnect 
int connectionId = esp8266.read()-48; // subtract 48 because the read() function returns 
// the ASCII decimal value and 0 (the first decimal number) starts at 48
esp8266.find(‘pin=’); // advance cursor to ‘pin=’
int pinNumber = (esp8266.read()-48); // get first number i.e. if the pin 13 then the 1st number is 1 
int secondNumber = (esp8266.read()-48); 
if(secondNumber>=0 && secondNumber<=9)  
{ 
pinNumber*=10; 
pinNumber +=secondNumber; // get second number, i.e. if the pin number is 13 then the 2nd number is 3, then add to the first number 
}
digitalWrite(pinNumber, !digitalRead(pinNumber)); // toggle pin
// build string that is send back to device that is requesting pin toggle 
String content; 
content = ‘Pin ‘; 
content += pinNumber; 
content += ‘ is ‘;
if(digitalRead(pinNumber)) 
{ 
content += ‘OFF’; 
} 
else 
{ 
content += ‘ON’; 
}
sendHTTPResponse(connectionId,content);
/* 
//make close command 
String closeCommand = ‘AT+CIPCLOSE=’; 
closeCommand+=connectionId; // append connection id 
closeCommand+=’\r\n’;
sendCommand(closeCommand,1000,DEBUG); // close connection 
*/ 
} 
} 
}
/* 
* Name: sendData 
* Description: Function used to send data to ESP8266. 
* Params: command – the data/command to send; timeout – the time to wait for a response; debug – print to Serial window?(true = yes, false = no) 
* Returns: The response from the esp8266 (if there is a reponse) 
*/ 
String sendData(String command, const int timeout, boolean debug) 
{ 
String response = ”;
int dataSize = command.length(); 
char data[dataSize]; 
command.toCharArray(data,dataSize);
esp8266.write(data,dataSize); // send the read character to the esp8266 
if(debug) 
{ 
Serial.println(‘\r\n====== HTTP Response From Arduino ======’); 
Serial.write(data,dataSize); 
Serial.println(‘\r\n========================================’); 
}
long int time = millis();
while( (time+timeout) > millis()) 
{ 
while(esp8266.available()) 
{
// The esp has data so display its output to the serial window 
char c = esp8266.read(); // read the next character. 
response+=c; 
} 
}
if(debug) 
{ 
Serial.print(response); 
}
return response; 
}
/* 
* Name: sendHTTPResponse 
* Description: Function that sends HTTP 200, HTML UTF-8 response 
*/ 
void sendHTTPResponse(int connectionId, String content) 
{
// build HTTP response 
String httpResponse; 
String httpHeader; 
// HTTP Header 
httpHeader = ‘HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=UTF-8\r\n’; 
httpHeader += ‘Content-Length: ‘; 
httpHeader += content.length(); 
httpHeader += ‘\r\n’; 
httpHeader +=’Connection: close\r\n\r\n’; 
httpResponse = httpHeader + content + ‘ ‘; // There is a bug in this code: the last character of ‘content’ is not sent, I cheated by adding this extra space 
sendCIPData(connectionId,httpResponse); 
}
/* 
* Name: sendCIPDATA 
* Description: sends a CIPSEND=
* 
*/ 
void sendCIPData(int connectionId, String data) 
{ 
String cipSend = ‘AT+CIPSEND=’; 
cipSend += connectionId; 
cipSend += ‘,’; 
cipSend +=data.length(); 
cipSend +=’\r\n’; 
sendCommand(cipSend,1000,DEBUG); 
sendData(data,1000,DEBUG); 
}
/* 
* Name: sendCommand 
* Description: Function used to send data to ESP8266. 
* Params: command – the data/command to send; timeout – the time to wait for a response; debug – print to Serial window?(true = yes, false = no) 
* Returns: The response from the esp8266 (if there is a reponse) 
*/
String sendCommand(String command, const int timeout, boolean debug) 
{ 
String response = ”;
esp8266.print(command); // send the read character to the esp8266
long int time = millis();
while( (time+timeout) > millis()) 
{ 
while(esp8266.available()) 
{
// The esp has data so display its output to the serial window 
char c = esp8266.read(); // read the next character. 
response+=c; 
} 
}
if(debug) 
{ 
Serial.print(response); 
}
return response; 
}
