{"id":16717193,"url":"https://github.com/mseri/pplofthesoil","last_synced_at":"2025-03-15T09:42:01.971Z","repository":{"id":8143726,"uuid":"9562886","full_name":"mseri/pplofthesoil","owner":"mseri","description":"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.","archived":false,"fork":false,"pushed_at":"2014-04-13T13:43:24.000Z","size":53440,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-11T08:48:45.542Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://spaceappschallenge.org/project/people-of-the-soil/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mseri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-04-20T11:07:47.000Z","updated_at":"2015-05-26T09:24:16.000Z","dependencies_parsed_at":"2022-08-22T18:20:34.396Z","dependency_job_id":null,"html_url":"https://github.com/mseri/pplofthesoil","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mseri%2Fpplofthesoil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mseri%2Fpplofthesoil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mseri%2Fpplofthesoil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mseri%2Fpplofthesoil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mseri","download_url":"https://codeload.github.com/mseri/pplofthesoil/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243713402,"owners_count":20335566,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-12T21:30:43.566Z","updated_at":"2025-03-15T09:42:01.942Z","avatar_url":"https://github.com/mseri.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# People of the Soil\n**(co-winners of the London Nasa Space Apps Challenge 2013)** \n\nDuring 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.\n\n![People of the Soil in London](http://pbs.twimg.com/media/BIY1IiyCYAI3Vgq.jpg)\n\nWe 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. \n\n**Project Soil** is an open system that includes:\n\n- an extremely cheap (~3£) digital soil testing kit to collect data, and eventually send it\n- a light protocol to send the data using web, apps or even SMS and collect it on a centralised database\n- an API to disseminate information via SMS or web\n- 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.\n\n# Project Soil\n\nWe 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. \n\n![First drafto of Project Soil](img/project_pic.JPG)\n\nAs 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.\n\n![Project Soil in bites](img/project_structure.png)\n\n## The probe\n\nIn 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.\n\n![The Probe v0.1](img/proto0.png)\n\nThe 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.\n\n![Testing the Probe v0.1](img/proto01.jpg)\n\nIn 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.\n\nThe project uses a DS18B20 temperature sensor and a transistor amplified simple moisture sensor.\n\nMoisture 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%.\n\nThe 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.\n\n### The probe and its price breakdown\n\nIn 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.\n\n![The Probe v.1.1 - PCB](img/proto1.jpg)\n\nFor whom may be interested, the price of the final device can be overestimated as follows:\n\n- ATMEGA48A £0.80   \n- Resistor £0.10   \n- DS18B20 £0.85   \n- CR2032 Coin Cell £0.39   \n- Coin cell holder £0.20   \n- PCB manufacture £1.00   \n\n**Total £3.34**\n\n## The SMS service\n\nKeeping 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.\n\n![A small screenshot of the webapp and the SMS service](img/sms2.jpg)\n\nSend 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\n\n```\npH = 7.2, lat=51.9972, long=-0.7421, temp=35\n```\n\nYou will receive back a message confirming the data your sent and that it had been saved to the database.\n\n## Data collection\n\nWhile 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.\n\n## Web App\n\nAgain 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!\n\n![Web App](img/webapp.png)\n\nYou can already test our web app going to [Project Soil App](http://www.soil-app.appspot.com/)\n\n## Ideas for the future\nThe 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:\n\n- 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._\n- Improve the probe to make it cheaper, stronger and with longer battery life.\n- 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.\n- Create an easy to use application to collect and send the data from probes that cannot be connected to wifi or bluetooth networks.\n- Make the system independent from us and working on a global scale.\n- Add some finer controls on the database to avoid fake data.\n- Implement a robust and flexible API to make the soil data available to researchers and any other in need.\n- Improve the Web App to include data analysis, comparisons and infographics.\n- Add support to other languages.\n- Go to other planet (see below).\n\n![More to come on the web app](img/moretocome.png)\n\n## Project Soil on other Planets\nAnd with our small collaboration with solsola we are ready to fly on the space and collect extra terrestrial soil data!\n\n![Solsola and Project Soil on Mars](img/mars.png)\n\n# More Images and Informations\n\nLook 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)\n\n![Our Team](img/team.png)\n\nAdditionally you can read:  \n- [Our video on Vimeo](http://vimeo.com/65080796)  \n- [Soil Testing Kit Challenge](http://spaceappschallenge.org/challenge/soil-testing-kit)\n- [People of the Soil -- Project Page](http://spaceappschallenge.org/project/people-of-the-soil/)\n\nCongratulation 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/). \nWe didn't win but we've got a Honorable Mention on the Global Impact category!!!!\n\n![Honorable Mention for Project Soil](img/GIHM.png)\n\nAnd thanks to Ben's committment, we have a new, nice and cheap printed Soil PCB:\n![We have a new printed version of the Soil Probe - Thanks Ben](img/soil1.1.png)\n\n* * * * * * * \n\nThe Git repository contains:\n\n- The **presentation** of our work: *SOILPres-v3.pdf*\n- The full implementation of the **probe** (hardware and software) and the **PCB** schematic to build a cheap and effective probe: *probe* folder\n- The interface to the **MQTT** service that translates the data and sends it to the DB: *MQTTinterface* folder\n- The **DB and SMS** service (hosted on another Git repo): *text-message-and-database-api* folder\n- The **mobile app** to have access to the data: *mobileapp* folder\n- A folder **img** with the pictures used in this README files\n\nThe project is released under Eclipse Public License 1.0\n\n* * * * * * * * * *    \n* * * * * * * * * *    \n\n# Something more technical for us and potential collaborators\n\n## Data structure\n\nData readings are of the form  \n\n{  \n    \"id\": \"182791\",  \n    \"time\": \"13:56:13 20/04/2013\",  \n    \"lat\": \"97.03125\",  \n    \"long\": \"107.2890\",  \n    \"hasAltitude\":true,  \n    \"altitude\": \"10\",  \n    \"hasPH\":true,  \n    \"pH\":\"7\",  \n    \"hasMoisture\":true,  \n    \"moisture\":\"97\",  \n    \"hasTemperature\":true,  \n    \"temperature\":\"40\"  \n}  \n\nand must be sent to\n- MQTT Broker: m2m.eclipse.org:1833\n- Topic: /pots/soil\n\nid, time, lat, long MUST be present and not NULL, otherwise the data is sent directly to /dev/null\n\nIt can be done as simple and boring as using \u003chttp://mqtt.io/\u003e    \nOr you can let your hardware prepare the data and send it using (more or less) any programming language: \u003chttp://mqtt.org/software\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmseri%2Fpplofthesoil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmseri%2Fpplofthesoil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmseri%2Fpplofthesoil/lists"}