{"id":7824,"date":"2018-07-03T18:27:34","date_gmt":"2018-07-03T17:27:34","guid":{"rendered":"http:\/\/blog.whatsbee.net\/?p=7824"},"modified":"2018-07-03T18:27:34","modified_gmt":"2018-07-03T17:27:34","slug":"fin-del-diseno-del-hardware-por-lo-menos-en-lora","status":"publish","type":"post","link":"https:\/\/blog.whatsbee.net\/?p=7824","title":{"rendered":"Fin del dise\u00f1o del hardware (por lo menos en Lora)"},"content":{"rendered":"<p>Despu\u00e9s de algunas desventuras, fallos tontos y errores de c\u00e1lculo al fin tengo un dise\u00f1o que\u00a0cumple con los requisitos iniciales, a saber:<\/p>\n<ul>\n<li>Ultra bajo consumo entre lecturas.<\/li>\n<li>Configurable desde el mismo dispositivo de una forma sencilla.<\/li>\n<li>Completamente estanco.<\/li>\n<li>Muy bajo consumo en las lecturas.<\/li>\n<\/ul>\n<p>Entre los \u00faltimos problemas que he resuelto est\u00e1n los siguientes (junto con las soluciones):<\/p>\n<ul>\n<li>Por alg\u00fan motivo si se utiliza el sensor de ultrasonidos con un solo GPIO parece funcionar solo a ratos. La verdad es que durante todo el desarrolo se lo atribu\u00ed a un problema de contactos debido a la mala calidad de la placa de prototipos, pero en los primeros prototipos en PCB segu\u00eda presentando el mismo fallo. Sinceramente no he investigado mucho, pod\u00eda liberar uno de los pines de la RFM95W y es lo que he hecho, liberar el GPIO5 y utilizarlo para el lector de ultrasonidos. Para el que tenga inter\u00e9s en como liberar el PIn que nos faltaba\u00a0<a href=\"https:\/\/github.com\/matthijskooijman\/arduino-lmic\/pull\/34\/commits\/1416a62fe2e99b247d408e737ff8f30e0ffa34a1?diff=split\">aqui<\/a>\u00a0est\u00e1 el secreto.<\/li>\n<li>El problema de\u00a0tensi\u00f3n de la bater\u00eda en vacio provocado\u00a0por el bajo consumo, pues es un problema doble y tonto.\u00a0 Por un lado si que la tensi\u00f3n de alimentaci\u00f3n puede ser un poco alta (aunque la hoja de especificaciones de la pila habla de un m\u00e1ximo de 3,65v en vacio). Por otro lado, y por un motivo que no alcanzo a entender, el medidor de tensi\u00f3n del ESP no funciona bien su ni est\u00e1 encendida la WiFi, a mi me da valores m\u00e1s altos.\u00a0 Encontr\u00e9 el TPS782 de Texas, un regulador LDO de 3V 150 mA con un dropout Voltage de 150mV y un consumo en vac\u00edo de 0,42 uA. El coste es de unos 40 c\u00e9ntimos m\u00e1s el de dos condensadores cer\u00e1micos de 1 uF. Resolvemos el tema de las sobretensiones, podemos a\u00f1adir la \u00abfeature\u00bb de desconectar con un im\u00e1n (que ahora no lo vamos a hacer) y confirmo mi teor\u00eda de que al reducir la tensi\u00f3n que le llega al micro reducimos el consumo en deep-sleep en mayor medida del que a\u00f1adimos con el LDO.\u00a0 Es m\u00e1s, como en el ensamblaje de PCB&#8217;s la reducci\u00f3n en el n\u00famero de componentes diferentes es un plus he cambiado el driver triestado por uno de estos chips\u00a0y lo controlo por la puerta EN, con lo que ahora el consumo en sleep de los sensores es de 18 a 130 nA (si nano, 1 dividido por 1000000000).<\/li>\n<li>Para resolver el de la medida de la bater\u00eda lo que he hecho es un divisor y lo he conectado a la puerta anal\u00f3gica del ESP8266, no hay problema de consumo en deep sleep porque est\u00e1 conectado despues del LDO, es decir, no hay consumo en el divisor si no est\u00e1 activado.<\/li>\n<li>Por \u00faltimo el problema de consumo con la resistencia del bus onewire del term\u00f3metro. No he logrado entenderlo, la verdad, pero he visto que si lo ponemos a la salida del primer LDO (que es la alimentaci\u00f3n del ESP8266) en lugar de a la alimentaci\u00f3n de los sensores consume lo que tiene que consumir (aunque lo haga todo el rato en lugar de apagarse).\u00a0Comos seg\u00fan el datasheet\u00a0la corriente en standby es de 750 nA vamos a dejarlo as\u00ed. Adem\u00e1s no le ponemos resistencia de pullup al bus porque tenemos la del GPIO0, en lugar de 5K son 10K, pero parece que funciona (si dejara de hacerlo la podr\u00edamos cambiar el la placa, no creo que afecte mucho al consumo).&nbsp;\n<p>En resumidas cuentas lo hemos cambiado casi todo, pero ahora tenemos un consumo en deep sleep de entre 22 y 23 uA y todo funciona a las mil maravillas. Este es el resumen con las nuevas medidas:<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<table width=\"444\">\n<tbody>\n<tr>\n<td width=\"255\"><strong>C\u00e1lculo del consumo energ\u00e9tico<\/strong><\/td>\n<td width=\"109\"><\/td>\n<td width=\"80\"><\/td>\n<\/tr>\n<tr>\n<td>Capacidad bater\u00eda<\/td>\n<td>2600<\/td>\n<td>mAh<\/td>\n<\/tr>\n<tr>\n<td>Autodescarga (%\/a\u00f1o)<\/td>\n<td>0,75%<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Intervalo de sleep entre Lecturas (s)<\/td>\n<td>600<\/td>\n<td>s<\/td>\n<\/tr>\n<tr>\n<td>Tiempo lectura (s)<\/td>\n<td>0,275<\/td>\n<td>s<\/td>\n<\/tr>\n<tr>\n<td>Consumo promedio durante lectura (mA)<\/td>\n<td>21<\/td>\n<td>mA<\/td>\n<\/tr>\n<tr>\n<td>Envio RF (cada x lecturas)<\/td>\n<td>6<\/td>\n<td>veces<\/td>\n<\/tr>\n<tr>\n<td>Duraci\u00f3n de un envio RF (s)<\/td>\n<td>2,49<\/td>\n<td>s<\/td>\n<\/tr>\n<tr>\n<td>Consumo promedio durante envio (mA)<\/td>\n<td>24,74<\/td>\n<td>mA<\/td>\n<\/tr>\n<tr>\n<td>Cosnumo deep Sleep (mA)<\/td>\n<td>0,023<\/td>\n<td>mA<\/td>\n<\/tr>\n<tr>\n<td>Consumo promedio arranque<\/td>\n<td>33,6<\/td>\n<td>mA<\/td>\n<\/tr>\n<tr>\n<td>Tiempo arranque<\/td>\n<td>0,09<\/td>\n<td>s<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><strong>Resultados<\/strong><\/td>\n<td><\/td>\n<td><\/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>39,6<\/td>\n<td>segundos<\/td>\n<\/tr>\n<tr>\n<td>Consumo energet diario lecturas<\/td>\n<td>0,231<\/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>59,76<\/td>\n<td>segundos<\/td>\n<\/tr>\n<tr>\n<td>Consumo envios RF\/d\u00eda<\/td>\n<td>0,4107<\/td>\n<td>mAh\/d\u00eda<\/td>\n<\/tr>\n<tr>\n<td>Inicios micro al d\u00eda<\/td>\n<td>144,00<\/td>\n<td>Arranques<\/td>\n<\/tr>\n<tr>\n<td>Consumo inicios micro\/d\u00eda<\/td>\n<td>0,1210<\/td>\n<td>mAh\/d\u00eda<\/td>\n<\/tr>\n<tr>\n<td>Tiempo en Sleep al d\u00eda<\/td>\n<td>86301<\/td>\n<td>segundos\/d\u00eda<\/td>\n<\/tr>\n<tr>\n<td>Consumo Sleep\/d\u00eda<\/td>\n<td>0,5514<\/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,3674<\/td>\n<td>mAh\/d\u00eda<\/td>\n<\/tr>\n<tr>\n<td>D\u00edas te\u00f3ricos de autonom\u00eda<\/td>\n<td>1901<\/td>\n<td>d\u00edas<\/td>\n<\/tr>\n<tr>\n<td><strong>A\u00f1os (teoricos) de autonom\u00eda<\/strong><\/td>\n<td><strong>5,2<\/strong><\/td>\n<td><strong>A\u00f1os<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Despu\u00e9s de algunas desventuras, fallos tontos y errores de c\u00e1lculo al fin tengo un dise\u00f1o que\u00a0cumple con los requisitos iniciales, a saber: Ultra bajo consumo entre lecturas. Configurable desde el mismo dispositivo de una forma sencilla. Completamente estanco. Muy bajo&hellip; <br \/><a class=\"read-more-button\" href=\"https:\/\/blog.whatsbee.net\/?p=7824\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":1,"featured_media":7825,"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":[16,208,2],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/7824"}],"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=7824"}],"version-history":[{"count":1,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/7824\/revisions"}],"predecessor-version":[{"id":7826,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/7824\/revisions\/7826"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/media\/7825"}],"wp:attachment":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7824"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7824"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}