• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Полоумное реле - Time, Temperature & Humidity Relay

nikolz

Well-known member
Маловато точек - большой шаг и история должна быть от 3-х месяцев (хотя-бы 1 усредненная точка десятков замеров за минуту). Иначе это игрушка, по типу Mi-Home :)

PS: А что на графике такая не комфортная влажность? Не соответствует оф. минимальным нормативам для жилого помещения...
Если в данном помещении стоит стандартный стеклопакет и это в области Питера или Лен.области - то на нем будет конденсат. Такова температура точки росы на внутреннем стекле :p
Это так работает ваше "полоумное реле"?
нахрена история на 3 месяца?
Вы и с одной неделей не знаете что делать.
Вы с этими графиками как дитя с погремушкой - точек-много, толку -ноль.
 

pvvx

Активный участник сообщества
нахрена история на 3 месяца?
Вы и с одной неделей не знаете что делать.
Я то знаю и у меня графики обычно годовые.

Вы с этими графиками как дитя с погремушкой - точек-много, толку -ноль.
Это вы на основе своего бытия пишите. В пещере они не нужны - тут согласен.
Но если что-то делаете, строите и тем более занимаетесь творчеством - тогда обязательны. Но это не про вас.
Последний раз вам описывал про простую температуру - в инете нет хороших графиков температуры по региону даже за прошедший месяц. А у меня теперь есть и есть с чем сопоставлять и сравнивать, для выбора в дальнейших действиях и ...
 

pvvx

Активный участник сообщества
У вас не верное сопоставление - ищите картинку с этим "робо-пес", где им забивают гвозди или используют от него всего один винтик.
Ресурсы ESP позволяют держать график на годы, тем более питание это не увеличивает. Расчет по энергии для записи всея Flash можете произвести сами и распределите это на год :p
 

enjoynering

Well-known member
У меня одна запись тянет 32-байта - день, месяц, год, время, температура и влажность. На самом деле размер записи чуть меньше, но littleFS не умеет писать меньше 32-х байт (поправьте если не прав).

Итого даже с разрешением одна запись каждые 30 минут получаем - 48 записей в день Х 360 дней Х 32 байта = 540КБ. К тому же самой littleFS нужно как минимум ещё столько же пустого места, чтоб dynamic wear leveling нормально работал иначе ваша spi flash быстро превратиться в тыкву. И не забываем про всякие html, js, css, front которые даже в сжатом виде занимают под 1МБ. Так что про годы вы как всегда загнули.
 

pvvx

Активный участник сообщества
У меня одна запись тянет 32-байта - день, месяц, год, время, температура и влажность. На самом деле размер записи чуть меньше, но littleFS не умеет писать меньше 32-х байт (поправьте если не прав).

Итого даже с разрешением одна запись каждые 30 минут получаем - 48 записей в день Х 360 дней Х 32 байта = 540КБ. К тому же самой littleFS нужно как минимум ещё столько же пустого места, чтоб dynamic wear leveling нормально работал иначе ваша spi flash быстро превратиться в тыкву. И не забываем про всякие html, js, css, front которые даже в сжатом виде занимают под 1МБ. Так что про годы вы как всегда загнули.
А зачем нужна хрю-хрю-ардуино-FS? Обычный циклический буфер справляется на ура. Только при старте необходимо найти хвост и при переходе на следующий сектор стирать его. В итого буфер имеет минимальный размер для записей - вся Free область Flash минус один сектор, а максимальный - вся Free область Flash.
"день, месяц, год, время" + сек - это UTC время (32 бита) -не бывает 0xFFFFFFFF, а он служит идентификатором что это конец циклического буфера...
"температура и влажность" - это 2 слова по 16 бит. В градусах или % *100.
Итого такая запись всего 8 байт.
Flash у ESP обычно 4 Mбайта. Программа с OTA - 1 Мбайт.
3 Мбайта свободно... -> буфер до 393216 записей
 

pvvx

Активный участник сообщества
Поиск конца буфера элементарен:
Ищем первый, с фактического расположения буфера, сектор у которого значение времени записи 0xffffffff. Далее в этом секторе находим первую запись с временем = 0xffffffff. Усё.
 

pvvx

Активный участник сообщества
Расчет протирания дырки в самой плохой Flash при записи замеров каждую секунду:
393216записей*10000гарантированных_циклов_записи_Flash/365дней/24часа/60минут/60секунд = минимум 124 года работы :eek:

393216 записей, а у реле кол-во гарантированных срабатываний до отказа меньше :p
 

pvvx

Активный участник сообщества
Если не затруднит, дайте пожалуйста пруф.
Скорее всего разговор о накладных расходах у littleFS при добавлении в файл нескольких байт.
Ни одна FS не годится для экономного и быстрого сохранения логов в любую по типу Flash.
(Мы пытаемся сохранить свой лог, а FS в добавок пытается сохранить свой лог :) )
- Гена, тебе очень тяжело нести вещи? - Ну как тебе сказать Чебурашка... очень тяжело - Слушай Гена, давай я вещи понесу, а ты возьми меня
 

enjoynering

Well-known member
"день, месяц, год, время" + сек - это UTC время (32 бита)
я так пытался сжать, но у меня не получилось. дело в том что после объединения вот таким образом:
Код:
sensorDataStr += String(((ntp_localTime.tm_mday << 24) | (ntp_localTime.tm_mon << 16) | ntp_localTime.tm_year));
обратно ntp_localTime.tm_mday >> 24 не восстанавливается
 

enjoynering

Well-known member
сейчас у меня формат записи такой : dd/mm/yyyy,hh:mm,-tt.t,hhh.h,


я пытался загнать dd/mm/yyyy (представив yyyy как разницу 2021-1900) в одно 32 битное и сэкономить на 3-х разделителях "/"

берем сегодняшнее число 17/11/2021:

32bitData = (17 << 24) | (11 << 16) | 121

потом отправляю это клиенту и на java script пытаюсь вытащить вся обратно:

dd = 32bitData >> 24

и почему то 17 уже не 17
 

pvvx

Активный участник сообщества
про 32-бита в littleFS прочитал тут. на официальной странице много интересного, но про 32 ни слова.
LittleFS может записывать сокращенно (типа только заголовки и индексы + малое поле, обычно 4 байта) файл с длиной до 4 байт. Далее идет избыточность x4, т.е. на 5 байт будет записано от 20 байт (+ ещё всякой фигни). Но главное, что LittleFS - это очередной тормоз и имеет кучу накладных расходов по производительности -> никогда не может быть использован для автономных устройств, особенно в классе BLE.
В ESP либах LittleFS могут быть свои настройки...

Вся избыточность в том, что для поддержки WiFi + IP требуется ОЧЕНЬ много, а обычное реле в этом не нуждается.
Даже в вашем проекте всего до 4-х настраиваемых переменных и один бит выхода (!). И для этого применяется переусложненный на 99.99999% канал в мегабиты!
 

enjoynering

Well-known member
Да вы правы. Напутал с размерностями переменных. Сам не знаю как это произошло. Давно такой ошибки не совершаю, а тут....

Все получилось. Экономия 4 байта на каждую запись. Итого годичный лог уменьшился на 68КБ.
 

pvvx

Активный участник сообщества
Вроде ныне 21-й век?
У вас есть объем курятника (или вашего сверх влажного подвала из истории форума). В продаже есть само-регулирующаяся лента, ценою ~70 руб за метр. 1 метр – это в пределе около 75 Вт, а развиваемая максимальная температура не более +70С. Если смотанную в упаковке ленту в 20 метров включить в сеть, то через несколько минут ток её потребления сходит к менее 0.5 А. Т.е. менее 100 Вт (зависит от теплоотдачи - т.е. куда кинули рулон :) ).
1637159646736.png
Если ленту залить хотя-бы цементом со шпаклевочной стекло-сеткой в любой жестяной профиль с расчетом площади конвекции и обогреваемого объема на необходимую температуру, то оно само будет держать эту температуру.

И вопрос: нафиг ваши реле?
 

enjoynering

Well-known member
Наверное потому что штробить или заливать цемент не вариант. Всегда ваш, кОпетан очевидность.

Ну и влага при таком решении со шнуром никуда не исчезнет из замкнутого объёма. Её как было 12г/м^3 так и осталось. Вы просто сместили точку росы. Только осушитель на основе холодильной установки.
 
Сверху Снизу