Automatisk växtbevattning

Detta är en kort beskrivning av hur man kan bygga ett bevattningssystem med en micro:bit.

Vad du behöver

Vad gör den?

Micro:bit kommer att känna av jordens fuktighet i krukan, och när det blir för lågt aktiveras pumpen och får växten vatten. Fuktigheten visas som en graf på skärmen. När växten får vatten säger micro:bit tack. När man trycker på A-knappen pumpas också upp vatten.

Koppla ihop

Sätt micro:bit i edge connector brädet. Denna gör det enklare att koppla flera sladdar till din micro.bit.

Fuktsensorn har tre sladdar (eller tre pins som du får löda/koppla sladdar till): plus, minus och A. Plus kopplas till 3v på micro:bit, minus till GND (ground, jord), och A (skickar mätvärdet) till pin 1. Stek ner sensorn i växtens jord, men inte längre ner än linjen. (Fuktsensorn på bilden är inte helt korrekta varianten, men sladdarna stämmer.)

Den pumpen jag hittade funkar med 3 volt som kommer från 3v pinnen. Men den 3 volt som kommer ut till exempel pin 2 när jag sätter på den, räcker inte till pumpen, för att den kräver en starkare ström (mer ampere). Så då kommer jag använda mig av en transistor för att sätta på och stänga av den starkare ström från 3v pinnen med hjälp av den svagare strömmen som kommer från pin 2. I mitt fall hittade jag en ULN2803, vilket är en chip som innehåller 8 transistorer tillsammans. Så det är fler än vad vi behöver, men kanske jag hittar på något mer senare som jag vill kunna styra.. Se på bilden hur sladdarna är kopplade. Se till att hålla chippet på samma sätt: på bilden är den halvrunda markeringen på vänster sidan. Pumpen (motorn i bilden) kopplas med negativa sladden (svart) till chippet, och men positiva sladden (röd) till 3v. Se till att pumpen är helt under vatten när den är igång, och att sladd.

 

Koda

Genom att pröva att läsa ut värden och visa dom kan man lära sig vad olika nivåer av fuktighet ger som siffra i micro:bit. Jag lärde mig att i mitt fall 400 är super fuktig, och när den kommer nära till 800 ser det ut som mitt lilla träd har ont om vatten.

basic.forever(() => {
    basic.showNumber(pins.analogReadPin(AnalogPin.P1))
})

Länk till koden.

Då är det dags att koppla in pumpandet i koden. När grafen visas tar jag värdet minus 400 för att ha ett värde som börjar vid 0 istället för 400 (super fuktig).

let harSagtTack = false
input.onButtonPressed(Button.A, () => {
    pumpaVatten()
})
function pumpaVatten() {
    pins.digitalWritePin(DigitalPin.P2, 1)
    basic.pause(3000)
    pins.digitalWritePin(DigitalPin.P2, 0)
}
harSagtTack = false
basic.forever(() => {
    if (pins.analogReadPin(AnalogPin.P1) < 500) {
        if (!(harSagtTack)) {
            basic.showString("Tack!")
            harSagtTack = true
        }
    } else {
        harSagtTack = false
    }
    if (pins.analogReadPin(AnalogPin.P1) > 750) {
        pumpaVatten()
    } else {
        led.plotBarGraph(
            pins.analogReadPin(AnalogPin.P1) - 400,
            400
        )
    }
})

Länk till koden.

Relaterad

Här är en annan variant på ett micro:bit växtbevattningssystem, med instruktioner på engelska.

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *