This post provides an overview and learning objectives of Chapter 12 from my book Building Arduino Projects for the Internet of Things.


IoT platforms provide developers with the ability to develop, deploy and manage their IoT applications from one central location in a secure manner. IoT platforms expedite the development process by providing required tools in a cloud-based environment, which means developers do not spend time on setups. A good IoT platform would ideally include most of the tools that we have covered in previous 11 chapters such as MQTT broker, HTTP server, REST API support, database to store sensor data, Node-RED for complex orchestrations, device location, secure communications, reporting, analytics and easy to use tools for building the web and mobile apps etc.

In this chapter, you are going to cover a popular IoT platform Xively. You are going to build a Soil Moisture Control system that sends out an email alert whenever the moisture level of soil falls below a certain threshold. The figure below shows a high-level diagram of all components involved in this system. The first component is an Arduino device that monitors soil moisture level and publishes a message to Xively. Second and third components reside on Xively platform. With some basic configurations, the platform will be able to receive, store and display data sent by the sensor.

CodifyThings - Building Arduino Projects for the Internet of Things (IoT)

Learning Objectives

At the end of this chapter you will be able to:

  • Read soil moisture sensor data
  • Setup Xively to receive sensor data
  • Setup trigger in Xively to send an email using a Zapier task
  • Write code to read sensor data and publish it to Xively

Final Product

CodifyThings - Building Arduino Projects for the Internet of Things (IoT)