diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index f344f9c9..4b98181c 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -20,6 +20,7 @@ * [Duct tape wallet](/projects/wallet) * [Watch](/projects/watch) * [Soil Moisture](/projects/soil-moisture) + * [Plant Watering](/projects/plant-watering) * [Voting Machine](/projects/voting-machine) * [Infection](/projects/infection) * [Fireflies](/projects/fireflies) diff --git a/docs/projects.md b/docs/projects.md index 5e7bd0f6..360899cd 100644 --- a/docs/projects.md +++ b/docs/projects.md @@ -111,6 +111,10 @@ Fun games to build with your @boardname@. "name": "Soil Moisture", "url":"/projects/soil-moisture", "imageUrl":"/static/mb/projects/soil-moisture.jpg" +}, { + "name": "Plant Watering", + "url":"/projects/plant-watering", + "imageUrl":"/static/mb/projects/plant-watering.jpg" }] ``` diff --git a/docs/projects/plant-watering.md b/docs/projects/plant-watering.md new file mode 100644 index 00000000..3132e07e --- /dev/null +++ b/docs/projects/plant-watering.md @@ -0,0 +1,40 @@ +# Plant Watering + + +### ~avatar avatar + +Water your plants automatically! + +### ~ + +https://youtu.be/7eC_VjH1eP0 + +### ~ hint + +This is a follow up of the **[soil moisture project](/projects/soil-moisture)**. + +### ~ + +## Materials + +* 1 @boardname@ with battery pack and batteries +* 2 long nails or silver +* 2 crocodile clips +* 1 micro servo + 3 female-to-croc clips +* 1 ice cream wooden stick +* 2 elastics +* 1 clear tape roll +* 1 straw +* 1 pair of scissors + +## Activities + +* [Make](/projects/plant-watering/make) +* [Code](/projects/plant-watering/code) +* [Connect](/projects/plant-watering/connect) + +### ~button /projects/plant-watering/make + +Let's get started! + +### ~ diff --git a/docs/projects/plant-watering/code.md b/docs/projects/plant-watering/code.md new file mode 100644 index 00000000..aaf9cb45 --- /dev/null +++ b/docs/projects/plant-watering/code.md @@ -0,0 +1,59 @@ +# Code + +Let's add the code so that _when the soil moisture level is low, the servo waters the plant._ + +From the **soil moisture** project, we know that the moisture is low when the ``reading`` is roughly less than ``500``. +We can use this information to add an ``if reading < 500`` in the code. + +```block +let reading = 0 +if (reading < 500) { } +``` + +The servo is connected to pin ``P2`` so we can use ``pins servo write`` block to change the angle of the servo. +We need it to change the angle to ``0``, wait until the water has fallen off, and move it back to ``80``. + +```block +let reading = 0 +if (reading < 500) { + basic.showIcon(IconNames.Umbrella) + pins.servoWritePin(AnalogPin.P2, 0); + basic.pause(3000) + pins.servoWritePin(AnalogPin.P2, 80) + basic.pause(3000) + pins.analogWritePin(AnalogPin.P2, 0) +} +``` + +We insert the code above in the **forever** loop of the [soil moisture code](/projects/soil-moisture/connect). + +```blocks +radio.setTransmitSerialNumber(true) +radio.setGroup(4) +led.setBrightness(64) +let reading = 0 +basic.forever(() => { + pins.analogWritePin(AnalogPin.P1, 1023) + reading = pins.analogReadPin(AnalogPin.P0) + radio.sendNumber(reading / 4); + pins.analogWritePin(AnalogPin.P1, 0) + led.plotBarGraph( + reading, + 1023 + ) + if (input.buttonIsPressed(Button.A)) { + basic.showNumber(reading) + } + if (reading < 500) { + basic.showIcon(IconNames.Umbrella) + pins.servoWritePin(AnalogPin.P2, 0); + basic.pause(3000) + pins.servoWritePin(AnalogPin.P2, 80) + basic.pause(3000) + pins.analogWritePin(AnalogPin.P2, 0) + } + basic.pause(5000); +}) +``` + +https://youtu.be/7eC_VjH1eP0 diff --git a/docs/projects/plant-watering/make.md b/docs/projects/plant-watering/make.md new file mode 100644 index 00000000..b9a3273b --- /dev/null +++ b/docs/projects/plant-watering/make.md @@ -0,0 +1,24 @@ +# Make + + +## The pump + +Follow the instructions on the move to build a mini water-pump using a @boardname@ and a servo. + +https://youtu.be/jANCdtkJAKY + + +## The soil moisture sensor + +Follow the instructions of the [soil moisture project](/projects/soil-moisture) to build a soil moisture sensor +and upload the code to your @boardname@. + +The final wiring should look like this: + +![](/static/mb/projects/plant-watering/make.jpg) + +### ~button /projects/plant-watering/code + +Code + +### ~ diff --git a/docs/projects/soil-moisture/code.md b/docs/projects/soil-moisture/code.md index 54f36eeb..5ba438e5 100644 --- a/docs/projects/soil-moisture/code.md +++ b/docs/projects/soil-moisture/code.md @@ -55,6 +55,8 @@ for dry dirt. * insert the nails in the wet dirt, press ``B`` and note the value. You should see a value close to ``1000`` for dry dirt. +https://youtu.be/S8NppVT_paw + ## Step 3: Don't waste energy! ![](/static/mb/projects/soil-moisture/nailsp1.jpg) diff --git a/docs/static/mb/projects/plant-watering.jpg b/docs/static/mb/projects/plant-watering.jpg new file mode 100644 index 00000000..26dffca9 Binary files /dev/null and b/docs/static/mb/projects/plant-watering.jpg differ diff --git a/docs/static/mb/projects/plant-watering/make.jpg b/docs/static/mb/projects/plant-watering/make.jpg new file mode 100644 index 00000000..e6d8e433 Binary files /dev/null and b/docs/static/mb/projects/plant-watering/make.jpg differ