Archivo de la etiqueta: Sensores

Sensores y Actuadores

Los sensores son el primer eslabón de la cadena de IoT

Si se le ocurre una propiedad física, probablemente pueda comprar un sensor para medirla.

En su forma más abstracta, un sensor no es más que una caja negra que transduce un estado físico que queremos monitorear en una propiedad eléctrica que podemos medir. Puede ser tan simple como un conjunto de contactos que cambian entre abierto y cortocircuito cuando pulsamos un botón o abrimos una ventana. Puede ser un potenciómetro que cambia la resistencia cuando un humano gira un dial o un robot extiende un brazo.

También puede ser tan complicado como un circuito integrado que detecta la aceleración y el magnetismo a lo largo de tres ejes para determinar la orientación, la aceleración y el rumbo de la brújula hacia su dispositivo IoT.

La mayoría de los sensores se conectan a los nodos de IoT a través de una interfaz digital, serie o analógica. Las interfaces en serie se utilizan normalmente para sensores complejos como los acelerómetros que tienen un interfaz I2C.

Sensores Arduino: https://aprendiendoarduino.wordpress.com/2018/04/14/sensores-arduino-3/

Un actuador es un dispositivo capaz de transformar energía hidráulica, neumática o eléctrica en la activación de un proceso con la finalidad de generar un efecto sobre elemento externo. Este recibe la orden de un regulador, controlador o en nuestro caso un Arduino y en función a ella genera la orden para activar un elemento final de control como, por ejemplo, una válvula.

Existen varios tipos de actuadores como son:

  • Electrónicos
  • Hidráulicos
  • Neumáticos
  • Eléctricos
  • Motores
  • Bombas

Actuadores y periféricos Arduino: https://aprendiendoarduino.wordpress.com/2015/03/31/actuadores-y-perifericos-de-salida/

Sensores no son solo los sensores que conectamos a un microcontrolador como Arduino, podemos tener una red de sensores externos que podemos integrar en nuestra red como:

  • Autómatas de los que recojo datos mediante modbus TCP con http://openopc.sourceforge.net/ e integro en las bases de datos o red MQTT.
  • Cámaras vigilando eventos con https://opencv.org/ y que integro con mis datos e interacciona.
  • Dispositivos con interfaces SNMP y adquiere los datos cada minuto guardando en la BBDD combinándolos con los datos recogidos por Arduino.
  • Datos públicos como los de aemet y que uso para activar elementos gestionados por la red MQTT.

Aplicando estos sencillos pasos, somos capaces de conectar el nivel más bajo de la pirámide del Internet de las Cosas (la sensorización) con las capas intermedias que se encargan de procesar y consumir dicha información, tanto de forma discrecional como empleando técnicas más complejas de análisis de datos.

Todo ello, sin comprometer la estabilidad y escalabilidad del sistema global, pudiendo añadir tantos sensores como necesitemos de una forma sencilla y sin preocuparnos de configuraciones extra. A partir de este momento, somos capaces de construir soluciones de mayor complejidad en el mundo de Internet de las Cosas.

Más información:

HW fabricado para IoT https://learn.controleverything.com/

Más información: https://www.artik.io/blog/2015/10/iot-101-sensors/

Ejemplo Sensor DHT11

Conectar una sonda DHT11 a Arduino UNO con Ethernet Shield y publicar datos en el topic “Temperatura” cada 5 segundos con la temperatura detectada. Ver esos datos desde el cliente MQTT.fx

Conexión:

Usar la librería DHT de adafruit https://github.com/adafruit/DHT-sensor-library, recordad que tiene una dependencia de la librería Adafruit Unified Sensor: https://github.com/adafruit/Adafruit_Sensor

Código: https://github.com/jecrespo/Curso-IoT-Open-Source/blob/master/mqtt_temperatura_DHT/mqtt_temperatura_DHT.ino

Si queremos que otro Arduino reciba datos por MQTT al suscribirse al topic “temperatura” usamos la función de callback que imprime el mensaje recibido:

 
void callback(char* topic, byte* payload, unsigned int length) {
 Serial.print("Message arrived [");
 Serial.print(topic);
 Serial.print("] ");
 int i=0;
 for (i=0;i<length;i++) {
   Serial.print((char)payload[i]);
 }
 Serial.println();
}

Si quisiéramos guardar el mensaje recibido en una variable entonces la función de callback es:

 
String data;

void callback(char* topic, byte* payload, unsigned int length) {
 char dataArray[length];
 for (int i=0;i<length;i++) {
   dataArray[i] = (char)payload[i];
 }
 data = str(dataArray)
}

Código: https://github.com/jecrespo/Curso-IoT-Open-Source/blob/master/mqtt_temperatura_suscriptor/mqtt_temperatura_suscriptor.ino

Más información: https://ricveal.com/blog/arduino-mqtt/

Anuncios

Hardware para Robótica Educativa

No hay duda de que actualmente la programación y la robótica están cada vez más presente en nuestro sistema educativo en todos sus niveles, desde la Educación Infantil hasta la Enseñanza Universitaria.

Lo que se conoce como Robótica Educativa es un método de aprendizaje basado en la corriente pedagógica del constructivismo que tiene como objetivo el diseño, ensamble y puesta en funcionamiento de creaciones propias.

Permite desarrollar conocimientos tanto científicos como tecnológicos, así como de  otras disciplinas con las que se encuentra estrechamente relacionada. En particular se emplea la Educación STEM,  acrónimo en inglés de Science, Technology, Engineering and Mathematics, en la que se tratan estas cuatro grandes áreas de conocimiento de manera integrada en lugar de como áreas de conocimiento independientes.

Como recurso educativo, la programación de robots, permite trabajar en el aula  aspectos como la creatividad, el pensamiento lógico, capacidades organizativas, desarrollo de la psicomotricidad fina, aprendizaje basado en proyectos, resolución de problemas o el fomento del trabajo colaborativo.

Muchos de los kits para iniciarse en la electrónica y programación de robots destinados a la educación están basados en Arduino. De este modo,  los estudiantes pueden adentrarse en la robótica gracias a este software y hardware de desarrollo libre.

Arduino es un conjunto de herramientas de software y plataformas de hardware de código abierto, basadas en una placa que incluye circuitos electrónicos con entradas y salidas, analógicas y digitales, que conectan el mundo físico con el mundo virtual para crear desde procesos simples hasta “cosas” inteligentes, conectadas e interactivas como robots. Con estas placas es posible enviar o recibir información de cualquier sistema electrónico conectado a él. Son capaces de leer entradas (luz en un sensor o un dedo en un botón) y convertirlo en una salida (activar un motor o encender una luz).

Kits para robótica educativa: https://www.ro-botica.com/tienda/robotica-educativa

Productos de Robótica Educativa: https://www.ro-botica.com/educacion-productos/

Niveles por Edades:

Y mucho más en http://ro-botica.com/

Escornabot

Escornabot es un proyecto de código/hardware abierto cuyo objetivo es acercar la robótica y la programación a los niños y niñas.

El Escornabot básico puede programarse con los botones para ejecutar secuencias de movimientos. A partir de aquí, la imaginación es el único límite en las posibilidades.

Principales características:

  • Lo haces tú. Y tus alumnos, hijos, primos pequeños… Cualquiera puede ayudar participando en el proceso desde el principio. El placer de fabricar tu propio escornabot hace que sea una experiencia estupenda, sobre todo si hay niños participando.
  • Es un proyecto de hardware abierto (OSHW) y software libre (FOSS) y puedes adaptar sus características a tus necesidades: ponerle sensores, leds, cambiar la apertura del ángulo de giro, la distancia que avanza… cualquier cosa que se te ocurra.
  • Es (por precio) más asequible que otros robots educativos comerciales. Montar un escornabot puede costar menos de 20€ si sabes donde comprar los componentes (por internet). Este precio no es su valor porque lleva tiempo de trabajo y otros costes indirectos (especialmente la impresión 3D de las piezas).

Más información:

MakeBlock

MakeBlock es la marca del hardware para el que está desarrollado mBlock, pero que también podemos usar con Arduino, puesto que sus robots educativos están basados en Arduino.

Makeblock Co., Ltd es un proveedor líder de soluciones de educación STEAM. Dirigida a los mercados educativos y de entretenimiento de STEAM para escuelas, instituciones educativas y familias, Makeblock ofrece el hardware, software, soluciones de contenido y competencias de robótica de primer nivel más completos.

Makeblock Education: http://education.makeblock.com/

Enlaces:

Learn de makeblock: http://learn.makeblock.com/en/

Catálogos:

Imprimir en 3D las piezas de MakeBlock (ver estructural parts): https://grabcad.com/library/data-of-makeblock-parts-1

Makeblock dispones de distintos tipos de kits:

Placas MakeBlock

Placa basadas en Arduino

Shield para convertir un Arduino en un makeblock Me UNO Shield:

Makeblock mBot

mBot es un Kit de robot educativo de nivel básico. Fácil de construir con la guía de montaje incluida,  3 modos de control preestablecidos y programación basada en bloques

Enlaces

Robot Educativo mBot:

Makeblock Ranger

El mBot Ranger es un kit que te permite construir 3 robots diferentes

  • Robot todo-terreno con ruedas tipo oruga
  • Robot de 2 ruedas capaz de mantenerse estable gracias a su giróscopo
  • Robot de 3 ruedas para realizar maniobras complicadas

Enlaces:

Libro: https://www.zambeca.cl/tiendaOficial/documentos/MakeBlock/Divirtiendome_con_mBot_Ranger.pdf

Edison

Edison es un robot programable diseñado para ser un recurso de enseñanza STEM completo para la educación sobre codificación y robótica para estudiantes de 4 a 16 años de edad.

Más información:

mOway

El objetivo de mOway es hacer la robótica accesible a todo el mundo que quiera desarrollar aplicaciones de robótica, despertar el interés en la programación e introducirla en toda la sociedad.

Queremos crear un producto para todas las edades. La misma herramienta para diferentes lenguajes de programación y para diferentes niveles, la cual está lista para trabajar y obtener resultados desde el principio. Un robot con el que el único límite es tu imaginación.

Web: http://moway-robot.com/es/inicio/

Kits mOway: http://www.ro-botica.com/tienda/mOway/

Moway: http://www.ro-botica.com/tienda/mOway/

mOwayduino: https://www.ro-botica.com/Producto/robot-mOwayduino-basado-en-ARDUINO/

Otros Kits de Robotica Educatica

Littlebots: https://www.littlearmrobot.com/

Fischertechnik:

Lego® Education

Kits para montar:

Hardware Arduino para la Educación

Hardware Arduino

Arduino es una plataforma para prototipado de electrónica basada en hardware y software libre y fácil de utilizar. Podemos construir circuitos electrónicos y programarlos con esta placa.

Realmente lo que estamos haciendo es programar un microcontrolador, estos dispositivos electrónicos programables nos rodean en nuestro día a día, en el coche, nuestra casa, el trabajo, etc…

Las principales características que podemos encontrar en nuestra placa de Arduino UNO son las siguientes:

  • El microcontrolador es un circuito integrado programable capaz de realizar operaciones matemáticas complejas a gran velocidad.
  • La alimentación de una placa de Arduino es mediante el puerto USB mientras se está programando. Una vez programado podemos desconectarlo del ordenador y que trabaje de forma autónoma y se alimenta Arduino mediante una fuente de alimentación o pila de 9V.
  • Tanto las entradas como las salidas dotan al sistema de información y realizan diferentes actuaciones.

Arduino contiene la siguiente distribución de pines:

  • Disponemos de 14 pines digitales que pueden ser configurados como entradas o salidas, de los cuales (serigrafiadas con el símbolo ~) pueden ser utilizados como señales digitales PWM 6 pines.
  • Igualmente disponemos de 6 pines analógicos serigrafiadas desde A0 hasta A5 para las entradas analógicas.
  • También disponemos de 3 pines GND para conectar a tierra nuestros circuitos.
  • Y por último 2 pines de alimentación de 5V y 3.3V respectivamente.

Para saber más:

Sensores

Un sensor es un dispositivo capaz de detectar magnitudes físicas o químicas, llamadas variables de instrumentación, y transformarlas en variables eléctricas.

  • Las variables de instrumentación pueden ser por ejemplo: temperatura, intensidad lumínica, distancia, aceleración, inclinación, desplazamiento, presión, fuerza, torsión, humedad, movimiento, pH, etc.
  • Una magnitud eléctrica puede ser una resistencia eléctrica (como en una RTD), una capacidad eléctrica (como en un sensor de humedad o un sensor capacitivo), una tensión eléctrica (como en un termopar), una corriente eléctrica (como en un fototransistor), etc.

Un sensor nos va a poder medir/leer las variables ambientales de nuestro entorno para poder tomar decisiones en función de los cambios en el entorno.

Ejemplos de sensores. Kits Arduino: http://www.robotshop.com/en/37-modules-sensor-kit-arduino.html

Listado de componentes: http://tienda.bricogeek.com/upload/datasheets/SEN-0060/37-en-1-especificaciones.pdf

Actuadores

Un actuador es un dispositivo capaz de transformar energía hidráulica, neumática o eléctrica en la activación de un proceso con la finalidad de generar un efecto sobre elemento externo. Este recibe la orden de un regulador, controlador o en nuestro caso un Arduino y en función a ella genera la orden para activar un elemento final de control como, por ejemplo, una válvula.

Existen varios tipos de actuadores como son:

  • Electrónicos
  • Hidráulicos
  • Neumáticos
  • Eléctricos
  • Motores
  • Bombas

En determinadas ocasiones, necesitamos un “driver” o manejador para poder mandar órdenes desde Arduino.

  • Recordad que los pines de Arduino solo pueden manejar un máximo de 40mA y recomendable usar 20mA de forma continua.
  • Recordar que Arduino solo puede manejar un total de 200 mA de salida. Es decir que la corriente máxima que admite Vcc y GND son 200 mA.

Un actuador nos permite interactuar con el entorno.

Periféricos

Periférico es la denominación genérica para designar al aparato o dispositivo auxiliar e independiente conectado a la unidad central de procesamiento o en este caso a Arduino. Se consideran periféricos a las unidades o dispositivos de hardware a través de los cuales Arduino se comunica con el exterior, y también a los sistemas que almacenan o archivan la información, sirviendo de memoria auxiliar de la memoria principal.

Ejemplos de periféricos:

  • Pantallas LCD
  • Teclados
  • Memorias externas
  • Cámaras
  • Micrófonos
  • Impresoras
  • Pantalla táctil
  • Displays numéricos
  • Zumbadores
  • Indicadores luminosos, etc…

En ocasiones para usar un periférico con Arduino, necesitamos un “driver” o manejador para poder mandar órdenes desde Arduino.

Shields Arduino

Las shields son placas de circuitos modulares que se montan unas encima de otras para dar funcionalidad extra a un Arduino. Esta Shields son apilables.

Existen miles de shields en función de lo que necessitemos: http://shieldlist.org/

Shields Educativos

Uno de los problemas que se encuentran a la hora de impartir un curso de electrónica y programación con Arduino en los colegios es la dificultad de comprobar los montajes de los circuitos de los alumnos. Sobre todo cuando se trata de los más pequeños.

Existen shields educativos que facilitan el trabajo en el aula. Son shields que o bien permiten conectar y listo o bien tienen varios componente integrados que evitan hacer cableados y no tener que saber de electrónica.

Shield Educativo Multifunción

Shield educativo + mblock https://www.prometec.net/blog-shield-educativo-multifuncion/

Echidna

EchidnaShield es un proyecto Open Source dirigido a facilitar el aprendizaje de la programación de sistemas físicos en los últimos cursos de Primaria y en Secundaria. Con este fin se ha diseñado un escudo para Arduino, pensando en su uso con entornos visuales de programación. El escudo está apoyado en una guía educativa con propuestas de actividades para el aula.

Toda la información en: http://echidna.es/

BQ Zum Kit

Web: https://www.bq.com/es/zum-kit

Grove Starter Kit

Web: https://www.seeedstudio.com/Grove-Starter-Kit-for-Arduino-p-1855.html

Grove System: http://www.seeedstudio.com/wiki/GROVE_System

Wiki: http://www.seeedstudio.com/wiki/Grove_-_Starter_Kit_v3

Kit conectar y listo: http://www.electan.com/arduino-shield-kit-modulos-conectar-listo-p-2987.html  

Makey Makey

MaKey MaKey es una placa de circuito impreso con un microcontrolador ATMega32u4 que ejecuta el firmware de Arduino Leonardo. Utiliza el protocolo de dispositivos de interfaz humana (HID) para comunicarse con el ordenador, y puede enviar pulsaciones de teclas, clics del mouse y movimientos. Para detectar un circuito cerrado en los pines de entrada digital, usa switches de alta resistencia para que sea posible cerrar un interruptor incluso a través de materiales como la piel, hojas y play-doh. Usa una resistencia de pull-up de 22 mega ohms. Esta técnica atrae el ruido en la entrada, pero usa promediador para reducir el ruido mediante software, ahorrando dinero en el filtrado por hardware. Hay seis entradas en la parte frontal de la placa, que se pueden unir a través de conectores tipo cocodrilo o cualquier otro método que se te ocurra. Hay otras 12 entradas en la parte posterior, 6 para las teclas del teclado y 6 para el movimiento del mouse, a las que se puede acceder usando jumpers, clips o conectores de tipo cocodrilo de forma creativa alrededor de los conectores.

Más información:

Avanzado de Makey Makey

Firmware de Makey Makey: https://github.com/sparkfun/MaKeyMaKey/tree/master/firmware/Arduino/makey_makey

Repositorio Makey Makey: https://github.com/sparkfun/MaKeyMaKey

Web donde comprar: https://www.ro-botica.com/

Picuino

Picuino es una plataforma de hardware y software que facilita el desarrollo sencillo de proyectos interactivos.

Picuino: http://www.picuino.com/

NanoPlayBoard

NanoPlayBoard es un Shield educacional para Arduino Nano hecha en Almería.

Web del proyecto: http://nanoplayboard.org/

NanoPlayBoard tiene una librería ya configurada en la que está todo el código necesario para llevar a cabo esos experimentos básicos.

Una placa open sourece con muchas posibilidades:

littleBits

littleBits es una empresa con sede en la ciudad de Nueva York que hace una biblioteca de código abierto de electrónica modular, que consiste en juntar piezas con pequeños imanes para la creación de prototipos. El objetivo de la compañía es democratizar el hardware de la misma forma que el software y la impresión se han democratizado. La misión de littleBits es “poner el poder de la electrónica en manos de todos y analizar tecnologías complejas para que cualquiera pueda construir, crear prototipos e inventar”.

El kit de codificación little littlebits Arduino permite a los usuarios comenzar a crear inventos que se comunican con el software (Processing, MaxMSP, etc.), con el apoyo de instrucciones paso a paso, recursos útiles en línea y 8 bocetos de muestra (código prefabricado) incluido. Aprende las habilidades del futuro: codificación, ingeniería y creatividad.

Web: https://www.littlebits.com/

Sensores Arduino

Un sensor es un dispositivo capaz de detectar magnitudes físicas o químicas, llamadas variables de instrumentación, y transformarlas en variables eléctricas.

  • Las variables de instrumentación pueden ser por ejemplo: temperatura, intensidad lumínica, distancia, aceleración, inclinación, desplazamiento, presión, fuerza, torsión, humedad, movimiento, pH, etc.
  • Una magnitud eléctrica puede ser una resistencia eléctrica (como en una RTD), una capacidad eléctrica (como en un sensor de humedad o un sensor capacitivo), una tensión eléctrica (como en un termopar), una corriente eléctrica (como en un fototransistor), etc.

Los sensores se pueden clasificar en función de los datos de salida en:

  • Digitales
  • Analógicos

Dependiendo del tipo de sensor, deberemos conectarlo a una entrada digital o analógica.

Y dentro de los sensores digitales, estos nos pueden dar una señal digital simple con dos estados como una salida de contacto libre de tensión o una salida en bus digital. En caso que el sensor use comunicación por bus, deberemos usar algunos de los buses que implementa Arduino o usar hardware adicional que nos proporcione un interfaz entre el Arduino y el bus.

Un ejemplo de sensor analógico sería el ACS714, es un sensor de efecto hall que mide las corrientes eléctricas que pasan a través del chip y devuelve un valor en voltaje proporcional a la corriente que circula por el sensor:

Datasheet: http://www.allegromicro.com/~/Media/Files/Datasheets/ACS714-Datasheet.ashx

Como medir corriente con Arduino y un sensor ACS714: http://playground.arduino.cc/Main/CurrentSensing

Tutorial de uso del sensor ACS714: http://www.instructables.com/id/How-to-Measure-AC-Current-using-Hall-Effect-Sensor/?ALLSTEPS

Características de  los sensores

  • Rango de medida: dominio en la magnitud medida en el que puede aplicarse el sensor.
  • Precisión: es el error de medida máximo esperado.
  • Offset o desviación de cero: valor de la variable de salida cuando la variable de entrada es nula. Si el rango de medida no llega a valores nulos de la variable de entrada, habitualmente se establece otro punto de referencia para definir el offset.
  • Linealidad o correlación lineal.
  • Sensibilidad de un sensor: suponiendo que es de entrada a salida y la variación de la magnitud de entrada.
  • Resolución: mínima variación de la magnitud de entrada que puede detectarse a la salida.
  • Rapidez de respuesta: puede ser un tiempo fijo o depender de cuánto varíe la magnitud a medir. Depende de la capacidad del sistema para seguir las variaciones de la magnitud de entrada.
  • Derivas: son otras magnitudes, aparte de la medida como magnitud de entrada, que influyen en la variable de salida. Por ejemplo, pueden ser condiciones ambientales, como la humedad, la temperatura u otras como el envejecimiento (oxidación, desgaste, etc.) del sensor.
  • Repetitividad: error esperado al repetir varias veces la misma medida.

Más información: http://es.wikipedia.org/wiki/Sensor#Caracter.C3.ADsticas_de_un_sensor

Tipos de sensores: http://es.wikipedia.org/wiki/Sensor#Tipos_de_sensores

IMPORTANTE: A la hora de elegir un sensor, debemos leer detenidamente las características y elegir uno que sea compatible con nuestro sistema (intensidad y voltaje) y que sea sencillo de usar o nos faciliten una librería sencilla y potente.

Catálogo de sensores:

Sensores con comunicación por bus.

Un bus (o canal) es un sistema digital que transfiere datos entre los componentes de una dispositivo electrónico o entre varios. Está formado por cables o pistas en un circuito impreso, dispositivos como resistencias y condensadores además de circuitos integrados.

La tendencia en los últimos años hacia el uso de buses seriales como el USB, Firewire, etc… para comunicaciones con periféricos, reemplazando los buses paralelos, a pesar de que el bus serial posee una lógica compleja (requiriendo mayor poder de cómputo que el bus paralelo) se produce a cambio de velocidades y eficacias mayores.

Arduino dispone de buses serie I2C y SPI para comunicarse con dispositivos sin necesidad de HW adicional

Bus RS485:

Más información en: http://es.wikipedia.org/wiki/Bus_(inform%C3%A1tica)

Existen muchos tipos de buses de comunicaciones, algunos de ellos los implementa arduino mediante controladores HW integrados en la MCU (I2C) o mediante una librería como one wire. En otros casos es necesario un hardware adicional para adaptar la señal con un transceiver y manejar el protocolo con un controlador, por ejemplo can bus o modbus.

Sondas DHT11 y DHT22

Los sensores DHT11 o DHT22 que son ampliamente usados con Arduino, son unos pequeños dispositivos que nos permiten medir la temperatura y la humedad. A pesar que estas medidas son analógicas, estos sensores los tendremos que conectar a pines digitales, ya que la señal de salida es digital a un bus punto a punto. Llevan un pequeño microcontrolador interno para hacer el tratamiento de señal. Estos sensores han sido calibrados en laboratorios, presentan una gran fiabilidad.

Estos sensores funcionan con ciclos de operación de duración determinada. En determinados casos de aplicaciones los tiempos de lectura de los sensores puede ser determinante a la hora de elegirlo.

Parámetro DHT11 DHT22
Alimentación 3Vdc ≤ Vcc ≤ 5Vdc 3.3Vdc ≤ Vcc ≤ 6Vdc
Señal de Salida Digital Digital
Rango de medida Temperatura De 0 a 50 °C De -40°C a 80 °C
Precisión Temperatura ±2 °C <±0.5 °C
Resolución Temperatura 0.1°C 0.1°C
Rango de medida Humedad De 20% a 90% RH De 0 a 100% RH
Precisión Humedad 4% RH 2% RH
Resolución Humedad 1%RH 0.1%RH
Tiempo de sensado 1s 2s
Tamaño 12 x 15.5 x 5.5mm 14 x 18 x 5.5mm

Más información sobre la sonda DHT22: http://www.seeedstudio.com/wiki/Grove_-_Temperature_and_Humidity_Sensor_Pro

Datasheet de sondas DHT22:

Este esquema explica como funciona este sensor y el protocolo de comunicación. La librería implementa el protocolo y facilita el uso de la sonda con Arduino.

Vemos como para un mismo sensor tenemos diferentes librerías con funciones y uso diferente en cada una de ellas. Cada uno de los distribuidores de estas sondas ha creado su propia librería.

Sonda DHT18B20

Otra sonda de temperatura muy usada con Arduino es la DS18B20, esta usa un bus de comunicación multipunto llamado one wire, lo que nos permite leer muchas sondas con una sola i/o digital.

Sonda: http://www.seeedstudio.com/depot/One-Wire-Temperature-Sensor-p-1235.html

Datasheet sensor: http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf

Librería: http://playground.arduino.cc/Learning/OneWire

Última version de la librería: http://www.pjrc.com/teensy/td_libs_OneWire.html

Protocolo one-wire:

Librería sonda DS18B20: https://github.com/RobTillaart/Arduino/tree/master/libraries/DS18B20

Otros Sensores

Ejemplos de sensores. Kits Arduino: http://www.robotshop.com/en/37-modules-sensor-kit-arduino.html

Ejemplo Sensor de Temperatura

Sensor Temperatura

Leer la sonda de temperatura TMP36 y en función de unas condiciones de temperatura encender 3 LEDS. Encender el primero al alcanzar 22 grados, el segundo a los 24 y el tercero a los 26. También que muestre por pantalla la temperatura leída por el puerto serie en Celsius si lee una C por el puerto serie o en Fahrenheit si lee una F, en cualquier otro caso que muestre el texto: “¿En que formato quieres que muestre la temperatura?”

Hacer que se pueda ver por el serial plotter la gráfica de la temperatura, imprimiendo el valor cada 5 segundos con la librería mstimer2.

Datasheet sonda: https://www.arduino.cc/en/uploads/Main/TemperatureSensor.pdf

Esquema conexión (no conectar el módulo bluetooth):

Solución: https://github.com/jecrespo/aprendiendoarduino-Curso_Arduino_2017/tree/master/Ejercicio23-Temperatura  

Histeréis

Ver el efecto de parpadeo al no poner histéresis. Añadir una histéresis de 1 grado en cada salto de temperatura para iluminar el led.

Histeresis: https://es.wikipedia.org/wiki/Hist%C3%A9resis

Diagrama de Estados:

Solución: https://github.com/jecrespo/aprendiendoarduino-Curso_Arduino_2017/tree/master/Ejercicio24-Temperatura_Histeresis