Components and supplies
Photo cell sensor
adafruit assembled data logging shield
Arduino UNO
TMP36- Analog Temperature sensor
Project description
Code
Data Logging of underwater temperature and luminosity
c_cpp
1#include <SPI.h> 2#include <SD.h> 3#include <Wire.h> 4#include "RTClib.h" 5//Πρόγραμμα καταγραφής δεδομένων 6#define LOG_INTERVAL 30000 // καθέ πότε θα καταγράφονται τα δεδομένα 7 8// Τα pin για τα ενσωματωμένα LED 9#define redLEDpin 3 10#define greenLEDpin 4 11 12// Τα ανολογικά pin για τα δεδομένα 13#define tempPin 0 //Θερμοκρασία στο 0 14#define photoPin 1 //Ο αισθητήρας φωτεινότητας στο Pin Εισόδου 1 15RTC_DS1307 RTC; // Καθορισμός του αντικειμένου για την μέτρηση πραγματικού χρόνου Time Clock object 16 17 18// Για την σύνδεση της κάρτας μνήμης 19const int chipSelect = 10; 20 21// Το αρχείο που θα δημιουργηθεί στην κάρτα μνήμης 22File logfile; 23 24 25void setup() { 26 Serial.begin(38400); 27 Serial.println(); 28 29 Serial.print("Initializing SD card..."); 30 pinMode(10, OUTPUT); 31 // Έλεγχος της κάρτας μνήμης 32 if (!SD.begin(chipSelect)) { 33 Serial.println("Card failed, or not present"); 34 // Τέλειωσε 35 return; 36 } 37 Serial.println("card initialized."); 38 logfile = SD.open("Argolith.csv", FILE_WRITE); //Δημιουργία του αρχείου και άνοιγμα για να γράψουμε 39 if (! logfile) { 40 41 Serial.print("couldnt create file"); 42 } 43 Serial.print("Logging to: "); 44 Serial.println("Argolit.csv"); 45 Wire.begin(); 46 if (!RTC.begin()) { 47 logfile.println("RTC failed"); 48 Serial.println("RTC failed"); 49 } 50 51 logfile.println("Millis,Time,Temperature,Lightness,Characteristic"); //Η πρώτη γραμμή θα έχει τις ενδείξεις milliseconds, time, θερμοκρασία 52 53 Serial.println("Millis,Time,Temperature,Lightness,Characteristic"); 54 pinMode(redLEDpin, OUTPUT); 55 pinMode(greenLEDpin, OUTPUT); 56 logfile.close(); //κλείνουμε το αρχείο για να γράψει τα δεδομένα 57 58} 59void loop() { 60 logfile = SD.open("Argolith.csv", FILE_WRITE); //ξανανοίγουμε το αρχείο για να γράψουμε δεδομένα 61 DateTime now; //διαβάζουμε τον χρόνο 62 63 // Η καθυστέρηση για την καταγραφή του χρόνου 64 delay((LOG_INTERVAL -1) - (millis() % LOG_INTERVAL)); 65 digitalWrite(greenLEDpin, HIGH); 66 67 // Πόσα δευτερόλεπτα έχουν περάσει από την λειτουργία του Arduino 68 uint32_t m = millis(); 69 logfile.print(m); // Γράψε το χρόνο στο αρχείο 70 logfile.print(", "); 71 Serial.print(m); //Γράψε στη σειριακή θύρα 72 Serial.print(", "); 73 74// Διάβασε την χρονική στιγμή. 75now = RTC.now(); 76// Γράψε την χρονική στιγμή στο αρχείο 77logfile.print(now.year(), DEC); 78logfile.print("/"); 79logfile.print(now.month(), DEC); 80logfile.print("/"); 81logfile.print(now.day(), DEC); 82logfile.print(" "); 83logfile.print(now.hour(), DEC); 84logfile.print(":"); 85logfile.print(now.minute(), DEC); 86logfile.print(":"); 87logfile.print(now.second(), DEC); 88Serial.print(now.year(), DEC); 89Serial.print("/"); 90Serial.print(now.month(), DEC); 91Serial.print("/"); 92Serial.print(now.day(), DEC); 93Serial.print(" "); 94Serial.print(now.hour(), DEC); 95Serial.print(":"); 96Serial.print(now.minute(), DEC); 97Serial.print(":"); 98Serial.print(now.second(), DEC); 99delay(10); 100//Ξεκίνα την καταγραφή της θερμοκρασίας 101int sum=0; 102for (int i=0;i<16;i++) 103 { 104 int tempReading = analogRead(tempPin); 105 sum+=tempReading; 106 } 107// Μετατροπή της αναλογικής εισόδου σε θερμοκρασία 108float temperatureC = sum* 0.48828125/16; 109logfile.print(", "); 110logfile.print(temperatureC); 111Serial.print(", "); 112Serial.print(temperatureC); 113//Γράψε την φωτεινότητα 114 int photoval = analogRead(photoPin); 115 logfile.print(", "); 116 logfile.print(photoval); 117 Serial.print(", "); 118 Serial.print (photoval); 119 120 if (photoval < 10) { 121 logfile.print(", "); 122 logfile.println("Dark"); 123 Serial.println(", Dark"); 124 } 125 else if (photoval < 200) { 126 logfile.print(", "); 127 logfile.println("Dim"); 128 Serial.println(", Dim"); 129 } 130 else if (photoval < 500) { 131 logfile.print(", "); 132 logfile.println("Light"); 133 Serial.println(", Light"); 134 } 135 else if (photoval < 800) { 136 logfile.print(", "); 137 logfile.println("Bright"); 138 Serial.println(", Bright"); 139 } 140 else { 141 logfile.print(", "); 142 logfile.println("Very bright"); 143 Serial.println(", Very bright"); 144 } 145 logfile.close(); 146digitalWrite(greenLEDpin, LOW); 147 148 149} 150
Data Logging of underwater temperature and luminosity
c_cpp
1#include <SPI.h> 2#include <SD.h> 3#include <Wire.h> 4#include "RTClib.h" 5//Πρόγραμμα καταγραφής δεδομένων 6#define LOG_INTERVAL 30000 // καθέ πότε θα καταγράφονται τα δεδομένα 7 8// Τα pin για τα ενσωματωμένα LED 9#define redLEDpin 3 10#define greenLEDpin 4 11 12// Τα ανολογικά pin για τα δεδομένα 13#define tempPin 0 //Θερμοκρασία στο 0 14#define photoPin 1 //Ο αισθητήρας φωτεινότητας στο Pin Εισόδου 1 15RTC_DS1307 RTC; // Καθορισμός του αντικειμένου για την μέτρηση πραγματικού χρόνου Time Clock object 16 17 18// Για την σύνδεση της κάρτας μνήμης 19const int chipSelect = 10; 20 21// Το αρχείο που θα δημιουργηθεί στην κάρτα μνήμης 22File logfile; 23 24 25void setup() { 26 Serial.begin(38400); 27 Serial.println(); 28 29 Serial.print("Initializing SD card..."); 30 pinMode(10, OUTPUT); 31 // Έλεγχος της κάρτας μνήμης 32 if (!SD.begin(chipSelect)) { 33 Serial.println("Card failed, or not present"); 34 // Τέλειωσε 35 return; 36 } 37 Serial.println("card initialized."); 38 logfile = SD.open("Argolith.csv", FILE_WRITE); //Δημιουργία του αρχείου και άνοιγμα για να γράψουμε 39 if (! logfile) { 40 41 Serial.print("couldnt create file"); 42 } 43 Serial.print("Logging to: "); 44 Serial.println("Argolit.csv"); 45 Wire.begin(); 46 if (!RTC.begin()) { 47 logfile.println("RTC failed"); 48 Serial.println("RTC failed"); 49 } 50 51 logfile.println("Millis,Time,Temperature,Lightness,Characteristic"); //Η πρώτη γραμμή θα έχει τις ενδείξεις milliseconds, time, θερμοκρασία 52 53 Serial.println("Millis,Time,Temperature,Lightness,Characteristic"); 54 pinMode(redLEDpin, OUTPUT); 55 pinMode(greenLEDpin, OUTPUT); 56 logfile.close(); //κλείνουμε το αρχείο για να γράψει τα δεδομένα 57 58} 59void loop() { 60 logfile = SD.open("Argolith.csv", FILE_WRITE); //ξανανοίγουμε το αρχείο για να γράψουμε δεδομένα 61 DateTime now; //διαβάζουμε τον χρόνο 62 63 // Η καθυστέρηση για την καταγραφή του χρόνου 64 delay((LOG_INTERVAL -1) - (millis() % LOG_INTERVAL)); 65 digitalWrite(greenLEDpin, HIGH); 66 67 // Πόσα δευτερόλεπτα έχουν περάσει από την λειτουργία του Arduino 68 uint32_t m = millis(); 69 logfile.print(m); // Γράψε το χρόνο στο αρχείο 70 logfile.print(", "); 71 Serial.print(m); //Γράψε στη σειριακή θύρα 72 Serial.print(", "); 73 74// Διάβασε την χρονική στιγμή. 75now = RTC.now(); 76// Γράψε την χρονική στιγμή στο αρχείο 77logfile.print(now.year(), DEC); 78logfile.print("/"); 79logfile.print(now.month(), DEC); 80logfile.print("/"); 81logfile.print(now.day(), DEC); 82logfile.print(" "); 83logfile.print(now.hour(), DEC); 84logfile.print(":"); 85logfile.print(now.minute(), DEC); 86logfile.print(":"); 87logfile.print(now.second(), DEC); 88Serial.print(now.year(), DEC); 89Serial.print("/"); 90Serial.print(now.month(), DEC); 91Serial.print("/"); 92Serial.print(now.day(), DEC); 93Serial.print(" "); 94Serial.print(now.hour(), DEC); 95Serial.print(":"); 96Serial.print(now.minute(), DEC); 97Serial.print(":"); 98Serial.print(now.second(), DEC); 99delay(10); 100//Ξεκίνα την καταγραφή της θερμοκρασίας 101int sum=0; 102for (int i=0;i<16;i++) 103 { 104 int tempReading = analogRead(tempPin); 105 sum+=tempReading; 106 } 107// Μετατροπή της αναλογικής εισόδου σε θερμοκρασία 108float temperatureC = sum* 0.48828125/16; 109logfile.print(", "); 110logfile.print(temperatureC); 111Serial.print(", "); 112Serial.print(temperatureC); 113//Γράψε την φωτεινότητα 114 int photoval = analogRead(photoPin); 115 logfile.print(", "); 116 logfile.print(photoval); 117 Serial.print(", "); 118 Serial.print (photoval); 119 120 if (photoval < 10) { 121 logfile.print(", "); 122 logfile.println("Dark"); 123 Serial.println(", Dark"); 124 } 125 else if (photoval < 200) { 126 logfile.print(", "); 127 logfile.println("Dim"); 128 Serial.println(", Dim"); 129 } 130 else if (photoval < 500) { 131 logfile.print(", "); 132 logfile.println("Light"); 133 Serial.println(", Light"); 134 } 135 else if (photoval < 800) { 136 logfile.print(", "); 137 logfile.println("Bright"); 138 Serial.println(", Bright"); 139 } 140 else { 141 logfile.print(", "); 142 logfile.println("Very bright"); 143 Serial.println(", Very bright"); 144 } 145 logfile.close(); 146digitalWrite(greenLEDpin, LOW); 147 148 149} 150
Downloadable files
Temperature sensor measurement connection
Temperature sensor measurement connection
Temperature sensor measurement connection
Temperature sensor measurement connection
Light sensor measurement connection
Light sensor measurement connection
Comments
Only logged in users can leave comments
EleftheriaKaragiorgou
0 Followers
•0 Projects
Table of contents
Intro
6
0