55 lines
2.9 KiB
Markdown
55 lines
2.9 KiB
Markdown
## Calibrating the Grove High Temperature sensor
|
|
|
|
##### Attention:
|
|
This `README.md` is only for calibrating the probe and not the onboard sensor. So, this sensor comes with 2 thermometers:
|
|
1. One which is for measuring room temperatures - that's found on the sensor's board.
|
|
2. Another one which is for measuring temperatures between `-50 °C` and `+650 °C` - it's the long metal wire. **This is the one we're calibrating.**
|
|
|
|
## Step 1
|
|
Make the `GrovePi` continously read an analog port and print the values in the console. The analog port should be that of the `Grove High Temperature Sensor's`.
|
|
|
|
## Step 2
|
|
Put the sensor's long wire into a cup of boiling/hot water and take note of the value that's printed in the `Raspberry Pi`'s console. At the same time, use a professional thermometer and measure the temperature and write it down.
|
|
|
|
Do the same thing with cold water.
|
|
|
|
## Step 3
|
|
We will now have 4 values written down in a note:
|
|
* 2 values that were printed in the `Raspberry Pi`'s console - these values correspond with the following 2 values.
|
|
* 2 values where the measurement unit is in `Celsius Degrees` - measured with the professional thermometer.
|
|
|
|
Now, take the values that were measured with the professional thermometer and get them translated with the table provided in `thermocouple_table.json` file.
|
|
I.e: In `thermocouple_table.json` file, `90 °C` corresponds to `3.682`.
|
|
|
|
Now, lets assign the following values to each of these variables:
|
|
* `i1` = the translated value (from the table) we got when we measured the hot water w/ the **professional thermometer**.
|
|
* `i2` = the translated value (from the table) we got when we measured the cold water w/ the **professional thermometer**.
|
|
* `o1` = the value we got in our console when we measured the hot water w/ **our GrovePi**.
|
|
* `o2` = the value we got in our console when we measured the cold water w/ **our GrovePi**.
|
|
|
|
## Step 4
|
|
|
|
Let's calculate an `offset` and a `factor`. We will insert the calculated values in our table (`thermocouple_table.json` file).
|
|
|
|
First, lets calculated the `offset`.
|
|
* `offset` = `(o1 * i2 - i1 * o2) / (i2 - i1)`
|
|
|
|
And then, we get to calculate the `factor`. Use the `offset` value for calculating the `factor`.
|
|
* `factor` = `(o1 - offset) / i1`
|
|
|
|
## Step 5
|
|
|
|
Open up `thermocouple_table.json` file and update the following values:
|
|
* For `amp_offset` set the value we got for `offset` - it's preferable to have up to 6-7 digits in precision.
|
|
* For `amp_factor` set the value we got for `factor` - it's preferable to have up to 6-7 digits in precision.
|
|
|
|
Save the modifications.
|
|
|
|
## Step 6
|
|
|
|
Run the `high_temperature_example.py` program.
|
|
It's going to use the newly updated values.
|
|
|
|
------
|
|
###### `Note 1`: Calibrate the sensor when the values don't match with a professional thermometer by a long shot (i.e. 10 degrees). The sensor has already been calibrated, but who knows.
|
|
###### `Note 2`: The sensor's precision is around `+-3 Celsius Degrees`.
|