An easy-to-use D.I.Y. growth controller firmware (for cannabis).
Find a file
Marcus b28c71c9a4 basic work done for editing output
i had to use a global variable to put the outputId to edit in I receive
from the GET param edit. I havent found another solution. I wish I could
just pass the GET param to the template processor, but it seems this is
not possible at the moment or I havent seen the correct solution yet.
2024-10-29 00:15:28 +01:00
Arduino/CanGrow basic work done for editing output 2024-10-29 00:15:28 +01:00
KiCad/CanGrow pcb wip v0.6.1 - minor silkscreen tweak. 2024-09-25 02:11:13 +02:00
Logo add large favico png 2024-09-11 00:33:06 +02:00
playground/html delete output implemented 2024-10-27 01:33:10 +02:00
.gitignore fine tune web update 2024-10-22 00:40:07 +02:00
LICENSE Initial commit 2024-03-30 01:24:43 +01:00
README.md README.md aktualisiert 2024-09-14 21:04:14 +02:00

CanGrow

CanGrowLogo

An easy to use DIY grow controller firmware (for cannabis).

Screenshot_WebUI_root.png CanGrow_PCB_Front.png

WORK IN PROGRESS

Motivation

I havn't found an already existing grow controller project within the ESP / Arduino Core eco system which met my personal requirements. Those are an easy DIY, using low cost parts, Arduino Core sourcecode to hack own things together, having a WebUI, grab some Metrics for monitoring, standalone and my very special need that the Hardware should run completely with 12V.

Update 14.09.2024 - Code Rewrite v0.2

I took some "summer break" from the project, and had the opportunity to talk to different people about it. My conclusion at this point is, that the focus of this project is not the Hardware, it came out that it should be the software. So I decided to completely rewrite the code from 0 - with recycling some parts of it. Goal of the Rewrite is that the Firmware becomes more independent of the hardware used. It has to support both ESP8266 and ESP32 and let the user decide at which pin which output, sensor or whatever will be connected to. Like done in the Tasmota Firmware, I also want to support "Hardware Templates" which come with presets for PCBs like the one I created.

Checklist for v0.2 Firmware

  • Support ESP8266 and ESP32
  • AsyncWebserver instead ESP8266Webserver
  • LittleFS instead of EEPROM()
  • deliver static HTML, dynamic Stuff with Javascript
    • (or is there a better way? please tell me!)
  • Free configurable outputs
    • Main outputs for Light, Air, Water
    • Support for Tasmota Wifi Plugs (and others?)
    • No Limitation for Amount of outputs
    • Light
      • support for I2C 0-10V Dimm control
      • PWM dimm control
    • Air
      • support for I2C 0-10V Dimm control
      • PWM dimm control
      • Support for humidifier, heater (, CO2?)
      • Read Fan RPM
    • Water
      • Usual watering
      • Pump for fertilizer
  • Free configurable Inputs
    • Support for various I2C devices
      • All kind of sensors for Temp, Humidity, Moisture, and so on
      • Support for ADCs to connect multiple analoge sensors
    • Support for Analog inputs
      • onboard ones or I2C (ADC)
      • Analog Multiplexer support (like CD4051)
    • Calibrate sensors
      • define 0% and 100% values
      • Offsets
  • MQTT support
  • API

Old v0.1 Features / ToDo List

  • Measure values
    • Humidity
    • soil moisture
    • temperature
    • water level for water tank
  • LED grow light control (on/off, dimming, max. 12V 50W load )
    • You can of course use a relais as well, if you want to drive 220V lights
  • fan control (on/off, (PWM?) max 1A)
  • pump control for automatic watering (max 1A) 🔵
  • Web UI and REST API for data and controlling 🔵
    • simple web ui
    • REST API 🔵
    • Send notifications with web call (e.g. for mastodon) 🔴
    • predefined grow profiles 🔵
    • persistent data
      • Start of Grow
      • day of grow 🔵
      • grow profile
        • watering amount per week 🔵
        • light cycle
      • wifi settings
      • settings in general
  • Easy to build and use for beginners (i hope so!)
    • PCB layout to order from manufacture (jlcpcb or pcbway)
    • easy to build up on a perfboard
    • easy to etch pcb
    • easy to access and modify
    • low cost as possible!

Done - 🔵 In Progress - 🔴 ToDo