que-es-arduino-app-icisterna-caso-exito-keepcodng

David Alvarez además del esfuerzo y dedicación por su parte, realizó su conversión en Jedi con nuestros Cursos en Barcelona Fundamentos iOS & Intermedio.
Ha estrenado su opera prima iCisterna ¡muy, muy profesional! y que ha nacido en parte gracias a su trabajo en Arduino. No os podéis perder esta entrevista que nos ha concedido donde nos cuenta absolutamente todo sobre él y su app ¡una auténtica experiencia!

Antes de nada, queremos conocerte: danos una breve introducción sobre tí

iCisterna-Qué-es-Arduino-0xDA_bit

Me llamo David Álvarez Medina. Nací en Barcelona, hace ya 28 años. Desde pequeño he tenido claro que la electrónica era mi mundo y desde entonces he estado trasteando todos los juguetes que tenía por casa con algo de electrónica.

Estudié un CFGM de electrónica de consumo, pasé por el tan odiado (y pérdida de tiempo por otro lado) curso puente, realicé un CFGS en telecomunicaciones informática y posteriormente cursé una ingeniería electrónica.

En la actualidad, he realizado el Curso de Fundamentos iOS & Intermedio de las manos del gran Fernando y me estoy planteando iniciar un master el año que viene.

¿Cómo ha sido tu experiencia para dar el salto a la Programación iOS?

Antes de entrar en la carrera, empecé a programar PIC’s los cuales utilizaba para dar “vida” a mis pequeños robots. Posteriormente, en la carrera, aprendí mucho más acerca de la programación, tanto a bajo nivel, programando microprocesadores, como a nivel de usuario, realizando programas en JAVA.

Tras finalizar mis estudios universitarios, recordé una frase que me dijo un profesor de la universidad, que posteriormente fue mi director de proyecto, que decía “cuando finalicéis la carrera lo habréis visto todo, pero no sabréis nada”, por ello empecé a trabajar con varios dispositivos del mundo Open Source como son: Arduino, Raspberry Pi y las impresoras 3D RepRap.

Puse en práctica la mayoría de conceptos que aprendí en la universidad con estos cacharros, la cual cosa me fue muy útil para el trabajo que desarrollaba en mi empresa, aprendiendo por el camino a programar en C, C++, C#, JAVA y JavaScript. Posteriormente, quise vincular esos pequeños inventos con los tan queridos smartphones, y como siempre he sido muy de Apple, me decidí por el mundo iOS.

Debido a que mis primeros intentos de llevar a cabo un App, fueron un auténtico desastre, se me hacía muy incomodo interactuar con Objective-C ya que era muy diferente a todos los lenguajes con los que había trabajado, me apunte a los cursos de AGBO

Ahora que ya te conocemos a ti, preséntanos tu App

Pues mi App, no es una App muy convencional la verdad… es una App fruto del cachondeo de una sobremesa el fin de semana que realizamos el Curso Fundamentos iOS en Barcelona.

Hablando de todo un poco durante la sobremesa, surgió el tema que yo trabajaba con Arduino y entre Fernando y Carlos (un compañero) nació la idea de llevar a cabo el “iCisterna”, una App que te permitiese tirar de la cadena o saber en que estado habías dejado la tapa del WC para que así, tu mujer no te echará la bronca.

La realidad es que yo me lo tomé en serio, ya que uno de mis primeros propósitos era vincular una App iOS con Arduino, y decidí que tal y como finalizara el curso, la llevaría a cabo (Creo que Fernando y Carlos no se esperaban que estuviese tan chalado como para hacerlo y más aún prototiparlo en el baño de mi casa, con las consecuentes peleas con mi chica, jejejeje).

No me enrollo más y paso a hablar de la App:

iCisterna, básicamente es una App que mantiene una comunicación con Arduino, el cual interpreta los mensajes recibidos y los transforma en acciones ya sea tirando de la cadena o bajando la tapa del WC. A más a más, también envía mensajes a la aplicación indicando el estado en el que se encuentra la tapa.

¿Qué es Arduino?

Arduino es una placa Open Source que dispone de un pequeño microcontrolador el cual puedes programar haciendo que haga lo que tú tienes pensado.

Lo interesante de esta placa primeramente es que es Open Source, que permite a quien quiera poder aprender electrónica sin necesidad de gastarse un €, muy interesante en los tiempos en los que estamos; lo segundo es su gran polivalencia, ya que junto al uso de un “shield” (PCB que se conecta posicionándola encima de Arduino) te permite realizar diferentes conexiones como puede ser una conexión por WIFI, una conexión Ethernet (como es nuestro caso), … y por último, la tercera opción por la que resulta interesante es su precio.

¿Qué hacemos con Arduino?

Arduino será, tal y como he comentado anteriormente, el elemento con el que se comunicará nuestro iPhone. Para poder hacer realidad la comunicación, conectaremos un “Ethernet Shield” el cual irá conectado, mediante un cable Ethernet, al router de casa. Además tiene designada la tarea de leer el sensor de la tapa, el cual nos indicará el estado de la tapa enviando un mensaje a la aplicación para indicar el estado de la misma, y activar uno de los dos servomotores que tiene conectados.

Para determinar qué servomotor activará esperará la recepción de un mensaje procedente de la App el cual se lo indicará. Al iniciar la aplicación, nos aparece la pantalla que se muestra en la figura anexa. En ella lo único que debe hacer el usuario es presionar el botón “Conectar” el cual enviará un mensaje a Arduino para iniciar la comunicación con él.

Posteriormente, nos aparece una nueva pantalla, mostrada en la figura anexa, en la cual, el usuario puede realizar dos acciones: tirar de la cadena y bajar la tapa.

Para llevar a cabo la primera acción, tirar de la cadena, el usuario debe pulsar el botón situado en la esquina superior derecha de la imagen.
En ese momento la App reproducirá un sonido, imitando al que hace el inodoro de nuestra casa al tirar de la cadena, se enviará un mensaje a Arduino indicándole que accione el servomotor ubicado encima de la cadena y la imagen del botón se mantendrá en verde el tiempo que tarda la cisterna en vaciarse.

Para realizar la segunda acción, bajar la tapa, el usuario debe observar cual es el estado de la tapa, esto lo indica la imagen mostrada anteriormente, existen dos casos: el del inodoro con la tapa abierta o con la tapa cerrada.

Arduino, mediante el uso de un sensor, enviará un mensaje a la App indicando el estado actual de la tapa, variando de esta forma la imagen a mostrar en la aplicación. Para realizar la acción de bajar la tapa, el usuario debe deslizar su dedo de arriba a abajo encima de la tapa del inodoro mostrada en la imagen.
En ese momento, la imagen de la App variará, cambiado la imagen del inodoro con la tapa abierta, por una con la tapa cerrada. De igual forma que el primer caso, se reproduce un sonido imitando el sonido de una tapa del WC cerrándose y se envía un mensaje a Arduino indicando que el servomotor, dedicado al cierre de la tapa, se debe activar.

¿Cómo se realiza la comunicación?

La comunicación entre ambos dispositivos se lleva a cabo gracias a la red local de casa, el iPhone se conecta a través de WII y el Arduino mediante el cable Ethernet comentado anteriormente.

qué_es_arduino_app_iCisterna

Después del rollizo, os dejo el video en youtube 

¿Qué dificultades has tenido?

Supongo que las típicas de todo novato iniciando su primera App, aclarar conceptos con el tema de poner en práctica el MVO y algún que otra comedura de cabeza para poder llevar a cabo la comunicación entre los dos dispositivos.

¿Qué planes tienes para tu App o futuras?

Me gustaría poder habilitar la comunicación por Bluetooth entre los dos dispositivos (estoy en ello) pero no me planteo subirla a la App Store, seguramente al conseguir la comunicación entre los dos dispositivos por Bluetooth me dedique a crear otras Apps que tengo en mente.

¿De qué forma te ayudó la formación en KeepCoding?

Me ayudó de una forma increíble. Como he comentado al principio de la entrevista, mi choque con Objective-C, fue muy bestia. Era algo muy diferente de lo que había tratado hasta el momento y realizar el Curso Fundamentos iOS y el Intermedio me permitió desbloquearme mentalmente y poder entender lo fácil que es programar tanto para iOS como para OSX.

Recomiendo los cursos para todo aquel que esté interesado, de verdad, no pagan un duro por decir ésto pero es cierto, de la forma en la que está enfocada el curso, tanto el de Fundamentos como el Intermedio, se hace muy fácil el aprendizaje y si con esto no consigues programar es que no vales para este mundo, el de la programación claro.

¿Qué recomendaciones le darías a otras personas que quieren dar el salto a la Programación?

La verdad es que no soy quien para dar ninguna recomendación, ya que soy un novato en el mundo iOS y mi experiencia es muy corta… Lo único que sí puedo recomendar, a parte de que hagan los cursos de AGBO, es que en el momento que empiecen con el mundo de Objective-C se queden con el concepto de la programación por objetos pero que se quiten de la cabeza lo visto hasta el momento en otros lenguajes como pueden ser JAVA, C#,… a mi me funcionó.

¿Qué planes profesionales tienes a corto y medio plazo?

La verdad es que ahora mismo sigo trabajando en una empresa de Barcelona, pero estoy trabajando en mi tiempo libre en otras aplicaciones que se me van ocurriendo y quien sabe, si la cosa va bien quizá piense en algo más ambicioso.
Hasta el momento en Septiembre tengo pensado irme a SFO un mes solo a ver la ciudad y ver que es lo que se cuece en lo referente al mundo de las aplicaciones.

Conoce nuestros Bootcamps

Bootcamp Aprende a programar desde cero

Full Stack Web Bootcamp

Full Stack Mobile Bootcamp

Full Stack Big Data & Machine Learning Bootcamp

Full Stack DevOps Bootcamp

Full Stack Cybersecurity Bootcamp

Máster en Tecnologías Exponenciales de la Computación

¡Pide más información! Nosotros te llamamos

Otras entradas que te pueden interesar:

¡Conoce nuestros Bootcamps!

Descarga el temario y descubre cómo en 6 meses podrás ser un Full Stack DevOps Bootcamp.

¿Quieres más información?