Прототип системы удаленного мониторинга температуры в погребе на LoRa

Прототип системы удаленного мониторинга температуры в погребе на LoRa

Есть такое утверждение: «что не делай на ардуино (а равно как и esp8266/esp32) получается метеостанция». Но метеостанций много не бывает и помимо жилых помещений есть ещё множество мест, в которых хотелось следить за температурой и влажностью. Мои родители живут за городом и для хранения продуктов, как и многие, используют погреб, который зимой необходимо хорошо утеплять и следить, чтобы овощи не померзли. Я подумал, что было бы удобно следить за температурой, а заодно и влажностью в погребе не выходя из дома. Так появился проект мониторинга температуры и влажности в погребе.

Проект состоит из двух частей — приемника и передатчика. Передатчик содержит датчик влажности и температуры, работает автономно, питаясь от аккумулятора, и с определенным интервалом делает измерения и отправляет на приемник. В промежутках между измерениями передатчик спит.

Приемник принимает данные от передатчика и отображает их на дисплее, при этом данные записываются в лог и есть возможность просмотреть историю изменения температуры и влажности за прошедший период.

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

В качестве беспроводного протокола передачи данных между передатчиком и приемником я решил использовать LoRa, так как когда впервые о нем услышал, был прямо поражен показавшимися мне фантастическими характеристиками дальности связи и энергопотребления. «LoRa» это запатентованный компанией Semtech метод модуляции. Технологию «LoRa» поддерживают, выпускаемые Sementch микросхемы SX1278/SX1276 и др., на которых и основаны представленные на рынке приемеопередатчики. LoRa трансиверы обещают длительную работу от батарейки и связь на расстоянии в несколько километров.

Изначально для проекта были куплены модули Ra-02 (SX1278) от Ai-Thinker на 433МГц, спроектирована и изготовлена плата адаптера для Wemos D1 mini.

Прототип системы удаленного мониторинга температуры в погребе на LoRa

Позже я нашел более подходящий вариант для передатчика – TTGO T-Base. Он по распиновке полностью совместим с Wemos D1 mini, но при этом уже содержит схему зарядки и контроля напряжения аккумулятора.

Прототип системы удаленного мониторинга температуры в погребе на LoRa

Так проект понемногу обрастал железом и развивался, но в процессе неудачного эксперимента TTGO T-Base канул в небытие, к тому же появились новые железки, которые перетянули внимание на себя и проект был приостановлен. Одной из таких железок завладевших моим вниманием стал конструктор смарт-часов на ESP32 — TTGO T-Watch.

Прототип системы удаленного мониторинга температуры в погребе на LoRa

Я активно слежу за развитием этой платформы и мне вновь посчастливилось стать участником тестирования и получить плату расширения с LoRa-модулем на борту.

Прототип системы удаленного мониторинга температуры в погребе на LoRa

LoRa-модуль основан на SX1276, который работает на частоте 868 МГц, в моем же распоряжении были модули на SX1278 с частотой 433 МГц, поэтому для теста был дополнительно заказан трансивер на соответствующую частоту.

Прототип системы удаленного мониторинга температуры в погребе на LoRa

Характеристики трасивера SX1276

Технология FSK/GFKS, технология LoRa

Полудуплексная связь

Чувствительность приемника -139dbm.

Мощность передатчика 20dBm

Ток в режиме приема 10-12 мА

Для теста был возрожден проект мониторинга температуры в погребе с новыми комплектующими. Теперь он выглядит так:

Передатчик: TTGO T-Base + SX1276 + DS18b20

Приемник: TTGO T-Watch + SX1276

Изначально для проекта на LoRa-модулях работающих на частоте 433Мгц были куплены соответствующие антенны, предполагалось, что антенна передатчика будет вынесена из погреба на поверхность. В данном же случае для приемника будет использоваться идущая в комплекте спиральная антенна, а для передатчика антенна от GSM-модуля.

LoRa-модуль на SX1276 совпадает по размерам, количеству пинов и шагом между пинами с модулем Ra-02 на SX1278, но назначение пинов отличается. Я принялся проектировать новую плату LoRa-шидла для Wemos d1 mini, а для теста припаял провода непосредственно к модулю трансивера. Также для теста использовал не датчик влажности и температуры, а просто термодатчик DS18b20 в водонепроницаемом исполнении.

Для доступа пинам GPIO платформы T-Watch я сменил базовую плату расширения, которая по умолчанию установлена в T-Watch, на дополнительную, теперь же вместо нее необходимо установить плату расширения с LoRa модулем. Платы расширения и основная плата соединяются гибким шлейфом, такой способ соединения не предполагает частой смены плат расширения в отличие от похожей по концепции платформы M5Stack, но это закономерный результат стремления к максимальной компактности платформы.

Пользуясь случаем покажу как выглядит основная плата T-Watch с ESP32.

Прототип системы удаленного мониторинга температуры в погребе на LoRa

Переходим к проверке работоспособности системы.

В репозитории есть пример для работы с LoRa модулем. Библиотека lvgl, на которой основан пример, для меня по-прежнему темный лес, поэтому я написал свой скетч без её использования. Я адаптировал примеры LoRa_sender и LoRa_reciver из библиотеки LoRa.h, использованные мною ранее для модулей на 433МГц. Пока есть только одно устройство можно проверить его работоспособность в качестве передатчика с помощью SDR-приемника.

Прототип системы удаленного мониторинга температуры в погребе на LoRa

Передатчик, собранный на проводах, выглядит весьма непривлекательно и работает нестабильно, доставка же плат затянулась в связи с новогодними праздниками. После получения печатных плат шилд наконец-то был собран.

Прототип системы удаленного мониторинга температуры в погребе на LoRa

Прототип системы удаленного мониторинга температуры в погребе на LoRa

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

Прототип системы удаленного мониторинга температуры в погребе на LoRa

Согласно проведенным замерам, за пару часов работы передатчик израсходовал порядка 70мАч. При таком расходе электроэнергии аккумулятора емкостью 1500 мАч хватит всего на пару суток, что очень мало. Тем не менее передатчик работает уже несколько дней непрерывно.

Для уменьшения энергопотребления в реальных условиях можно уменьшить частоту отправки измеренных параметров, убрать с платы T-Base светодиод и, возможно, переработать плату LoRa-шилда.

Приемник на базе T-Watch отображает последнее значение температуры, максимальное, минимальное значение и график из 240 последних значений. Очевидно, что на данном этапе приемник работает весьма неэффективно и есть множество программных моментов, которые требуют оптимизации.

Прототип системы удаленного мониторинга температуры в погребе на LoRa

Тестирование в реальных условиях.

Передатчик собран в корпус от губки для обуви за неимением на данный момент другого.

Так как я, к сожалению бываю у родителей не очень часто, до настоящего времени удалось протестировать систему только два раза. Первый тест оказался не совсем удачным: я поленился лезть в погреб, передатчик оставил на крышке погреба, а сам датчик температуры опустил внутрь. Но, видимо, из-за мороза аккумулятор довольно быстро разрядился и проследить какую-бы то ни было динамику температуры в погребе не удалось.

Второй тест оказался более удачным. Передатчик, помещенный внутрь погреба, проработал почти сутки, пока я не забрал его. Сигнал уверенно принимался во всем доме, на расстоянии примерно 50м, что для конечно LoRa очень мало. Максимальную же дальность не проверял, так как не было необходимости. При этом следует учесть, что передатчик находился на глубине пары метров под землей, а между ним и приемником было несколько преград.

На не совсем удачной фотографии показан график температуры, при установке его в погребе. Можно увидеть, что температура не опустилась ниже 1 С, при этом на улице было около -14 С.

Прототип системы удаленного мониторинга температуры в погребе на LoRa

Код приемника и передатчика.

TODO

Поменять датчик DS18B20 на датчик влажности.

Добавить возможность отключения дисплея приемника.

Добавить контроль заряда батареи передатчика.

Подобрать корпус для передатчика, желательно герметичный.

Оптимизировать код приемника.

Вывод

Система работоспособна и может быть использована в реальных условиях, при этом необходимо уменьшить энергопотребление передатчика, а также оптимизировать код приемника.

P.S.

У меня остались платы LoRa-шилда для Wemos D1 mini спроектированные, как под модули Ra-02 (SX1278), так и под SX1276. Буду рад ими поделиться.

Оцените статью