PatrickHallek/automated-irrigation-system

Bring in changes

rafaelmuylaert opened this issue · 0 comments

I`m opening an issue to bring up a large change I would like to create a pull request for.

I`m adding some features to the system and would like to check if it would be ok to initiate a pull request.

A summary of the new features (Its been a couple years since I forked it, so I might have missed a couple small things)

  1. Auto-discovering of sensors using mDNS (no need to hardcode server IP to Arduino, and the server doesn`t need a static IP in the network).
  2. Setting sensor "Nicknames". I now use the sensor MAC as its name, to avoid having to hardcode the sensor name in Arduino
  3. Sensor wifi auto-setup with captive portal, avoiding hardcode wifi password to Arduino.
  4. Items 1, 2 and 3 allow sensors to be flashed with the code straight out of github. The user then plugs it in, connects to its wifi, chooses the ssid and sets the password, and the sensor is good to go.
  5. Battery mode allows sensors to send data and go into a deep sleep, allowing them to run on batteries.
  6. Rewrite calls to backend to avoid having to set the server ip in the Docker-compose file. We can now publish the server straight to docker with no requirement for the user to edit any files.
  7. Set sensor preferences through the front end. they get synced when the sensor uploads data (Battery mode on/off, sending interval)
  8. Allow pumps and sensors to be on the same or different ESP devices. We can use an ESP for all the pumps, or connect the pump directly to each sensor.
  9. Modifications to allow it to run in docker in a Windows computer (in WSL) or Linux. No need for a Rasberry Pi board.
  10. Compatibility with ESP32 and ESP8266 boards. We can now use the Lilygo pre-built irrigation sensor (https://www.aliexpress.com/item/1005005767792425.html)
  11. Hability to delete a sensor from the server, or delete its previous readings.
  12. Updated the docker image and dependencies for the backend to the latest packages.

To do / WIP:

  1. Gather more data from the sensor besides soil moisture (Fertility/salt levels, Light, temperature, etc) - will probably be done in a week or so.
  2. Freeze backend dependency versions.
  3. Update frontend node and dependencies (This has proven to be a larger challenge than I thought, so I`m running the same versions as your repository).