Skip to content

magnusbauer/flowersofthings

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

flowers of things

Controller for watering your plants powered by an ESP8266. Controlls soil humidity with a capacitive soil moisture sensor and waters plants accordingly. Watering and soil humidity can be supervised in the browser.

schematic build up

Schematic diagram:

schematic build up

How to run:

  • Install Arduino IDE (in this case 1.8.5) and add ESP8266FS in the Arduino tools folder (create it if it does not exist: 'Arduino/tools/ESP8266FS/tool/esp8266fs.jar'). This way after a restart of the Arduino IDE "ESP8266 Sketch Data Upload" should show up in tools.
  • Libraries needed for running 'flowers of things'.
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <FS.h>
#include <pins_arduino.h>
  • Provide SSID and password for internet connection (needed for timestamp) in the sketch. Don't forget to change the OTA password.
  • Set parameters for watering in '/data/config.json'
    • 'humiditylimit' - humidity threshold triggering watering
    • 'waitingtime' - waiting time to next watering
    • 'waterduration' - watering time for one cycle
  • Transfer files in data folder by pressing "ESP8266 Sketch Data Upload" in the tools menu. This can be tricky sometimes. If uploading fails try to unplug USB and start "ESP8266 Sketch Data Upload" immediately after you plug it in again.
  • Compile and flash ESP, check serial monitor for IP address.
  • Direct your browser to the IP address or choosen DNS (in this example http://esp8266.local) and see if the graph is working.
  • Measurement parameters can also be extracted via HTTP GET (example in Debug):

Exemplary plot:

schematic build up

Component list:

Alternative components:

References:

Icons used for favicon:

  • Plant by rivercon from the Noun Project
  • drop by Creative Stall from the Noun Project

ToDo:

  • save input boxes for wrong input/make more userfriendly
  • interactive plots (Zoom, Ajax, websocket etc.)
  • MQTT/NiFi
  • password from web useage without VPN
  • initialize sensor before measurement so its not always on
  • horizontal and vertical lines in plots to mark thresholds and watering time
  • only keep the last X days in memory instead of deleting when file is too big
  • water height sensor for tank
  • BME280
  • write about OTA