Advertisement
dianartanto

datalogger

Jun 22nd, 2015
558
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.93 KB | None | 0 0
  1. #include <SPI.h>
  2. #include <SD.h>
  3. #include <Wire.h>
  4. #include <DS3231.h>
  5. File root, oke;
  6. DS3231 RTC;
  7.  
  8. const int chipSelect = 10;
  9. int detik=0;
  10. int menit=0;
  11. int jam=0;
  12. boolean dataLengkap=false;
  13. String dataString="";
  14. String dataTgl="";
  15. String dataku="";
  16. boolean katalengkap=false;
  17. boolean ambilFile=false;
  18. int mode=4;//default
  19.  
  20. void setup(){
  21.   Wire.begin();
  22.   RTC.begin();
  23.   Serial.begin(9600);
  24.   pinMode(10, OUTPUT);
  25.   if (!SD.begin(10))return;
  26. }
  27.  
  28. void loop(){
  29.      DateTime now = RTC.now();    
  30.    dataString="";
  31.    dataString=String(now.date())+'/';
  32.    dataString+=String(now.month())+'/';
  33.    dataString+=String(now.year())+',';
  34.    dataString+=String(now.hour())+':';
  35.    dataString+=String(now.minute())+':';
  36.    dataString+=String(now.second())+',';
  37.    
  38.    dataTgl="";
  39.    dataTgl='z'+String(now.date());
  40.    dataTgl+=String(now.month());
  41.    dataTgl+=String(now.year())+".txt";  
  42. //   dataTgl='z'+String(now.minute())+".txt";
  43.  
  44. if(mode==1){
  45.   if(now.second()==0 && menit!=now.minute()){
  46.         simpan();
  47.         menit=now.minute();}}
  48. if(mode==2){
  49.       if(now.minute()%5==0 && detik!=now.second() && menit!=now.minute()){
  50.         simpan();
  51.         detik=now.second();
  52.         menit=now.minute();}}
  53. if(mode==3){
  54.       if(now.minute()%10==0 && detik!=now.second() && menit!=now.minute()){
  55.         simpan();
  56.         detik=now.second();
  57.         menit=now.minute();}}
  58. if(mode==4){
  59.       if(now.minute()%15==0 && detik!=now.second() && menit!=now.minute()){
  60.         simpan();
  61.         detik=now.second();
  62.         menit=now.minute();}}
  63. if(mode==5){
  64.       if(now.minute()%20==0 && detik!=now.second() && menit!=now.minute()){
  65.         simpan();
  66.         detik=now.second();
  67.         menit=now.minute();}}
  68. if(mode==6){
  69.       if(now.minute()%30==0 && detik!=now.second() && menit!=now.minute()){
  70.         simpan();
  71.         detik=now.second();
  72.         menit=now.minute();}}
  73. if(mode==7){
  74.       if(now.second()==0 && now.minute()==0 && jam!=now.hour()){
  75.         simpan();
  76.         jam=now.hour();}}
  77.  
  78. if(katalengkap){
  79.     if(dataku[0]=='j') {
  80.       dataku=dataku.substring(1);
  81.       char namafileku[dataku.length()];
  82.       dataku.toCharArray(namafileku,sizeof(namafileku));    
  83.       SD.remove(namafileku);}
  84.     else{
  85.       char namafileku[dataku.length()];
  86.       dataku.toCharArray(namafileku,sizeof(namafileku));    
  87.       File dataFile = SD.open(namafileku);
  88.       if (dataFile) {
  89.       while(dataFile.available()){
  90.       Serial.write(dataFile.read());}
  91.       dataFile.close();}}
  92.     dataku="";
  93.     katalengkap=false;}
  94.      
  95. if(ambilFile){
  96.   root = SD.open("/");
  97.   printDirectory(root);
  98.   ambilFile=false;}
  99. }
  100.  
  101. void printDirectory(File sip) {
  102.   sip.rewindDirectory();
  103.    while(true) {    
  104.      File masuk = sip.openNextFile();
  105.      if (!masuk) {
  106.        break;}
  107.        Serial.println(masuk.name());
  108.       File dataFile = SD.open(masuk.name());
  109.       if (dataFile) {
  110.       while(dataFile.available()){
  111.       Serial.write(dataFile.read());}
  112.       dataFile.close();}
  113.       Serial.println('x');
  114.       SD.remove(masuk.name());
  115.      masuk.close();}
  116. }
  117.  
  118. void serialEvent(){
  119.   while(Serial.available()){
  120.     char ambil=(char)Serial.read();
  121.     if(ambil=='a') mode=1;
  122.     if(ambil=='b') mode=2;
  123.     if(ambil=='c') mode=3;
  124.     if(ambil=='d') mode=4;
  125.     if(ambil=='e') mode=5;
  126.     if(ambil=='f') mode=6;
  127.     if(ambil=='g') mode=7;
  128.     if(ambil=='h') ambilFile=true;
  129.     else dataku+=ambil;
  130.    if(ambil=='\n') katalengkap=true;
  131.  }}
  132.  
  133. void simpan(){
  134.   for (int analogPin = 0; analogPin < 3; analogPin++) {
  135.     int sensor = analogRead(analogPin);
  136.     dataString += String(sensor);
  137.     if (analogPin < 2) dataString += ',';}
  138.   char namafileku[dataTgl.length()+1];
  139.   dataTgl.toCharArray(namafileku,sizeof(namafileku));    
  140.   File dataFile = SD.open(namafileku,FILE_WRITE);
  141.   if (dataFile) {
  142.       dataFile.print('w');
  143.       dataFile.println(dataString);
  144.       dataFile.close();
  145.       Serial.println(dataString);}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement