Iot Con Arduino

IOT CON ARDUINO López Valencia Luis Carlos; Denis Jaime Heredia Vargas [email protected] ; [email protected]

Views 78 Downloads 5 File size 3MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

IOT CON ARDUINO López Valencia Luis Carlos; Denis Jaime Heredia Vargas [email protected] ; [email protected]

INDICE Pág.

1. INTRODUCCIÓN

3

2. OBJETIVO

3

2.1. Objetivos Generales 2.2. Objetivos específicos

3 3

3. PLANTEAMIENTO DEL PROBLEMA

4

4. JUSTIFICACIÓN

4

5. ALCANCES Y LIMITACIONES

4

6. MARCO TEÓRICO

4

6.1. Internet de las cosas 6.2. ¿Cómo funciona el internet de las cosas? 6.3.¿Cuándo estará entre nosotros? 6.4. Arduino Uno 6.5. Ethernet Shield Wiznet 5100 6.6.Sowftware del Arduino 6.7.Data Sparkfun 6.8. LM35 6.9. DHT11 6.10. Conector RJ-45 6.11. Cable UTP 6.12. Tipos de redes 6.13. Protocolo RS-232 7. MARCO EXPERIMENTAL 7.1. Descripción Funcional 7.2.Diagrama Funcional 7.3.Requerimientos Tablas 7.4.Materiales Comprados Y Elaborados 7.5.Especificaciones 7.6.Circuitos Analógicos

4 5 6 7 10 10 11 12 12 14 16 17 17 19 19 20 20 20 21 21 Página 1

IOT CON ARDUINO López Valencia Luis Carlos; Denis Jaime Heredia Vargas [email protected] ; [email protected]

7.6.1. Circuito Del LM35 7.6.2. Circuito Del Arduino 8. MARCO CRÍTICO 8.1. Procedimientos 8.1.1. Procedimiento DH_T11_LM35 8.1.2. Procedimiento sensoresethernetfinal 8.2.Pruebas y Resultados 8.2.1. DH_T11_LM35 8.2.2. sensoresethernetfinal

21 23 27 27 27 29 36 36 37

9. APLICACIONES

38

10. CONCLUSIONES

38

11. RECOMENDACIONES

38

12. BIBLIOGRAFIA

39

ANEXOS

41

Página 2

IOT CON ARDUINO López Valencia Luis Carlos; Denis Jaime Heredia Vargas [email protected] ; [email protected]

1. INTRODUCCIÓN En el presente proyecto que hemos decidido realizar daremos a conocer algunos conceptos importantes sobre los materiales y componentes a utilizar. Nuestro proyecto está basado en el internet de las cosas, utilizaremos sensores de temperatura para que nos envíe la temperatura actual a un servidor en la nube y se enviara ese dato a una laptop en la cual se podrá graficar la temperatura con respecto al tiempo, el Arduino será nuestra interface entre el mundo físico y el virtual.

2. OBJETIVO 2.1. Objetivos Generales Enviar datos de la temperatura y la humedad actual hacia una nube y que dichos datos se puedan observar desde cualquier dispositivo. 2.2. Objetivos específicos Aprender el lenguaje de arduino y como programarlo para poder realizar con éxito nuestro proyecto. Aprender a programar el Ethernet shield W5100 Conocer los estándares a utilizar para hacer nuestros propios cables de red. Observar las mediciones desde cualquier dispositivo electrónico con Internet.

Página 3

IOT CON ARDUINO López Valencia Luis Carlos; Denis Jaime Heredia Vargas [email protected] ; [email protected]

3. PLANTEAMIENTO DEL PROBLEMA ¿De qué manera se puede enviar los datos de la temperatura y la humedad actual en tiempo real de manera inalámbrica usando el arduino como una interface entre el mundo físico y el virtual? 4. JUSTIFICACIÓN Facilitar los datos de temperatura y humedad para que todas las personas que no cuenten con un termómetro puedan observarlos desde cualquier dispositivo que tenga conexión a internet. 5. ALCANCES Y LIMITACIONES Se podrá ver a través de Internet los datos captados de la temperatura y la humedad actuales. Se podría añadir otras mediciones como velocidad del viento y radiación ultravioleta, usando más sensores. 6. MARCO TEÓRICO 6.1. Internet de las cosas Es un término del que escuchamos hablar constantemente. Internet de las cosas, Internet of Things o IoT por sus siglas en inglés, es un concepto un poco abstracto pero que ha estado ganando bastante popularidad en los últimos meses. La idea que intenta representar queda bastante bien ilustrada por su nombre, cosas cotidianas que se conectan a Internet, pero en realidad se trata de mucho más que eso. Para entender de qué va el Internet de las cosas debemos también comprender que sus fundamentos no son en lo absoluto nuevos. Desde hace unos 30 años que se viene trabajando con la idea de hacer un poco más interactivos todos los objetos de uso cotidiano. Ideas como el hogar inteligente, también conocido como la casa del mañana, han evolucionado antes de que nos demos cuenta en el hogar conectado para entrar al Internet de las cosas. El Internet de las cosas potencia objetos que antiguamente se conectaban mediante circuito cerrado, como comunicadores, cámaras, sensores, y demás, y les permite comunicarse globalmente mediante el uso de la red de redes. Si tuviéramos que dar una definición del Internet de las cosas probablemente lo mejor sería decir que se trata de una red que interconecta objetos físicos valiéndose del Internet. Los mentados objetos se valen de sistemas embebidos, o lo que es lo mismo, hardware especializado que le permite no solo la conectividad a Internet, sino que además programa eventos específicos en función de las tareas que le sean dictadas remotamente. Página 4

IOT CON ARDUINO López Valencia Luis Carlos; Denis Jaime Heredia Vargas [email protected] ; [email protected]

Cualquier aparato electrónico se puede intercomunicar a través de la red de Internet. Cualquier objeto que antes no tenía componentes electrónicos, ahora los puede tener, para obtener datos y nuevas relaciones de comunicación entre objetos-humanos. Por ejemplo se puede tener un sensor en la cama que cuando detecta el momento idóneo de despertarnos sube las persianas, prepara la cafetera para que tengamos el café listo y enciende los radiadores para que haya una agradable temperatura.

Para ello es necesario que nuestros aparatos se interconecten con una electrónica preparada para conectarse a Internet. Para desarrollar y prototipar este tipo de interconexión existe el hardware Arduino. Con éste, se puede programar entradas (sensores de temperatura, humedad, ritmo cardiaco...) y salidas (actuadores, leds...).

6.2. ¿Cómo funciona el internet de las cosas? Como ya hemos dicho, el truco en todo esto está en los sistemas embebidos. Se trata de chips y circuitos que comparados con, por ejemplo, un smartphone, podrían parecernos muy rudimentarios, pero que cuentan con todas las herramientas necesarias para cumplir labores especializadas muy específicas. No hay un tipo específico de objetos conectados a Internet de las cosas. En lugar de eso se les puede clasificar como objetos que funcionan como sensores y objetos que realizan acciones activas. Claro, los hay que cumplen ambas funciones de manera simultánea. En cualquier caso el principio es el mismo y la clave es la operación remota. Cada uno de los objetos conectados a Internet tiene una IP específica y mediante esa IP puede ser accedido Página 5

IOT CON ARDUINO López Valencia Luis Carlos; Denis Jaime Heredia Vargas [email protected] ; [email protected]

pare recibir instrucciones. Así mismo, puede contactar con un servidor externo y enviar los datos que recoja. 6.3.¿Cuándo estará entre nosotros?

Una de las preguntas más comunes con el Internet de las cosas es cuándo estará finalmente dentro de nuestras vidas. La respuesta es que ya lo está. A diferencia de algunas tecnologías mucho más populares entre las masas, el Internet de las cosas no ha encontrado su foco de explosión en el mercado del consumo. Quizás la tecnología está aún demasiado verde, o quizás los grandes del sector no han visto la oportunidad correcta para abalanzarse encima. Como sea, es el sector privado donde el Internet de las Cosas se está haciendo cada vez más popular. La industria de producción en masa: la maquinaria que se encarga de controlar los procesos de fabricación, robots ensambladores, sensores de temperatura, control de producción, todo está conectado al Internet en cada vez más empresas lo que permite centralizar el control de la infraestructura. Control de infraestructura urbana: control de semáforos, puentes, vías de tren, cámaras urbanas. Cada vez más ciudades implementan este tipo de infraestructuras basadas en el Internet de las Cosas que permiten monitorear el correcto funcionamiento de sus estructuras además de adaptar más flexiblemente su funcionamiento ante nuevos eventos. Control ambiental: una de las áreas en las que está teniendo más éxito el Internet de las cosas, pues permite acceder desde prácticamente cualquier parte a información de sensores atmosféricos, meteorológicos, y sísmicos. Sector salud: cada vez más clínicas y hospitales alrededor del mundo confían en sistemas que les permiten al personal de salud monitorear activamente a los pacientes de manera ambulatoria y no invasiva. También hay aplicaciones del Internet de las Cosas para el transporte, la industria energética, y prácticamente todos los sectores comerciales. Como hemos dicho, el gran Página 6

IOT CON ARDUINO López Valencia Luis Carlos; Denis Jaime Heredia Vargas [email protected] ; [email protected]

pendiente es el mercado de consumo, o lo que es lo mismo, los hogares, un lugar al que probablemente es cuestión de tiempo para que veamos la gran explosión del IoT. 6.4. Arduino Uno Arduino es una plataforma de software libre basada en uso sencillo de hardware y software. Está basada en una placa electrónica con un microcontrolador y fue creado por David Cuartielles y Massimo Banzi Sus características son: Puede tomar información por medio de sus entradas analógicas Puede controlar luces Lenguaje de Programación Arduino (Processing) Su entorno de desarrollo integrado libre se lo puede descargar gratuitamente en su página oficial. Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un computador. El Arduino admite voltajes entre 0 V y 5 V para su alimentación. Se lee el valor de voltaje y se pasa a un conversor analógico digital de 10 bits. Se obtiene un valor entero entre 0 y 1023, que corresponde a un rango de 0 V a 5 V. El Arduino incluye reguladores de tensión; y un puerto USB conectado a un módulo adaptador USB-Serie que permite programar el microcontrolador desde cualquier PC y hacer pruebas de comunicación con el chip. Tiene Memoria Flash 32 kB (0,5 kB ocupados por el bootloader). Cada uno de los 14 pines digitales del Arduino se puede usar como entrada o salida y se les puede conectar cualquier dispositivo que transmita o reciba señales digitales de 0 y 5 V. Estos pines funcionan a 5 V y pueden suministrar 40 mA. Tienen una resistencia de pull-up interna entre 20 kΩ y 50 kΩ que está desconectada, a menos que se indique lo contrario. El Arduino tiene entradas y salidas analógicas. Hay 6 pines de entrada analógicos que trasladan las señales a un conversor analógico digital de 10 bits. Mediante las entradas analógicas se pueden obtener datos de sensores (de temperatura, luz...) en forma de

Página 7

IOT CON ARDUINO López Valencia Luis Carlos; Denis Jaime Heredia Vargas [email protected] ; [email protected]

variaciones continuas de un voltaje. Las salidas analógicas envían señales de control (PWM, modulación por ancho de pulsos). Los pines especiales de entrada y salida: RX y TX. Para transmisiones serie de señales TTL. Interrupciones externas. Los pines 2 y 3 pueden generar una interrupción en el Atmega (microcontrolador, formato DIP). Las interrupciones pueden activarse cuando se encuentra un valor bajo en estas entradas. PWM. El Arduino tiene 6 salidas para generar señales PWM de hasta 8 bits. SPI. Los pines 10, 11, 12 y 13 pueden realizar comunicaciones SPI, que permiten trasladar información full dúplex en un entorno Maestro/Esclavo. El Arduino puede alimentarse entre los 6 V y 12 V a través del cable USB o una fuente de alimentación externa (un pequeño transformador o una batería de 9 V). Si la placa se alimenta con menos de 7 V, la salida del regulador de tensión a 5 V puede dar menos de 5 V. Si se sobrepasa 12 V se dañará la placa. La alimentación puede conectarse directamente a los pines Vin y GND marcados en el Arduino. En esta imagen se muestra un Arduino Uno:

Página 8

IOT CON ARDUINO López Valencia Luis Carlos; Denis Jaime Heredia Vargas [email protected] ; [email protected]

Las partes del Arduino Uno son: 1- Conector USB para el cable tipo AB. Permite conectar el software al microprocesador a través de una conexión USB. 2- Pulsador de Reset. Para reiniciar la placa y programar desde cero. 3- Tiene 6 pines digitales de E/S (entrada/salida). También tiene 6 salidas para generar señales PWM (modulación por ancho de pulsos) de hasta 8 bits. Además tiene pines TX (pin 1) y RX (pin 0). 4- Diodo LED verde que indica si la placa está encendida (con fuente de alimentación o USB). También llamado LED On. 5- Diodo LED naranja. Sirve para hacer pruebas sin ser necesario encender la placa. 6- ATmega 16U2. Es un chip de comunicación de la placa con la laptop. 7- Diodos LED TX (transmisor) y RX (receptor). Indican si la placa está comunicándose con la laptop. 8- Puerto ISCP para programación serial. 9- Microcontrolador ATmega 328, cerebro del Arduino. Es un chip microcontrolador. 10- Cristal de cuarzo de 16 MHz. Chip que controla la frecuencia de funcionamiento con el microcontrolador. 11- Regulador de voltaje. Para regular el potencial de salida en función de los actuadores sobre los que trabajaremos. 12- Power. Conector hembra 2,1 mm con centro positivo. Si no está conectada la laptop a la conexión USB (1), se conecta una fuente de alimentación aquí. 13- Pines de voltaje y tierra. Proporciona energía de alimentación a aparatos externos (por ejemplo LEDs externos). 14- Entradas analógicas. Por ejemplo se pueden conectar potenciómetros. El software del Arduino consiste en un entorno de desarrollo (IDE) basado en el entorno de Processing y lenguaje de programación basado en Wiring y en el cargador de arranque (bootloader) que es ejecutado en la placa Arduino. El microcontrolador de la placa se programa a través de una computadora, haciendo uso de comunicación serial mediante un convertidor de niveles RS-232 a TTL serial.

Página 9

IOT CON ARDUINO López Valencia Luis Carlos; Denis Jaime Heredia Vargas [email protected] ; [email protected]

6.5. Ethernet Shield Wiznet 5100 El Ethernet Shield Wiznet 5100 es una tarjeta que permite conectar un Arduino hacia una interface de red, es decir, a Internet. Tiene un puerto de comunicación LAN que a través de un cable de red categoría 5 UTP nos permitirá conectarla hacia el mundo interno de nuestra LAN o hacia internet, es decir, hacia una conexión WAP. Tiene funcionalidades de IP para TCP y UDP. Soporta hasta cuatro conexiones simultáneas. Utiliza la librería Ethernet para escribir programas que se conecten a Internet.

Este shield es apilable, es decir, se podrá disponer de todos sus pines en otros shields. Las últimas versiones incluyen un slot para tarjetas micro-SD, para almacenar archivos que podrán estar disponibles en Internet. Tiene un controlador de reset, para asegurarse que el módulo W5100 Ethernet inicie correctamente al conectarlo a la electricidad. También tiene un conector RJ45 estándar para ethernet. El botón de reset inicializa el shield y el Arduino. El Arduino UNO utiliza los pines digitales 11, 12 y 13 (SPI) para comunicarse con este shield. El pin 10 es empleado para seleccionar el W5100 y el pin 4 para la tarjeta SD. Debido a que el W5100 y la tarjeta SD comparten el mismo bus SPI solo uno podrá estar activo. Para deshabilitar la tarjeta SD, se configura el pin 4 como salida y se le escribe HIGH. Para deshabilitar el W5100, se configura el pin 10 como una salida en HIGH. 6.6. Sowftware del Arduino El IDE (ambiente de desarrollo integrado o entorno de desarrollo interactivo) del Arduino nos facilitará programar el Arduino desde una computadora. Hay diferentes versiones disponibles. Para el proyecto se usará Arduino 1.6.0. Para que la computadora detecte el Arduino, hay que ir a "Administrador de dispositivos" > Otros dispositivos. Seleccionamos "Dispositivo desconocido" y se actualiza software de

Página 10

IOT CON ARDUINO López Valencia Luis Carlos; Denis Jaime Heredia Vargas [email protected] ; [email protected]

controlador, seleccionando los drivers del Arduino. Tras esto, se puede ver el puerto que usa el Arduino. Se arma el circuito en Proteus, incluyendo el Arduino Uno. Luego, en Arduino 1.6.0., se programa el Arduino. En Herramientas > Tarjeta, se elige Arduino Uno. En Archivo > Preferencias > "Mostrar resultado detallado durante:", se selecciona (señala) "compilación". Se da clic en "Verificar" (compilar) . Se copia la dirección del archivo .hex, que aparece en la parte inferior de la ventana. En Proteus, en el Arduino, se selecciona "Edit properties" > "Program File:", y se pega la dirección del archivo .hex generado al compilar. Se da clic en "Run the simulation" (iniciar la simulación) y se observa que el circuito funciona, sin ningún error. En Arduino 1.6.0., una vez montado el circuito en una protoboard, se da clic en Subir (cargar)

.

La estructura básica del lenguaje de programación en Arduino está formada por dos partes o funciones: "void setup ()" y "void loop ()". Las variables por ejemplo de tipo entero int se pueden definir antes del setup y el loop. En "void setup ()", se usa pinMode(4,OUTPUT), para seleccionar el pin 4 y que este pin sea de salida. También se puede usar Serial.begin(9600), para abrir el puerto serial y establecer una velocidad de 9600 bits por segundo. En "void loop ()", se puede usar digitalWrite(4, LOW), para que el pin 4 esté en estado bajo. Se introduce un retardo de 500 ms con delay(500). En caso de que se quiera apagar y encender un diodo LED, se coloca otro digitalWrite(4, HIGH), para que el pin 4 esté en estado alto y otro retardo de 500 ms con delay(500). También se puede usar for(int i=0; i