This repo represents an IoT application to detect the soil moisture level, sending an email when the level is below the minimum. The main components were developed with serverless functions, making use of the OpenFaaS platform. This way, components are developed as stateless functions which communicate with each other through HTTP. The following pictures show the final hardware assembly, composed of: (a) ESP8266 NodeMCU, and (b) soil moisture sensor.
Several technologies were used on this project. MongoDB was used to store the global settings, such as minimum moisture level and email address to be notified when current moisture is below the minimum. HTML/CSS/JS were used to build the UI. Java and Python were used to develop the serverless functions. Finally, OpenFaaS and Docker were used to run the previously developed functions.
The code for ESP8266 was built with Arduino IDE.
The frontend is a simple Web UI made with Bootstrap. When one clicks on Submit button, the sensorsettings function is fired with HTTP POST method in order to update the global settings.