Smart Farms: Arduino, Sigfox and Oracle IoT

How to save my beloved “Tina”, and live happy

“Smart Agriculture”, Maker Faire, Rome 2017


OK, I need an explanation. “Tina” is the nickname I have given to my basil plant (Tina is short for piantina, the Italian word): my way to try to follow the myth of the zero-km cooking. It is not a trivial step: fresh basil is essential in the kitchen.

Article’s structure.

In the article I will cover many aspects of the overall solution.

The first module.

The first module of the system is the module that will monitor the environmental conditions and soil moisture.

  • I have to use wireless technology, an alternative to WIFI
  • LoRA
  • Sigfox

MKRFOX 1200 unboxing.

The first operation is, obviously, to unpack the board, extract the antenna from its package and connect it to the board. The antenna connects via an UFL micro connector, located on the right. It is really micro, the latter operation is not really simple, but with a good amount of patience you will succeed.

MKRFOX 1200 (without antenna)
  • install the RTCZero library
  • install the Arduino Low Power library
  • data are received from gateways and sent from network devices to Sigfox’s backend servers (Sigfox Cloud)
  • they are then sent to one of our servers, via a callback to be defined
Arduino sketch n. 1: how-to retrieve ID and PAC
  • your Country and, therefore, the network provider (in Italy: Nettrotter)
  • send data to the Sigfox network
  • put the card in deep-sleep
Sketch n. 2: how-to send data to Sigfox

Data on Sigfox Portal

At this point, we can see our board activated on the Sigfox portal:

List of our registered devices
Messages received
Sigfox geolocation feature

Sending data.

Sigfox allows, for each type of device, to define a callback that can be invoked when specific events occur.

Callback definition
  • I chose POST
  • Content-type: application / json
  • I deleted some information
Sigfox: Callback definition
JSON format used by callback

Integration with Oracle Cloud.

Synthetically, I have defined in Sigfox a callback that invokes the URL of an HTTP server distributed on the Oracle Cloud. The Sigfox message is encapsulated in a JSON that also contains the device name (as recorded in Sigfox).

Server implemented in NodeJS, Express

The (very) last mile.

The last step is to integrate with Oracle IoT Cloud.


In this article I have showed how it is possible to build a solution for a Smart Farm, based on the technologies: Arduino, Sigfox and Oracle IoT Cloud.

One last thing.

After writing the article, I discovered that Sigfox has published another interesting article on Medium, always linked to the theme: listen to the small plants. Enjoy.

Sigfox technical details.

The limits we talked about (12 bytes per message, 140 messages / day) may seem very restrictive.

Born in the wonderful city of Naples, but living in Rome. Always curious about new technologies and new things. I work in a big Cloud Company.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store