Let me try to break this down. And lets leave all the "toys" out of it for now.
Data Aquistion:
I think this is the hardest part. You must know what type of target machine you want to write it for, the data aquisition hardware you plan to use. Then the 2 of them has to play nice with each other. Let say you use the DataQ DAQ on a Unix* type system.
If you're using the DataQ on say Linux. At the easiest level. DataQ should have pre written libraries for you for your method of communications, or open source versions of programs for you to communicate with the DAQ.
For Example:
WinDAQ on the serial port. I will need a method of accessing the DATA aquired from the WinDAQ for the ph probe on channel one.
I will need some type of API/Library to access what my current pH is.
Puesdo Code:
Code:
...
use SerialHandle serial tty1
read SerialHandle->DAQObj(1)
return SerialHandle
Then some other considerations is that the DAQ has to support your types of probes. Whatever the type of output the DAQ expects, the Probe better be able to output for it.
For example, your probe outputs PH in milivolts, then your DAQ better be able to read the milivolts.
This is the hardest part to doing a monitor/controller in my mind. But I know very very little about DAQ's.
Everything else is very easy. Once you have the data (read "numbers"). All the ACTIONS (x10 routines), Data Storage (SQL), user control (Web interfaces, GUI's), is very easy.
Once you get the numbers from the probes, its just data. Everything you want to do with the data has readily available open source options for it.
Thats why most of us that wrote our own software went with AQII's. We just need a simple way of getting the data from the unit, then write our own software for control.
Puesdo Code:
Code:
read serial
parse data into variables
present and store variables
act on variables
Don't get me wrong, I would love to do this without the AQII. I actually want more pH probes available. But without looking at how you get the data, making sure libraries are available for your target machine, making sure it supports your types of probes, doing something like this is a lot of work.