{"id":495,"date":"2017-05-05T20:02:59","date_gmt":"2017-05-05T18:02:59","guid":{"rendered":"http:\/\/www.joanillo.org\/?p=495"},"modified":"2020-09-24T20:03:37","modified_gmt":"2020-09-24T18:03:37","slug":"calibracion-del-sensor-de-temperatura-ds18b20","status":"publish","type":"post","link":"https:\/\/www.joanillo.org\/?p=495&lang=es","title":{"rendered":"Calibraci\u00f3n del sensor de temperatura DS18B20"},"content":{"rendered":"<p><a href=\"http:\/\/www.joanillo.org\/wp-content\/uploads\/2017\/05\/calibracio_DS18B20_2-4mai.png\"><img loading=\"lazy\" src=\"http:\/\/www.joanillo.org\/wp-content\/uploads\/2017\/05\/calibracio_DS18B20_2-4mai-300x235.png\" alt=\"\" title=\"calibracio_DS18B20_2-4mai\" width=\"300\" height=\"235\" class=\"alignright size-medium wp-image-1460\"><\/a>Ya tengo pr\u00e1cticamente acabado el proyecto <strong>IoT<\/strong> con una <strong>REST Api<\/strong> [3][4] para leer la temperatura de un sensor DS18B20.<\/p>\n<p>El problema (y grave) es que las temperaturas que estoy cogiendo del sensor son err\u00f3neas. Para saber cu\u00e1l es la temperatura real en mi barrio (Gr\u00e0cia-Barcelona) cojo como referencia la web de <a href=\"http:\/\/www.meteo.cat\/\" title=\"meteo.cat\">meteo.cat<\/a>. La estaci\u00f3n meteorol\u00f3gica autom\u00e1tica m\u00e1s cercana es la de Zona Universitaria, aunque en realidad la temperatura no ser\u00e1 la misma exactamente. La calle Joan Blanques, donde tengo el sensor,  es estrecha y enmedio de la ciudad y del barrio; la Zona Universitaria es un espacio m\u00e1s ancho y abierto, posiblemente las temperaturas m\u00ednimas tiendan a ser m\u00e1s bajas&#8230;<\/p>\n<p>Calibrar el sensor DS18B20 puede ser una tarea dif\u00edcil. Aqu\u00ed tenemos un <a href=\"https:\/\/edwardmallon.wordpress.com\/2015\/03\/30\/us m\u00e9s ing-ds18b20-one-wire-sensors-to-make-a-diy-thermistor-string-pt-2-calibration\/\" title=\"DS18B20 calibration\">art\u00edculo<\/a> [1] muy interesante sobre c\u00f3mo proceder para la calibraci\u00f3n. El art\u00edculo es realmente interesante, pero no tengo el tiempo (ni las ganas) de implementarlo. Lo que s\u00ed que tendr\u00eda que haber hecho, y esto era f\u00e1cil, era comprar 10 sensores DS18B20 (son baratos), descartar aqu\u00e9llos que se desv\u00eden bastante de la temperatura real, y promediar la temperatura con el resto de sensores escogidos, por ejemplo 5. Esto no ser\u00eda ning\u00fan problema, en la RPi tengo muchos pines GPIO disponibles.<\/p>\n<p>Otra posibilidad es utilizar otro sensor de temperatura. Peo ejemplo, utilizar el <strong>BMP280<\/strong>, que adem\u00e1s de la temperatura tambi\u00e9n tengo la presi\u00f3n y la humedad relativa (y es barato). Es muy interesante este <a href=\"http:\/\/www.instructables.com\/id\/Solar-Powered-WiFi-Weather-Station\/\" title=\"using BMP280\">art\u00edculo<\/a> [2] donde se utiliza el BMP280 para construir una estaci\u00f3n meteorol\u00f3gica alimentada per un panel solar.<\/p>\n<p>La conclusi\u00f3n es que confiar en que el sensor que tengo d\u00e9 la temperatura correcta es un grave error. El objetivo del proyecto es hacer un ejemplo did\u00e1ctico de IoT, RestFul API, y gr\u00e1ficas como frontend. Esto ya est\u00e1 implementado, ahora s\u00f3lo falta que la temperatura que leo sea real. Por tanto, lo que har\u00e9 es encontrar una recta de regresi\u00f3n para aproximarme a la temperatura real a partir de los datos que me da mi sensor, suponiendo que la mejor aproximaci\u00f3n sea una recta.<\/p>\n<p>En la imagen se pueden ver dos gr\u00e1ficas. En la de arriba se ve la diferencia entre la temperatura real y la de misensor. En la de abajo se puede deducir la recta de regresi\u00f3n para convertir los datos del sensor en datos reales. De todas maneras, estos datos se corresponden a dos d\u00edas y medio. Esperar\u00e9 una semana m\u00e1s (y que suban las temperaturea del mes de mayo, y as\u00ed tener m\u00e1s rango) para poder hacer una recta de regresi\u00f3.<\/p>\n<p>Enlaces:<\/p>\n<ul>\n<li>[1]. <a href=\"https:\/\/edwardmallon.wordpress.com\/2015\/03\/30\/using-ds18b20-one-wire-sensors-to-make-a-diy-thermistor-string-pt-2-calibration\/\">https:\/\/edwardmallon.wordpress.com\/2015\/03\/30\/using-ds18b20-one-wire-sensors-to-make-a-diy-thermistor-string-pt-2-calibration\/<\/a><\/li>\n<li>[2]. <a href=\"http:\/\/www.instructables.com\/id\/Solar-Powered-WiFi-Weather-Station\/\">http:\/\/www.instructables.com\/id\/Solar-Powered-WiFi-Weather-Station\/<\/a><\/li>\n<li>[3]. Proyecto Joanillo Temperatura Restful API: <a href=\"http:\/\/wiki.joanillo.org\/index.php\/IoT,_Raspberry_Pi,_RESTful_web_services\">http:\/\/wiki.joanillo.org\/index.php\/IoT,_Raspberry_Pi,_RESTful_web_services<\/a><\/li>\n<li>[4]. Documentaci\u00f3n de la API p\u00fablica: <a href=\"http:\/\/wiki.joanillo.org\/index.php\/Rest_API-IoT-Raspberry:_joanillo_temperatura_restapi\">http:\/\/wiki.joanillo.org\/index.php\/Rest_API-IoT-Raspberry:_joanillo_temperatura_restapi<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ya tengo pr\u00e1cticamente acabado el proyecto IoT con una REST Api [3][4] para leer la temperatura de un sensor DS18B20. El problema (y grave) es que las temperaturas que estoy cogiendo del sensor son err\u00f3neas. Para saber cu\u00e1l es la temperatura real en mi barrio (Gr\u00e0cia-Barcelona) cojo como referencia la web de meteo.cat. La estaci\u00f3n [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[310,314,322,324,320,348],"tags":[],"_links":{"self":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/495"}],"collection":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=495"}],"version-history":[{"count":1,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/495\/revisions"}],"predecessor-version":[{"id":496,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/495\/revisions\/496"}],"wp:attachment":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}