Re: Измерение температуры (18B20) с записью данных на MicroSD
Тестируйте, в железе не проверял.
// Подключение
// CD MOSI D11, MISO D12, CLK D13, CS D4, VCC +5V
// 18B20 OUT A1, +5V VCC // все датчики подключаются к одному входу
// DS1307 SDA A4, SCL A5, VCC +5V
#include <SPI.h>
#include <SD.h>
#include <OneWire.h>
#include <Wire.h>
#include <DallasTemperature.h>
#include <iarduino_RTC.h> // http://rcl-radio.ru/wp-content/uploads/2020/01/iarduino_RTC.zip
OneWire oneWire(A1);
DallasTemperature t(&oneWire);
iarduino_RTC time(RTC_DS1307);
File myFile;
float temp1,temp2,temp3,temp4;
unsigned long nomer;
void setup() {
Serial.begin(9600);
Serial.print("Initializing SD card...");
if (!SD.begin(4)) {Serial.println(" Error!!!"); return;}
else{Serial.println(" OK");}// проверка подключения
t.begin();
t.setResolution(12);
time.begin();
// УСТАНОВКА ВРЕМЕНИ
// time.settime(0,5,11,30,1,20,4); // 0 сек, 5 мин, 11 час, 30, января, 2020 года, четверг
// time.settime(-1, -1, -1, 30, 1, 20); // Установить дату 30.01.2020, а время и день недели оставить без изменений
}
void loop(){
time.gettime();
Serial.println(time.gettime("d-m-Y, H:i:s, D")); // выводим время
Serial.print(" ");
t.requestTemperatures();
Serial.println(temp1 = t.getTempCByIndex(0));//считываем температуру
Serial.println(temp2 = t.getTempCByIndex(1));//считываем температуру
Serial.println(temp3 = t.getTempCByIndex(2));//считываем температуру
Serial.println(temp4 = t.getTempCByIndex(3));//считываем температуру
nomer++;
myFile = SD.open("temp.txt", FILE_WRITE);// открываем файл для записи, если файла нет, то создае его
myFile.print(nomer);// запись
myFile.print(" ");// запись
myFile.print(time.day/10);myFile.print(time.day%10);myFile.print("-");
myFile.print(time.month/10);myFile.print(time.month%10);myFile.print("-");
myFile.print(time.year);myFile.print(" ");
myFile.print(time.Hours/10);myFile.print(time.Hours%10);myFile.print("-");
myFile.print(time.minutes/10);myFile.print(time.minutes%10);myFile.print("-");
myFile.print(time.seconds/10);myFile.print(time.seconds%10);
myFile.print(" t1 = ");myFile.println(temp1);
myFile.print(" t2 = ");myFile.println(temp2);
myFile.print(" t3 = ");myFile.println(temp3);
myFile.print(" t4 = ");myFile.println(temp4);
myFile.close();// закрываем файл
delay(60000); // 10 мин
delay(60000);
delay(60000);
delay(60000);
delay(60000);
delay(60000);
}