Delphin911
Member
Хотя на 8266 не подключится моя матрица. Контактов не хватит. Так что придется с ESP32 разбираться.
void setup() {
pinMode(MOVE, INPUT);
pinMode(POWER_EXIST, INPUT);
//Если есть 220В-------------------------------------------------------------------------------------------
//Инициируем SD-карту
if (digitalRead(POWER_EXIST) == 1)
{
//тут идет setup для работы от 220В (ну там БП само собой)
}
else //если нет питания от сети
{
//Запускаем SD карту
if (SD.begin(CS_PIN_SDC))
{
hasSD = true;
}
//Стартуем библиотеку Wire.h
Wire_init();
//Считываем данные времени
timeS = GetTime();
String st = "Starting on battary - " + timeS;
addToLogNO220(st);
}
}
void loop(){
if (digitalRead(POWER_EXIST) == 1) {
ArduinoOTA.handle();
HTTP.handleClient();
webSocket.loop();
....................
//Ну тут тоже всё для работы от сети
}
Я почитал в инете, пишут мол переполнение памяти. Но откуда?Rebooting...
Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x4008b6f5 PS : 0x00060730 A0 : 0x800f553b A1 : 0x3ffb2130
A2 : 0x00ffff00 A3 : 0x00fffefc A4 : 0x000000ff A5 : 0x0000ff00
A6 : 0x00ff0000 A7 : 0xff000000 A8 : 0x00000000 A9 : 0x3ffb2100
A10 : 0x3ffc4086 A11 : 0x0000000e A12 : 0x0000000f A13 : 0x00000001
A14 : 0x00000000 A15 : 0x3ffc4078 SAR : 0x00000008 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00ffff00 LBEG : 0x4008b6f5 LEND : 0x4008b705 LCOUNT : 0xffffffff
Backtrace: 0x4008b6f2:0x3ffb2130 0x400f5538:0x3ffb2140 0x400d9df5:0x3ffb2160 0x400da5ed:0x3ffb2200 0x400f9b87:0x3ffb2270 0x4008f0b6:0x3ffb2290
ELF file SHA256: 41fdd2978
// функция считывания времени и даты из PCF8563
void readPCF8563(byte *second, byte *minute, byte *hour, byte *dayOfMonth, byte *month, byte *year)
{
Wire.beginTransmission(PCF8563address);
Wire.write(0x02);
Wire.endTransmission();
Wire.requestFrom(PCF8563address, 7);
*second = bcdToDec(Wire.read() & B01111111); // удаление ненужных бит из данных
*minute = bcdToDec(Wire.read() & B01111111);
*hour = bcdToDec(Wire.read() & B00111111);
*dayOfMonth = bcdToDec(Wire.read() & B00111111);
bcdToDec(Wire.read() & B00000111); //day of week
*month = bcdToDec(Wire.read() & B00011111);
*year = bcdToDec(Wire.read());
}
ESP32 разные. Есть ESP32-C3 и т.д.Или же все же возвращаться к TSP8266. Как-то ESP32 все пишут мол лучше, я пока только с минусами столкнулся. И ошибок в библиотеках больше и вот не запускается с диодами, с которыми 8266 работало на ура.
Значит этот модуль не годится для работы от 3.3В и внешнего управления.Посмотреть вложение 14265
Вот моя ESP-шка. Тут нет GPIO0. У меня 30-выводная.
В datasheet на модуль?Ну почему не годится? Работает же. И в datasheet у него написано питание 3,3В.
Собственно этот вопрос давно пройден.
А при чем тут состояние на I2C при старте?Подтяжка не помогла. А запитка от 3,3В вместе со всеми датчиками и ESP-шкой помогло. Если никаких других вариантов нет, придется оставить. В принципе у меня почти такой же девайс на даче за месяц не разряжается почти, раз в 3 часа датчики опрашивает и на SD пишет. Правда как усыпить ESP я знаю, а вот тинька будет без сна работать. Жрет она правда немного, но лучше бы как-то обойти. Может вторая релюха будет решением.
Нет. Я же написал, что проблема была в макетке. Знаете такие с шинами питания и отверстиями куда элементы вставляются. Собственно давно знал, что там с контактами беда, только мигание светодиода проверять. Но другого пути нет. Пропаял проводами всё питание и наиболее важные цепи (I2C например), и все нормально заработало. Вчера даже спящий режим отработал. Осталось только решить с последним вопросом, что я задавал.Вопрос пройден с помощью кучи реле и прочей обвязки...
Я же написал при чем. Если на тиньке нет питания и I2C подключено к ней, то ни одно устройство на шине I2C не определяется и при обращении к неопределенной микросхеме RTC происходит сброс. Если же сигналы I2C отключить от тиньки или записать тиньку от аккумулятора, то все работает как часы.А при чем тут состояние на I2C при старте?
У меня не промышленное устройство, у меня метеостанция и знать температуру на даче это чисто из любопытсва. Можно сделать каждый час, собственно и так приходится просыпаться каждый час, т.к. невозможно задать время сна больше 72 минут, и отсчитывать количество просыпаний, что бы раз в 3 часа собирать. Можно конечно каждые 2 часа собирать. Ну вот решил раз в 3 часа и сделал.И что за автоматизация, которая опрашивает датчики раз в 3 часа?
А типовые датчики сколько стоят? У меня любительское устройство. Мне интересно самому все собрать и написать код. Это называется хобби.А уж типовые датчики температуры, влажности, давления, состава, освещенности, направления/скорости ветра, уровня осадков, напряжения, тока, и т.д. имеют актуальность при опросе не реже раз в десяток секунд. Некоторые можно усреднять за больший период для отложенной передачи.
То же, что показывает скажем прогноз погоды на Гисметео. там тоже данные каждые 3 часа.Что будет показывать датчик температуры, опрашиваемый 1 раз в 3 часа?
Нееее. Это вы загнули. Какая сигнализация? кому оно будет сигнализировать и как, когда нет ни электричества, а соответственно и никакой связи. Это я о возгорании скорее узнаю от сторожа, который если протрезвеет и найдет мой номер телефона, позвонит мне.Сигнализация: среднее время возгорания практически полного дома от начала пожара составляет несколько минут.
Так это она и есть.Иначе выйдет игрушка, созданная только ради игры и публикаций в блогах