millis or state machine?

I am building a sensor package that will monitor the temp, optical density and pH of a solution. The only "if"/"else" I foresee needing will be triggering a gate valve on a CO2 input to regulate the pH. I understand the concept of state machines but have much to learn in writing them. Would I be better served to use state machines or using millis to time events?

Thank you!

Do you need to do "more than one thing at a time"? If not, you don't need a state machine or millis().

aarg:
Do you need to do "more than one thing at a time"? If not, you don't need a state machine or millis().

I don't believe so and capturing the parameters only needs to happen ~every 4-6hrs. That being said, I need a feedback loop to know when the pH is back within range (enough CO2 has been added)--could this be done via a shorter defined period within the larger interval?

EFox:
I don't believe so and capturing the parameters only needs to happen ~every 4-6hrs. That being said, I need a feedback loop to know when the pH is back within range (enough CO2 has been added)--could this be done via a shorter defined period within the larger interval?

Yes.

Would I be better served to use state machines or using millis to time events?

The two are not mutually exclusive

EFox:
I don't believe so and capturing the parameters only needs to happen ~every 4-6hrs. That being said, I need a feedback loop to know when the pH is back within range (enough CO2 has been added)--could this be done via a shorter defined period within the larger interval?

Again, millis() is optional with this. The alternative is to count the number of times you execute the feedback loop. Say it takes 1 second. Just count seconds, when it reaches 46060, capture the parameters and reset the counter.

UKHeliBob:
The two are not mutually exclusive

I do know they aren't but I was seeking advice on whether I'd need to utilize a state machine or if I could effectively orchestrate the timing of multiple events without using a state machine. It is my understanding that I can have multiple, non-related analogReads running concurrently.

For my purpose, there is no reason not to have all three sensors to check (essentially) simultaneously but I'll need to circle back and recheck the pH at a much shorter interval if the previous reading was above a determined threshold.

You can orchestrate a cyclical pattern of sensor reads and reporting, all without millis(). That is just answering your question directly. The other aspect of it, though, is whether it is the best choice. That depends on your future plans for the project. If you think you will be expanding it with more hardware or communications options, you might be better off to implement millis() now, when it will be easy. If you have to convert a large program, it's harder.