Things used in this project

Hardware components:
R8326274 01
Raspberry Pi 2 Model B
×1
Male/Male Jumper Wires
×1
moisture sensor
×1
Software apps and online services:
10
Microsoft Windows 10 IoT Core

Schematics

wiring
wiring: VCC -> 3v3 (Pin 1 on gpio)
GND -> GND (Pin 9 on gpio)
D0 -> GPIO 17 (Pin 11 on gpio)
35941a45 a8d7 4131 8ec8 d12808c076b1 jkimhnjg1i

Code

Code snippet #1C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Http;
using Windows.ApplicationModel.Background;
using Windows.Devices.Gpio;
using Windows.UI.Core;
using System.ServiceModel;
using LightBuzz.SMTP;
using Windows.ApplicationModel.Email;

namespace BackgroundApplication1
{
    public sealed class StartupTask : IBackgroundTask
    {
        private const int SENSOR_PIN = 17;
        private GpioPin pinSensor;
        private BackgroundTaskDeferral deferral;

        private const string SMTP_SERVER    = "smtp-mail.outlook.com";
        private const string STMP_USER      = "YOURPLANTSADDRESSHERE@hotmail.com";
        private const string SMTP_PASSWORD  = "YOURPASSWORDHERE";
        private const int    SMTP_PORT      = 587;
        private const bool   SMTP_SSL       = false;

        private const string MAIL_RECIPIENT = "iwillwatertheplants@hotmail.com";

        public void Run(IBackgroundTaskInstance taskInstance)
        {
            deferral = taskInstance.GetDeferral();

            taskInstance.Canceled += TaskInstance_Canceled;

            var gpio = GpioController.GetDefault();

            if (gpio != null)
            {
                pinSensor = gpio.OpenPin(SENSOR_PIN);

                var r = pinSensor.Read();

                pinSensor.SetDriveMode(GpioPinDriveMode.Input);

                var dm = pinSensor.GetDriveMode();

                pinSensor.DebounceTimeout = TimeSpan.FromMilliseconds(50);

                pinSensor.ValueChanged += PinIn_ValueChanged;
            }
        }

        private void PinIn_ValueChanged(GpioPin sender, GpioPinValueChangedEventArgs args)
        {
            if (pinSensor.Read() == GpioPinValue.High)
                SendMail("Thirsty", "Plant needs water");
            else
                SendMail("I am good", "Plant is fine again");
        }

        private async void SendMail(string subject, string body)
        {
            using (SmtpClient client = new SmtpClient(SMTP_SERVER, SMTP_PORT, SMTP_SSL, STMP_USER, SMTP_PASSWORD))
            {
                EmailMessage emailMessage = new EmailMessage();

                emailMessage.To.Add(new EmailRecipient(MAIL_RECIPIENT));
                emailMessage.Subject = subject;
                emailMessage.Body = body;

                await client.SendMailAsync(emailMessage);
            }
        }

        private void TaskInstance_Canceled(IBackgroundTaskInstance sender, BackgroundTaskCancellationReason reason)
        {
            pinSensor.Dispose();
        }
    }
}
Github
https://github.com/modmypi/Moisture-Sensor/blob/master/moisture.py
Github
https://github.com/LightBuzz/SMTP-WinRT

Credits

6dec5eb240c49d979542d7cef64e9a8d
JP Hellemons

c# coder

Contact

Replications

Did you replicate this project? Share it!

I made one

Love this project? Think it could be improved? Tell us what you think!

Give feedback

Comments

Similar projects you might like

Controlling Raspberry Pi's Terminal using Android Phone
Easy
  • 90
  • 3

Full instructions

Controlling the terminal window of the Raspberry Pi 3 using Android Phone via SSH.

PIR Motion Sensor with Raspberry Pi
Easy
  • 425
  • 9

Full instructions

Quick project to interface PIR sensor to Raspberry Pi.

Getting Started with BBC Micro:Bit
Easy
  • 270
  • 8

Full instructions

This tutorial will show you the basics to get started with BBC micro bit.

SMART HOME SECURITY SYSTEM
Easy
  • 1,744
  • 14

Full instructions

Detects intrusion and notifies house owner. The owner remotely watches the house and if any theft is suspected will turn on the buzzer.

Windows 10 IoT Core - Reading Heart Rate Pulses
Easy
  • 689
  • 7

Full instructions

In this short blog post, I will show you how to connect a Heart Rate Pulse Sensor to you Raspberry Pi running Windows 10 IoT Core.

Boost Your Google Home With Prota OS for RPi
Easy
  • 1,332
  • 7

Full instructions

Extend your Google Home features to smart light, smart speakers, smart cam and smart appliances with those DIY tricks based on Raspberry Pi.

ProjectsCommunitiesTopicsContestsLiveAppsBetaFree StoreBlogAdd projectSign up / Login
Feedback