https://github.com/mseri/pplofthesoil
Soil is a result of the Space Apps Challenge London 2013. It's aim is to provide an open, extremely cheap and easy to use system to collect soil data, manage it and make it globally available.
https://github.com/mseri/pplofthesoil
Last synced: over 1 year ago
JSON representation
Soil is a result of the Space Apps Challenge London 2013. It's aim is to provide an open, extremely cheap and easy to use system to collect soil data, manage it and make it globally available.
- Host: GitHub
- URL: https://github.com/mseri/pplofthesoil
- Owner: mseri
- Created: 2013-04-20T11:07:47.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2014-04-13T13:43:24.000Z (about 12 years ago)
- Last Synced: 2025-03-11T08:48:45.542Z (over 1 year ago)
- Language: JavaScript
- Homepage: http://spaceappschallenge.org/project/people-of-the-soil/
- Size: 51 MB
- Stars: 1
- Watchers: 8
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# People of the Soil
**(co-winners of the London Nasa Space Apps Challenge 2013)**
During the Space Apps Challenge 2013, at the Google Campus in London, we have developed **Project Soil**: an extremely cheap and easy to use system to collect and manage soil data.

We kept in mind that not all the world is as lucky as us and there are plenty of places where internet is slow or completely absent and where there is much less money around.
**Project Soil** is an open system that includes:
- an extremely cheap (~3£) digital soil testing kit to collect data, and eventually send it
- a light protocol to send the data using web, apps or even SMS and collect it on a centralised database
- an API to disseminate information via SMS or web
- a wonderful and light web application that can run on old and recent phones and gives access to the data with a simple and nice interface.
# Project Soil
We spent the first part of the challeng looking at all our different backgrounds and skills and reformulating the challenge in a series of smaller ones that we feelt we could face.

As you can see from the image below, **Project Soil** is made by three big interlaced projects, each of them with a particular focus: acquiring data, collecting it and make it available.

## The probe
In this part of the projected we aimed to create a proof-of-concept soil testing kit that could be miniaturised and mass produced. This can then upload recorded soil data, taken over a period of several weeks, to a central database via a phone application or computer interface.

The hardware team realized in an amazingly short time a working prototype of probe to collect soil data. In the first version an Arduino was collecting data from various sensors and sending it to a Rasperry Pi programmed to forward it to our database.

In addition, the aim was to create a PCB schematic and layout to implement this system realistically and cost such a device. CAD models were created to aid development and concept presentation.
The project uses a DS18B20 temperature sensor and a transistor amplified simple moisture sensor.
Moisture is displayed as an estimated percentage volume of water to soil. Completely soaked soil will hold up to around 50% water content and so a measurement of resistance of pure water is taken as the calibration mark for 50% and the probe held in air is taken as the calibration for 0%.
The hardware prototype is a proof of concept, a final device should use a much cheaper MPU such as an ATMEGA48A-MU 4K memory, 8-Bit MPU. This can be sourced (in bulk) for less than 80p per unit.
### The probe and its price breakdown
In fact, from that prototype the hardware team engineered a small and cheap device that you can simply plug in the field and leave alone collecting the data. Afterward it is enough to have a USB connection to collect the data and send it to our servers.

For whom may be interested, the price of the final device can be overestimated as follows:
- ATMEGA48A £0.80
- Resistor £0.10
- DS18B20 £0.85
- CR2032 Coin Cell £0.39
- Coin cell holder £0.20
- PCB manufacture £1.00
**Total £3.34**
## The SMS service
Keeping in mind that not all the world is covered by internet, we used the twilio API to create a service to send the data directly through SMS. This makes it good for use in more developing regions of the world.

Send a text to _01952 787011_ containing a list of readings for the following parameters pH, temperature, moisture, lat/latitude and long/longitude and then will be added to the dataset. The list of key, values can be separated by whitespace or , delimited and the order doesn't matter
```
pH = 7.2, lat=51.9972, long=-0.7421, temp=35
```
You will receive back a message confirming the data your sent and that it had been saved to the database.
## Data collection
While the SMS data goes directly to the database, all the rest of the communication is made by means of [MQTT](http://mqtt.org), a machine-to-machine (M2M)/"Internet of Things" connectivity protocol designed to be extremely lightweight. In this way we can move all the management of the data to our server and consume as less power and bandwith as possible on the clients.
## Web App
Again keeping in mind to consume as less bandwith as possible, we designed and developed an extremely intuitive and nice application, completely based on HTML and CSS, and with nearly no image. In this way people can access the data using any device, not just the last generation of smartphones, consuming nearly no bandwidth!

You can already test our web app going to [Project Soil App](http://www.soil-app.appspot.com/)
## Ideas for the future
The possible implications and improvement for the future are the most variuos. Here there is a small list of what we could and would like to achieve:
- Implementations of more chemical and pH sensors could be made extremely cheaply and in bulk by using thick film printing processes. _This could be an avenue for further development although the technology is still heavily in it's infancy._
- Improve the probe to make it cheaper, stronger and with longer battery life.
- Add wifi/bluetooth/NFC capability to a bigger version of the probe that would not require laptop, smartphones or raspberry pi to send the data.
- Create an easy to use application to collect and send the data from probes that cannot be connected to wifi or bluetooth networks.
- Make the system independent from us and working on a global scale.
- Add some finer controls on the database to avoid fake data.
- Implement a robust and flexible API to make the soil data available to researchers and any other in need.
- Improve the Web App to include data analysis, comparisons and infographics.
- Add support to other languages.
- Go to other planet (see below).

## Project Soil on other Planets
And with our small collaboration with solsola we are ready to fly on the space and collect extra terrestrial soil data!

# More Images and Informations
Look what we did going to the [Git Hub page](https://github.com/mseri/pplofthesoil), looking for our [hashtag #pplofthesoil](http://bit.ly/124FU89) on Twitter, watching our [presentation](http://bit.ly/ZIbJ3x) or reading our ["storified" weekend story](http://bit.ly/17dYVqT)

Additionally you can read:
- [Our video on Vimeo](http://vimeo.com/65080796)
- [Soil Testing Kit Challenge](http://spaceappschallenge.org/challenge/soil-testing-kit)
- [People of the Soil -- Project Page](http://spaceappschallenge.org/project/people-of-the-soil/)
Congratulation to all the [winners of the 2013 International Space Apps Challenge](http://open.nasa.gov/blog/2013/05/22/global-award-winners-for-the-2013-international-space-apps-challenge/).
We didn't win but we've got a Honorable Mention on the Global Impact category!!!!

And thanks to Ben's committment, we have a new, nice and cheap printed Soil PCB:

* * * * * * *
The Git repository contains:
- The **presentation** of our work: *SOILPres-v3.pdf*
- The full implementation of the **probe** (hardware and software) and the **PCB** schematic to build a cheap and effective probe: *probe* folder
- The interface to the **MQTT** service that translates the data and sends it to the DB: *MQTTinterface* folder
- The **DB and SMS** service (hosted on another Git repo): *text-message-and-database-api* folder
- The **mobile app** to have access to the data: *mobileapp* folder
- A folder **img** with the pictures used in this README files
The project is released under Eclipse Public License 1.0
* * * * * * * * * *
* * * * * * * * * *
# Something more technical for us and potential collaborators
## Data structure
Data readings are of the form
{
"id": "182791",
"time": "13:56:13 20/04/2013",
"lat": "97.03125",
"long": "107.2890",
"hasAltitude":true,
"altitude": "10",
"hasPH":true,
"pH":"7",
"hasMoisture":true,
"moisture":"97",
"hasTemperature":true,
"temperature":"40"
}
and must be sent to
- MQTT Broker: m2m.eclipse.org:1833
- Topic: /pots/soil
id, time, lat, long MUST be present and not NULL, otherwise the data is sent directly to /dev/null
It can be done as simple and boring as using
Or you can let your hardware prepare the data and send it using (more or less) any programming language: