Kaizen 30.12.2016 20:58 Zgłoś naruszenie Udostępnij Napisano 30 Grudnia 2016 Swoim mało programistycznym rozumkiem ogarnąłem jakoś i posklejałem z internetowych tutoriali odczyt z czujników DS18B20. Pod choinkę dostałem coś takiego: https://www.aliexpress.com/item/Free-Shipping-New-XD-05-Logging-Recorder-Data-Logger-Module-Shield-V1-0-for-Arduino-UNO/1871088695.html Chciałem to razem z Arduino Uno zasilanego z pakietu AA zostawić na budowie (aktualnie stan zero), żeby już teraz zacząć logować temperatury (mam czujniki schowane już w ławie, w zasypce pod chudziakiem wewnątrz domu, w ścianie fundamentowej i jeszcze w kilku miejscach - teraz w sumie 5, ale szybko będzie przybywało bo tylko czekają na postęp prac budowlanych). Pomoże ktoś przerobić? RTC chodzi, karta SD też jest widoczna - "tylko" przerobienie skryptu, żeby zapisywał do pliku zamiast na ekran mnie przerosło. #include //Libraries we need #include #include #include #define ONE_WIRE_BUS_PIN 2 // The pin that we are using OneWire oneWire(ONE_WIRE_BUS_PIN); // Setup oneWire DallasTemperature sensors(&oneWire);// oneWire to Dallas Temperature. RTC_DS1307 RTC; // define the Real Time Clock object // Assign the addresses of your temp sensors.You must use 1 wire adress finder DeviceAddress Probe01 = { 0x28, 0xFF, 0x8D, 0x40, 0x80, 0x16, 0x5, 0x94 }; DeviceAddress Probe02 = { 0x28, 0xFF, 0xD5, 0x1D, 0x80, 0x16, 0x5, 0x7A }; DeviceAddress Probe03 = { 0x28, 0xFF, 0xB9, 0x67, 0x80, 0x16, 0x5, 0xF9 }; DeviceAddress Probe04 = { 0x28, 0xFF, 0x91, 0x6A, 0x80, 0x16, 0x5, 0xA2 }; DeviceAddress Probe05 = { 0x28, 0xFF, 0x92, 0xD, 0x80, 0x16, 0x5, 0xFA }; DeviceAddress Probe06 = { 0x28, 0xFF, 0x8A, 0x27, 0x80, 0x16, 0x4, 0x8D }; DeviceAddress Probe07 = { 0x28, 0xFF, 0x8A, 0x13, 0x80, 0x16, 0x3, 0x48 }; DeviceAddress Probe08 = { 0x28, 0xFF, 0x99, 0x4A, 0x80, 0x16, 0x4, 0xB2 }; DeviceAddress Probe09 = { 0x28, 0xFF, 0x49, 0x27, 0x80, 0x16, 0x4, 0xE1 }; DeviceAddress Probe10 = { 0x28, 0xFF, 0xBF, 0x4D, 0x80, 0x16, 0x4, 0x50 }; DeviceAddress Probe11 = { 0x28, 0xFF, 0xFB, 0x2D, 0x80, 0x16, 0x3, 0xB5 }; DeviceAddress Probe12 = { 0x28, 0xFF, 0x35, 0x21, 0x80, 0x16, 0x4, 0xA4 }; DeviceAddress Probe13 = { 0x28, 0xFF, 0x4A, 0xD9, 0x43, 0x16, 0x3, 0xFF }; DeviceAddress Probe14 = { 0x28, 0xFF, 0xC, 0xC3, 0x43, 0x16, 0x4, 0x2A }; DeviceAddress Probe15 = { 0x28, 0xFF, 0x36, 0xC8, 0x43, 0x16, 0x3, 0x4 }; DeviceAddress Probe16 = { 0x28, 0xFF, 0xB2, 0x32, 0x44, 0x16, 0x3, 0xC0 }; DeviceAddress Probe17 = { 0x28, 0xFF, 0xD4, 0xFD, 0x43, 0x16, 0x4, 0x17 }; DeviceAddress Probe18 = { 0x28, 0xFF, 0xFB, 0xDC, 0x43, 0x16, 0x3, 0xFC }; DeviceAddress Probe19 = { 0x28, 0xFF, 0x4C, 0xCB, 0x43, 0x16, 0x3, 0x5C }; DeviceAddress Probe20 = { 0x28, 0xFF, 0x81, 0xFE, 0x43, 0x16, 0x3, 0x5B }; DeviceAddress Probe21 = { 0x28, 0xFF, 0xFE, 0xE6, 0x43, 0x16, 0x4, 0xFE }; DeviceAddress Probe22 = { 0x28, 0xFF, 0x94, 0xC2, 0x43, 0x16, 0x4, 0x2C }; void setup() { Serial.begin(9600); //Must match with the serial monitor Wire.begin(); RTC.begin(); sensors.begin(); // Initialize the Temperature measurement library // set the resolution to 10 bit (Can be 9 to 12 bits .. lower is faster) sensors.setResolution(Probe01, 10); sensors.setResolution(Probe02, 10); sensors.setResolution(Probe03, 10); sensors.setResolution(Probe04, 10); sensors.setResolution(Probe05, 10); sensors.setResolution(Probe06, 10); sensors.setResolution(Probe07, 10); sensors.setResolution(Probe08, 10); sensors.setResolution(Probe09, 10); sensors.setResolution(Probe10, 10); sensors.setResolution(Probe11, 10); sensors.setResolution(Probe12, 10); sensors.setResolution(Probe13, 10); sensors.setResolution(Probe14, 10); sensors.setResolution(Probe15, 10); sensors.setResolution(Probe16, 10); sensors.setResolution(Probe17, 10); sensors.setResolution(Probe18, 10); sensors.setResolution(Probe19, 10); sensors.setResolution(Probe20, 10); sensors.setResolution(Probe21, 10); sensors.setResolution(Probe22, 10); Serial.print(" Date/Time Temp1 Temp2 Temp3 Temp4 Temp5 Temp6 Temp7 Temp8 Temp9 Temp10 Temp11 Temp12 Temp13 Temp14 Temp15 Temp16 Temp17 Temp18 Temp19 Temp20 Temp21 Temp22"); //Print headers Serial.println(); } void loop() { DateTime now = RTC.now(); // Clock call //-------------Once we have called the clock ,we compare min and sec and print every 10 minutes--------- if(now.minute()==00 && now.second()==00){ now = RTC.now(); // Print date and time Serial.print(now.year(), DEC); Serial.print("/"); Serial.print(now.month(), DEC); Serial.print("/"); Serial.print(now.day(), DEC); Serial.print(" "); Serial.print(now.hour(), DEC); Serial.print(":"); Serial.print(now.minute(), DEC); Serial.print(":"); Serial.print(now.second(), DEC); // Command all devices on bus to read temperature sensors.requestTemperatures(); Serial.print(" "); //Print temp printTemperature(Probe01); Serial.print(" "); Serial.print(" "); printTemperature(Probe02); Serial.print(" "); Serial.print(" "); printTemperature(Probe03); Serial.print(" "); Serial.print(" "); printTemperature(Probe04); Serial.print(" "); Serial.print(" "); printTemperature(Probe05); Serial.print(" "); Serial.print(" "); printTemperature(Probe06); Serial.print(" "); Serial.print(" "); printTemperature(Probe07); Serial.print(" "); Serial.print(" "); printTemperature(Probe08); Serial.print(" "); Serial.print(" "); printTemperature(Probe09); Serial.print(" "); Serial.print(" "); printTemperature(Probe10); Serial.print(" "); Serial.print(" "); printTemperature(Probe11); Serial.print(" "); Serial.print(" "); printTemperature(Probe12); Serial.print(" "); Serial.print(" "); printTemperature(Probe13); Serial.print(" "); Serial.print(" "); printTemperature(Probe14); Serial.print(" "); Serial.print(" "); printTemperature(Probe15); Serial.print(" "); Serial.print(" "); printTemperature(Probe16); Serial.print(" "); Serial.print(" "); printTemperature(Probe17); Serial.print(" "); Serial.print(" "); printTemperature(Probe18); Serial.print(" "); Serial.print(" "); printTemperature(Probe19); Serial.print(" "); Serial.print(" "); printTemperature(Probe20); Serial.print(" "); Serial.print(" "); printTemperature(Probe21); Serial.print(" "); Serial.print(" "); printTemperature(Probe22); Serial.println(); } //-------------We are repeating the code, adding 10 20 30 40 50 ------------------------------------- if(now.minute()==10 && now.second()==00){ now = RTC.now(); // Print date and time Serial.print(now.year(), DEC); Serial.print("/"); Serial.print(now.month(), DEC); Serial.print("/"); Serial.print(now.day(), DEC); Serial.print(" "); Serial.print(now.hour(), DEC); Serial.print(":"); Serial.print(now.minute(), DEC); Serial.print(":"); Serial.print(now.second(), DEC); // Command all devices on bus to read temperature sensors.requestTemperatures(); Serial.print(" "); //Print temp printTemperature(Probe01); Serial.print(" "); Serial.print(" "); printTemperature(Probe02); Serial.print(" "); Serial.print(" "); printTemperature(Probe03); Serial.print(" "); Serial.print(" "); printTemperature(Probe04); Serial.print(" "); Serial.print(" "); printTemperature(Probe05); Serial.print(" "); Serial.print(" "); printTemperature(Probe06); Serial.print(" "); Serial.print(" "); printTemperature(Probe07); Serial.print(" "); Serial.print(" "); printTemperature(Probe08); Serial.print(" "); Serial.print(" "); printTemperature(Probe09); Serial.print(" "); Serial.print(" "); printTemperature(Probe10); Serial.print(" "); Serial.print(" "); printTemperature(Probe11); Serial.print(" "); Serial.print(" "); printTemperature(Probe12); Serial.print(" "); Serial.print(" "); printTemperature(Probe13); Serial.print(" "); Serial.print(" "); printTemperature(Probe14); Serial.print(" "); Serial.print(" "); printTemperature(Probe15); Serial.print(" "); Serial.print(" "); printTemperature(Probe16); Serial.print(" "); Serial.print(" "); printTemperature(Probe17); Serial.print(" "); Serial.print(" "); printTemperature(Probe18); Serial.print(" "); Serial.print(" "); printTemperature(Probe19); Serial.print(" "); Serial.print(" "); printTemperature(Probe20); Serial.print(" "); Serial.print(" "); printTemperature(Probe21); Serial.print(" "); Serial.print(" "); printTemperature(Probe22); Serial.println(); } if(now.minute()==20 && now.second()==00){ now = RTC.now(); // Print date and time Serial.print(now.year(), DEC); Serial.print("/"); Serial.print(now.month(), DEC); Serial.print("/"); Serial.print(now.day(), DEC); Serial.print(" "); Serial.print(now.hour(), DEC); Serial.print(":"); Serial.print(now.minute(), DEC); Serial.print(":"); Serial.print(now.second(), DEC); // Command all devices on bus to read temperature sensors.requestTemperatures(); Serial.print(" "); //Print temp printTemperature(Probe01); Serial.print(" "); Serial.print(" "); printTemperature(Probe02); Serial.print(" "); Serial.print(" "); printTemperature(Probe03); Serial.print(" "); Serial.print(" "); printTemperature(Probe04); Serial.print(" "); Serial.print(" "); printTemperature(Probe05); Serial.print(" "); Serial.print(" "); printTemperature(Probe06); Serial.print(" "); Serial.print(" "); printTemperature(Probe07); Serial.print(" "); Serial.print(" "); printTemperature(Probe08); Serial.print(" "); Serial.print(" "); printTemperature(Probe09); Serial.print(" "); Serial.print(" "); printTemperature(Probe10); Serial.print(" "); Serial.print(" "); printTemperature(Probe11); Serial.print(" "); Serial.print(" "); printTemperature(Probe12); Serial.print(" "); Serial.print(" "); printTemperature(Probe13); Serial.print(" "); Serial.print(" "); printTemperature(Probe14); Serial.print(" "); Serial.print(" "); printTemperature(Probe15); Serial.print(" "); Serial.print(" "); printTemperature(Probe16); Serial.print(" "); Serial.print(" "); printTemperature(Probe17); Serial.print(" "); Serial.print(" "); printTemperature(Probe18); Serial.print(" "); Serial.print(" "); printTemperature(Probe19); Serial.print(" "); Serial.print(" "); printTemperature(Probe20); Serial.print(" "); Serial.print(" "); printTemperature(Probe21); Serial.print(" "); Serial.print(" "); printTemperature(Probe22); Serial.println(); } if(now.minute()==30 && now.second()==00){ now = RTC.now(); // Print date and time Serial.print(now.year(), DEC); Serial.print("/"); Serial.print(now.month(), DEC); Serial.print("/"); Serial.print(now.day(), DEC); Serial.print(" "); Serial.print(now.hour(), DEC); Serial.print(":"); Serial.print(now.minute(), DEC); Serial.print(":"); Serial.print(now.second(), DEC); // Command all devices on bus to read temperature sensors.requestTemperatures(); Serial.print(" "); //Print temp printTemperature(Probe01); Serial.print(" "); Serial.print(" "); printTemperature(Probe02); Serial.print(" "); Serial.print(" "); printTemperature(Probe03); Serial.print(" "); Serial.print(" "); printTemperature(Probe04); Serial.print(" "); Serial.print(" "); printTemperature(Probe05); Serial.print(" "); Serial.print(" "); printTemperature(Probe06); Serial.print(" "); Serial.print(" "); printTemperature(Probe07); Serial.print(" "); Serial.print(" "); printTemperature(Probe08); Serial.print(" "); Serial.print(" "); printTemperature(Probe09); Serial.print(" "); Serial.print(" "); printTemperature(Probe10); Serial.print(" "); Serial.print(" "); printTemperature(Probe11); Serial.print(" "); Serial.print(" "); printTemperature(Probe12); Serial.print(" "); Serial.print(" "); printTemperature(Probe13); Serial.print(" "); Serial.print(" "); printTemperature(Probe14); Serial.print(" "); Serial.print(" "); printTemperature(Probe15); Serial.print(" "); Serial.print(" "); printTemperature(Probe16); Serial.print(" "); Serial.print(" "); printTemperature(Probe17); Serial.print(" "); Serial.print(" "); printTemperature(Probe18); Serial.print(" "); Serial.print(" "); printTemperature(Probe19); Serial.print(" "); Serial.print(" "); printTemperature(Probe20); Serial.print(" "); Serial.print(" "); printTemperature(Probe21); Serial.print(" "); Serial.print(" "); printTemperature(Probe22); Serial.println(); } if(now.minute()==40 && now.second()==00){ now = RTC.now(); // Print date and time Serial.print(now.year(), DEC); Serial.print("/"); Serial.print(now.month(), DEC); Serial.print("/"); Serial.print(now.day(), DEC); Serial.print(" "); Serial.print(now.hour(), DEC); Serial.print(":"); Serial.print(now.minute(), DEC); Serial.print(":"); Serial.print(now.second(), DEC); // Command all devices on bus to read temperature sensors.requestTemperatures(); Serial.print(" "); //Print temp printTemperature(Probe01); Serial.print(" "); Serial.print(" "); printTemperature(Probe02); Serial.print(" "); Serial.print(" "); printTemperature(Probe03); Serial.print(" "); Serial.print(" "); printTemperature(Probe04); Serial.print(" "); Serial.print(" "); printTemperature(Probe05); Serial.print(" "); Serial.print(" "); printTemperature(Probe06); Serial.print(" "); Serial.print(" "); printTemperature(Probe07); Serial.print(" "); Serial.print(" "); printTemperature(Probe08); Serial.print(" "); Serial.print(" "); printTemperature(Probe09); Serial.print(" "); Serial.print(" "); printTemperature(Probe10); Serial.print(" "); Serial.print(" "); printTemperature(Probe11); Serial.print(" "); Serial.print(" "); printTemperature(Probe12); Serial.print(" "); Serial.print(" "); printTemperature(Probe13); Serial.print(" "); Serial.print(" "); printTemperature(Probe14); Serial.print(" "); Serial.print(" "); printTemperature(Probe15); Serial.print(" "); Serial.print(" "); printTemperature(Probe16); Serial.print(" "); Serial.print(" "); printTemperature(Probe17); Serial.print(" "); Serial.print(" "); printTemperature(Probe18); Serial.print(" "); Serial.print(" "); printTemperature(Probe19); Serial.print(" "); Serial.print(" "); printTemperature(Probe20); Serial.print(" "); Serial.print(" "); printTemperature(Probe21); Serial.print(" "); Serial.print(" "); printTemperature(Probe22); Serial.println(); } if(now.minute()==50 && now.second()==00){ now = RTC.now(); // Print date and time Serial.print(now.year(), DEC); Serial.print("/"); Serial.print(now.month(), DEC); Serial.print("/"); Serial.print(now.day(), DEC); Serial.print(" "); Serial.print(now.hour(), DEC); Serial.print(":"); Serial.print(now.minute(), DEC); Serial.print(":"); Serial.print(now.second(), DEC); // Command all devices on bus to read temperature sensors.requestTemperatures(); Serial.print(" "); //Print temp printTemperature(Probe01); Serial.print(" "); Serial.print(" "); printTemperature(Probe02); Serial.print(" "); Serial.print(" "); printTemperature(Probe03); Serial.print(" "); Serial.print(" "); printTemperature(Probe04); Serial.print(" "); Serial.print(" "); printTemperature(Probe05); Serial.print(" "); Serial.print(" "); printTemperature(Probe06); Serial.print(" "); Serial.print(" "); printTemperature(Probe07); Serial.print(" "); Serial.print(" "); printTemperature(Probe08); Serial.print(" "); Serial.print(" "); printTemperature(Probe09); Serial.print(" "); Serial.print(" "); printTemperature(Probe10); Serial.print(" "); Serial.print(" "); printTemperature(Probe11); Serial.print(" "); Serial.print(" "); printTemperature(Probe12); Serial.print(" "); Serial.print(" "); printTemperature(Probe13); Serial.print(" "); Serial.print(" "); printTemperature(Probe14); Serial.print(" "); Serial.print(" "); printTemperature(Probe15); Serial.print(" "); Serial.print(" "); printTemperature(Probe16); Serial.print(" "); Serial.print(" "); printTemperature(Probe17); Serial.print(" "); Serial.print(" "); printTemperature(Probe18); Serial.print(" "); Serial.print(" "); printTemperature(Probe19); Serial.print(" "); Serial.print(" "); printTemperature(Probe20); Serial.print(" "); Serial.print(" "); printTemperature(Probe21); Serial.print(" "); Serial.print(" "); printTemperature(Probe22); Serial.println(); } delay(1000); //One data per second } void printTemperature(DeviceAddress deviceAddress) { float tempC = sensors.getTempC(deviceAddress); Serial.print(tempC); Serial.print(" C"); } Tak, wiem że skrypt trochę prostacki, ale dzięki takiemu "ręcznemu" wklepaniu czujników wiem, który jest który - a skrypty automatycznie wykrywające podpięte czujniki tego mnie pozwalały. To zapisywanie co pełne dziesiątki minut też pewnie mało eleganckie, ale działa Cytuj Odnośnik do komentarza https://forum.murator.pl/topic/225403-arduinoamp22xds18b20-for-dummies-data-logger/ Udostępnij na innych stronach Więcej opcji udostępniania
Kaizen 06.01.2017 00:52 Autor Zgłoś naruszenie Udostępnij Napisano 6 Stycznia 2017 Po długim procesie tentegotamowania w mojej mało programistycznej głowie udało mi się sklecić coś, co (chyba) działa. Wysyła na konsolę i zapisuje na kartę.Sporo czasu mi zajęło a jeszcze się okazało, że karta microSD z adapterem Adata 2GB nie chce się dogadać z shieldem. Za to dogadują się podróbki kart Adata microSD (napisane 32GB, pokazują tyle we właściwościach, ale odczytać się daje tylko 2GB - po założeniu 2GB partycji działają jak 2GB karta bez problemu), ale nie w adapterach od kompletu. Oczywiście każda karta i adapter działa bez problemu w PC - a schield grymasi. Może komuś jeszcze się przyda. Wszelkie usprawnienia mile widziane. #include #include #include #include #include File myFile;char filename[] = "DATA.CSV";#define ONE_WIRE_BUS_PIN 2OneWire oneWire(ONE_WIRE_BUS_PIN);DallasTemperature sensors(&oneWire);RTC_DS1307 rtc;const int chipSelect = 10;float tempC, Temp01, Temp02, Temp03, Temp04, Temp05, Temp06, Temp07, Temp08, Temp09, Temp10, Temp11, Temp12, Temp13, Temp14, Temp15, Temp16, Temp17, Temp18, Temp19, Temp20, Temp21, Temp22;// Assign the addresses of your temp sensors.You must use 1 wire adress finderDeviceAddress Probe01 = { 0x28, 0xFF, 0x8D, 0x40, 0x80, 0x16, 0x5, 0x94 }; DeviceAddress Probe02 = { 0x28, 0xFF, 0xD5, 0x1D, 0x80, 0x16, 0x5, 0x7A }; DeviceAddress Probe03 = { 0x28, 0xFF, 0xB9, 0x67, 0x80, 0x16, 0x5, 0xF9 }; DeviceAddress Probe04 = { 0x28, 0xFF, 0x91, 0x6A, 0x80, 0x16, 0x5, 0xA2 }; DeviceAddress Probe05 = { 0x28, 0xFF, 0x92, 0xD, 0x80, 0x16, 0x5, 0xFA }; DeviceAddress Probe06 = { 0x28, 0xFF, 0x8A, 0x27, 0x80, 0x16, 0x4, 0x8D }; DeviceAddress Probe07 = { 0x28, 0xFF, 0x8A, 0x13, 0x80, 0x16, 0x3, 0x48 }; DeviceAddress Probe08 = { 0x28, 0xFF, 0x99, 0x4A, 0x80, 0x16, 0x4, 0xB2 }; DeviceAddress Probe09 = { 0x28, 0xFF, 0x49, 0x27, 0x80, 0x16, 0x4, 0xE1 }; DeviceAddress Probe10 = { 0x28, 0xFF, 0xBF, 0x4D, 0x80, 0x16, 0x4, 0x50 }; DeviceAddress Probe11 = { 0x28, 0xFF, 0xFB, 0x2D, 0x80, 0x16, 0x3, 0xB5 }; DeviceAddress Probe12 = { 0x28, 0xFF, 0x35, 0x21, 0x80, 0x16, 0x4, 0xA4 }; DeviceAddress Probe13 = { 0x28, 0xFF, 0x4A, 0xD9, 0x43, 0x16, 0x3, 0xFF }; DeviceAddress Probe14 = { 0x28, 0xFF, 0xC, 0xC3, 0x43, 0x16, 0x4, 0x2A }; DeviceAddress Probe15 = { 0x28, 0xFF, 0x36, 0xC8, 0x43, 0x16, 0x3, 0x4 }; DeviceAddress Probe16 = { 0x28, 0xFF, 0xB2, 0x32, 0x44, 0x16, 0x3, 0xC0 }; DeviceAddress Probe17 = { 0x28, 0xFF, 0xD4, 0xFD, 0x43, 0x16, 0x4, 0x17 }; DeviceAddress Probe18 = { 0x28, 0xFF, 0xFB, 0xDC, 0x43, 0x16, 0x3, 0xFC }; DeviceAddress Probe19 = { 0x28, 0xFF, 0x4C, 0xCB, 0x43, 0x16, 0x3, 0x5C }; DeviceAddress Probe20 = { 0x28, 0xFF, 0x81, 0xFE, 0x43, 0x16, 0x3, 0x5B }; DeviceAddress Probe21 = { 0x28, 0xFF, 0xFE, 0xE6, 0x43, 0x16, 0x4, 0xFE }; DeviceAddress Probe22 = { 0x28, 0xFF, 0x94, 0xC2, 0x43, 0x16, 0x4, 0x2C }; void setup() /****** SETUP: RUNS ONCE ******/{ // start serial port to show results Serial.begin(9600);Serial.println("--- Serial started ---"); delay(300);//Wait for newly restarted system to stabilize if (! rtc.begin()) { Serial.println("Couldn't find RTC"); while (1); } // following line sets the rtc to the date & time this sketch was compiled// rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); Serial.print("Initializing Temperature Control Library Version "); Serial.println(DALLASTEMPLIBVERSION); Serial.print("Initializing"); delay(2000); pinMode(10, OUTPUT);if (!SD.begin(chipSelect)) { Serial.print(" failed!"); delay (2000); return; } Serial.println(" init. OK!"); // Initialize the Temperature measurement library sensors.begin();}//--(end setup )---void loop() /****** LOOP: RUNS CONSTANTLY ******/{ delay(600000); // mills between entries (reduce to take more/faster data) 10min=600000 Serial.println();// Serial.print("Date: "); Serial.print(get_RTC()); // Command all devices on bus to read temperature sensors.requestTemperatures(); Serial.print(" "); //Print temp printTemperature(Probe01); Serial.print(";");Temp01=tempC; // Serial.print(" "); printTemperature(Probe02); Serial.print(";");Temp02=tempC; // Serial.print(" "); printTemperature(Probe03); Temp03=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe04); Temp04=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe05); Temp05=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe06); Temp06=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe07); Temp07=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe08); Temp08=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe09); Temp09=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe10); Temp10=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe11); Temp11=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe12); Temp12=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe13); Temp13=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe14); Temp14=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe15); Temp15=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe16); Temp16=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe17); Temp17=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe18); Temp18=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe19); Temp19=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe20); Temp20=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe21); Temp21=tempC; Serial.print(";"); // Serial.print(" "); printTemperature(Probe22); Temp22=tempC; Serial.println(); // Serial.println("Storing data to SD card... "); myFile = SD.open(filename, FILE_WRITE);//<<<<<<<<<<<<< OPEN myFile.print(get_RTC()); myFile.print(","); myFile.print(Temp01); myFile.print(","); myFile.print(Temp02); myFile.print(","); myFile.print(Temp03); myFile.print(","); myFile.print(Temp04); myFile.print(","); myFile.print(Temp05); myFile.print(","); myFile.print(Temp06); myFile.print(","); myFile.print(Temp07); myFile.print(","); myFile.print(Temp08); myFile.print(","); myFile.print(Temp09); myFile.print(","); myFile.print(Temp10); myFile.print(","); myFile.print(Temp11); myFile.print(","); myFile.print(Temp12); myFile.print(","); myFile.print(Temp13); myFile.print(","); myFile.print(Temp14); myFile.print(","); myFile.print(Temp15); myFile.print(","); myFile.print(Temp16); myFile.print(","); myFile.print(Temp17); myFile.print(","); myFile.print(Temp18); myFile.print(","); myFile.print(Temp19); myFile.print(","); myFile.print(Temp20); myFile.print(","); myFile.print(Temp21); myFile.print(","); myFile.print(Temp22); myFile.print(","); myFile.println(); myFile.close();//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>CLOSE // Serial.println("Data stored! "); }//--(end main loop )---/*-----( Declare User-written Functions )-----*/// =========================================================================================================String get_RTC() { String RTC_String; DateTime now = rtc.now(); RTC_String+=now.day();RTC_String+='/'; RTC_String+=now.month();RTC_String+='/'; RTC_String+=now.year();RTC_String+=", "; if (now.hour()<10) RTC_String+='0'; RTC_String+=now.hour(); RTC_String+=':'; if (now.minute()<10) RTC_String+='0'; RTC_String+=now.minute(); RTC_String+=':'; if (now.second()<10) RTC_String+='0'; RTC_String+=now.second(); return RTC_String;}// =========================================================================================================void printTemperature(DeviceAddress deviceAddress){tempC = sensors.getTempC(deviceAddress); if (tempC == -127.00) { Serial.print("N/A"); } else { // Serial.print("C: "); Serial.print(tempC); //Serial.print(" F: "); // Serial.print(DallasTemperature::toFahrenheit(tempC)); }}// End printTemperature//*********( THE END )*********** Cytuj Odnośnik do komentarza https://forum.murator.pl/topic/225403-arduinoamp22xds18b20-for-dummies-data-logger/#findComment-7261321 Udostępnij na innych stronach Więcej opcji udostępniania
Recommended Posts
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.