Беспроводной DIY монитор влажности почвы

Приветствую всех читателей Хабра! Сегодня хочу поделится с вами моим новым проектом — беспроводным датчиком влажности почвы, который построен на основе всем известного модуля влажности почвы с алиэкспрес. Новый датчик это логическое продолжение первого моего DIY проекта на эту тему. Но в новой реализации это уже не ардуино модуль, а законченный девайс с своим собственным корпусом. Итак, каша из топора, часть вторая! :)
k9eagdijc2lxr-garqi6eooxuxm.jpeg

Китайский модуль измерения влажности почвы построен на таймере 555. Метод измерения — емкостной. Для моего проекта нужна была версия модуля с установленным стабилизатором напряжения XC6206P332 на 3.3В, который в дальнейшем придется удалить с платы модуля. Дело в том что в таких версиях используемся модификация таймера TLC555 с нижним порогом по питанию в 2В. В версиях без стабилизатора используются таймеры NE555 c нижним порогом по питанию в 5В. Но в любом случае что проще купить для повторения этого проекта дело повторяющего. В первом варианте выпаиваем стабилизатор напряжения, во втором меняем таймер например на такой — LMC555 (даташит) работающий даже от 1.5В. Для беспроводного модуля к китайскому датчику влажности почвы я выбрал радиомодуль от EBYTE E73C на котором установлен чип nRF52840. Аргументом стала цена модуля и имеющееся количество данных модулей у меня в запасах.
e4c43tfn22ihs1-ywelmsoikjwq.png

Беспроводной модуль получился очень простой, RGB светодиод, пара кнопок, полевой транзистор, батарейка. Собрать такой девайс сможет даже самый неопытный начинающий паяльщик. На датчике влажности помимо удаления стабилизатора напряжения так же необходимо выпаять разъем и впаять на его место штырьевую вилку 3P, шаг 2.54 мм.

Размеры платы получились немного меньше чем в первом проекте — 42×29 мм, определялись размером держателя батарейки.
twoqsjaebwgnyxb9xl1lzao174m.jpeg

Корпус был напечатан на моем бытовом SLA принтере ANYCUBIC. Время печати деталей порядка пары часов. Послебующая пост обработка заняла около получаса. Стоимость израсходованной полимерной смолы ~100р.

Потребление в режиме сна — 4.7 мкА, в режиме передачи 8 мА. Интервал замеров изменяемый, шаг 1 минута. Время измерения 50 мс (5 замеров в тестовой программе), потребление во время измерения ~ 1 мА. Так же производятся измерение температуры чипа, измерение уровня заряда батарейки. Передача данных на контролер УД посредством сети Mysensors, передача данных на контролер УД посредством сети Zigbee.

Код тестовых программ находится на моем Github

Пример работы в сети Mysensors и УД Мажордомо
4tcxxc4zmsos7jw_bpb0k_rojc4.png

lgnic80mcvhmva1ifxmjr_afluy.png

Пример работы в сети ZigBee и УД Мажордомо
ev-qbvfynpoemmo0w5l7iijqnvw.png

dhm6yhm6l7o6btdqyfhq2onmlpo.png

Код настройки конвертора в модуле zigbee2mqtt для датчика влажности (пока неуверен что это верное решение).

{
        zigbeeModel: ['nrf52840.ru_PWS'],
        model: 'nrf52840.ru_PWS',
        vendor: 'nrf52840.ru',
        description: 'Plant watering sensor',
        supports: 'humidity',
		fromZigbee: [fz.humidity2, fz.battery_PWS],
        toZigbee: [],
		meta: {configureKey: 1},
        configure: async (device, coordinatorEndpoint) => {
            const endpoint = device.getEndpoint(10);
			await bind(endpoint, coordinatorEndpoint, ['msRelativeHumidity', 'genPowerCfg']);
            await configureReporting.humidity(endpoint);
			await configureReporting.batteryVoltage(endpoint);
        },
    },

vsiv6fyhbwc0ns9spmifwe1a5g8.png

Тестовую прошивку написал один из участников нашего DIY сообщества — Lenz, вот его GIthub.

Стоимость компонентов которые пришлось добавить к китайскому влагомеру составила порядка 400–500 рублей. На мой взгляд вполне неплохо.

Видео работы датчика

Фото датчика

Дальнейшие планы на этот проект. Хочется заменить МК на что то более простое, например на nRF52810 или nRF52811, но всё будет упиратся в цену, скорее всего придется отказаться от радиомодулей и сделать просто на чипе. Возможно подумаю добавить зуммер, вполне вероятно стабилизатор питания, так как сейчас необходимо учитывать напряжение питания при замере. Довести до стабильного состояния Zigbee версию, сделать BLE версию, сделать мобильное приложение-показометр. Вообщем точно будет что-то еще.

Github этого проекта.

Если вас заинтересовал данный проект, предлагаю зайти в группу телеграмм, там всегда будет оказана помощь в освоении протокола Майсенсорс, Zigbee, BLE на nRF5, помогут освоить программирование nRF52 в Ардуино ИДЕ и не только в ней.

Телегам чат — @MYSENSORS_RUS.

© Habrahabr.ru