Position: IOT/C++ Firmware Developer (temp and humidity controlled environment)
Company: Startup
Category: C++
Experience required: 5y

We are building a smart grow chamber for at home / hobby agriculture. The chamber will have various temperature and humidity controls along with ambient lighting, using an ESP32 chip. Looking for firmware dev to write our control software for the components and integrate into the Blynk IOT platform

Critical features to develop for https://terrashroom.io:

0. C++ Firmware developed on the ESP32 microcontroller
1. Temperature, humidity and airflow controls
2. Users may set a static range setting for all items above
3. Temperature and humidity will be set to a fixed range for temp/saturation level. If the desired temp falls below a threshold (eg +/- 2 degrees), then the heating element or atomizer will kick in to bring back to desired setting. Example user setting for temperature 70-80°, anything within this range is ok, if temp dips to 68 then kick on the heater and bring back up to the minimum plus 1/2 the range (5° in this example), heater should run until sensors shows 75°. Same concept with humidity 80-90% saturation, once it dips below 78%, run atomizer to bring back to mid range
4. Airflow will be a hi/med/low setting along with a desired frequency of run time, eg run fan on low every 20 minutes for 10 minutes, or run fan on hi every 5 minutes for 1 minute, etc
The fan will also likely need to run while heating in order to move warm air into the chamber
5. We must keep in mind the airflow will likely quickly affect temp/humidity so those will need to adjust to work together
6. Simple light controls, on/off and a color selection (RGB + intensity)
8. WiFi device setup
9. Temperature and humidity readings published to Blynk every 10 minutes (configurable)

Phase 2

1. Custom grow cycles, essentially a list of temp/humidity/airflow and light settings over time. Eg 1 week fixed, then up temp and humidity for 2 weeks after
2. Advanced light settings, eg pulsing light, color changing, etc, should be flexible to add more later
3. Camera snapshots for time lapse video, webcam will upload or save a snapshot on a set frequency (eg every 20 minutes), we will then combine those into a time lapse video
4. OTA force updates (Blynk)