Acceso remoto a datos de sensores

Hola qué tal, tengo una consulta espero puedan ayudarme ustedes que tienen más experiencia en estos temas, soy un aficionado a la domótica y estoy haciendo un proyecto para controlar (encender/apagar) un foco y mostrar la temperatura actual con un sensor (LM35) de mi casa no solamente de manera local sino también de manera remota (desde cualquier lugar fuera) a través de una app android propia que estoy diseñando.
Ahora, supongo que debo crear una base de datos para almacenar los valores que va a leer el sensor de temperatura y luego enviarlos a mi app, pero para hacer esto debo definir un servidor para la base de datos ¿verdad? y si es así, quiero evitarme el definir como servidor a un ordenador en mi casa porque no quiero tenerlo encendido de forma obligatoria las 24 horas del día, así que ¿qué opciones tengo? ¿un hosting gratuito de esos que te ofrecen en internet? (que tenga habilitado el manejo de bases de datos, claro).
¿O es que acaso no voy por buen camino y hay una mejor opción para controlar lo que quiero desde mi futura app? Como ven el enfoque más importante que le quiero dar a este proyecto es que en lo posible sea un desarrollo propio. Desde ya gracias por la guía que me puedan brindar.

Hay muchísimas opciones, y cada una tendrá sus pros y sus contras. La que tú dices sería una. Necesitarías un hosting php/mysql y crear una página web para que el arduino envíe sus datos a la base de datos, y otra página por la que servir esos datos. No sería necesaria ni app, ya que con cualquier navegador podrías verla; aunque podrías hacerlo con una app, por supuesto.
Otro método podría ser que el propio arduino sea servidor y la app cliente. Salvo que el arduino esté bajo una IP fija, necesitarías algún servicio tipo DynDNS, además de abrir y redireccionar el puerto correspondiente en tu router. Ahí tu arduino podría ser un servidor web, o en cualquier protocolo que establecieras con tu app.

Lo que no veo es la necesidad de una base de datos para (como solicita) simplemente consultar la temperatura del LM35 y conmutar un foco.

Pues efectivamente, no sería necesaria. Yo utilizaría la opción de arduino + dyndns directamente; pero si me decidiera por un server externo, por el mismo precio almacenaría el histórico de datos.
... Partiendo de que quiere hacer un desarrollo propio, porque hay varias opciones ya hechas.

[/quote]

Jopapa:
Lo que no veo es la necesidad de una base de datos para (como solicita) simplemente consultar la temperatura del LM35 y conmutar un foco.

Sí, bueno es que pienso agregarle luego más dispositivos y sensores:

  • por ahora el control del foco y la visualización de la temperatura
  • luego le aumentaré más dispositivos de mi cuarto
  • Y después aumentarle dispositivos de toda mi casa (voy lento pero seguro

noter:
Hay muchísimas opciones, y cada una tendrá sus pros y sus contras. La que tú dices sería una. Necesitarías un hosting php/mysql y crear una página web para que el arduino envíe sus datos a la base de datos, y otra página por la que servir esos datos. No sería necesaria ni app, ya que con cualquier navegador podrías verla; aunque podrías hacerlo con una app, por supuesto.
Otro método podría ser que el propio arduino sea servidor y la app cliente. Salvo que el arduino esté bajo una IP fija, necesitarías algún servicio tipo DynDNS, además de abrir y redireccionar el puerto correspondiente en tu router. Ahí tu arduino podría ser un servidor web, o en cualquier protocolo que establecieras con tu app.

noter:
Pues efectivamente, no sería necesaria. Yo utilizaría la opción de arduino + dyndns directamente; pero si me decidiera por un server externo, por el mismo precio almacenaría el histórico de datos.
... Partiendo de que quiere hacer un desarrollo propio, porque hay varias opciones ya hechas.

Entonces para ir descartando opciones a escoger te presento estos requerimientos:

  • el servidor no debe ser un ordenador de mi casa (es para no depender de algo que tendría que mantener encendido como lo comenté antes)
  • acceso fácil: mi idea es que para ingresar a la interfaz gráfica no tenga que estar recordando ni escribiendo la dirección de la página desde donde controlo todo, por eso pensé en hacer una app, con el agregado de que, bueno, actualmente la mayoría de personas cuentan con un smartphone con acceso a internet que prefieren usar apps en lugar de un navegador web (no para buscar información sino para realizar una acción conocida, además le da un toque personalizado)
  • Si es que vaya a usar un servicio hosting, que sea gratuito en lo posible, si no lo es, ¿qué le vamos a hacer?...
  • Siempre presente que el control sea de forma remota y local (esté o no en mi casa)
  • Y como lo comenté aquí arribita, después le agregaré más dispositivos y sensores a controlar
    De antemano gracias por las futuras respuestas . Buscaré más información sobre DynDNS con Arduino.

Noter mencionaste que hay muchas formas de hacer este proyecto con mis requerimientos como puse aquí arribita, te pido que me nombres esas formas, obviamente después yo me encargo de buscar info sobre ellas

Si fuera acceso exclusivamente desde la red propia no necesitarías ningún servidor externo, y con el arduino más la conexión a red (ethernet o wifi), sin olvidar la opción micro basado en ESP8266 programado como arduino, tendrías en principio lo suficiente para recibir instrucciones/servir datos a otro dispositivo conectado a la misma red. La complicación viene cuando necesitar acceder a esa red privada desde Internet.
La forma más sencilla de enlazar es la que propones tú: arduino y teléfono móvil como clientes de una página web en un servidor público (creo que los hay gratuitos). Deberás programar a tres bandas: arduino, servidor y opcionalmente aplicación móvil, aunque podrías utilizar un navegador directamente.
La otra forma sería arduino como servidor y teléfono móvil como cliente. El propio arduino serviría la página web (o los datos en otro formato) al navegador/aplicación cliente. Con este método la programación se reduce a dos bandas; sin embargo el enlace se complica por dos cuestiones: primero; cuando accedes a tu ip pública desde fuera, antes del arduino está tu router, que debe saber si debe, y a qué dirección privada, remitir las peticiones. Aquí deberemos entrar en la configuración del router para "abrir puertos". Segundo; nuestra dirección IP por norma general no es fija. En ese caso, necesitamos decirle al cliente en qué ip pública está nuestro arduino. Para ello recurrimos a servicios externos (DynDNS, por ejemplo) que almacenen la dirección ip actual de nuestro servidor, de manera que podemos acceder a ella mediante una URL. Después de ese trámite, el acceso es de tú a tú entre arduino y teléfono.
En cuanto al cómo, empieza por buscar información en el foro. Pon en la lupa que tienes en la parte superior de este foro un par de "palabras mágicas" y empieza a leer. Por ejemplo, "servidor web", "enviar datos internet", "domótica"...