How to connect a Raspberry Pi to Carriots using Windows 10 IoT Core and build a Notification System

0. Introduction

This easy tutorial helps you to build a Notification System for your home or office.
To do this, we use a Raspberry Pi with Windows IoT 10 core installed in.
In this project you will learn how to:

  • Connect a Raspberry Pi to Carriots to send data streams using Carriots HTTP REST API
  • Build a Notification App on Carriots by programming a Listener to send an email using the SDK

Difficulty:

Ingredients

  • 1 x Raspberry Pi 2. Having installed Windows 10 IoT Core
  • 1 x Tiny Breadboard
  • 1 x Resistance 330Ω
  • 1 x Pushbutton

TOP

1. Project Schema

  • Schema

TOP

2. Raspberry Pi. Connections description

To read the values of an analog sensor with a GPIO pin, we have relied on the proposed solution in: http://www.raspberrypi-spy.co.uk. If you want further information please read the following article:
Reading Analogue Sensors With One GPIO Pin

The connections in Raspberry Pi are extremely simple. You can see the diagram below:

  • Connection schema
  • Real display

TOP

3. Carriots Project and Device Registration

Device

If you´re registered in Carriots, you have a default device already created for you.
Check your control panel and see what it looks like.
Basically you need the device id_developer that might be something like defaultDevice@myusername.
But if you want, you can create a new device and use it in this example.

Apikey

Now, go to your control panel “My account menu” and check your Apikey.
Its a big alphanumeric token like:
98346673a6377ef1fde2357ebdcb0da582b150b00cabcd5a0d83045425407ab4.
You need this number to complete the example.

TOP

4. Code implemented on Visual Studio 2015

This is the C# code to Raspberry Pi. Note that some values should be replaced by your own values.

This code must be written in the MainPage.xaml.cs file. In addition, reference should link Carriots DLL.

you can check that Data is being collected in Carriots

  • Carriots stream list

TOP

5. Creating a Notification with Carriots Listeners

A listener in Carriots can be associated to any hierarchy entity, from Project to Device. If you associate a listener to a project, all devices below the services of that project will be affected. If you associate a listener to service, all devices below the groups of that services will be affected. And so on.

In this example, we create a listener associated with our device. This listener waits for an event to occur in the context of the device and then evaluate the content.

To create a listener go to the control panel, then to “Rules” → “Listeners” and click on the new button. Select "Device" as "entity type" and select your device on the "Id" field.

Fill the fields with the following values and save the new listener:

  • Name: The name that you prefer
  • Description: The description that you prefer
  • Entity type: Device
  • Entity id: Your id device
  • Event to listen: data_persisted
  • If expression:
    context.data.alert=="on"
  • Then expression:
    import com.carriots.sdk.utils.Email;
    def email = new Email ();
    email.to="YOUR EMAIL HERE";
    email.message="Pressed button";
    email.send();
  • Then rule: leave empty
  • Else expression: leavy empty
  • Else rule: leave empty
  • Be sure to have your listener enabled if you want it to be executed

TOP

6. From here on: Enhancing the project

Now you know how to connect an Raspberry Pi using Windows IoT to send data to Carriots and how to create a simple App with a single Listener and some SDK programing in Groovy. But you can enhance this project in many ways:

  • Try to add a light sensor to the Raspberry Pi and send a sms considering the value of this device.
  • Try to add a motion sensor to the Raspberry Pi and send other values.
  • Create your own control panel to check the status of the Raspberry Pi, by building an HTML page with a request to our API to ask for the status value of your device.
  • Create another device that you can interact with (like a sound alarm) and build an app combining actions between the two devices through Carriots.
TOP