{"id":163575,"date":"2012-12-22T17:42:03","date_gmt":"2012-12-22T13:42:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=163575"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=163575","title":{"rendered":"<span class=\"post_title\">\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0447\u0430\u0439\u043d\u0438\u043a\u0430 \u0438 DS18B20 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c Raspberry Pi<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t\u0414\u043e\u0431\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0443\u0442\u043e\u043a, \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u043e\u0435 \u0445\u0430\u0431\u0440\u0430\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e!<br \/>  \u041d\u0435\u0434\u0435\u043b\u044e \u043d\u0430\u0437\u0430\u0434 \u044f \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0434\u043e\u0436\u0434\u0430\u043b\u0441\u044f \u0441\u0432\u043e\u044e \u041c\u0430\u043b\u0438\u043d\u043a\u0443. \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0431\u0438\u0442\u044c \u0448\u0438\u0448\u043a\u0438 \u0432 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b.<br \/>  \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u2014 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0418\u0442\u0430\u043a, \u0441\u0442\u0430\u0432 \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u0435\u043b\u0435\u043c \u041c\u0430\u043b\u0438\u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0447\u0430\u0441\u0442\u044c\u044f \u0441 512 \u041c\u0411 \u041e\u0417\u0423 \u043d\u0430 \u0431\u043e\u0440\u0442\u0443, \u0437\u0430\u043d\u043e\u0432\u043e \u043d\u0430\u0447\u0430\u043b \u043f\u0435\u0440\u0435\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0441\u0442\u043e\u0432, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435, \u043f\u0440\u043e <a href=\"http:\/\/habrahabr.ru\/post\/158911\/\">\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435<\/a> <a href=\"http:\/\/habrahabr.ru\/post\/155869\/\">\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b<\/a> \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u00ab\u0423\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0430\u00bb. \u041d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u043e\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043b\u0435\u043a\u043e \u043e\u0442 IT, \u0440\u0435\u0448\u0438\u043b \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443 <a href=\"http:\/\/habrahabr.ru\/post\/160067\/\">\u0410\u043b\u0438\u0441\u0443<\/a>, \u0430 \u043d\u0430\u0447\u0430\u043b \u0441 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u2014 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b.<br \/>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0430 \u041c\u0430\u043b\u0438\u043d\u043a\u0443 \u044f \u043e\u043f\u0443\u0449\u0443, \u044d\u0442\u0430 \u0442\u0435\u043c\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0430 <a href=\"http:\/\/habrahabr.ru\/post\/149890\/\">\u0442\u0443\u0442<\/a> \u0438 <a href=\"http:\/\/elinux.org\/RPi_Easy_SD_Card_Setup\">\u0442\u0443\u0442<\/a>. \u041f\u0435\u0440\u0435\u0439\u0434\u0443 \u0441\u0440\u0430\u0437\u0443 \u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u041c\u0430\u043b\u0438\u043d\u043a\u0438 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0441 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431.<br \/>  \u042f \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u043d\u0430 \u0441\u0432\u044f\u0437\u043a\u0443 1-wire, <a href=\"http:\/\/datasheets.maximintegrated.com\/en\/ds\/DS18B20.pdf\">ds18b20<\/a> \u0438 <a href=\"http:\/\/oss.oetiker.ch\/rrdtool\/\">rrdtool<\/a>, \u043a\u0430\u043a \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442.<\/p>\n<h5>1. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u043e\u0444\u0442\u0430<\/h5>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0430\u0442\u0447 \u044f\u0434\u0440\u0430 \u0434\u043b\u044f 1-wire<\/b><\/p>\n<div class=\"spoiler_text\">cd \/boot<br \/>  wget <a href=\"http:\/\/www.frank-buss.de\/raspberrypi\/kernel-rpi-w1.tgz\">www.frank-buss.de\/raspberrypi\/kernel-rpi-w1.tgz<\/a><br \/>  tar -xzf kernel-rpi-w1.tgz<br \/>  rm -f kernel-rpi-w1.tgz<br \/>  cd \/lib\/modules<br \/>  wget <a href=\"http:\/\/www.frank-buss.de\/raspberrypi\/modules-rpi-w1.tgz\">www.frank-buss.de\/raspberrypi\/modules-rpi-w1.tgz<\/a><br \/>  tar -xzf modules-rpi-w1.tgz<br \/>  rm -f modules-rpi-w1.tgz<br \/>  sync<br \/>  reboot  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 libwww-perl \u0438 rrdtool<\/b><\/p>\n<div class=\"spoiler_text\">sudo apt-get install libwww-perl rrdtool  <\/div>\n<\/div>\n<p>  <\/p>\n<h5>2. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432<\/h5>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0440\u0438\u043f\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 create_db.sh<\/b><\/p>\n<div class=\"spoiler_text\">#!\/bin\/bash<br \/>  rrdtool create multirPItemp.rrd &#8212;step 300 \\<br \/>  DS:in_temp:GAUGE:600:0:50 \\<br \/>  DS:out_temp:GAUGE:600:-30:50 \\<br \/>  RRA:AVERAGE:0.5:1:12 \\<br \/>  RRA:AVERAGE:0.5:1:288 \\<br \/>  RRA:AVERAGE:0.5:12:168 \\<br \/>  RRA:AVERAGE:0.5:12:720 \\<br \/>  RRA:AVERAGE:0.5:288:365<\/div>\n<\/div>\n<p>  \u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0430\u044f \u0440\u0435\u043c\u0430\u0440\u043a\u0430 \u043a \u0441\u043a\u0440\u0438\u043f\u0442\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0411\u0414. \u0412 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u044f \u0443\u043a\u0430\u0437\u0430\u043b \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440 \u2014 600 \u0441\u0435\u043a. (5 \u043c\u0438\u043d.), \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u0434\u0430\u043b \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u043d\u044b\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u044b \u0434\u043b\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u043d\u0430 \u0443\u043b\u0438\u0446\u0435 \u0438 \u0432 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0438\u0437 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 get_temp.pl<\/b><\/p>\n<div class=\"spoiler_text\">#!\/usr\/bin\/perl<br \/>  use warnings;<br \/>  &#038;check_modules;<br \/>  &#038;get_device_IDs;<\/p>\n<p>  foreach $device (@deviceIDs)<br \/>  {<br \/>   $reading = &#038;read_device($device);<br \/>   if ($reading != \u00ab9999\u00bb)<br \/>   {<br \/>   push(@temp_readings,$reading);<br \/>   }<br \/>  }<\/p>\n<p>  #update the database<br \/>  `\/usr\/bin\/rrdtool update \/home\/pi\/temperature\/multirPItemp.rrd N:$temp_readings[0]:$temp_readings[1]`;<\/p>\n<p>  print \u00abTemp 1 = $temp_readings[0] Temp 2 = $temp_readings[1]\\n\u00bb;<\/p>\n<p>  sub check_modules<br \/>  {<br \/>   $mods = `cat \/proc\/modules`;<br \/>  if ($mods =~ \/w1_gpio\/ &#038;&#038; $mods =~ \/w1_therm\/)<br \/>  {<br \/>   print \u00abw1 modules already loaded \\n\u00bb;<br \/>  }<br \/>  else <br \/>  {<br \/>  print \u00abloading w1 modules \\n\u00bb;<br \/>   `sudo modprobe w1-gpio`;<br \/>   `sudo modprobe w1-therm`;<br \/>  } <br \/>  }<\/p>\n<p>  sub get_device_IDs<br \/>  {<br \/>  # The Hex IDs off all detected 1-wire devices on the bus are stored in the file<br \/>  # \u00abw1_master_slaves\u00bb <\/p>\n<p>  # open file<br \/>  open(FILE, &quot;\/sys\/bus\/w1\/devices\/w1_bus_master1\/w1_master_slaves&quot;) or die(\u00abUnable to open file\u00bb);<\/p>\n<p>  # read file into an array<br \/>   @deviceIDs = ;<\/p>\n<p>   # close file <br \/>   close(FILE);<br \/>  }<\/p>\n<p>  sub read_device<br \/>  {<br \/>   #takes one parameter \u2014 a device ID<br \/>   #returns the temperature if we have something like valid conditions<br \/>   #else we return \u00ab9999\u00bb for undefined<\/p>\n<p>   $readcommand = \u00abcat \/sys\/bus\/w1\/devices\/\u00bb.$_[0].&quot;\/w1_slave 2&gt;&#038;1&quot;;<br \/>   $readcommand =~ s\/\\R\/\/g;<br \/>   $sensor_temp = `$readcommand`;<\/p>\n<p>  if ($sensor_temp !~ \/No such file or directory\/)<br \/>   {<br \/>   if ($sensor_temp !~ \/NO\/)<br \/>   {<br \/>   $sensor_temp =~ \/t=(\\d+)\/i;<br \/>   $temperature = (($1\/1000));<br \/>   }<br \/>   else<br \/>   {<br \/>   $ret = \u00ab9999\u00bb;<br \/>   }<br \/>   }<br \/>   else<br \/>   {<br \/>   $ret = \u00ab9999\u00bb<br \/>   }<br \/>  }<\/div>\n<\/div>\n<p>  \u042d\u0442\u043e \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0438\u0434 \u0441\u043a\u0440\u0438\u043f\u0442\u0430, \u0442\u0430\u043a\u043e\u0439 \u043a\u0430\u043a\u0438\u043c \u044f \u0435\u0433\u043e \u043d\u0430\u0448\u0435\u043b \u043d\u0430 <a href=\"http:\/\/webshed.org\/wiki\/RaspberryPI_Multiple_DS1820\">\u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0430\u0445 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430<\/a>. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u0442\u0447\u0438\u043a\u0438, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0435, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b, \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u044f \u0432\u044b\u043d\u0435\u0441 \u043e\u0434\u0438\u043d \u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0430 \u0443\u043b\u0438\u0446\u0443 \u043d\u0430 \u041f\u041c\u0416, \u044f \u0431\u044b\u043b \u0440\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u043d \u0442\u0435\u043c, \u0447\u0442\u043e \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u043e \u0440\u043e\u0432\u043d\u043e 0 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0446\u0435\u043b\u044c\u0441\u0438\u044f, \u0447\u0442\u043e \u0431\u044b \u044f \u043d\u0438 \u0434\u0435\u043b\u0430\u043b (\u0430 \u043d\u0430 \u0443\u043b\u0438\u0446\u0435 \u0443 \u043d\u0430\u0441 \u0441\u0435\u0439\u0447\u0430\u0441 -5&#8230;-10).<br \/>  \u041a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0432\u0441\u0435 \u0434\u0435\u043b\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435: <br \/>  <code>$:sensor_temp =~ \/t=(\\d+)\/i;<\/code><br \/>  \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0431\u0435\u0437 \u0443\u0447\u0435\u0442\u0430 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440. \u0412\u0432\u0438\u0434\u0443 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u044f \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u043f\u043e\u043b-\u0447\u0430\u0441\u0430 \u0438 \u043f\u0430\u0440\u0443 \u0447\u0430\u0448\u0435\u043a \u043a\u043e\u0444\u0435 \u043d\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043a \u0432\u0438\u0434\u0443:<br \/>  <code>$:sensor_temp =~ \/t=(\\D*\\d+)\/i;<\/code><br \/>  \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u044c \u0432 \u0411\u0414 \u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0440\u0438\u043f\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 create_graphs.sh<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">#!\/bin\/bash RRDPATH=&quot;\/home\/pi\/temperature\/&quot; INCOLOUR=&quot;#990000&quot; OUTCOLOUR=&quot;#009900&quot; TRENDCOLOUR1=&quot;#FF0000&quot; TRENDCOLOUR2=&quot;#00FF00&quot; #hour rrdtool graph $RRDPATH\/mhour_in.png --start -6h --alt-autoscale \\ DEF:intemp=$RRDPATH\/multirPItemp.rrd:in_temp:AVERAGE \\ DEF:outtemp=$RRDPATH\/multirPItemp.rrd:out_temp:AVERAGE \\ CDEF:intrend=intemp,1200,TREND \\ CDEF:outtrend=outtemp,1200,TREND \\ LINE2:intemp$INCOLOUR:&quot;Inside&quot; \\ LINE1:intrend$TRENDCOLOUR1:&quot;20 min AVG&quot; \\ #LINE2:outtemp$OUTCOLOUR:&quot;Outside&quot; \\ #LINE1:outtrend$TRENDCOLOUR2:&quot;20 min AVG&quot;  #hour outside rrdtool graph $RRDPATH\/mhour_out.png --start -6h --alt-autoscale \\ DEF:intemp=$RRDPATH\/multirPItemp.rrd:in_temp:AVERAGE \\ DEF:outtemp=$RRDPATH\/multirPItemp.rrd:out_temp:AVERAGE \\ CDEF:intrend=intemp,1200,TREND \\ CDEF:outtrend=outtemp,1200,TREND \\ LINE2:outtemp$OUTCOLOUR:&quot;Outside&quot; \\ LINE1:outtrend$TRENDCOLOUR2:&quot;20 min AVG&quot;  #day rrdtool graph $RRDPATH\/mday.png --start -1d --alt-autoscale \\ DEF:intemp=$RRDPATH\/multirPItemp.rrd:in_temp:AVERAGE \\ DEF:outtemp=$RRDPATH\/multirPItemp.rrd:out_temp:AVERAGE \\ CDEF:intrend=intemp,1800,TREND \\ CDEF:outtrend=outtemp,1800,TREND \\ LINE2:intemp$INCOLOUR:&quot;Inside&quot; \\ LINE1:intrend$TRENDCOLOUR1:&quot;1h min AVG&quot; \\ LINE2:outtemp$OUTCOLOUR:&quot;Outside&quot; \\ LINE1:outtrend$TRENDCOLOUR2:&quot;1h min AVG&quot;  #week rrdtool graph $RRDPATH\/mweek.png --start -1w --alt-autoscale \\ DEF:intemp=$RRDPATH\/multirPItemp.rrd:in_temp:AVERAGE \\ DEF:outtemp=$RRDPATH\/multirPItemp.rrd:out_temp:AVERAGE \\ LINE2:intemp$INCOLOUR:&quot;Inside temperature&quot; \\ LINE2:outtemp$OUTCOLOUR:&quot;Outside temperature&quot; \\  #month rrdtool graph $RRDPATH\/mmonth.png --start -1m --alt-autoscale \\ DEF:intemp=$RRDPATH\/multirPItemp.rrd:in_temp:AVERAGE \\ DEF:outtemp=$RRDPATH\/multirPItemp.rrd:out_temp:AVERAGE \\ LINE2:intemp$INCOLOUR:&quot;Inside temperature&quot; \\ LINE2:outtemp$OUTCOLOUR:&quot;Outside temperature&quot; \\  #year rrdtool graph $RRDPATH\/myear.png --start -1y --alt-autoscale \\ DEF:intemp=$RRDPATH\/multirPItemp.rrd:in_temp:AVERAGE \\ DEF:outtemp=$RRDPATH\/multirPItemp.rrd:out_temp:AVERAGE \\ LINE2:intemp$INCOLOUR:&quot;Inside temperature&quot; \\ LINE2:outtemp$OUTCOLOUR:&quot;Outside temperature&quot; \\<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u044f \u0440\u0430\u0437\u043d\u0435\u0441 \u0447\u0430\u0441\u043e\u0432\u044b\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440 \u0432 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435 \u0438 \u043d\u0430 \u0443\u043b\u0438\u0446\u0435, \u0442.\u043a. \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0437\u0431\u0440\u043e\u0441 \u043c\u0435\u0436\u0434\u0443 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430\u043c\u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0447\u0438\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u043c\u0438. \u0422\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u043b \u043f\u043e\u0434 \u0441\u0435\u0431\u044f \u0446\u0432\u0435\u0442\u0430 \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043a \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u043c.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u044f \u0441\u043e\u0437\u0434\u0430\u043b \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 get.sh   <\/p>\n<pre><code class=\"bash\">#!\/bin\/bash \/home\/pi\/temperature\/get_temp.pl \/home\/pi\/temperature\/create_graphs.sh<\/code><\/pre>\n<p>  \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0432 crontab -e \u0441\u0442\u0440\u043e\u043a\u0443 \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430:  <\/p>\n<pre><code class=\"bash\">*\/5 * * * * \/home\/pi\/temperature\/get.sh<\/code><\/pre>\n<p>  \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u0430\u0436\u0434\u044b\u0435 5 \u043c\u0438\u043d\u0443\u0442.<br \/>  \u042d\u0442\u043e \u0432\u0441\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u043e\u0439 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0435.<\/p>\n<h5>3. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0436\u0435\u043b\u0435\u0437\u0443<\/h5>\n<p>  \u041f\u043e\u0440\u044b\u0432\u0448\u0438\u0441\u044c \u0432 \u0437\u0430\u043a\u0440\u043e\u043c\u0430\u0445 \u043a\u043b\u0430\u0434\u043e\u0432\u043a\u0438, \u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0443 \u0441\u0435\u0431\u044f \u0434\u0432\u0443\u0445\u0440\u044f\u0434\u043d\u044b\u0439 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 \u0442\u0438\u043f\u0430 \u00ab\u043c\u0430\u043c\u0430\u00bb \u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043d\u044b\u0439 \u0443\u0434\u043b\u0438\u043d\u0438\u0442\u0435\u043b\u044c. \u041e\u0442 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u0430 \u044f \u043e\u0442\u043a\u0443\u0441\u0438\u043b 2\u04454 \u0438 \u043f\u043e\u0434\u043f\u0430\u044f\u043b \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440 \u043c\u0435\u0436\u0434\u0443 \u043d\u043e\u0436\u043a\u043e\u0439 1 \u0438 \u043d\u043e\u0436\u043a\u043e\u0439 7 (\u043d\u0430 \u043d\u043e\u0436\u043a\u0435 1 \u0443 \u043d\u0430\u0441 +3\u0412, \u043d\u043e\u0436\u043a\u0430 6 \u2014 \u0437\u0435\u043c\u043b\u044f, \u043d\u043e\u0436\u043a\u0430 7 \u2014 PIN4, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u041c\u0430\u043b\u0438\u043d\u043a\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 1-wire). <br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/2bf\/fe0\/d45\/2bffe0d455a46360cd0acb10f0aaf92b.png\"\/><br \/>  \u0412 \u0443\u0434\u043b\u0438\u043d\u0438\u0442\u0435\u043b\u044c \u0431\u044b\u043b \u0432\u043f\u0430\u044f\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0434\u0430\u0442\u0447\u0438\u043a ds18b20, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0434\u0430\u0442\u0447\u0438\u043a \u044f \u043f\u043e\u0434\u043f\u0430\u044f\u043b \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043a \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043d\u043e\u043c\u0443 \u043a\u0430\u0431\u0435\u043b\u044e, \u0437\u0430\u043c\u043e\u0442\u0430\u043b \u0447\u0435\u0440\u043d\u043e\u0439 (\u043d\u0435 \u0441\u0438\u043d\u0435\u0439) \u0438\u0437\u043e\u043b\u0435\u043d\u0442\u043e\u0439 \u0438 \u0447\u0435\u0440\u0435\u0437 \u0431\u044b\u0432\u0448\u0435\u0435 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0435 \u0434\u043b\u044f \u043a\u0430\u0431\u0435\u043b\u044f \u0441\u043f\u0443\u0442\u043d\u0438\u043a\u043e\u0432\u043e\u0439 \u0430\u043d\u0442\u0435\u043d\u043d\u044b \u0432\u044b\u0432\u0435\u043b \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u044b \u043d\u0430 \u0443\u043b\u0438\u0446\u0443.<br \/>  \u0412 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u041c\u0430\u043b\u0438\u043d\u043a\u0438 \u0432 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u043e\u043c \u043a\u043e\u0440\u043f\u0443\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/c14\/1c8\/00e\/c141c800e87cc6fd1a49a754f2fa0182.png\"\/><br \/>  \u041a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0438\u043a\u0440\u043e\u0442\u0440\u043e\u0439\u043d\u0438\u0447\u043a\u0430 \u2014 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u0448\u0442\u0443\u043a\u0430 \ud83d\ude42<br \/>  \u041d\u0443 \u0438 \u043d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a \u2014 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0441 \u0441\u0430\u0439\u0442\u0430.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/e6d\/ff3\/5ab\/e6dff35ab6ff73b3295345e12bc85723.jpg\"\/><\/p>\n<h5>\u0412\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0441\u043b\u043e\u0432\u0438\u044f<\/h5>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u043e\u0436\u0438\u0434\u0430\u043b\u0438 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u043a \u0447\u0430\u0439\u043d\u0438\u043a\u0443 \u2014 \u043f\u0440\u0438\u043d\u043e\u0448\u0443 \u0441\u0432\u043e\u0438 \u0438\u0437\u0432\u0438\u043d\u0435\u043d\u0438\u044f \ud83d\ude42 \u00ab\u0427\u0430\u0439\u043d\u0438\u043a\u00bb \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u2014 \u044d\u0442\u043e \u044f. \u041f\u043e\u043d\u0435\u043c\u043d\u043e\u0433\u0443 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c \u0432 \u043c\u0435\u0440\u0443 \u0441\u0438\u043b \u0438 \u0437\u043d\u0430\u043d\u0438\u0439, \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u044f \u0432 \u0413\u0443\u0433\u043b \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u043e\u0431 \u0438 \u043e\u0448\u0438\u0431\u043e\u043a.<br \/>  \u041f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0446\u0435\u043b\u0438 \u044f \u0434\u043e\u0431\u0438\u043b\u0441\u044f. \u0411\u0443\u0434\u0443 \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u0435\u043b\u0435\u043d \u0432\u0441\u0435\u043c \u0437\u0430 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u043f\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044e \u0438\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u043e\u0434\u0445\u043e\u0434\u0443 \u043a \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439. \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \ud83d\ude42<\/p>\n<p>  \u0417.\u042b. \u0421\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0443 \u0441 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u043c\u0438 \u043d\u0435 \u0434\u0430\u043c \u2014 \u00ab\u043b\u044f\u0436\u0435\u0442\u00bb \u00ab\u041c\u0430\u043b\u0438\u043d\u043a\u0430\u00bb \ud83d\ude09    \t   \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/163575\/\"> http:\/\/habrahabr.ru\/post\/163575\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t\u0414\u043e\u0431\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0443\u0442\u043e\u043a, \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u043e\u0435 \u0445\u0430\u0431\u0440\u0430\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e!<br \/>  \u041d\u0435\u0434\u0435\u043b\u044e \u043d\u0430\u0437\u0430\u0434 \u044f \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0434\u043e\u0436\u0434\u0430\u043b\u0441\u044f \u0441\u0432\u043e\u044e \u041c\u0430\u043b\u0438\u043d\u043a\u0443. \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0431\u0438\u0442\u044c \u0448\u0438\u0448\u043a\u0438 \u0432 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b.<br \/>  \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u2014 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-163575","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/163575","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=163575"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/163575\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=163575"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=163575"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=163575"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}