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

В этом проекте используется датчик влажности, который заземляется в почве около растения. Когда датчик обнаруживает низкое содержание влажности в почве, он отправляет посредством подключенного по UART Bluetooth-модуля уведомление пользователю, чтобы сообщить ему об этом. Также система обеспечивает визуальную индикацию с помощью светодиода.
Итак, подключите последовательно три необходимых компонента (датчика влажности почвы, Bluetooth-модуля и светодиода) к Raspberry Pi Pico, как показано на следующих изображениях.



Код, написанный на Python, весьма прост и представлен далее:
from machine import ADC, Pin, Timer, UART
import utime
uart = UART(0,9600)
#ledplacuta
led_placuta = Pin(25, Pin.OUT)
timer = Timer()
def blink(timer):
led_placuta.toggle()
led = Pin(14, Pin.OUT)
soil = ADC(Pin(26)) # линия датчика влажности почвы
#калибровочные значения
min_moisture=0
max_moisture=45235
readDelay = 2 # задержка между измерениями
send=UART(0,9600)
while True:
message=''
moisture = (min_moisture+soil.read_u16())*100/(max_moisture-min_moisture)
message=str(moisture)
print("moisture: " + "%.2f" % moisture +"% (adc: "+str(soil.read_u16())+")")
if moisture < 1:
print("Flowers need water")
message+=" u"
led.value(1)
elif moisture > 70:
print(" The flowers have too much water")
message+=" s"
led.value(1)
else:
led.value(0)
send.write(message)
utime.sleep(readDelay) # задержка между измерениями
timer.init(freq=25, mode=Timer.PERIODIC, callback=blink)
led.value(0)
© digitrode.ru