Skip to main content

Farm Datalogger


This document is deprecated, Please do not follow.

The demo can be used to Monitor critical parameters which decide the health of the crops, Display the data on a Dashboard using Grafana.


What will you need?

  1. Raspberry Pi 3/4 (or any variant of these)
  2. mcro-SD card and micro-SD card Reader/Adapter.
  3. Temperature, Pressure sensor - BME280
  4. Soil Moisture sensor
  5. Analog to Digital Converter - PCF8591 module
  6. OLED Display (128x64) (optional)
  7. Female to Female Du-point cables
  8. Laptop or Server Installed with Influxdb and Grafana


Make your own Farm datalogger following these steps.

  1. Install Shunya OS
  2. Connect Hardware
  3. Run

Step 1: Install Shunya OS

Shunya Interfaces is built on top of Shunya OS and comes pre-installed with Shunya Interfaces. Shunya OS is an linux-based OS that runs on your hardware, it light-weight and configurable.

Install Etcher

Etcher allows you to Flash Shunya OS on the micro-SD card.

For Ubuntu 16.04

Installing Etcher is Simple, just run few commands in the terminal

$ sudo apt update
$ sudo apt install balena-etcher-electron

Flash Shunya OS

  1. Download Shunya OS
  2. Right click on the downloaded zip file.
  3. Click Extract here.
  4. Open Etcher.
  5. Click Select Image.
  6. You will find the Shunya OS .img file in the folder that we had extracted earlier.
  7. Select shunya-aaaa-image-xxxx.img file.
  8. Insert SD card.
  9. Click on Flash.

This will load the micro-SD card with Shunya OS.

Booting Up with Shunya OS

  1. Insert the micro-SD card into the board.
  2. Connect peripherals like Keyboard, Mouse and HDMI monitor.
  3. Connect Power Supply.

The board should boot up with Shunya OS.

Login to Shunya

Login with these credentials:

  • Username : shunya
  • Password : shunya

Step 2: Connect Hardware

Now its time to put all the hardware together, use the diagram below to connect hardware.

Oops!, No Image to display.

Step 3: Configure and Run


Tell Shunya Interfaces your hardware connections.

You can configure by running command.

$ sudo vi /etc/shunya/interfaces/config.yaml

Sensor ID's and Connection ID's

You tell all your Hardware connections to Shunya Interfaces via Sensor ID's and Connection ID's.

Each Sensor is given a special ID which the Shunya Interfaces library recognizes. And each Hardware pin on the Sensor is given a Connection ID.

So when we write pin 1: 1.1 Shunya Interfaces understands it as <Sensor 1>.<Sensor pin 1> connected to pin 1 of Raspberry Pi.

In our case, we have connected 2 devices to the Raspberry Pi (BME280 and PCF8591) to pin 3 (SDA) & pin 5 (SCL) respectively.

Our Config file will look like.

pin 3: [1.1, 6.1]
pin 4: null
pin 5: [1.2, 6.2]

Make sure to save your changes to the config file.


Compiling code is same as compiling C program. Just link the libraries.


While running the code use sudo to give appropriate permissions to your app.

$ sudo iotfarm  

Now your IoT device is ready and publishing data to the server.

Code Explanation