Difference between revisions of "Blog 05"
(→!BETA!) |
|||
Line 6: | Line 6: | ||
Script 1(The name I gave it was: ui): |
Script 1(The name I gave it was: ui): |
||
#!/bin/sh |
#!/bin/sh |
||
ui="bw_tool -a 94 -I -D /dev/i2c-1" |
|||
$ui -W 70:c7:b # internal tempsens with internal 1.1V as reference |
|||
$ui -W 71:c6:b # external tempsens with internal 1.1V as reference |
|||
$ui -W 81:1000:s |
|||
$ui -W 82:6:b |
|||
$ui -W 80:2:b |
|||
After this we make ui executable: |
After this we make ui executable: |
||
Line 32: | Line 32: | ||
Now it's time to make the second script. ( I named it showtemp) |
|||
⚫ | |||
# |
|||
# |
|||
# Set the number of samples to 64, and shift by 0, or set the |
|||
# number of samples to 4096 and shift by 6. The latter is recommended! |
|||
# |
|||
adcmaxval=65520 |
|||
#adcmaxval=1023 |
|||
# |
|||
# MCP9700 degrees per volt. |
|||
vperdeg=0.010 |
|||
#refvoltage=4.9000 |
|||
refvoltage=1.1000 |
|||
# mcp offset voltage is 500mv at 0 deg. At 0.010 volt per deg that comes to |
|||
# 50 degrees C. |
|||
offset=50 |
|||
# |
|||
# |
|||
# 60 adc channel 0, direct value (0-1023) |
|||
# 68 adc channel 0, averaged value (0-65520 with nsamp=4096, shift=6) |
|||
# 61 adc channel 1, direct value (0-1023) |
|||
# 69 adc channel 1, averaged value (0-65520 with nsamp=4096, shift=6) |
|||
register_to_read=69 |
|||
# |
|||
# settings are done, now the preparations. |
|||
convfactor=`(echo scale = 10 ; echo obase=16;echo $refvoltage / $vperdeg / $adcmaxval ) | bc` |
|||
offsethex=`(echo obase=16; echo scale=3;echo $offset) | bc ` |
|||
# now do the real deal. |
|||
⚫ | |||
(echo ibase=16; echo scale=3;echo $rawtemp \* $convfactor - $offsethex) | bc |
|||
After that we make is executable, like we did with the ui script. |
|||
chmod +x showtemp |
chmod +x showtemp |
||
Line 39: | Line 75: | ||
-rwxr-xr-x 1 pi pi 999 Sep 7 14:26 showtemp |
-rwxr-xr-x 1 pi pi 999 Sep 7 14:26 showtemp |
||
We trying it out I got failures, because I didn't download bc.: |
|||
apt-get install bc |
apt-get install bc |
||
To check if your scripts work: |
|||
sh -x ./ui |
sh -x ./ui |
||
Line 74: | Line 113: | ||
24.251648852 |
24.251648852 |
||
If a line is wrong it should give a warning. |
|||
So now everything is fine it is time to print it out: |
|||
⚫ | |||
0040 |
|||
⚫ | |||
⚫ | |||
To edit the info |
|||
nano ui |
|||
Which has to change in to: |
|||
⚫ | |||
⚫ | |||
ui="bw_tool -a 94 -I -D /dev/i2c-1" |
|||
$ui -W 70:c7:b # internal tempsens with internal 1.1V as reference |
|||
$ui -W 71:c6:b # external tempsens with internal 1.1V as reference |
|||
$ui -W 81:1000:s |
|||
$ui -W 82:6:b |
|||
$ui -W 80:2:b |
|||
bw_tool -I -D /dev/i2c-1 -a 94 -R 81:s |
|||
1000 |
|||
⚫ | |||
⚫ | |||
bw_tool -I -D /dev/i2c-1 -a 94 -w 10:00 |
bw_tool -I -D /dev/i2c-1 -a 94 -w 10:00 |
||
bw_tool -I -D /dev/i2c-1 -a 94 -t "temp: "`./showtemp |
bw_tool -I -D /dev/i2c-1 -a 94 -t "temp: "`./showtemp |
||
) |
|||
Code that I used: http://www.bitwizard.nl/wiki/index.php/Temperature_sensor_example |
Code that I used: [[http://www.bitwizard.nl/wiki/index.php/Temperature_sensor_example Temperature Sensor example]] |
||
( ui voor showtemp om werkende te krijgen time to wait ) |
|||
bw_tool -I -D /dev/i2c-1 -a 94 -t "temp: "`./showtemp` |
|||
Line 116: | Line 138: | ||
So I am going to try to mix the previous code with temperature code so it will check the code every amount of time. ( I will take 5 sec ) |
So I am going to try to mix the previous code with temperature code so it will check the code every amount of time. ( I will take 5 sec ) |
||
I made the script(Temp5): |
|||
nano friet |
|||
add this text: |
|||
( folder with a random name I called it friet. ) |
|||
#!/bin/bash |
#!/bin/bash |
||
Line 132: | Line 148: | ||
Do like the other times: |
|||
chmod +x |
chmod +x Temp5 |
||
And now when you do: |
|||
⚫ | |||
./Temp5 |
|||
He will print the temperature every 5 seconds. |
|||
On [[Blog 06]] I combined made it possible to show the time and temperature on the display. |
On [[Blog 06]] I combined made it possible to show the time and temperature on the display. |
Revision as of 14:41, 16 September 2015
!BETA!
Now the temperature sensor: For making the temperature sensor we have to make 2 script.
Script 1(The name I gave it was: ui):
#!/bin/sh ui="bw_tool -a 94 -I -D /dev/i2c-1" $ui -W 70:c7:b # internal tempsens with internal 1.1V as reference $ui -W 71:c6:b # external tempsens with internal 1.1V as reference $ui -W 81:1000:s $ui -W 82:6:b $ui -W 80:2:b
After this we make ui executable:
chmod +x ui
And look if it worked:
ls -l ui
This result should have -rwxr-xr-x like me: -rwxr-xr-x 1 root root 216 Sep 7 15:46 ui
Ater you see it works activate it:
./ui
( There will be nothing printed out when you activate it )
Now it's time to make the second script. ( I named it showtemp)
#!/bin/sh # # # Set the number of samples to 64, and shift by 0, or set the # number of samples to 4096 and shift by 6. The latter is recommended! # adcmaxval=65520 #adcmaxval=1023 # # MCP9700 degrees per volt. vperdeg=0.010 #refvoltage=4.9000 refvoltage=1.1000 # mcp offset voltage is 500mv at 0 deg. At 0.010 volt per deg that comes to # 50 degrees C. offset=50 # # # 60 adc channel 0, direct value (0-1023) # 68 adc channel 0, averaged value (0-65520 with nsamp=4096, shift=6) # 61 adc channel 1, direct value (0-1023) # 69 adc channel 1, averaged value (0-65520 with nsamp=4096, shift=6) register_to_read=69 # # settings are done, now the preparations. convfactor=`(echo scale = 10 ; echo obase=16;echo $refvoltage / $vperdeg / $adcmaxval ) | bc` offsethex=`(echo obase=16; echo scale=3;echo $offset) | bc ` # now do the real deal. rawtemp=`sudo bw_tool -I -D /dev/i2c-1 -a 94 -R $register_to_read:s | tr a-z A-Z` (echo ibase=16; echo scale=3;echo $rawtemp \* $convfactor - $offsethex) | bc
After that we make is executable, like we did with the ui script.
chmod +x showtemp ls -l showtemp
-rwxr-xr-x 1 pi pi 999 Sep 7 14:26 showtemp
We trying it out I got failures, because I didn't download bc.:
apt-get install bc
To check if your scripts work:
sh -x ./ui + ui=bw_tool -a 94 -I -D /dev/i2c-1 + bw_tool -a 94 -I -D /dev/i2c-1 -W 70:c7:b + bw_tool -a 94 -I -D /dev/i2c-1 -W 71:c6:b + bw_tool -a 94 -I -D /dev/i2c-1 -W 81:1000:s + bw_tool -a 94 -I -D /dev/i2c-1 -W 82:6:b + bw_tool -a 94 -I -D /dev/i2c-1 -W 80:2:b
sh -x ./showtemp + adcmaxval=65520 + vperdeg=0.010 + refvoltage=1.1000 + offset=50 + register_to_read=69 + + bc echo scale = 10 + echo obase=16 + echo 1.1000 / 0.010 / 65520 + convfactor=.006E06E01 + echo obase=16 + echo+ scale=3 bc+ echo 50 + offsethex=32 + sudo bw_tool+ -I -Dtr a-z A-Z /dev/i2c-1 -a 94 -R 69:s + rawtemp=ACC3 + echo ibase=16 + echo scale=3 + echo ACC3 * .006E06E01 - 32 + bc 24.251648852
If a line is wrong it should give a warning.
So now everything is fine it is time to print it out:
bw_tool -I -D /dev/i2c-1 -a 94 -t "temp: "`./showtemp`
(The remove the latest temperature and see the newest one:
bw_tool -I -D /dev/i2c-1 -a 94 -w 10:00 bw_tool -I -D /dev/i2c-1 -a 94 -t "temp: "`./showtemp
)
Code that I used: [Temperature Sensor example]
Now we have this. It may be better that we also get it to refresh around a several second instead we have to type the code:
bw_tool -I -D /dev/i2c-1 -a 94 -w 10:00 bw_tool -I -D /dev/i2c-1 -a 94 -t "temp: "`./showtemp
over and over again. So I am going to try to mix the previous code with temperature code so it will check the code every amount of time. ( I will take 5 sec )
I made the script(Temp5):
#!/bin/bash while true;do bw_tool -I -D /dev/i2c-1 -a 94 -w 10:00 bw_tool -I -D /dev/i2c-1 -a 94 -t "temp: "`./showtemp` sleep 5 done
Do like the other times:
chmod +x Temp5
And now when you do:
./Temp5
He will print the temperature every 5 seconds.
On Blog 06 I combined made it possible to show the time and temperature on the display.