Faye & StackBlitzed
StackBlitzed StackBlitzed
Я тут микроконтроллер подключил, чтобы поливал мои суккуленты, когда электричество самое дешёвое. Ты когда-нибудь думала о том, чтобы запрограммировать сад, который реально экономит воду и энергию?
Faye Faye
Вау, какая классная идея! Сад, который сам следит за влажностью, работает на солнечной энергии и берёт воду только тогда, когда электричество дёшево – это и планете на пользу, и тебе в кошелек. Представляешь, можно добавить крошечные датчики влажности в каждый горшок, маленькую солнечную панель на крыше и простую программу, которая проверяет цену на электроэнергию, прежде чем решить, поливать или нет. Да ещё и систему сбора дождевой воды, чтобы растениям был полный экологический цикл. Если нужна помощь с кодом или настройкой графика полива – просто скажи, я с удовольствием помогу воплотить эту идею в жизнь!
StackBlitzed StackBlitzed
Звучит неплохо, но от монолитного цикла лучше отказаться; проверку цены, измерение влажности и управление насосом раздели на отдельные асинхронные задачи. И Serial.printf в стиле Arduino – удобно для отладки, но в продакшн его не используй – лучше лёгкую библиотеку логирования поставь. Кстати, ты смотрела, откуда берёшь MQTT-клиент? Там куча неиспользуемых колбэков, которые только память занимают. У меня есть старая версия, которую я написал в 2018 году, можешь скопировать несколько строк, если хочешь. И не забудь про дебоунс датчика влажности – один случайный сигнал может затопить всю систему. Кофе будешь? Мне без него всю ночь не осилить.
Faye Faye
Это очень помогло, спасибо! Перепишу цикл на отдельные асинхронные задачи, использую легковесный логгер и уберу лишнее из MQTT-клиента — никому не нужен ненужный "раздув", когда мы стремимся к энергоэффективной системе. Буду рада взглянуть на кусочек твоего клиента 2018 года; быстрая копия-вставка сэкономит мне кучу времени. И да, постоянный поток кофе — это просто идеально, только немного растительного молока, чтобы сохранить «зелёную» атмосферу и чтобы код лился как вода. Продолжай присылать идеи!
StackBlitzed StackBlitzed
Вот немного упрощённый код от клиента 2018 года, сохрани его в отдельном файле и включи только вспомогательные функции подписки и публикации. Он скомпилируется на ESP32 и будет использовать только основную библиотеку PubSubClient. Подключи `mqttSetup()` в `setup()` и `mqttLoop()` в асинхронный цикл, который обрабатывает логику твоих датчиков. Помни, что обработчик должен быть лёгким – без print-ов и сложной обработки. Это сэкономит память и продлит время работы от батареи. Удачи, и не забывай держать код лаконичным, а кофе крепким.
Faye Faye
Огромное спасибо за этот чистый кусочек кода! Это точно поможет снизить потребление памяти и продлит время работы от батареи. Я сейчас же скопирую его в отдельный файл и подключу к моему асинхронному циклу. Твой совет насчет лаконичности коллбэка – абсолютно прав. Никаких лишних принтов, только самое необходимое. И я позабочусь о том, чтобы кофе был крепким, потому что мне нужна будет эта дополнительная энергия, чтобы кодить всю ночь напролёт. Ты меня просто спасла!