Brainstorming PAR (Photosynthetically active radiation) light sensor for MyCodo?


Does anybody know of a PAR (Photosynthetically active radiation) light sensor that might work well with MyCodo?

I found that that Seeed Studio sell a ready-made PAR sensor here:

It’s available with either a Modbus RS485 output, or with an analogue 0-2.5V output.

Do you know which ones would be easier to interface with MyCodo?

(I did see there was a MyCodo Github issue about RS485/Modbus support in MyCodo, but it doesn’t seem like it went anywhere).

Would the 0-2.5V analog output work with MyCodo somehow?

Vernie also make a PAR sensor that’s designed for their educational kits:

However, it has what seems to be a RJ45 (8P8C) connector, and seems to be designed to interface directly with their own collection devices.

Trolmaster also make a PAR sensor:

but that’s obviously designed only to hook in directly to their proprietary greenhouse controllers etc. (In fact, it’s because I wanted something more open/hackable that I got into MyCodo).

I saw that Atlas Scientific sell a colour sensor - EZO-RGB, but it doesn’t seem like that would detect PAR radiation easily, unless somebody here knows of a way. I did see this paper, but I don’t understand enough of the science yet to grok it properly).

I found this thread as well, where they talk about using the TCS34725 chip directly, and calibrating it against an actual PAR light meter:

I wonder how hard something like that would be to get going with MyCodo - or potentially using a similar technique with the Atlas Scientific sensor (which has the advantage of ready-made, and is already IP rated etc.)

What do people think?


Unless you are planning on testing a LOT of different grow lights, you don’t need a PAR meter. A real PAR meter costs between $300-$600… more than most lights.
Quantum Sensors - PAR Meters | Apogee Instruments

You’ll only use it once to measure your lights, and then never need it again (because lights don’t really change their output that much over time). Also, you do not need dimable grow lights, they are a gimmick to get you to buy overpriced lights.

There are 2 phone apps available, one for Android and one for Iphones, that do a fairly good job approximating the function of a PAR meter so you can check the PPFD output of your lights… mostly to see if they are at the right height over the canopy to get full DLI… for most LED lights that will be somewhere between 6 to 18 inches above the canopy.

The Android app is called Tent Buddy…

The Iphone app is called Photone…

I actually already have a PAR meter - I saved up and bought the Apogee MQ-610 some time back.

However, my issue is it’s a small handheld meter - and I wanted something that could log and record the data into MyCodo.

Also, yes, you’re right, the meter is rather expensive…lol, so I obviously couldn’t afford to buy one for each of the terrariums, or greenhouses I wanted to measure in.

Hence why I’m looking for something a bit cheaper, that I could leave in each terrarium/greenhouse. The terrariums generally have LED grow lights (e.g. HLG lights, or cheap Chinese copies - I’m hoping to compare the two, and different types of LED drivers - either Inventronics or Meanwell, which I’m also hoping to compare).

The greenhouses are on a balcony, and exposed to the sun - hence it’s not as controlled as LED grow lights, and I do want to measure the light levels there over time. Each greenhouse is in a different positions, and hence some are direct sunlight, some are partial shade etc.

In terms of dimmable LED lights - I wanted to do this to try to replicate the natural environment for the carnivorous plants. That, and it’s also an aesthetics thing (i.e. if I have it in my apartment, it looks nicer if the terrarium gradually dims the LED lights, to mimic normal dawn/dusk etc.). I believe some of the plants I’m hoping to grow are quite sensitive to photoperiod (e.g. VFTs, Sarracenias etc), as this triggers their dormancy etc. But I guess you’re coming at it from a pure growing perspective - in that if the lights snap on/off at sunrise/sunset, the plants wouldn’t care, right?

In terms of the options I had above:

What do you think would work well? Or how would you tackle measuring PAR in these different indoor/outdoor environments?

(And I do have the actual PAR meter to calibrate it against, or at least compare values against).

“Mimicking” natural light dimming doesn’t really do anything for the plants. They are either getting enough PPFD to photosynthesize, or they are not… they don’t really care if it is a gradual increase/decrease or suddenly full brightness/darkness… they will photosynthesize, or they won’t.

I’m not sure what your goal is in having Mycodo measure and log PPFD readings over time. Like I said, you only need to measure a light once, it’s not going to change much at all over time. And different PSUs or “drivers” are not going to change the PPFD output of an LED at a specific voltage & current… that is a function of the LED itself, not it’s power source.

There isn’t much you can do to change PPFD levels if you are in a greenhouse and already using the natural sunlight… and those readings are going to be all over the place depending on the natural conditions. PAR meters are really for testing artificial lighting in controlled conditions.

I’m also not sure how reading PAR over time is going to correlate to any observable changes in the plants. If you were conducting an experiment in a lab with full control over the light a plant received over time, then I could understand, but in your situation, I believe you are not going to get any relevant data and you are only wasting your time and money.


To answer your question in short, no. I’m actually surprised there’s little or nothing on the market along these lines for hobbyists. But, I can suggest a couple things.

The Seeed Studio device is promising, I wasn’t aware of it. Not impossible but, you probably don’t want to deal with the tedious details of RS485 (serial) or MODBUS versions. They’re pretty much industrial standards better suited to PLCs and don’t scale down easily to applications like this. The 0-2.5V analog version would be your best candidate. It shouldn’t be too hard to find an ADC for Raspberry Pi. I’d guess a 12-bit or 16-bit resolution like the Adafruit ADS1015 or ADS1115 is probably all you would need. It’s I2C and there’s already support for them in MyCodo.

Alternately, since it sounds like you have multiple locations you want to monitor maybe borrow a little trick from the latest trends in industrial SCADA. The idea is you probably have power and WiFi at each location and they’re too far away to run wires, especially I2C so use MQTT instead.

I added an MQTT broker to a Pi 4 running MyCodo. Then I use a little swarm of Pi Zero W devices with I2C sensors like this attached. A short Python script pushes the data to the Pi 4 broker and into MyCodo. All of a sudden … look ma, no wires! It works very well, it’s also cheap and flexible. The nearest equivalent in the agricultural applications would be LoRaWAN. You could certainly do that too but guessing it’s probably not necessary.

All that said, you could also go down the rabbit hole like I did and prototype the “A Novel Approach to Obtain PAR with a Multi-Channel Spectral Microsensor, Suitable for Sensor Node Integration” paper you mentioned if you have the skills and time. It’s very inexpensive and actually works well (arguably better than my Apogee MQ-100). I added a LTR390 to the AS7341 to catch the 320nm UVA band. You do need a decent spectrometer (OHSP350P) and lots of very complex regression calculations to figure how to calibrate the raw output from the photodiodes to a reasonably accurate measurement.

Anyways, hope this helps, good luck, ask me anything.

Hey Victor,

I guess the accuracy of the data is terrible but I I know that you can at least read the times the sun directly shines on the plants from mi flora bluetooth sensors and the likes. They will allow you to catch a glimpse of the suns relative intensity if they stay in the same place and orientation and they already are fully supported. I don’t know about their technical background, though. If it’s about supplementing artificial light, these sensor might be enough. Maybe you can improve data quality by calibrating with the PAR meter?


Iv used a number of different PAR meters including Apogee.
Iv found a decent meter that is fairly accurate (+/- 2-3%), whos readings do not slide, and costs less than $100, for most folks this will work just fine.
One of the benefits of this unit is that it is based around the ESP series of chips.
It is also self powered (2x AA batteries)
Unfortunately it is BT based.
However I was able to swap out the ESP BT module for an 8266 based WiFi chip flashed with Tasmota.
This allows the meter to communicate with Mycodo via MQTT.
So far it works pretty well, I have it set up on a tripod among the plants to measure light levels at the canopy.

The Atlas Scientific EZO-RGB sensor I ordered arrived - I was able to test it briefly using UART - it does pull in RGB values (24-bit), as well as LUX(.

The one annoying thing is that the white LED on the front of the sensor flashes white each time it takes a reading (default is once every 400ms). However, I can probably live with that, and you can change the reading frequency.

@Craig_C You mentioned in your post about using regression (I assume this is a statistics thing?) to calibrate the sensors (LTR390 and AS7341). You also said you had to use a spectrometer, OHSP350P.

My question is - do you think it would be possible to do any kind of calibration, using just the Apogee MQ-610 I have? Or do I need to invest in a spectrometer as well? =(

And if I can use the MQ-610 - any pointers, or guides on how I might be able to do it?


Possibly, here’s the idea.

I was able to find the work in progress from 2022 so I threw a couple examples in Python up on GitHub.

Photosynthetic Photon Flux Density (PPFD) Measurement (poor man’s quantum meter)

Howerver you do it you need to read the AS7341 channels then sum those into repeatable, reliable engineering units. It doesn’t actually matter what those units are at this point. The first step is to deal with the gain and integration time. For that you need some sort of autogain function. Best way to do that is to use the clear channel to manage the gain and integration.

Said the units don’t matter because we’re going to scale them with a linear equation. Something like: result = a0x0 + a1x1 + a2x2 … for all the aside from the clear and possibly IR. At that point multiply the sum by b0 which scales whatever the original units into umol m-2 s-1 to match your independent standard.

That was the easy part, the hard part is figuring out the coefficients.

The process is you put the AS7341 and the MQ-610 under the exact same light source at different heights. The spectral response of all three need to be know. Should be able to get those from the manufacturer’s website. There’s a pretty cool website that lets you digitize such things at:

Web Plot Digitizer

You don’t need the whole response, just the 415nm, 455nm, 480nm, etc. for each. Then you’d dump those normalized responses into a spreadsheet along with your light test results then do a regression on each to determine the coefficients.