Difference between revisions of "Blog 05"
|  (Created page with " == !BETA! ==    Finally the temperature sensor:  This will be a temperature sensor including the time.    #!/bin/sh  ui="bw_tool -a 94 -I -D /dev/i2c-1"  $ui -W 70:c7 # inter...") |  (→!BETA!) | ||
| (9 intermediate revisions by the same user not shown) | |||
| Line 2: | Line 2: | ||
| == !BETA! == | == !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: | |||
| Finally the temperature sensor:  | |||
| This will be a temperature sensor including the time.  | |||
|  chmod +x ui  | |||
|  #!/bin/sh | |||
|  ui="bw_tool -a 94 -I -D /dev/i2c-1" | |||
|  $ui -W 70:c7 # internal tempsens with internal 1.1V as reference | |||
|  $ui -W 71:c6 # external tempsens with internal 1.1V as reference | |||
|  $ui -W 81:1000 | |||
|  $ui -W 82:6 | |||
|  $ui -W 80:2 | |||
| And look if it worked: | |||
|  chmod +x ui  | |||
|  ls -l ui  |  ls -l ui  | ||
| This result should have -rwxr-xr-x like me: | |||
| Which will give as result: | |||
| -rwxr-xr-x 1 root root 216 Sep  7 15:46 ui  | -rwxr-xr-x 1 root root 216 Sep  7 15:46 ui  | ||
| Ater you see it works activate it: | |||
|  ./ui  |  ./ui  | ||
| ( There will be nothing printed out when you activate it ) | |||
| * | |||
|  #!/bin/sh  | |||
| Now it's time to make the second script. ( I named it showtemp) | |||
|  ui="bw_tool -I -D /dev/i2c-1 -a 94"  | |||
|  $ui -W 70:c7 # internal tempsens with internal 1.1V as reference  | |||
|  #!/bin/sh | |||
|  $ui -W 71:c6 # external tempsens with internal 1.1V as reference  | |||
|  #  | |||
|  $ui -W 81:1000  | |||
|  # | |||
|  $ui -W 82:6  | |||
|  # Set the number of samples to 64, and shift by 0, or set the  | |||
|  $ui -W 80:2  | |||
|  # 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.  | |||
| bw_tool -a 94 -I -D /dev/i2c-1 ( also works fine )  | |||
|  chmod +x showtemp  |  chmod +x showtemp  | ||
| Line 42: | 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 77: | 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: | |||
|  bw_tool -I -D /dev/i2c-1 -a 94 -R 81:s  | |||
|  0040  | |||
|  bw_tool -I -D /dev/i2c-1 -a 94 -t "temp: "`./showtemp` | |||
| [[File:Temperature.png|400px|thumb|none|]] | |||
| To edit the info | |||
|  nano ui  | |||
| Which has to change in to: | |||
| (The remove the latest temperature and see the newest one: | |||
|  #!/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  | |||
|  bw_tool -I -D /dev/i2c-1 -a 94 -R 81:s  | |||
|  1000  | |||
|  bw_tool -I -D /dev/i2c-1 -a 94 -t "temp: "`./showtemp` | |||
| The remove the latest one and see the newest you are doing it again | |||
|  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 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 119: | 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  | ||
|  DISPL="bw_tool -I -D /dev/i2c-1 -a 94" | |||
|  $DISPL -W 10:0:b | |||
|   while true;do  |   while true;do  | ||
|          bw_tool -I -D /dev/i2c-1 -a 94 -w 10:00  |          bw_tool -I -D /dev/i2c-1 -a 94 -w 10:00  | ||
| Line 135: | Line 152: | ||
| 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. | |||
| [[File:Temperature.png|400px|thumb|left|]] | |||
Latest revision as of 13:33, 21 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 
DISPL="bw_tool -I -D /dev/i2c-1 -a 94"
$DISPL -W 10:0:b
 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.
