простите уважаемый, я как и любой новичек, увидев активность в теме -торопился.
итого резюмируя все вышесказанное и 2 недельные мытарства с всем добром:
после скрупулезных проверок выявлено , что отдельно нужно проверять каждый модуль. из 10 ардуин 2 работают непонятно.
из 6 модулей ds3231 1 не работает, 1 работает с явным косяком.
из 10 модулей hw125(сдкарта) 9 работают, 1 нет.
в скетче косяк с посадкой датчика на аналоговый пин.
схема логгера чувствительна к питанию-нужно внешнее в виде батарейного блока, возможно с стабилизатором.
хочу выразить благодарность всем откликнувшимся- в частности камрадам [v258], [b707], [kalapanga], а так же [Дим-мычъ] и [Dalis].
я еще вернусь с вопросами режима энергосбережения, как запаяю все рабочие модули
маленький апдейт после перерыва:
упорно не писалась дата в часах в данных файла флешки.
решил радикально.
взял библиотеку micro ds3231 от AlexGyver GitHub - GyverLibs/microDS3231: Лёгкая библиотека для работы с RTC DS3231 для Arduino
переписал под нее команды. скетч “облегчился” и наконец стал работать.
теперь у меня 2 новых проблемы
1 проблема: все время горят 2 диода pwr на часах и на ардуинке нано
и
вторая проблема: как безболезненно и без костылей удлиннить время опроса термодатчика вместо 5 секунд в 15 минут
вроде бы есть для этого костыль с повторениями delay, типо прописать их 5 штук подряд, но как-то это “по индусски” совсем, а вроде есть и еще какой-то способ, возможно даже с засыпанием\просыпанием через rtc, но прописать такое в скетче у меня еще кишка тонка.
Может кто-что посоветует?
обновленный рабочий проверенный скетч “прикладаю”
#include <microDS3231.h>
#include <SD.h>
#include <SPI.h>
#include <OneWire.h>
#include <Wire.h>
#include <DallasTemperature.h>
OneWire oneWire(3);
DallasTemperature t(&oneWire);
MicroDS3231 rtc;
File myFile;
float temp;
long nomer;
int data_old;
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);// 12 bit 18b20
rtc.begin();
//rtc.setTime(1, 1, 17, 13, 4, 2024);// установка времени
}
void loop() {
myFile = SD.open("temp.txt", FILE_WRITE);
Serial.println(rtc.getDateString());
Serial.print(" ");
t.requestTemperatures();
Serial.println(temp = t.getTempCByIndex(0));//считываем температуру
delay(5000);// записывать данные на CD каждые 5 сек
nomer++;
myFile.print(nomer);// запись номера
myFile.print(" ");
myFile.print(rtc.getDateString( ));// запись даты
myFile.print(" ");// запись
myFile.println(temp);// запись
myFile.close();// закрываем файл
}
а суть этой проблемы собсно в том что светодиоды кушают свой маленький но ток, а очень хочется чтобы датчик мог хотябы месяц с гарантией прожить на улице без присмотра за батарейкой, варианты в виде солнечной подзарядки не прокатят, по той причине что буду ставить в лесной избушке
спасиб за подсказу и Вам [v258] и товарисчу [xDriver], мне эта крамольная мысль про паяльник в голову приходила тоже ,
но ардуино нано нынче такие миллипусечные, что я боюсь чтобы с платы вместе со светодиодами не отлетели еще и кварц с микрокнопкой.
может есть более изящные варианты? кто нить про энергосберегательный загрузчик ардуины слышал? который экономно “мыргает” диодами? где то я давно читал про что-то подобное… вот еще бы вспомнить где, и про что именно
У меня такой (только черный, черный мне больше нравится) на постоянке (уже привык), доработать только нужно чтобы не перегревался. R3 заменил на 82кОм.