INTERNET DE LAS COSAS [PARTE 1] - LEER TEMPERATURA CON ARDUINO Y LM35
¡Muy buenas! Hoy comienzo una serie de **3 tutoriales** en los cuales vamos a aprender a crear nuestro propio **Internet de las Cosas**. Estas 3 partes son:
- Leer datos de Arduino: leeremos la temperatura de un sensor LM35.
- Mandar estas lecturas a una base de datos que se encuentre en un servidor. Utilizaré mi Raspberry Pi.
- Graficar estos datos con HighCharts.
Ya hemos hechos en Geeky Theory varios tutoriales sobre estos temas: Arduino y Raspberry Pi, bases de datos, gráficas con MySQL, Internet de las Cosas, etc. Tenemos la información suficiente como para que os montéis una súper aplicación que haga temblar a los más grandes, pero nunca hemos recogido esta información para **hacer una aplicación de principio a fin**.
#### ¿Cuál es nuestro objetivo?
El objetivo es claro en este caso. **No quiero que la comunicación sea unidireccional**, es decir, yo escribo, vosotros leéis. Voy a crear un repositorio en GitHub (más adelante pondré la URL) público para que todos podáis aportar mejoras y sugerencias. Cuando hago un tutorial, vosotros siempre implementáis cosas muy interesantes a partir de ahí. Pero, ¿y si entre todos hacemos una aplicación que sea **útil para mucha gente**? Yo creo una gráfica, pero ¿y si otra persona quiere implementar una base de datos con usuarios? ¿Y si otro desarrollador quiere añadir más gráficas? Para eso está este proyecto.
#### Hora de implementar
Como primer paso para implementar esta aplicación, programaremos un código simple para Arduino que lea la temperatura de un LM35.
**¿Qué es un LM35?**
El **LM35** es un sensor de temperatura, que viene calibrado con una precisión de 1ºC y es capaz de medir entre -55ºC y 150ºC. Tiene 3 pines de conexión. Uno es para la **alimentación**, otro para **masa (0 Voltios)** y otro para la **salida de datos**. Es muy sencillo de utilizar. Por si alguien quiere investigarlo más a fondo, dejo el enlace al DataSheet.
#### CONEXIONES
Como para el siguiente tutorial voy a utilizar la placa **Arduino Ethernet Shield**, pues os enseño ya el montaje con ella. Recuerdo que hice un tutorial sobre esta placa en este enlace.
#### PROGRAMACIÓN DEL ARDUINO
Vamos a hacerlo muy sencillo (como siempre en Geeky Theory). **Leeremos los datos del sensor y los mandaremos por puerto serie para visualizarlos y comprobar que son correctos**.
La fórmula que vamos a utilizar para realizar la conversión del valor analógico leido a temperatura es la siguiente: **(5.0 * analogRead(PIN_SENSOR) * 100.0) / 1024.0** Aquí podéis ver el código:
int analog_pin = 0; float temperatura; void setup () { Serial.begin(9600); } void loop() { temperatura = analogRead(analog_pin); temperatura = 5.0*temperatura*100.0/1024.0; Serial.print(temperatura); Serial.println(" oC"); delay(1000); } Muy sencillo. Lee la temperatura cada segundo y la muestra por el puerto serie, como vemos en la siguiente imagen:
Pues esto es todo por este tutorial. En el siguiente, lo que haremos será **crear una base de datos para almacenar las lecturas que realiza Arduino** y mandar estas al servidor con **Arduino Ethernet Shield**. ¡Un saludo!