Aplicación real: Nodo ESP8266 ESP-07/12/12E
Aquí estamos de nuevo, esta vez vamos a empezar a ver un poco la electrónica con la que vamos a enviar datos al curso que estamos realizado. Aunque no voy a presentaros el post en su totalidad, si que os voy presentando esto para ir añadiendo información conforme se complete. Recapitulando un poco, venimos de presentar una serie de post sobre las diferentes capas o bloques de software que desplegamos en un servidor, en nuestro caso una Raspberry Pi 3. Comentamos también en su día, que realizaríamos una electrónica sencilla basada en el famoso módulo wifi ESP8266. Este es el módulo prototipo, que esta probado parcialmente y funcionando. Aun así aun faltan cosillas para tenerlo completamente documentado y con alguna feature que probar.
Características:
- Placa desarrollada para ESP8266-07/12/12E.
-Dimensiones: 78mm x 41mm.
- Módulo ESP extraible o posibilidad de soldar directamente sobre la PCB.
- Etapa de carga para las baterías Lipo. Ya sea mediante panel solar (6V-1W) o mediante una conexión de 5V externa.
- Todos los pines del ESP son accesibles. También lo son los de alimentación (tanto Vbat como Vext).
- Programación del ESP desde la propia placa mediante un conversión USB-Serie (este conversor debe ser un modelo que tenga ciertos pines accesibles).
- Bajo consumo en DeepSleep: <50uA.
- Conexión de una batería mediante conector JST o compatible con un holder para baterías de 1 o 2 celdas tipo 18650.
- Botón de reset.
- Nivel de batería: Podremos consultar el nivel de nuestras baterías para conocer su estado.
- Modular: Esto es, no es necesario tener soldadas todas las etapas para su funcionamiento. De cara a desplegar una red, no tenemos porque soldar todos los componentes para tener un nodo operativo. Por lo que tenemos un cierto ahorro en el momento de desplegar nodos.
- Se dispone de zócalos para poder pinchar una placa encima de forma que en ella podamos integrar la electrónica necesaria para añadir mas sensores.
- Se ha dejado huella para zócalo 2x2 y disponer unicamente acceso a I2C y alimentación 3v3.
- Su coste en componentes ronda los 6€ sin incluir el módulo ESP ni batería(s). Es un coste bastante razonable.
Consideraciones generales:
Esta es una solución sencilla con la que hemos integrado el módulo y adaptado un poco a nuestras necesidades. El tamaño de la PCB podía haber sido algo mas pequeño, pero viene marcado por el tamaño del holder de 2 baterías. El módulo ESP tiene la necesidad de conectar entre si un par de pines para poder despertarse cuando entramos en DeepSleep. Este módulo no puede despertarse internamente, y coloca el pin del IC accesible unicamente desde el exterior, por si queremos despertarlo externamente. El problema de este método es que interfiere en el momento de programarlo, por lo que se han colocado unos pines para poder usar un jumper, que en el momento de programarlo tendremos que quitarlo. La alimentación del ESP la hacemos pasar por un regulador LDO de 3v3@250mA. Este regulador tiene la necesidad de tener una corriente Iq muy baja (esta es la corriente que consume el propio regulador), para ello tenemos el regulador de Microchip MCP1702 o uno compatible que aun estoy esperando a recibir. Su consumo es de unos 6uA mientras el compatible puede subir a 12uA. El chip de carga también es de Microchip, concretamente el MCP73831.
Por el momento, esto es todo. Este post se ira completando en las siguientes semanas. Tengo que hacer la documentación de la placa para que la podáis replicar. Si alguien quiere alguna PCB, me han sobrado unidades, podéis pedirlas para soldarlas.
Voy a preparar el primer capitulo sobre Grafana, para tener todo lo que es la teoría y el despliegue de todo lo necesario en la Raspberry, pero os informo de esto porque ha ido en paralelo, mientras os iba contando capítulos, estaba en proceso el hardware que íbamos a emplear. Una vez mas, cualquier cosa que creáis oportuna comentar mas en profundidad, no dudéis en preguntar.
Programador (sobre 2,1€)[Ebay] - Conversor USB-Serie CP2102: http://rover.ebay.com/rover/1/1185-53479-19255-0/1?ff3=4&pub=5575361477&toolid=10001&campid=5338240504&customid=&mpre=https%3A%2F%2Fwww.ebay.es%2Fitm%2FUSB-2-0-to-TTL-UART-6PIN-CP2102-Module-Serial-Converter-T1%2F252583963023
Este programador tiene la peculiaridad de que tiene accesibles los pines del IC CP2102 DTR y RTS entre otros. Estos son los que necesitaremos para programar la placa de forma muy sencilla. La placa tiene un puerto dedicado unicamente a la conexión del conversor USB-Serie, mediante el cual también podremos establecer una comunicación serie y poder visualizar mensajes para hacer debug o lo que se nos ocurra.
Os comento también que trabajaremos bajo el editor ATOM + PlatformIO. No entrare en detalles, pero las capturas serán de este conjunto. Es muy potente y con mas posibilidades que Arduino. Además tienes todo en el mismo interfaz, no te hace falta ir a buscar librerías fuera de el, tiene gran cantidad. Luego, se pueden programar las placas directamente desde este IDE. Es compatible con infinidad de placas y tiene integrados los frameworks mas usados. Os lo recomiendo también para usar con Arduino. Merece la pena que le dediquéis unas cuentas tardes a probarlo, no os defraudara! - https://platformio.org/
[url= http://rover.ebay.com/rover/1/1185-53479...-0/1?ff3=4&pub=5575361477&toolid=10001&campid=5338240504&customid=&mpre=https%3A%2F%2Fwww.ebay.es%2Fitm%2FUSB-2-0-to-TTL-UART-6PIN-CP2102-Module-Serial-Converter-T1%2F252583963023][/url]
Archivos:
Os voy a dejar todo lo correspondiente a firmware y archivos gerber para enviar a fabricar en Github. Desde el siguiente enlace, podréis acceder al repositorio: https://github.com/grafisoft/SpainLabsIoT2018
Pdf BoM: https://github.com/grafisoft/SpainLabsIo...de_BoM.pdf
Documentación básica del hardware [PDF]: https://github.com/grafisoft/SpainLabsIo...20nodo.pdf
Trucos para programar:
Simplificando el envío de datos: https://www.spainlabs.com/foros/tema-Spa...4#pid89894
Gestión de interrupciones: https://techtutorialsx.com/2016/12/11/es...nterrupts/
[Hardware] Posibles formas de implementar la parte de hardware en las interrupciones y deepsleep: https://github.com/esp8266/Arduino/issues/1488
Nota: Todos los pines pueden generar interrupciones excepto el GPIO16.
Podéis volver al indice del curso desde el siguiente enlace: https://www.spainlabs.com/foros/tema-Spa...para-tod-s
Que precio tiene la pcb que tienes disponible? Creo que me interesaría
Enviado desde mi MI MAX mediante Tapatalk
(13-02-2018, 11:35 PM)javiec escribió: Que precio tiene la pcb que tienes disponible? Creo que me interesaría
Enviado desde mi MI MAX mediante Tapatalk
Son 1,5€ + envío normal por correos sobre 1€.
(13-02-2018, 11:43 PM)grafisoft escribió: (13-02-2018, 11:35 PM)javiec escribió: Que precio tiene la pcb que tienes disponible? Creo que me interesaría
Enviado desde mi MI MAX mediante Tapatalk
Son 1,5€ + envío normal por correos sobre 1€. Hablamos por privado y nos damos datos, gracias!
Enviado desde mi MI MAX mediante Tapatalk
Añadida información sobre el programador.
(15-02-2018, 06:38 AM)s118 escribió: Valdría este programador que tengo por casa?
http://www.ebay.es/itm/FT232RL-FTDI-USB-...1870404882&_trksid=p2047675.c100005.m1851
Si, perfectamente. En la posicion de 3v3.
Unas fotos mas del nodo al 100%. Con los conectores que le faltaban (las tiras de pines para grabar y conectar/desconectar el deepsleep). Y la opción del battery holder de 2 unidades. También se le puede colocar un battery holder de una unidad.
Voy a subir los archivos correspondientes al hardware y al firmware a Github, creo que puede ser un buen sitio para que estén accesibles a todos, por si alguien quiere hacer un fork desde ahí. Si lo consideráis oportuno, pongo aquí también unos enlaces con unos ZIP.
Podéis acceder al Github desde el siguiente enlace: https://github.com/grafisoft/SpainLabsIoT2018
Subido el Firmware para cargar en el nodo.
Panel solar para probar un nodo en exterior
He subido un PDF con el BoM de la PCB para que podáis ver los componentes. He puesto enlaces para comprar aquellos que he considerado que pueden ser difíciles de localizar. Cualquier duda o problema para localizar alguno mas, me decís.
No es necesario soldar todos los componentes para tener un nodo operativo.
Añadida la documentación básica, en desarrollo [PDF]: https://github.com/grafisoft/SpainLabsIo...20nodo.pdf
12-03-2018, 11:01 PM
(Última modificación: 12-03-2018, 11:04 PM por giltesa.)
grafisoft deberías añadir las imágenes en el readme de esta forma, así se verán directamente en vez de como enlace
¿Por cierto, que pilas usa, no son AA verdad?
Edit: Ok, ya veo que son unas 18650!
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
(12-03-2018, 11:01 PM)giltesa escribió: grafisoft deberías añadir las imágenes en el readme de esta forma, así se verán directamente en vez de como enlace
¿Por cierto, que pilas usa, no son AA verdad?
Edit: Ok, ya veo que son unas 18650!
Cambiado, no sabia como hacerlo asi y tenia que mirarlo.
Gracias
13-03-2018, 05:00 PM
(Última modificación: 13-03-2018, 05:02 PM por s118.)
Hola. Tengo unas preguntas, a ver si me las puedes resolver grafisoft:
-Como dije en unos mensajes más arriba, tengo este conversor para programar el ESP ( Conversor), y me respondiste que era compatible. Los pines que tiene el conversor son DTR, RX, TX, VCC, CTS, y GND. Los pines de la board son: GND, RTS, DTR, TX, y RX. Como ves no coinciden. Como realizo la conexión?
- Hablas de que la batería se puede cargar a 100mA o a 450mA. Mi idea es que la batería se cargue con paneles solares de 0,66W y 5,5v cada uno. La idea sería que el panel solar (o los paneles si son dos colocados en paralelo) cargara las dos baterías 18650 a 100mA. Cual es el modo que viene por defecto y cuales son las resistencias a tocar para elegir uno y otro modo?
Gracias
(13-03-2018, 05:00 PM)s118 escribió: Hola. Tengo unas preguntas, a ver si me las puedes resolver grafisoft:
-Como dije en unos mensajes más arriba, tengo este conversor para programar el ESP (Conversor), y me respondiste que era compatible. Los pines que tiene el conversor son DTR, RX, TX, VCC, CTS, y GND. Los pines de la board son: GND, RTS, DTR, TX, y RX. Como ves no coinciden. Como realizo la conexión?
- Hablas de que la batería se puede cargar a 100mA o a 450mA. Mi idea es que la batería se cargue con paneles solares de 0,66W y 5,5v cada uno. La idea sería que el panel solar (o los paneles si son dos colocados en paralelo) cargara las dos baterías 18650 a 100mA. Cual es el modo que viene por defecto y cuales son las resistencias a tocar para elegir uno y otro modo?
Gracias
He actualizado la documentación con las preguntas que me has hecho. Sobre los paneles solares que mencionas, creo que igual no es suficiente para cargar a 100mA. No obstante, se puede cambiar la resistencia y establecer una carga a una menor corriente. Si la cambias a 1k la resistencia R3, cargaríamos a unos 50mA, que con los dos paneles en paralelo que dispones, seria viable.
Por defecto, creo que te puse que cargara al valor mas bajo (100mA).
saludos
15-03-2018, 09:35 AM
(Última modificación: 15-03-2018, 09:37 AM por Kurama.)
No se podria sacar una versión mas reducida con la que se pueda usar una lipo como la de los mini drones? Estoy en documentacion de mi proyecto para gestionar la temperatura/humedas de todas las estancia s de mi piso y habia visto la NodeMCU pero la de Grafisoft tiene muy buena pinta.
"Enseñar es aprender dos veces".
(15-03-2018, 09:35 AM)Kurama escribió: No se podria sacar una versión mas reducida con la que se pueda usar una lipo como la de los mini drones? Estoy en documentacion de mi proyecto para gestionar la temperatura/humedas de todas las estancia s de mi piso y habia visto la NodeMCU pero la de Grafisoft tiene muy buena pinta.
El problema de nodemcu es que no esta enfocado al bajo consumo, de ahi que yo tuviera que hacer este diseño, porque mis pruebas iniciales eran en nodemcu.
La pcb es del tamaño que las baterias 18650, no ocupa mas. Cuidado porque para conseguir autonomia, si no vas a tener el dispositivo conectado a la red o panel solar, no puedes usar una bateria pequeña.
El rediseño siempre es posible. La pcb esta no es mucho mas grande que la de nodemcu. Le puedes poner una bateria del tipo que quieras, no es necesaeio que sea tipo 18650, la pcb dispone de connector ptipo JST para una bateria externa.
Me queda alguna pcb, si te animas a soldar
Saludos
(15-03-2018, 11:40 AM)grafisoft escribió: (15-03-2018, 09:35 AM)Kurama escribió: No se podria sacar una versión mas reducida con la que se pueda usar una lipo como la de los mini drones? Estoy en documentacion de mi proyecto para gestionar la temperatura/humedas de todas las estancia s de mi piso y habia visto la NodeMCU pero la de Grafisoft tiene muy buena pinta.
El problema de nodemcu es que no esta enfocado al bajo consumo, de ahi que yo tuviera que hacer este diseño, porque mis pruebas iniciales eran en nodemcu.
La pcb es del tamaño que las baterias 18650, no ocupa mas. Cuidado porque para conseguir autonomia, si no vas a tener el dispositivo conectado a la red o panel solar, no puedes usar una bateria pequeña.
El rediseño siempre es posible. La pcb esta no es mucho mas grande que la de nodemcu. Le puedes poner una bateria del tipo que quieras, no es necesaeio que sea tipo 18650, la pcb dispone de connector ptipo JST para una bateria externa.
Me queda alguna pcb, si te animas a soldar
Saludos
Me gusta la idea, se podria conserguir con todos los componentes para soldar?
"Enseñar es aprender dos veces".
|