{"id":7786,"date":"2018-05-15T13:37:34","date_gmt":"2018-05-15T12:37:34","guid":{"rendered":"http:\/\/blog.whatsbee.net\/?p=7786"},"modified":"2018-05-15T13:46:32","modified_gmt":"2018-05-15T12:46:32","slug":"noveno-paso-confirmando-consumos","status":"publish","type":"post","link":"https:\/\/blog.whatsbee.net\/?p=7786","title":{"rendered":"Noveno paso: confirmando consumos"},"content":{"rendered":"<p>Llegados a este punto ya tenemos el circuito casi completo, inicialmente hab\u00edamos hecho unas hip\u00f3tesis de consumo con tiempos y corrientes aproximados, es buen momento para ver lo acertados o lo equivocados que est\u00e1bamos.<\/p>\n<p>Pongo una resistencia de 10 ohms en serie con la alimentaci\u00f3n para medir el consumo, el valor es un poco alto, pero es osciloscopio que estoy utilizando es un poco ruidoso. Por la ley de ohm el consumo en mA deber\u00eda de ser la d\u00e9cima parte de la caida de tensi\u00f3n en mV en las resistencias.<\/p>\n<p>Primero vamos a medir la lectura de los sensores:<\/p>\n<div id=\"attachment_7787\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.whatsbee.net\/?attachment_id=7787\" rel=\"attachment wp-att-7787\"><img aria-describedby=\"caption-attachment-7787\" loading=\"lazy\" class=\"size-medium wp-image-7787\" src=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2018\/05\/LecturaSensor-300x159.png\" alt=\"\" width=\"300\" height=\"159\" srcset=\"https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2018\/05\/LecturaSensor-300x159.png 300w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2018\/05\/LecturaSensor-768x408.png 768w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2018\/05\/LecturaSensor-1024x544.png 1024w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2018\/05\/LecturaSensor-1170x621.png 1170w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2018\/05\/LecturaSensor.png 1661w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-7787\" class=\"wp-caption-text\">Ciclo de lectura del sensor<\/p><\/div>\n<p>Ampliando la imagen se aprecia que tenemos un consumo de 26.8 mA en un periodo de 400 ms.<\/p>\n<p>Ahora un ciclo de escritura a la red Lora (ojo, la escala de tiempos es diferente):<\/p>\n<div id=\"attachment_7788\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.whatsbee.net\/?attachment_id=7788\" rel=\"attachment wp-att-7788\"><img aria-describedby=\"caption-attachment-7788\" loading=\"lazy\" class=\"size-medium wp-image-7788\" src=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2018\/05\/EscrituraLora-300x157.png\" alt=\"\" width=\"300\" height=\"157\" srcset=\"https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2018\/05\/EscrituraLora-300x157.png 300w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2018\/05\/EscrituraLora-768x402.png 768w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2018\/05\/EscrituraLora-1024x536.png 1024w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2018\/05\/EscrituraLora-1170x612.png 1170w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2018\/05\/EscrituraLora.png 1668w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-7788\" class=\"wp-caption-text\">Ciclo de escritura en la red Lora<\/p><\/div>\n<p>Aqui podemos ver que hay dos zonas, 100mA durante 90ms y\u00a024 mA durante 2,3 segundos, esto es un promedio de\u00a026.6 mA durante 2,5 segundos.<\/p>\n<p>Sinceramente, los valores me han parecido un poco bajos, pero contrast\u00e1ndolos con el datasheet parecen correctos. Si os fij\u00e1is el inicio de la traza tiene el mismo perfil que el de una medida de un sensor, porque realmente estamos haciendo un ciclo de lectura de los sensores antes del env\u00edo.<\/p>\n<p>De momento la corriente de sleep no la puedo mirar, con un shunt m\u00e1s grande no me arranca el microprocesador, con el que tengo instalado no tengo resoluci\u00f3n en el tester, aunque me da una lectura de entre 0,1 y 0 mA, lo cual me hace pensar que no estoy tan equivocado.<\/p>\n<p>Configurando el sensor para leer cada 10 minutos y hacer un env\u00edo de datos cada hora\u00a0 me salen estos valores:<\/p>\n<table width=\"444\">\n<tbody>\n<tr>\n<td width=\"255\"><strong>Resultados<\/strong><\/td>\n<td width=\"109\"><\/td>\n<td width=\"80\"><\/td>\n<\/tr>\n<tr>\n<td>N\u00famero de lecturas diarias<\/td>\n<td>144<\/td>\n<td>Lecturas\/d\u00eda<\/td>\n<\/tr>\n<tr>\n<td>N\u00famero de lecturas \/hora<\/td>\n<td>6<\/td>\n<td>lecturas\/hora<\/td>\n<\/tr>\n<tr>\n<td>Tiempo dedicado lecturas\/d\u00eda<\/td>\n<td>57,6<\/td>\n<td>segundos<\/td>\n<\/tr>\n<tr>\n<td>Consumo energet diario lecturas<\/td>\n<td>0,4288<\/td>\n<td>mAh \/d\u00eda<\/td>\n<\/tr>\n<tr>\n<td>Envios RF diarios<\/td>\n<td>24<\/td>\n<td>Envios\/d\u00eda<\/td>\n<\/tr>\n<tr>\n<td>Tiempo dedicado a envios RF<\/td>\n<td>57,6<\/td>\n<td>segundos<\/td>\n<\/tr>\n<tr>\n<td>Consumo envios RF\/d\u00eda<\/td>\n<td>0,4256<\/td>\n<td>mAh\/d\u00eda<\/td>\n<\/tr>\n<tr>\n<td>Tiempo en Sleep al d\u00eda<\/td>\n<td>86285<\/td>\n<td>segundos\/d\u00eda<\/td>\n<\/tr>\n<tr>\n<td>Consumo Sleep\/d\u00eda<\/td>\n<td>0,5273<\/td>\n<td>mAh\/d\u00eda<\/td>\n<\/tr>\n<tr>\n<td>Autodescarga diaria bater\u00eda<\/td>\n<td>0,0534<\/td>\n<td>mAh\/d\u00eda<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Total Consumo diario<\/td>\n<td>1,4351<\/td>\n<td>mAh\/d\u00eda<\/td>\n<\/tr>\n<tr>\n<td>D\u00edas te\u00f3ricos de autonom\u00eda<\/td>\n<td>1812<\/td>\n<td>d\u00edas<\/td>\n<\/tr>\n<tr>\n<td><strong>A\u00f1os (ya no tan) te\u00f3ricos de autonom\u00eda<\/strong><\/td>\n<td><strong>5,0<\/strong><\/td>\n<td><strong>A\u00f1os<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Y \u00bfpara qu\u00e9 queremos leer cada 10 minutos si enviamos cada hora?<\/h3>\n<p>Pues es muy sencillo, la idea es que la frecuencia de env\u00edos se acabe adaptando a la frecuencia de los cambios, es decir, si alguien llena o vac\u00eda el dep\u00f3sito el sensor deber\u00eda de darse cuenta y (en funci\u00f3n de los par\u00e1metros configurados) enviar en ese momento la lectura, aunque no hubiera pasado una hora. Por otro lado, si no hay cambios en el nivel es posible que con un env\u00edo cada tres o cuatro horas sea suficiente, consiguiendo as\u00ed un poco m\u00e1s de ahorro energ\u00e9tico.<\/p>\n<h3>\u00bfpodemos optimizar m\u00e1s?<\/h3>\n<p>Claro!!, de momento tenemos el debug por el puerto serie, al eliminarlo en la versi\u00f3n final deber\u00edamos de reducir los tiempos para hacer las cosas, reducci\u00f3n de tiempo implica reducci\u00f3n de consumo. Esa es una mejora\u00a0muy evidente, pero seguro que podemos optimizar todav\u00eda m\u00e1s. Actualmente en el sensor de ultrasonidos tomamos tres medidas para aplicar un filtro median, seguro que podemos buscar un algoritmo adaptativo, por ejemplo, hacer una \u00fanica medida y si coincide con la \u00faltima no hacer m\u00e1s.<\/p>\n<p>Adem\u00e1s de estas mejoras todav\u00eda podemos aumentar un poco las resistencias de pullup y pulldown, ver si hay alguna interna habilitada en el ESP8266, etc. Pero eso lo dejaremos para m\u00e1s adelante.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Llegados a este punto ya tenemos el circuito casi completo, inicialmente hab\u00edamos hecho unas hip\u00f3tesis de consumo con tiempos y corrientes aproximados, es buen momento para ver lo acertados o lo equivocados que est\u00e1bamos. Pongo una resistencia de 10 ohms&hellip; <br \/><a class=\"read-more-button\" href=\"https:\/\/blog.whatsbee.net\/?p=7786\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":1,"featured_media":7787,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0},"categories":[208,2],"tags":[219,209,216,232,235,234,233],"_links":{"self":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/7786"}],"collection":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7786"}],"version-history":[{"count":3,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/7786\/revisions"}],"predecessor-version":[{"id":7791,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/7786\/revisions\/7791"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/media\/7787"}],"wp:attachment":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7786"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7786"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}