Sensor Descriptor
The Node Description File requires that for each sensor a URL is specified that resolves to a page defining the capabilities of that sensor (e.g. a DHT-22 temperature and humidity sensor, TMP35 digital thermometer). The capabilities of the device reading the sensor (e.g. the analogIn() function of the Arduino UNO) are not considered here, but are considered in the process array.
name | Human readable name of the sensor |
datasheet | URL to the datasheet from the manufacturer |
accuracy | |
detectionLimit | |
drift | |
frequency | |
latency | |
precision | |
resolution | |
responseTime | |
selectivity | |
sensitivity | |
measurementUnit |
Sensor Reading
The Sensor Reading is requested by a control node on the network, the response is a JSON formatted string delivered over HTTP that gives information required to identify the sensor and processes it undertakes as well as the interim measurement for each stage of the process array defined in the Node Descriptor File. The first process in the list will be the process that first reads the sensor (e.g. the ADC reading for a sensor that uses voltage changes, or for purely digital sensors the initial reading before any processing). The array is keyed using the same index numbers as defined in the Node Descriptor File. The results returned for each process maybe a single value or a JSON-serialised array of URL=>value pairs (e.g. for returning DarwinCore Occurrence records of a machine-observed specimen). The final value in the process array will be the final reading. This value is kept in the process array rather being listed as a separate ‘final’ entry to allow for nodes that perform additional processing on the returned array to easily append their processes to this array.