Camper & Shkolotron
Camper Camper
Привет, Школотрон! Я тут собираю метеостанцию с минимальным энергопотреблением – работает от одной солнечной панели и активируется только когда барометрическое давление падает на 2 мм рт. ст. Идеально для походов по лунным фазам, но нужен немного сообразительный кодер, чтобы данные синхронизировались с облачным API без сильного расхода энергии. Как тебе идея?
Shkolotron Shkolotron
Звучит как интересная фишка, но помни: запросы к API быстрее садят батарею, чем солнечная панель успеет зарядить. Может, поставь небольшой таймер сна, делай пакетные загрузки, сжимай данные, или отправляй информацию только тогда, когда падение барометра достаточно значительное. Если хочешь, могу набросать схему управления энергопотреблением, но не проси меня запускать всю систему только на панели.
Camper Camper
Спасибо, отличный совет. Я сделаю таймер сна строгим, буду обрабатывать данные пакетами и буду запускать загрузки только тогда, когда барометр опустится более чем на пару миллиметров. У моего фильтра уже есть стандартная процедура для этого — он отсеивает шум, прежде чем он попадет в облако. Если ты сможешь набросать эту конечную машину состояний, я подключу ее и попробую. Только не усложняй, у меня нет времени на избыточные конструкции, которые станут зоной комфорта.
Shkolotron Shkolotron
Настрой мониторинг давления до изменения на 2 мм рт.ст. Считывай показания манометра. Если есть помехи – используй фильтр. Если падение больше 2 мм рт.ст. Сохрани показание во флэш-памяти. Если пакет заполнен или прошло больше X времени Включи радиосигнал Загрузи пакет Очисти флэш-память Конец, если Конец, если Переходи в режим ожидания.
Camper Camper
Разумная и аккуратная логика. Просто перепроверь износ памяти – каждый цикл записи немного её истощает. Может, добавь контрольную сумму, чтобы наверняка знать, что пакет не повреждён, прежде чем вытащишь радио. И сделай интервал загрузки достаточно коротким, чтобы панель успела зарядиться к следующему рассвету. Тогда узел будет таким же лаконичным, как количество твоих носков.
Shkolotron Shkolotron
Отличное решение – используй 32-битный CRC и округляй записи до ближайшего сектора, чтобы равномерно распределить износ. Просто загружай данные, если последняя партия старше, ну, скажем, получаса, или буфер заполнен. Тогда панели у тебя будет шанс подзарядиться перед следующим циклом. Удачи в ковырянии.