Вы находитесь на странице: 1из 56

FASE 2 Evaluación Final ¿Cuánto he

aprendido? Conectando Cosas

Capítulo 2: Sensores, accionadores y microcontroladores

La electrónica es una parte importante de IoT. Los dispositivos de la IoT se construyen, a menudo, desde el
principio; por lo tanto, comprender los conceptos, componentes y la terminología de la electrónica es
fundamental. También es importante que un profesional de la IoT pueda leer y crear esquemas electrónicos.

El kit de SparkFun contiene un número de dispositivos y piezas que ayudan a los principiantes a comenzar
con la electrónica y los microcontroladores. Además introduce conceptos importantes, como circuitos
electrónicos, y formas de programar los microcontroladores Arduino. Al trabajar con el kit, los principiantes
aprenden cómo programar sensores para monitorear el entorno. Los accionadores y los relés con frecuencia
se usan para influenciar el entorno o generar una acción.

Los estudiantes pueden usar el Cisco Packet Tracer como una herramienta para armar modelar y hacer
prototipos de sistemas de la IoT.

¿Qué es un programa?

En el capítulo 2, hemos visto cómo los sensores y la electrónica permiten conectar el mundo físico con un
sistema informático, como un microcontrolador. Esta conexión permite completar el primer paso para la
creación de una solución de IoT. Primero se detectan los datos del mundo físico, luego se hace algo con esos
datos. Se almacenan, transmiten o procesan. En el mundo digital, el procesamiento de datos se realiza
mediante programas de software. En este capítulo repasaremos los conceptos clave de programación de
software y presentaremos Raspberry PI. Aprender a escribir programas informáticos con RaPI será el
segundo paso fundamental en nuestro recorrido hacia los prototipos de soluciones de IoT.

Un programa es un conjunto de instrucciones solicitadas creado para realizar una tarea específica. Según
esta definición, muchas actividades de la vida diaria se pueden considerar programas.

Una receta básica de pan puede considerarse un programa:


 Precaliente el horno a 375 ºF. Enmanteque y enharine dos moldes de pan de 9 pulgadas.

 Disuelva la levadura en agua caliente. Agregue azúcar, sal, aceite y 3 tazas de agua.

 Bata hasta que quede homogéneo y mezcle con el resto de la harina.

 Amase en una superficie enharinada entre 8 y 10 minutos.

 Coloque en un bol engrasado y deje levar durante 1 a 2 horas.

 Golpee la masa, divídala en dos y colóquela en los moldes de pan. Cubra y deje levar hasta que se
duplique.

 Hornee a 375 ºF de 30 a 35 minutos.

En este ejemplo, el orden de las instrucciones es relevante. La receta, como un programa de software, fue
diseñada para realizar una tarea específica; en este caso, hacer pan.

La receta pudo haberse escrito en cualquier idioma: inglés, español, chino o árabe. El único requisito para la
opción de idioma es que la persona que hace el pan lo comprenda. Si bien los diferentes idiomas poseen
distintas reglas gramaticales y sintaxis, la lógica de la receta no debe cambiar.

De manera similar, los programas informáticos son también un conjunto de instrucciones solicitadas creadas
para realizar una tarea específica. También llamados códigos, los programas informáticos se pueden escribir
en otros lenguajes. La sintaxis y las reglas varían de lenguaje en lenguaje, pero la lógica del programa
prácticamente no debe tener cambios.

Los programas están en todas partes

Todas las computadoras necesitan programas. Una computadora es un dispositivo que contiene una CPU,
una memoria y dispositivos de E/S (monitor, teclado, ratón, tarjeta de audio, etc.). Las computadoras de
escritorio, los smartphones, las tablets, los relojes digitales y los dispositivos inteligentes son solo algunos
ejemplos de computadoras. Aunque las computadoras están en todas partes, son inútiles hasta que se
ejecutan los programas.

Los programas informáticos adoptan muchas formas diferentes. Los sistemas operativos, el firmware y las
aplicaciones son ejemplos de programas que se encuentran en las computadoras.

Un sistema operativo (SO) es un programa que permite que los usuarios interactúen con las computadoras.
Los sistemas operativos modernos incluyen interfaces gráficas para facilitar la interacción del usuario. Los
ejemplos de SO son Windows, Linux, OS X, Apple iOS y Android.

Firmware son programas creados para permitir que una computadora realice una tarea específica. El firmware
suele estar presente en computadoras pequeñas, como relojes digitales simples, dispositivos modernos y
diversos subsistemas encontrados en automóviles modernos (por ejemplo, el sistema de frenos antibloqueo
(ABS) y las bolsas de aire). Debido a la memoria limitada y a otras restricciones de recursos, los dispositivos
de IoT a menudo dependen del firmware para su funcionamiento. La funcionalidad del firmware y el SO se
superpone. A veces, el firmware también puede actuar como SO para computadoras más simples.

Las aplicaciones son programas creados para ayudar al usuario a realizar una tarea específica. Los ejemplos
de aplicaciones son Microsoft Word, Mozilla Firefox y Calculator.

¿Por qué se debe aprender a programar?


Las personas que pueden programar son cada vez más valiosas en el actual mercado laboral. A pesar de que
en el pasado los programadores estaban limitados a la codificación de aplicaciones de escritorio, el
incremento de IoT genera nuevas posibilidades para ellos. En 1991, Mark Weiser escribió un documento
titulado “La computadora del siglo XXI”. En este documento, previó el futuro de IoT y lo describió como
“elementos especializados de hardware y software, conectados por cables, ondas de radio e infrarrojas, tan
ubicuos que nadie notaría su presencia”. En un mundo cada vez más digital, la naturaleza ubicua de la
computación significa que el software está en todas partes. Actualmente, los programadores pueden trabajar
con el firmware, los controladores de dispositivos, las aplicaciones móviles, las interfaces web, el análisis de
datos y más. Estas áreas laborales estaban disponibles antes, pero IoT ha aumentado drásticamente la
cantidad de empresas y proyectos disponibles.

La industria de las redes también impulsa la necesidad de más programadores requeridos para personalizar la
red y la infraestructura. Los enfoques emergentes de la red, como las redes definidas por software (SDN) y la
infraestructura centrada en aplicaciones (ACI) de Cisco proporcionan programabilidad integral a la
infraestructura de la red.

Otro beneficio de saber programar es que los programadores pueden crear sus propias herramientas de
software. ¿Necesita un filtro específico de red no disponible en el mercado? Tal vez un proyecto requiere un
análisis de datos específico. Un buen programador puede cifrarlo.

¿Qué conforma un programa?

Las personas imparten la lógica a las computadoras a través de programas. Los programas usan expresiones,
funciones y estructuras lógicas. Las expresiones son combinaciones de variables, constantes y operadores
que producen un nuevo valor. Las funciones definen una secuencia de expresiones que debe aplicarse a los
argumentos (x, y) para producir el valor arrojado z. Mediante estructuras lógicas específicas, un programador
puede preparar una computadora para tomar decisiones. Algunos ejemplos de expresiones, funciones y
estructuras lógicas más comunes son:

 Expresiones

 Area_Triangle = (base*height)/2

 Print Area_Triangle

 Funciones

 z= Function(x,y)

 IF - THEN: esta estructura lógica permite que la computadora tome una decisión según el resultado de
una expresión. Un ejemplo de expresión es myVar > 0. Esta expresión es verdadera si el valor
almacenado en la variable myVar es mayor que cero. Cuando el intérprete o compilador encuentra una
estructura IF - THEN, evalúa la expresión proporcionada. Si la expresión es falsa, la computadora
continúa con la siguiente estructura, ignorando el contenido del bloque IF - THEN. Si la expresión es
verdadera, la computadora ejecuta la acción asociada antes de pasar a la siguiente instrucción del
programa. (Figura 1).

 Bucle FOR: se utiliza para ejecutar un conjunto específico de instrucciones una cantidad de veces
específica según una expresión. El término bucle proviene del hecho de que un conjunto de
instrucciones se ejecuta varias veces. Si bien la sintaxis del bucle FOR varía de lenguaje en lenguaje, el
concepto es el mismo: se define una variable para que actúe como contador y valor máximo. Cada vez
que se ejecuta el bucle, aumenta la variable del contador. Cuando el contador es igual al valor máximo
definido, se abandona el bucle y los movimientos de ejecución del siguiente paso. (Figura 2).
 Bucle WHILE: se utiliza para ejecutar un conjunto específico de instrucciones mientras que una
expresión es verdadera. Observe que las instrucciones dentro del bucle a menudo harán que la
expresión se evalúe finalmente como falsa. (Figura 3).

Antes de escribir un código, el programador necesita entender el problema y cómo puede resolverse
dividiéndolo en una secuencia de pasos y decisiones. Es común que los programadores creen el primer
borrador de un programa sin ningún lenguaje específico. Estos programas independientes del lenguaje se
centran en la lógica en lugar de la sintaxis y se conocen como algoritmos. Un diagrama de flujo es una
manera común de representar un algoritmo. La Figura 4 muestra un ejemplo del diagrama de flujo. Escribir un
buen algoritmo para resolver un problema es una tarea increíble que algunas personas consideran una forma
de arte.

Interpretado frente a compilado

Los lenguajes de computadora se pueden dividir en dos categorías principales: interpretados y compilados.

Los lenguajes interpretados dependen de otro programa para analizar y ejecutar el código. Este programa se
denomina intérprete. El código permanece en texto legible para el humano y se envía a un intérprete para su
ejecución. Si bien los lenguajes interpretados facilitan el mantenimiento y la solución de problemas de los
códigos, la ejecución es más lenta que en los lenguajes compilados. Algunos ejemplos de lenguajes
interpretados son Python, JavaScript y PHP.

Los lenguajes compilados dependen de un compilador (otro programa) para convertir el código legible para el
ser humano en un código ejecutable binario. El código compilado se almacena de forma binaria y puede
ejecutarse en cualquier momento sin la necesidad de volver a compilarse. El código compilado además se
ejecuta más rápido porque lo hace directamente desde la CPU, sin la necesidad de un intérprete. Debido a
que el lenguaje compilado se ejecuta directamente desde la CPU, el compilador y el código compilado binario
que genera son específicos de la plataforma. Código fuente es el término que se usa para referirse al código
de lenguaje compilado antes de su compilación. En esta etapa, el código es legible para el humano y puede
modificarse fácilmente. Si un programador desea realizar cambios en un programa compilado, debe aplicar
dichos cambios al código fuente y volver a compilarlo antes de su ejecución. Ejemplos de lenguajes
compilados son C y C++.

La Figura 1 muestra leap_check.py, un programa escrito en Python para calcular si un año determinado será
un año bisiesto.

La Figura 2 muestra leap_check.c, un programa escrito en C para calcular si un año determinado será un año
bisiesto aún como código fuente antes de la compilación.

La Figura 3 muestra leap_check.c, un programa escrito en C para calcular si un año determinado será un año
bisiesto, en un sistema hexadecimal, después de la compilación.

La Figura 4 muestra el resultado de leap_check, un programa escrito en C para calcular si un año


determinado será un año bisiesto después de tres ejecuciones.

Lenguajes de computadora

Al igual que los idiomas humanos, hay varios lenguajes de computadora diferentes. Algunos lenguajes de
computadora son mejores que otros para ciertos tipos de tareas.

JavaScript, un lenguaje de computadora, está diseñado para crear aplicaciones web. Con JavaScript, un
programador puede crear aplicaciones web que pueden interactuar con los usuarios y otras aplicaciones.

Python, otro lenguaje interpretado, permite declaraciones más simples. Python es muy fácil de usar, potente y
versátil y se ha convertido en el lenguaje de preferencia de muchos desarrolladores de IoT. Uno de los
motivos principales de popularidad de Python es la comunidad de desarrolladores; los desarrolladores de
Python han creado y puesto a disposición muchos módulos específicos que pueden importarse a cualquier
programa para prestar inmediatamente mayor funcionalidad.

Blockly es un lenguaje de programación visual que permite a los usuarios crear programas conectando
bloques que representan diversas estructuras de lenguaje lógico en lugar de escribir el código real. Blockly se
ejecuta dentro de un navegador web y puede traducir el programa visualmente creado, como JavaScript, PHP
o Python. En la figura se muestra un ejemplo de Blockly.

C, un lenguaje compilado, es bueno para crear programas complejos y rápidos, pero sus reglas y sintaxis
estrictas dificultan su desarrollo. Creado a principios de 1970, C se ha convertido en uno de los lenguajes de
programación más utilizado de todos los tiempos. El sistema operativo Linux se escribe en C.

Java es un lenguaje compilado que se “escribe una sola vez y se ejecuta en cualquier lugar” (WORA). A pesar
del nombre similar, Java y JavaScript no están relacionados. Java está diseñado para ejecutarse en cualquier
plataforma sin la necesidad de la recompilación. Las aplicaciones basadas en Java requieren una plataforma
de JVM (máquina virtual Java) instalada en la computadora. JVM es el entorno donde se ejecuta el código
compilado en Java.

Procesamiento de datos y dispositivos de IoT

Una aplicación común para los sistemas de IoT es la recopilación de datos. Los dispositivos de IoT, como
sensores, a menudo se implementan en ubicaciones donde ocurre la recopilación de datos. La agricultura, el
transporte y la manufactura son solo algunos ejemplos de áreas donde la recopilación de datos se realiza
mediante uno o más sistemas de IoT.

Aunque la recopilación de datos es importante, los datos deben procesarse antes de que puedan ser útiles.
Los datos recopilados se pueden procesar en el punto de recopilación o se pueden transmitir y almacenar en
la nube para procesarlos en otro momento. Con frecuencia los datos de distintas fuentes se combinan para
brindar información más útil. Se utilizan programas informáticos para procesar eficazmente los datos
recolectados.

En un ejemplo agrícola, los dispositivos de IoT se pueden utilizar para supervisar el suelo y las condiciones
climáticas. Los sensores recogen datos sobre la humedad del suelo, la temperatura y los niveles de acidez.
Otros sensores pueden recopilar datos sobre los niveles de CO2 en el aire además de la temperatura del aire,
la presión barométrica y la humedad. Todos estos datos casi no tienen uso hasta que se procesan. Se puede
escribir un programa de computadora para procesar los datos y calcular las chances de lluvia en función de
las variaciones de la temperatura del aire, la humedad y la presión barométrica. Los datos recopilados sobre
las condiciones del suelo también pueden procesarse con software para ayudar a optimizar el proceso de
cosecha.

En un ejemplo de transporte, pueden recopilarse datos tales como el número de camiones que usa una parte
específica de la autopista, la temperatura de dicha sección de pavimento y los precios de la gasolina y los
neumáticos para invierno. El procesamiento de los datos puede indicar cuándo instalar los neumáticos para
invierno en los camiones en función de los días en que los caminos se congelarán.

Existen muchos lenguajes compatibles con un sistema de IoT que pueden utilizarse para crear programas
informáticos. Este curso se centra en Python debido a su popularidad, gran comunidad y simplicidad.

Los dispositivos de IoT toman decisiones

Un aspecto importante de un sistema de IoT es la capacidad de tomar decisiones. Activar una alarma si los
niveles de dióxido de carbono superan un umbral o desbloquear una puerta al detectar el mando a distancia
correcto son dos ejemplos de decisiones que podrían tomarse a través de dispositivos de IoT. Algunos
dispositivos de IoT también son capaces de tomar decisiones más complejas, como identificar el rostro de una
persona desde la fuente de una cámara.

La capacidad de tomar decisiones se suma a algunos de los dispositivos de IoT mediante el software. Los
programas deben escribirse y cargarse en el dispositivo de IoT para su ejecución antes de que el dispositivo
pueda tomar decisiones.

API de software

En muchos casos, los programas deben comunicarse con otros programas, sitios web o dispositivos. Una
interfaz de programa de aplicación (API) es un conjunto de rutinas y herramientas de software que facilita la
comunicación entre programas. Gracias a las API, las aplicaciones que se ejecutan a través de las redes
pueden comunicarse entre sí, compartir datos y solicitar servicios específicos de otras aplicaciones, por
ejemplo, preguntar a una API externa si la persona de la imagen es hombre o mujer.

Hay diferentes tipos de API disponibles, como API de sistema operativo, API de aplicación y API de sitio web.
Al crear una aplicación de administrador de archivos, un desarrollador de software aprovechará la API de
sistema operativo para copiar, mover o eliminar un archivo. Si la aplicación del desarrollador no tiene el código
necesario para realizar estas funciones, simplemente puede solicitar al sistema operativo que las realice a
través de su API de sistema operativo expuesta.

Las aplicaciones de IoT pueden comunicarse entre sí mediante las API, pero también pueden utilizarlas para
comunicarse con otros servicios basados en la nube. Independientemente del tipo de API, el objetivo sigue
siendo el mismo: permitir que otros programas interactúen entre sí. Los detalles sobre cómo utilizar una API
específica y qué tareas se exponen se incluyen en la documentación de la API.

La figura muestra un ejemplo de documentación de una API. Observe las tareas expuestas por la API. Todas
las tareas enumeradas pueden se utilizadas por otros programas.

Los dispositivos de IoT pueden depender de un tercer sistema para procesar los datos o ampliar su
conectividad. Los servicios alojados en la nube son una opción común para diseñar un sistema de IoT.

API de REST

La transferencia de estado representativa (REST), o servicio web RESTful, es un tipo de API diseñado para
facilitar la interacción de los programas con Internet. Las API de REST usan llamadas basadas en HTTP entre
las diferentes aplicaciones para manipular y acceder a la información almacenada en las bases de datos
potentes.

Los recursos web solían ser identificados exclusivamente por una URL. Actualmente, los recursos web
abarcan cada entidad o cosa que puede nombrarse, identificarse o abordarse. Las entidades pueden ser un
objetivo de paso del día, una configuración de temperatura de la casa o la frecuencia cardíaca de un
marcapasos. Cada recurso ahora tiene una identificación de recurso uniforme (URI) que generalmente
comienza con una barra diagonal, por ejemplo, /frecuenciacardíaca. Las API de REST usan el protocolo HTTP
y una URL o URI para solicitar servicios web. Dichas solicitudes REST basadas en la web activan respuestas
en formatos web bien definidos, como XML y JSON (notación de objetos JavaScript). Mediante el uso de
HTTP como protocolo, los servicios RESTful pueden tomar prestadas operaciones de HTTP, como las
acciones HTTP GET, POST, PUT and DELETE. Un ejemplo puede ser un marcapasos que envía
actualizaciones sobre la frecuencia cardíaca promedio a una base de datos médica. El marcapasos puede
utilizar una llamada de API de REST en un formato específico (PONER de HTTP) para actualizar la
información en la base de datos.

Los sistemas de IoT que aprovechan los servicios en la nube dependen con frecuencia de los servicios
RESTful para comunicarse. Por ejemplo, considere un reloj inteligente con capacidades climáticas, donde un
dispositivo de IoT recopila la información del clima para su ubicación actual y la muestra al usuario. Este reloj
puede programarse para comunicarse con un sistema meteorológico basado en la web a través de una URL
de API de REST (dirección web). Este tipo de URL y sus parámetros se describirán en la documentación de la
API. La figura muestra un ejemplo de URL de servicio RESTful. De la misma manera en que un explorador
web visita una página web, el reloj se contacta con la URL descrita en la documentación de la API del sistema
meteorológico y solicita, mediante la acción OBTENER de HTTP, el clima para la ubicación actual (según el
sensor del GPS). El sistema meteorológico responderá, conforme a su propia API, con datos con formato
JSON o XML que contienen la información del clima para dicha ubicación. El código que se ejecuta en el reloj,
también creado según la API del sistema meteorológico, a su vez muestra la información al usuario.

Protección del código

Un sistema de IoT consta de la interconexión de varios bloques funcionales: dispositivos, gateways, redes,
nube y aplicación real. En cada uno de estos bloques, hay un código que se ejecuta para cumplir con la
función para la que está diseñado. Las mejores prácticas recomendadas para proteger los dispositivos
conectados en IoT deben incluir:

a) Los dispositivos deben protegerse de ataques que afecten su función o permitan que se usen para fines no
deseados sin autorización.

b) Los dispositivos deben proteger las credenciales de autenticación y los materiales clave privados de la
divulgación a partes no autorizadas.

c) Los dispositivos deben proteger la información recibida, transmitida o almacenada localmente en el


dispositivo de la divulgación inadecuada a partes no autorizadas.

d) Los dispositivos deben protegerse contra el uso como vectores para atacar a otros dispositivos o hosts en
Internet.

Para lograr las mejores prácticas de seguridad recomendadas, la seguridad física, la capacidad de confiar en
la integridad del código y la capacidad de actualizarse de forma remota son fundamentales para el diseño de
todos los sistemas y dispositivos de IoT.

Los dispositivos de IoT se encuentran en ubicaciones tradicionales, como centros de datos en la nube, y
también en muchas ubicaciones no tradicionales, como postes de luz, estacionamientos y cuerpos humanos.
Las ubicaciones tradicionales se pueden proteger mediante cámaras de vigilancia, sistemas de control de
acceso, identificación biométrica y puntos de autenticación múltiples.

La seguridad de los dispositivos de IoT en ubicaciones no tradicionales es más compleja. Los dispositivos
deben fabricarse para ser resistentes a manipulaciones y deben colocarse de manera tal que no sean obvios y
tengan difícil acceso. Aunque uno debe hacer lo mejor para proteger estos dispositivos físicamente, un hacker
determinado aún puede obtener acceso. La seguridad física, en la mayoría de los casos, es una práctica
recomendable pero no suficiente en sí misma.

Una manera en que un hacker puede cambiar la función de un dispositivo es: acceder al dispositivo,
deshabilitar la función, instalar software nuevo en el dispositivo y reiniciarlo. Otra forma de proteger el
dispositivo es asegurarse de que el código del dispositivo (tanto firmware como aplicación) sea el código
original que se creó. Esta medida de seguridad puede proteger el dispositivo de intentos de cambiar sus
funciones, incluso si se infringió la seguridad física. Esto se realiza “firmando” criptográficamente el código
original y garantizando que el dispositivo no se inicie si el código no está firmado. Este es el mismo método
que se utiliza para garantizar la integridad y la procedencia de los documentos. Hay muchos enfoques que
surgen en la industria para satisfacer los diferentes ángulos de este problema, como la computación de
confianza, las tecnologías de anclaje de confianza de Cisco y el arranque seguro de Cisco. Por ejemplo, para
iOS en un router, el anclaje de confianza de Cisco y el acceso seguro de Cisco comprueban el código firmado
para garantizar que el código que se ejecuta en las plataformas de hardware de Cisco sea auténtico y no esté
modificado, estableciendo una raíz de confianza a nivel del hardware y una identidad inmutable del dispositivo
para edificar el sistema.

También es fundamental que los dispositivos de IoT se diseñen para actualizarse de forma remota. El diseño
debe incluir funciones para permitir la administración remota del dispositivo y las actualizaciones. También
deben tenerse en cuenta la eliminación de las puertas traseras de la fase de desarrollo o las cuentas de
acceso de depuración de codificación rígida y la aplicación del acceso autorizado únicamente.

Los datos deben cifrarse mientras se reciben o transmiten a servidores locales o remotos. El acceso remoto a
los servidores o los terminales remotos también debe protegerse. Esto garantiza que los datos conserven su
integridad dado que permanecen protegidos del acceso no autorizado y la manipulación. Los algoritmos de
encriptación y los protocolos de transmisión seguros son técnicas de uso general para proteger el software y
los datos.

Raspberry Pi y sus puertos

Raspberry Pi (Pi) es una computadora económica y pequeña. Tiene una cantidad de puertos USB que pueden
usarse para conectar varios dispositivos, como teclados, ratones, unidades externas y cámaras. Dado que se
trata de una computadora completa en un paquete del tamaño de una tarjeta de crédito, RaPi se ha convertido
en la opción para muchos proyectos de IoT. Pi3 comparte las funciones de su predecesora Pi2, pero añade:

 Una CPU de 1,2 Ghz y 64 bits con procesador de cuatro núcleos ARMv8

 LAN inalámbrica 802.11n

 Bluetooth 4.1

 Bluetooth de baja energía (BLE)

La Figura 1 muestra una vista superior del modelo B de Raspberry Pi 3.

La Figura 2 muestra una vista inferior del modelo B de Raspberry Pi 3.

RaPi además incluye un encabezado de 40 pines con GPIO. Los pines de GPIO (entrada/salida de uso
general) son extremadamente útiles para interactuar con el mundo físico. Los sensores, los accionadores, los
switches y los dispositivos pueden conectarse a la GPIO y controlarse mediante el código que se ejecuta en
RaPi. Otros puertos de RaPi incluyen una salida de audio, una ranura para tarjeta SD, un puerto Ethernet, 4
puertos USB, una interfaz de cámara (CSI), una interfaz de dispositivo (DSI) y un conector micro USB (para
alimentación).

La Figura 3 muestra la distribución de terminales de GPIO del modelo B de Raspberry Pi 3.


Creada con base en Raspberry Pi, RaPi se diseñó para ser pequeña y económica. RaPi puede ejecutar varios
sistemas operativos, como Linux y Windows.

La Figura 4 muestra las especificaciones de hardware del modelo B de Raspberry Pi 3.

PL-App

Existen varias maneras de configurar y usar Raspberry Pi. Mediante la conexión física de una pantalla HDMI,
un ratón y un teclado USB, RaPi se convierte en una PC general y permite al usuario tener acceso físico local.
Una vez que se descarga la imagen compatible del sistema operativo de Raspberry Pi a la tarjeta micro SD,
RaPi está lista para usar.

Tradicionalmente, Raspberry Pi se usa como computadora completa con monitor, teclado y ratón. Estos son
los pasos para usar la Raspberry Pi como computadora con acceso físico local:

Paso 1: Instale una imagen de sistema operativo en la tarjeta micro SD.

Paso 2: Coloque la tarjeta en la ranura para tarjetas micro SD de RaPi.

Paso 3: Conecte un teclado USB.

Paso 4: Conecte un monitor o TV mediante el puerto HDMI.

Paso 5: Encienda el dispositivo con el adaptador de potencia.

Alternativamente, para utilizar la Raspberry Pi como dispositivo de IoT, se debe poder controlar desde la red.
Acéfalo es el término que se utiliza para servidores que solo se operan de forma remota. Aunque hay
disponibles muchas configuraciones acéfalas, este curso se enfoca en una solución personalizada llamada
aplicación de prácticas de laboratorio de prototipos (PL-App). PL-App permite el acceso a Raspberry Pi
directamente desde la red. El acceso acéfalo permite el funcionamiento sin la necesidad de un monitor, un
teclado o un ratón conectados directamente a RaPi (Figura 1). Desde una segunda PC, el usuario establece
conexiones de red a RaPi y opera a través de estas conexiones. Es compatible con la GUI y funciona solo con
texto. La Figura 2 muestra un ejemplo de una topología de una clase que ejecuta PL-App en Raspberry Pi.

La Figura 3 muestra una captura de pantalla de los componentes que conforman PL-App.

Tarjeta SD con capacidad de arranque

Las computadoras modernas pueden arrancar el sistema de los dispositivos USB externos y las tarjetas SD.
Con el aumento de su popularidad debido a las tarjetas externas más grandes y económicas, es común tener
sistemas operativos enteros instalados en dichas tarjetas.

Raspberry Pi 3 incluye una ranura para tarjeta micro SD (Figura 1) que se usará como dispositivo de
almacenamiento para el sistema. Antes de que Raspberry Pi 3 se pueda utilizar, debe instalarse un sistema
operativo en la tarjeta micro SD que se colocará en la ranura SD para arrancarla.

Si bien hay varias formas de instalar un sistema operativo en una tarjeta micro SD, el más común (y
probablemente el más rápido) es utilizar un archivo de imagen. Un archivo de imagen es un archivo único que
contiene una imagen del sistema de archivos completo. En ese sentido, el archivo de imagen es una copia
exacta del sistema de archivos y puede utilizarse para reconstruir el sistema de archivos en otros medios. Los
formatos de archivo de imagen comunes son: .iso y .img.

Hay varias opciones disponibles para las herramientas de transferencia de imágenes. El que se usa en este
curso es parte del Iniciador de PL-App. Se trata de una herramienta personalizada de transferencia de
imágenes que simplifica la implementación de las imágenes utilizadas en el curso. El Iniciador de PL-App
además administra la detección y el control acéfalo de Raspberry Pi conectada a la red.
La Figura 2 muestra los pasos para configurar un dispositivo nuevo.

La Figura 3 muestra cómo conectar un nuevo dispositivo mediante la aplicación del Iniciador de PL-App.

Si un usuario descarga una imagen sin la herramienta de PL-App especializada, el usuario deberá obtener el
archivo de imagen creado por el fabricante o el encargado de mantenimiento que habilita la descarga. El
usuario simplemente podrá descargarlo de la página web correspondiente. La base de Raspberry Pi ofrece
una imagen de Raspbian,una variación de Debian Linux personalizada para Raspberry Pi. Este curso utiliza
una imagen de PL-App basada en una versión modificada de Raspbian.

Práctica de laboratorio: configure PL-App con Raspberry Pi

En esta práctica de laboratorio, configurará una placa Raspberry Pi como dispositivo PL-App y usará el
Iniciador de PL-App para aprovisionar y detectar dispositivos PL-App.

Imagen de PL-App

Iniciador de PL-App para Windows

Iniciador de PL-App para Mac

Última versión del bloc de notas de Jupyter para estudiantes

Práctica de laboratorio: configure PL-App con Raspberry Pi

Interpretación de Linux

Linux es un sistema operativo creado en 1991. Fue creado, y es mantenido actualmente, por una comunidad
de programadores. Linux es de código abierto, rápido, confiable y pequeño. Requiere muy pocos recursos de
hardware para ejecutarse y es altamente personalizable. Linux es parte de diferentes plataformas y puede
encontrarse en cualquier lugar, desde “relojes a supercomputadoras”. Linux es también una opción muy
popular en los dispositivos de IoT.

Otro aspecto importante de Linux es que está diseñado para estar en la red. Las operaciones de red y las
conexiones son simples en Linux, lo que lo convierte en una buena opción para los profesionales y
administradores de redes. Cualquier persona puede obtener el código fuente del núcleo, examinarlo,
modificarlo y volver a compilarlo a disposición. Las empresas y los usuarios son libres de modificar,
reempaquetar y ejecutar el software. Pueden redistribuir el programa con o sin cargos.

Una distribución de Linux es el término que se utiliza para describir los distintos paquetes de Linux creados
por distintas empresas. Las distribuciones de Linux (o distros) incluyen el núcleo de Linux más varias
herramientas y paquetes de software personalizados. Si bien algunas proporcionan y cobran el soporte de
Linux (orientado a empresas basadas en Linux), la mayoría ofrece su distribución gratuita sin soporte. Debian,
Red Hat, Ubuntu, Slackware y Mint son solo algunos ejemplos de distribuciones de Linux.

Raspbian es una distribución del sistema operativo Linux creada específicamente para Raspberry
Pi. Raspbian es una variación de Debian Linux y, por lo tanto, mantiene la estructura de Linux.

La figura muestra una captura de pantalla de Raspbian ejecutándose en Raspberry Pi 3.

Acceso al shell de Linux


El sistema operativo de Linux puede dividirse en núcleo y shell. El núcleo se puede pensar como el SO en sí,
mientras que el shell es solo un programa que se ejecuta en el SO y ofrece funcionalidades de interacción
entre el SO y el usuario.

Para interactuar con el hardware de la máquina, el usuario interactúa con el shell que interactúa con el núcleo
que, a su vez, interactúa con el hardware. La figura es un diagrama de alto nivel de Linux.

El shell es un interpretador de comandos y, por lo tanto, los términos shell, terminal, consola yCLI se usan con
frecuencia de forma indistinta. Este curso utiliza el término terminal para referirse al shell. Cuando un usuario
se conecta al sistema, el programa de inicio de sesión revisa el nombre de usuario y la contraseña; si las
credenciales son correctas, el programa de inicio de sesión llama al shell. Desde aquí, un usuario autorizado
puede comenzar a interactuar con el SO a través de los comandos basados en texto.

Históricamente, cuando no había ninguna interfaz gráfica disponible, el shell se basaba en texto sin soporte
para el ratón o las funciones visuales avanzadas. También denominado interfaz de línea de comandos (CLI),
el shell basado en texto era la única forma para que el usuario interactuara con el SO. Hoy en día, el shell de
Linux sigue siendo extremadamente importante, ya que proporciona acceso al sistema. Aunque muchas
distribuciones de Linux modernas incluyen soporte para las interfaces gráficas de usuario (GUI), el shell aún
se considera el método más eficiente para interactuar con el sistema. Esto es especialmente cierto cuando la
interacción se relaciona con el mantenimiento del sistema o la solución de problemas.

Como ejemplo de interacción entre el usuario-shell-núcleo, supongamos que un usuario desea eliminar un
archivo llamado myFile. El usuario escribe rm myFile. rm es el comando para eliminar los archivos
y myFile es el nombre del archivo que se eliminará. El shell busca en el sistema de archivos el programa rm y
solicita al núcleo, a través de llamadas al sistema, que ejecute el programa rm con el parámetro myFile. A
medida que el proceso se ejecuta, el shell no está disponible para el usuario y no presenta ninguna indicación
que señale el estado. Cuando el proceso rm myFile finaliza su ejecución, el shell muestra el mensaje al
usuario que indica que está listo y en espera de más comandos.

Acceso a CLI

Se crearon diferentes shells y añadieron muchas funciones para facilitar la escritura y la interacción del
usuario. Algunas de las características importantes del shell incluyen la compleción de comandos y nombres
de archivos con la tecla TAB, el historial de comandos, los accesos directos del teclado para pasar de línea de
comando y otras. Entre los shells más populares aparecen el shell Bourne (sh), Bash (bash), el shell C (csh),
el shell C mejorado (tcsh) y el shell Z (zsh). Qué shell utilizar es una cuestión de preferencia para la mayoría
de los usuarios.

Aunque haya una CLI aún presente, el SO moderno a menudo arranca en la GUI de manera predeterminada,
ocultando la CLI al usuario. Una forma de acceder a la CLI en un sistema operativo basado en la GUI es a
través de una aplicación del emulador de terminal. Estas aplicaciones permiten que el usuario acceda al shell
y generalmente se denominan con alguna variación de la palabra “terminal”. En Linux, los emuladores de
terminal comunes son Terminator, eterm, xterm, console y gnome-terminal. La figura muestra una captura de
pantalla de Gnome-Term, una aplicación del emulador de terminal de Linux.

Independientemente del emulador de terminal utilizado, el usuario aún decide qué shell utilizar dentro de la
aplicación del emulador de terminal. Para cambiar el shell, el usuario debe tener el shell deseado instalado en
el sistema y configurar algunas opciones en un archivo de configuración. Si bien es importante comprender la
diferencia entre emulador de terminal y shell, reemplazar o configurar el shell predeterminado excede el
alcance de este curso.
Comandos básicos de Linux

Los comandos de Linux son básicamente programas creados para realizar una tarea específica del sistema.
Para añadir flexibilidad, algunos comandos admiten parámetros, opciones y switches. Estos generalmente van
precedidos por un guión ("-"). Las opciones y los switches admitidos por un comando son ingresados por el
usuario junto con el comando. Utilice el comando man para obtener documentación sobre otros comandos.
Por ejemplo, man ls proporcionará documentación sobre el comando ls del manual del usuario incorporado
en la versión que se ejecuta de Linux.

Para invocar un comando a través del shell, simplemente escriba el nombre. El shell intentará encontrarlo en
la ruta del sistema y, si lo encuentra, lo ejecutará.

La figura muestra una lista de algunos comandos básicos de Linux y sus funciones.

Haga clic aquí para experimentar una interfaz de línea de comandos de Linux en su navegador web.

Proceso de comandos de administración

Proceso es el término que se utiliza para hacer referencia a cualquier tarea ejecutada por el sistema. Un
programa de computadora es pasivo. Es un conjunto de instrucciones almacenado en un disco como código
ejecutable. Un proceso es en la práctica un programa en acción. Las ID de proceso, o PID, son ID exclusivas
asociadas a los procesos utilizadas por el núcleo para identificarlos. Como con cualquier otro sistema
operativo multitarea, Linux puede administrar varios procesos al mismo tiempo. Linux también incluye
herramientas para la administración y visualización de los procesos. Los siguientes son algunos comandos de
administración de procesos:

 ps: este comando se utiliza para enumerar los procesos en ejecución en el sistema cuando se invoca.
Se puede indicar a psque muestre los procesos en ejecución que pertenecen al usuario actual o a otros
usuarios. Si bien enumerar procesos no requiere privilegios de raíz, eliminar o modificar otros procesos
del usuario puede que lo haga.

 top: este comando también se utiliza para indicar procesos en ejecución pero, a diferencia
de ps, top sigue mostrando los procesos en ejecución dinámicamente. Presione q para salir de top.

 kill:: este comando se utiliza para modificar el comportamiento de un proceso específico. Según los
parámetros, kill eliminará, reiniciará o detendrá un proceso. En muchos casos, el usuario
ejecutará ps o top antes de ejecutar kill. Esto se hace para que el usuario adquiera la PID de un
proceso antes de ejecutar kill.

Si se bloquea un proceso, puede ser necesario eliminarlo manualmente. Esto es común al crear programas,
ya que pueden funcionar de manera incorrecta y bloquearse. Una razón común para que un programa no
responda es un bucle mal construido que se ejecuta continuamente.

La figura muestra el comando top que se ejecuta en Linux.

Visualización de archivos y operaciones de archivos

En Linux, la mayoría de las entidades se trata como archivos. Con el objetivo de organizar el sistema y
reforzar los límites dentro del sistema, Linux utiliza permisos de archivos. Una de las características
principales de Linux es que los permisos de archivos se incorporan en la estructura del sistema de archivos y
proporcionan un mecanismo para definir los permisos en cada archivo. Esto significa que cada archivo en
Linux conlleva sus permisos de archivo que definen qué pueden hacer el usuario, el grupo y otros con el
archivo. Los posibles derechos de permisos son de lectura, escritura y ejecución. Considere el resultado del
comando ls - l a continuación:

rod@machine: $ ls -l My_Awesome_File

-rwxrw-r-- 1 rod staff 1108485 Aug 14 7:34 My_Awesome_File

user@machine: $

El resultado anterior proporciona mucha información sobre My_Awesome_File.

Conforme a las columnas que se muestran en la parte superior de la figura, la primera columna (extremo
izquierdo) del resultado anterior muestra los permisos asociados a My_Awesome_File. Los permisos de
archivos siempre se muestran en el orden Usuario, Grupo y Otro, lo que significa
que My_Awesome_File puede manejarse de la siguiente manera:

 El usuario que posee el archivo puede leer (Read), escribir (Write) y ejecutar (eXecute) el archivo. Esto
se representa con el primer “rwx” (de izquierda a derecha).

 El grupo que posee el archivo puede leer (Read) y escribir (Write) el archivo. Esto se representa con
“rw-”.

 Cualquier otro usuario o grupo del sistema solo puede leer (Read) el archivo. Esto se representa con “r--
”.

La segunda columna define el número de enlaces directos al archivo y no es importante para el alcance de
este curso.

La tercera y cuarta columna muestran el usuario y el grupo que poseen el archivo, respectivamente. En este
caso, el usuario rod y el grupo staff tienen un cierto nivel de propiedad sobre el archivo.
La quinta columna muestra el tamaño del archivo en bytes. My_Awesome_File tiene 1 108 485 bytes o cerca
de 1,1 MB.

La sexta columna muestra la fecha y la hora de la modificación más reciente.

La séptima columna muestra el nombre del archivo.

La figura muestra un desglose de los permisos de archivos en Linux.

Como mencionamos antes, los permisos de archivos son una parte fundamental de Linux y no se pueden
eliminar. Un usuario tiene tanto derecho a un archivo como el permiso del archivo se lo permite. El único
usuario que puede anular el permiso de un archivo en un sistema Linux es el usuario raíz. Al tener el poder de
anular los permisos de archivos, el usuario raíz puede escribir a cualquier archivo. Dado que todo en Linux se
trata como un archivo, el usuario raíz tiene control total sobre el sistema Linux.

El permiso de archivo es un concepto simple, pero extremadamente importante para el sistema Linux, dado
que con los permisos de archivos el sistema estructura su seguridad y definen sus límites. Un usuario común
no puede modificar los archivos o los recursos que no le pertenecen. Como consecuencia de esta
característica inherente, con frecuencia se requiere el acceso raíz antes de realizar tareas de mantenimiento y
administrativas.

Nota: el usuario raíz también es conocido como superusuario.

La Figura 2 muestra algunas herramientas de línea de comandos administrativas.

Administradores de paquetes

Un administrador de paquetes (también denominado sistema de administrador de paquetes) es un conjunto de


herramientas de software diseñadas para facilitar la instalación, la eliminación y la actualización de programas
informáticos. Los programas informáticos dependen de programas externos llamados bibliotecas para operar.
Mantener tales programas y sus bibliotecas manualmente no es escalable para un sistema con una gran
cantidad de programas instalados. Un administrador de paquetes puede ayudar a automatizar el proceso y
reducir los errores humanos.

Los diferentes sistemas operativos incluyen distintos administradores de paquetes. Debian y sus derivados
incluyen dpkg (administrador de paquetes Debian GNU/Linux). Para automatizar el proceso aún más, los
usuarios pueden utilizar apt como parte inicial para dpkg. Red Hat Linux y sus derivados utilizan RPM
(administrador de paquetes Red Hat) como administrador de paquetes predeterminado para las distribuciones
de Linux. Otro administrador de paquetes popular es yum (actualizador Yellowdog modificado). Yum es capaz
de seguir automáticamente las dependencias de un paquete e instalarlas antes de instalar el paquete.

Un administrador de paquetes generalmente incluye herramientas de usuario y un repositorio de paquetes


remoto. Las herramientas de usuario facilitan la administración de paquetes y pueden ser CLI o GUI. El
administrador de paquetes utiliza el repositorio remoto para alojar los paquetes. Los administradores de
paquetes son también muy útiles para el versionamiento de paquetes, lo que permite a los usuarios actualizar
o volver a la versión anterior de un paquete o ignorar una versión de paquete específica.

Antes de realizar correctamente cualquier operación del paquete, el usuario debe sincronizar el índice del
repositorio local con el índice remoto (por ejemplo: “apt-get update”). Un índice de repositorio es simplemente
una lista de paquetes y sus últimas versiones. Cuando se sincronizan los índices locales y remotos de
repositorios, el sistema puede compararlos con la versión actualmente instalada y recomendar
actualizaciones.

Según la decisión del usuario de actualizar un paquete o no, el administrador de paquetes descarga los
paquetes necesarios. Si estos paquetes tienen paquetes de dependencias, también se descargan. Una vez
que la descarga se ha completado, el administrador de paquetes los instala automáticamente.
Como Raspbian es un derivado de Debian, dpkg y apt se incluyen de forma predeterminada. Instalar, eliminar
y actualizar los paquetes en Raspberry Pi puede hacerse fácilmente con algunos comandos simples.

Práctica de laboratorio: comandos básicos de Linux

Use el Iniciador de PL-App para conectarse a Raspberry Pi.

Seleccione el enlace a los Materiales del curso y el enlace a Connecting Things.

Seleccione la práctica de laboratorio: 3.2.3.8 – Comandos básicos de Linux

Para ver la vista previa de esta práctica de laboratorio, haga clic aquí.

Variables y declaraciones básicas

Blockly es una herramienta de programación visual creada para ayudar a los principiantes a comprender los
conceptos de programación. Mediante el uso de múltiples tipos de bloques, Blockly permite que un usuario
cree un programa sin introducir ninguna línea de código.

Blockly implementa la programación visual mediante la asignación de diferentes estructuras de programas a


bloques de color. Los bloques también contienen ranuras y espacios que permiten que los programadores
ingresen los valores requeridos por la estructura. Los programadores pueden unir las estructuras de
programación arrastrando y asociando los bloques adecuados. Las estructuras de programación, como
subordinadas, bucles y variables, están todas disponibles para utilizar.

Una variable es una entidad de programación utilizada para almacenar datos. Básicamente, una variable es
una parte de la memoria que puede recibir un nombre legible para el almacenamiento de datos y la
recuperación. También se puede cambiar el contenido de una variable mientras se ejecuta el programa.

Crear una nueva variable en Blockly es sencillo: se debe arrastrar el bloque variable al espacio de trabajo y
completar la ranura de valor. La figura muestra una variable de Blockly.

Blockly también admite funciones. Al igual que las variables, Blockly tiene bloques específicos para
representar funciones. Asimismo, los programadores simplemente seleccionan y arrastran los bloques de
funciones al área del espacio de trabajo y completan las ranuras requeridas.

Observe que el bloque de variables y la impresión en el bloque de la pantalla tienen una ficha biselada en la
parte inferior y una ranura en la parte superior. Esto significa que los dos bloques pueden conectarse para
crear una secuencia de programa. Blockly ejecutará primero el bloque en la parte superior y continuará con el
bloque en la parte inferior.

Otros bloques están disponibles, como el bloque IF - THEN, el bloque WHILE y el bloque FOR. También hay
bloques específicos para los sensores y los accionadores.

Por último, Blockly se puede utilizar para traducir el código basado en bloques en Python o JavaScript. Esto
es muy útil para los programadores principiantes.

Subordinada IF - THEN

La estructura subordinada IF - THEN se utiliza para permitir que el código tome decisiones. Al probar la
veracidad de una expresión, el programa pasará a la siguiente declaración si la expresión se evalúa como
falsa. Si la expresión es verdadera, la acción THEN se ejecuta antes de pasar a la siguiente declaración del
código.
El programa Blockly que se muestra en la Figura 1 representa un programa que determina quién es la
persona más grande de las dos. El programa solicita al usuario que introduzca la edad de la primera persona
y la almacena en una variable llamada PERSON1. Después el programa solicita la edad de la segunda
persona y la almacena en otra variable llamada PERSON2. Por último, el programa compara las dos edades y
publica cuál es la mayor de las dos personas.

La Figura 2 muestra el código equivalente de Python.

Bucle FOR

El bucle FOR se utiliza para repetir la ejecución de un bloque específico de un código una cantidad específica
de veces. Es común utilizar el bucle FOR cuando la cantidad de repeticiones se conoce de antemano.

El programa Blockly que se muestra en la figura utiliza el bucle FOR para determinar todos los números
primos entre 1 y 100. Los números primos son los números divisibles solo por 1 o por el número en sí y se
publican en la pantalla, mientras que los números que no son primos se ignoran.

El programa utiliza dos bucles FOR para calcular el resto de la división entre el número que se evalúa y los
números entre 2 y el número mismo. Si el resto de la división es cero, el número no es un número primo. Si
ninguna división produce un resto equivalente a cero, entonces es un número primo. El programa publica el
número primo en la pantalla y continúa con la evaluación del siguiente número; solo se detiene cuando llega a
100.

Bucle WHILE

El bucle WHILE se utiliza para ejecutar un bloque de códigos siempre que una condición sea verdadera. El
código en el bucle WHILE a menudo modifica las entidades y las variables para finalmente hacer que la
expresión sea falsa. Si la expresión comprobada por WHILE nunca se torna falsa, el bucle se ejecuta
continuamente y se denomina bucle infinito. Por lo general, no se recomiendan bucles infinitos en la
programación.

El programa Blockly que se muestra en la figura utiliza el bucle WHILE para crear un juego de adivinanzas. El
programa elije un número al azar entre 1 y 10 y solicita al usuario que intente adivinarlo. El programa seguirá
repitiendo la conjetura hasta que el usuario adivine el número correcto.

Práctica de laboratorio: escribir secuencias de Python con Blockly

Use el Iniciador de PL-App para conectarse a Raspberry Pi.

Seleccione el enlace a los Materiales del curso y el enlace a Connecting Things.

Seleccione la práctica de laboratorio: 3.2.4.5 – Escriba secuencias de Python con Blockly.

Para ver la vista previa de esta práctica de laboratorio, haga clic aquí.

Uso de Blockly para conocer Python

Python es un lenguaje muy común diseñado para ser fácil de leer y escribir. La comunidad de desarrolladores
de Python agrega valor al lenguaje creando todo tipo de módulos y poniéndolos a disposición de otros
programadores.

La filosofía base del lenguaje se resume en el documento Zen de Python:


 Hermoso es mejor que feo.

 Explícito es mejor que implícito.

 Simple es mejor que complejo.

 Complejo es mejor que complicado.

 La legibilidad es importante

A pesar del hecho de que Python está diseñado para ser simple, aún hay una curva de aprendizaje. Para que
conocer Python sea aún más fácil, un principiante puede utilizar Blockly para mejorar la comprensión de
Python.

Si bien los distintos lenguajes de programación tienen diferente semántica y sintaxis, todos comparten la
misma lógica de programación. Los principiantes pueden utilizar Blockly para crear fácilmente un programa
independiente del lenguaje, exportarlo como código de Python y usar el código recientemente creado para
aprender la sintaxis, la estructura y la semántica de Python.

Las Figuras 1 y 2 muestran el programa del juego de adivinanzas en formatos de Blockly y Python.

Interpretador de Python

Python es un lenguaje interpretado; por lo tanto, requiere un intérprete para analizar y ejecutar el código de
Python. El interpretador de Python comprende y ejecuta el código de Python. El hecho de que el código de
Python pueda crearse en cualquier editor de texto y que los intérpretes de Python estén disponibles para
muchos sistemas operativos permite que los desarrolladores de Python creen e implementen los programas
de Python prácticamente en cualquier sistema operativo. Las herramientas de terceros,
como Py2exe y Pyinstaller, también pueden utilizarse para incluir el código fuente de Python en un archivo
ejecutable, lo que elimina la necesidad de intérpretes de Python al ejecutar el código de Python.

En las máquinas Linux, el intérprete de Python está instalado generalmente


en /usr/bin/python o /usr/bin/python3 (según las versiones de Python disponibles en el sistema). Con el
nuevo instalador Windows de Python, Python se instala de manera predeterminada en el directorio de inicio
del usuario. En equipos Windows más antiguos, Python se colocaba en C:\PythonXX (donde XX es la versión
de Python). Una vez instalado el intérprete de Python, funciona de manera similar al shell de Linux. Esto
significa que, cuando se llama sin argumentos, lee y ejecuta comandos de forma interactiva; cuando se llama
con un argumento de nombre de archivo o un archivo como entrada estándar, lee y ejecuta una secuencia de
dicho archivo.

Para iniciar el intérprete, simplemente escriba python o python3 en el indicador del shell.

Algunos sistemas heredados todavía se están ejecutando en una versión anterior de Python 2, pero muchos
sistemas nuevos están migrando a la nueva versión 3 de Phyton. La versión de Python está impresa en la
primera línea cuando se inicia el intérprete (Figura 1). Este curso se basa en código de Python 3 y aunque es
bastante compatible con la versión anterior Python 2, algunas funciones pueden tener diferente conducta.

Cuando se llama al intérprete de Python sin argumentos y los comandos se ingresan mediante el teclado, el
intérprete se dice que está en modo interactivo. En este modo, el intérprete espera los comandos. El indicador
principal está representado por tres signos mayor que (>>>). Las líneas de seguimiento están representadas
por tres puntos (...). La línea de seguimiento es el indicador secundario predeterminado.

El indicador >>> indica que el intérprete está listo y espera los comandos.

Las líneas de seguimientos son necesarias al introducir un código multilínea. La Figura 2 muestra el bloque IF
- THEN escrito en Python.
Otra forma de utilizar el intérprete es python -c command [arg] ... que ejecuta las declaraciones en el
comando. Como las declaraciones de Python suelen contener espacios u otros caracteres determinados del
shell, se recomienda incluir el comando completo entre comillas simples.

Variables y declaraciones básicas en Python

El intérprete recibe y ejecuta las declaraciones interactivamente.

El intérprete actúa como calculadora simple. Puede ingresar una expresión y escribirá el valor. La sintaxis de
la expresión es directa. Los operadores +, -, * y / funcionan al igual que en la mayoría de los otros lenguajes
(por ejemplo, Pascal o C). Los paréntesis (()) pueden utilizarse para agrupar, como se muestra en la Figura 1.

El modo interactivo de Python implementa la variable especial “_” para sostener el resultado de la última
expresión publicada, como se muestra en la Figura 2.

Las variables son áreas de memoria rotuladas que se utilizan para almacenar datos de programas de tiempo
de ejecución. Para asignar valores a las variables en Python, use el signo = (igual). No se muestra ningún
resultado antes del siguiente indicador interactivo, como se muestra en la Figura 3.

Los intentos de utilizar una variable no definida (sin ningún valor asignado) resultarán en un error, como se
muestra en la Figura 4.

Las secuencias, definidas como secuencias de caracteres, también pueden manejarse desde el modo
interactivo. Utilice el carácter de barra invertida (“\”) para sustraerse de los caracteres. Por ejemplo, una
cadena que utiliza comillas dobles, pero que también necesita utilizar una comilla doble dentro de la cadena.
Si la cadena se ingresa de la siguiente manera: "I really "need" this"., Python se confundirá y pensará que la
primera comilla doble dentro de la cadena finaliza realmente la cadena. Si coloca una barra invertida (\) antes
de las comillas dobles dentro de la cadena de la siguiente manera: "I really \"need\" this", la barra invertida
(\) hará que Python se sustraiga o ignore el carácter que sigue.

Las comillas simples o comillas dobles pueden utilizarse para envolver las cadenas, como se muestra en la
Figura 5.

La declaración de publicación publica el resultado de la expresión dada. Difiere de la escritura simple de la


expresión que se desea escribir (como hicimos anteriormente en los ejemplos de cálculo) en la manera en que
se administran las expresiones y cadenas múltiples. Las cadenas se publican sin comillas y se inserta un
espacio entre los elementos para formatear las cosas correctamente, como se muestra en la Figura 6.

Las funciones son una parte importante de muchos lenguajes de programación. Las funciones permiten que
un bloque de códigos reciba un nombre y se vuelva a utilizar según sea necesario. El siguiente ejemplo define
una función para agregar dos números y publicar el resultado, como se muestra en la Figura 7.

Funciones útiles y tipos de datos en Python

Python admite muchas funciones y tipos de datos útiles. Algunos de los más importantes son los siguientes:

Range(): la función range() genera una lista de números utilizados generalmente para iterar con los bucles
FOR. La Figura 1 muestra ejemplos de la función range().

range(stop): cantidad de números enteros a generar desde cero.

range([start], stop[, step]: a partir del número de secuencia, genera números hasta dicho número (sin
incluirlo), diferenciando entre cada número en la secuencia.

Tuplas
Una tupla es una secuencia de objetos incambiables de Python. Las tuplas son secuencias separadas por
paréntesis. La Figura 2 muestra ejemplos de tuplas.

Listas

Las listas son una secuencia de objetos cambiables de Python. Las listas pueden crearse configurando
distintos valores separados por comas entre corchetes. La Figura 3 muestra ejemplos de listas y cómo pueden
actualizarse.

Conjuntos

Los conjuntos son colecciones no ordenadas de elementos exclusivos. Las aplicaciones comunes incluyen
pruebas de membresía, cancelaciones de duplicados de una secuencia y cálculos de operaciones
matemáticas estándar en conjuntos, como intersecciones, uniones, diferencias y diferencias simétricas. La
Figura 4 muestra ejemplos de paquetes.

Diccionario

Un diccionario es una lista de elementos separados por comas. Cada elemento es una combinación de un
valor y una clave única. Cada tecla se separa de su valor por dos puntos. El diccionario completo se escribe
entre llaves. Se puede acceder a, actualizar o eliminar los elementos del diccionario. También hay muchas
funciones integradas en el diccionario, como la función que compara elementos dentro de diferentes
diccionarios y la que proporciona un conteo de la cantidad total de elementos de un diccionario. La Figura 5
muestra ejemplos de diccionarios.

Importación de módulos en el código

Salir del intérprete de Python y volver a ingresar elimina todas las definiciones efectuadas previamente; las
funciones y las variables se perderán en el proceso. Debido a esto, utilice un editor de texto cuando cree un
programa más largo o más complejo. Cuando el programa esté listo, aliméntelo simplemente en el intérprete
para ejecutarse. Con un editor de texto utilizado de esta manera se crea un tipo de programa llamado
secuencia. A medida que los programas son más largos y más complejos, puede ser necesario dividirlos en
programas más pequeños para un mantenimiento más fácil. Con este enfoque, un programador creará un
programa principal que importe todos los programas más pequeños necesarios. Estos programas más
pequeños se denominan módulos.

Incluso si un programa no es largo o complejo, el programador aún puede beneficiarse con la importación de
un módulo existente en su programa. Un programador puede elegir reutilizar una buena función ya escrita.
Otra opción común es que los programadores importen los módulos escritos por otra persona para agregar
funcionalidad a su código o mejorar su programa. Python tiene una comunidad grande y muy activa de
desarrolladores que han escrito y compartido módulos para muchas tareas.

La Figura 1 muestra un fragmento del código que crea un módulo de Python para calcular y publicar la serie
Fibonacci hasta el número N.

El código anterior se creó en un editor de texto y guardó como fibo.py. Ahora que el módulo se ha creado y
guardado en el disco, se puede importar a cualquier otro programa de Python y alimentar al intérprete a través
de la palabra clave import, como se muestra en la Figura 2.

Observe que el intérprete no ejecuta el contenido de fibo.py, sino que sabe dónde encontrar las
funciones fib() y fib2(). Para usar el módulo y sus funciones, simplemente llámelos por su nombre, como se
muestra en la Figura 3.

Los módulos comunes que verá en IoT y en este curso incluyen los módulos de procesamiento de datos
(funciones matemáticas), los módulos de autoevaluación (nivel de batería y prueba de memoria), los módulos
de seguridad (hashes, cifrado/descifrado) y los módulos de servidor de red y cliente (Web, FTP, NTP, etc.).

La Figura 4 muestra diferentes maneras de utilizar la función de importación.


IF - THEN en Python

Al igual que otros lenguajes, Python implementa la estructura IF - THEN. Los bloques IF - THEN se pueden
utilizar para permitir que el código tome decisiones según el resultado de una expresión, como se muestra en
la figura.

El código realiza algunas pruebas y publica un mensaje conforme a los resultados de la prueba. Observe que
Python también implementa dos subestructuras denominadas ELSE y ELIF. ELSE permite al programador
especificar instrucciones para ejecutar si la expresión es falsa. La forma abreviada de ELSE IF, ELIF, se usa
para realizar una segunda prueba en caso de que la primera expresión sea falsa y se requiera otra prueba.
Puede haber cero o más ELIF y la parte ELSE es opcional.

Bucle FOR en Python

El bucle FOR en Python itera los elementos de cualquier secuencia (una lista o una cadena) en el orden en
que aparecen en la secuencia, como se muestra en la figura.

Bucle WHILE en Python

El bucle WHILE ejecuta un bloque de códigos si la expresión es verdadera. El programa a continuación utiliza
un bucle WHILE para calcular y publicar una subsecuencia inicial de la serie Fibonacci, como se muestra en la
figura.

La tercera línea contiene un operador de asignación múltiple. Las variables a y b obtienen los nuevos valores
de 0 y 1 en una única declaración.

El bucle WHILE calcula el término siguiente en la serie Fibonacci siempre que la condición b < 10 sea
verdadera. Como en C, Python asume cualquier valor del número entero que no sea cero como verdadero y
cero como falso. La prueba que se utiliza en la figura es una comparación simple.

Observe que el cuerpo del bucle está indentado. La indentación es la forma en que Python agrupa las
declaraciones. En el indicador interactivo, debe escribir una ficha o espacio para cada línea indentada. Las
entradas más complejas de Python deben realizarse con un editor de texto. Cuando una declaración
compuesta se ingresa interactivamente, debe ir secundada por una línea en blanco para indicar la finalización
(porque el analizador no puede adivinar qué línea será la última). Observe que cada línea dentro de un bloque
básico se debe indentar por la misma cantidad.

Práctica de laboratorio: escriba secuencias simples de Python

Use el Iniciador de PL-App para conectarse a Raspberry Pi.

Seleccione el enlace a los Materiales del curso y el enlace a Connecting Things.

Seleccione la práctica de laboratorio: 3.2.5.9 – Escriba secuencias simples de Python.

Para ver la vista previa de esta práctica de laboratorio, haga clic aquí.

Páncreas artificial hecho con Raspberry Pi

Su tamaño pequeño y bajos requisitos de recursos hacen que Raspberry Pi sea como una navaja suiza
multiuso para IoT. Este tema explora algunos proyectos interesantes que utiliza Raspberry Pi.
Dana Lewis ha vivido con diabetes tipo 1 desde los 14 años. El páncreas de las personas con diabetes tipo 1
no produce suficiente insulina para administrar el azúcar en la circulación sanguínea. Las personas como
Dana deben supervisar y corregir los niveles de insulina. Debido a que el monitor que utilizaba tenía muchos
defectos, Dana y su esposo decidieron utilizar Raspberry Pi para construir un páncreas artificial, como se
muestra en la figura.

Obtenga más información sobre el proyecto en: https://www.raspberrypi.org/blog/artificial-raspberry-pi-


pancreas/.

Robot Pi 4Borg

La figura muestra un equipo robótico asequible de los expertos en robótica de PiBorg. Es educativo y
divertido.

Obtenga más información sobre el proyecto en: https://www.raspberrypi.org/magpi/4borg-robot-review/

Otro excelente ejemplo de automatización con Raspberry Pi se produjo en una granja de pepinos en Japón.
Se utilizó una cámara como sensor para procesar imágenes y clasificarlas. Luego se usaron accionadores
para seleccionar qué pepinos eran aceptables y cuáles no. Este proceso ahorra al granjero entre ocho y
nueve horas de trabajo manual por día.

Obtenga más información sobre este proyecto en: https://www.raspberrypi.org/blog/now-added-cucumbers/.

Control de Arduino a través de Pi

Si bien Raspberry Pi es una computadora eficaz y flexible, existen algunas tareas que no administra bien. Esto
se debe a que RaPi no cuenta con pines analógicos. Los sensores, como los termómetros, los sensores de
luz y los sensores de presión de aire, ofrecen señales analógicas. Debido a que RaPi no se envía con pines
analógicos, deben realizarse algunas soluciones alternativas.

Otro ejemplo se relaciona con el tamaño; si bien RaPi es muy pequeña y tiene pocos requisitos de energía,
algunos proyectos pueden requerir controladores incluso más pequeños. Para esas situaciones, puede ser
mejor trabajar con un microcontrolador de Arduino. Arduino también es pequeño y consume muy poca
energía, pero incluye pines analógicos. Esto hace que Arduino sea perfecto para trabajar con sensores y
dispositivos analógicos.

Puede conectar y controlar Arduino directamente desde su computadora. Debido a que RaPi es una
computadora completa, también es posible utilizarla para conectar y controlar Arduino. Si utiliza su PC o PI, es
necesario instalar algún software específico antes de que la computadora pueda interactuar con Arduino. Otro
punto importante es que Arduino a menudo ejecuta códigos escritos en C. Algunos dispositivos Arduino
admiten firmware alternativo que puede implementar otros lenguajes, como Python, pero esta no es la norma.

Cuando se instale el software adecuado, utilice un cable USB para conectar Arduino con RaPi. El software
facilitará la transferencia de datos entre RaPi y Arduino, lo que permite que un usuario alterne el código,
ejecute programas y reciba datos de Arduino.

En esta configuración, con Arduino conectado a RaPi mediante el USB, Arduino también puede actuar como
controlador secundario, administrando los datos recibidos de los sensores analógicos y retransmitiéndolos
para procesarlos en la más potente Raspberry Pi. Esto también permite la creación de un entorno de
configuración de Arduino, donde el código puede crearse en RaPi y alternarse con Arduino para su
evaluación. Cuando el usuario está satisfecho y listo para implementar Arduino por su cuenta, Arduino puede
desconectarse e instalarse en la ubicación planificada.

La figura muestra una imagen de RedBoard de Arduino conectado a Raspberry Pi 3 a través de un cable USB.
Introducción del modelo de automatización doméstica

Packet Tracer (PT) no solo es una herramienta útil para modelar, simular y probar entornos de red, sino que
puede hacer lo mismo con las soluciones de IoT. PT 7.0 brinda soporte para varios dispositivos y
funcionalidades de IoT que permiten diseñar y crear soluciones completas de IoT.

Entre los dispositivos de IoT admitidos por PT 7.0, es posible destacar los modelos programables de
sensores, accionadores, microcontroladores, computadoras de una sola placa y dispositivos de computación
en la niebla. Esto permite diseñar, configurar, programar y resolver los problemas de los modelos cada vez
más sofisticados de sistemas de IoT. La Figura 1 muestra una captura de pantalla de PT 7.0 y de muchos de
sus dispositivos admitidos.

Un buen ejemplo de lo que PT 7.0 puede hacer con las simulaciones de IoT se muestra en el hogar
inteligente. La Figura 2 muestra una captura de pantalla del hogar inteligente integrado en PT. El modelo
incluye puertas conectadas, puertas conectadas del garaje, rociadores de agua conectados, detectores de
humo conectados, ventiladores de techo conectados y más. Todo esto se puede controlar y supervisar a
través de una interfaz web desde cualquier dispositivo en el hogar, como una tablet, un smartphone o una
computadora portátil. PT 7.0 hace todo esto mientras representa la red subyacente con routers inalámbricos,
cables y switches.

Componentes del sistema

En el ejemplo del hogar inteligente, todos los dispositivos se conectan al gateway del hogar. El gateway del
hogar actúa como concentrador para todos los dispositivos, proporcionando conectividad cableada e
inalámbrica. También en el gateway doméstico se crea y aloja la interfaz web para permitir que los usuarios
controlen y monitoreen todos los dispositivos conectados.

La Figura 1 muestra una captura de pantalla de la ventana del gateway doméstico.

En el modelo, los sensores monitorean el entorno y garantizan que los valores permanezcan dentro de un
umbral predefinido. Si el valor monitoreado supera el umbral definido, se toman medidas. El detector de humo,
un sensor que monitorea los niveles de CO2 en el hogar, tiene un valor predefinido de 0,4. Si el nivel medido
supera 0,4, la alarma se desactiva. El detector de humo no tiene ninguna funcionalidad controlada por el
usuario, simplemente responde al entorno.

Las conexiones de red entre el gateway doméstico y otros dispositivos de red también están representadas.
Observe cómo el gateway doméstico se conecta a un cable módem que, a su vez, se conecta a un divisor. El
divisor divide la señal proveniente del ISP y envía señales de televisión por cable al televisor y datos al cable
módem. El par de cable módem y divisor es lo que proporciona conectividad de Internet al gateway doméstico
y al hogar entero.

Nota: si bien PT 7.0 es potente y flexible, varios sensores y accionadores pueden tener diferentes conexiones.
PT 7.0 implementa Ethernet por cable e inalámbrica, pero no implementa otras conexiones posibles.

Código de la SBC en Packet Tracer

PT 7.0 además presenta una computadora de una sola placa (SBC) y una unidad de microcontrolador (MCU).

La computadora de una sola placa es una computadora diseñada para adaptarse a todos sus componentes,
como almacenamiento, memoria y E/S dentro de una sola placa. Un buen ejemplo de SBC es Raspberry Pi.
Las SBC son comunes en las soluciones de IoT porque se utilizan para ejecutar un código y agregar
inteligencia a los dispositivos diarios. Una SBC de PT es un dispositivo de PT creado para simular una SBC
mediante la proporción de capacidades de ejecución de códigos y ciertas conexiones. Específicamente, una
SBC de PT proporciona 2 puertos USB y 10 puertos de E/S digital que se pueden utilizar para conectar
sensores y dispositivos de IoT. Una SBC de PT tiene un intérprete de Python incorporado que le permite al
código nativo de Python escribirse y ejecutarse directamente en el dispositivo. Puede accederse al intérprete
de Python mediante la ficha de programación de la SBC de PT.

La Figura 1 muestra una captura de pantalla de la ventana de la SBC de PT y la ficha Configuración.

Una unidad de microcontrolador (MCU) es una pequeña computadora incorporada a un sistema en un chip
(SoC). Es similar a una SBC, pero contiene menos potencia de procesamiento y funcionalidad. Contiene un
núcleo de procesador, una memoria y unidades periféricas programables de entrada/salida. Los
microcontroladores están diseñados para las aplicaciones incorporadas o las aplicaciones que requieren
pocos recursos de computadora. Algunos ejemplos de aplicaciones que dependen de microcontroladores son
sistemas de control de motores automotrices, dispositivos médicos implantables, controles remotos, máquinas
de oficinas y electrodomésticos. Los microcontroladores de señales combinadas también son comunes e
integran componentes analógicos necesarios para controlar los sistemas electrónicos no digitales. PT 7.0
brinda soporte al emulador de MCU. Un usuario puede programar la MCU de PT para que realice tareas
similares a las MCU del mundo real. Para simplificar el proceso, la MCU de PT además puede programarse
con Python. La MCU de PT tiene un puerto USB, seis puertos de E/S digital y cuatro puertos de E/S
analógica. Los puertos de E/S digital en la MCU de PT permiten que un usuario conecte accionadores y
sensores digitales. Los puertos de E/S analógica permiten que un usuario conecte accionadores y sensores
analógicos.

La Figura 2 muestra una captura de pantalla de la ventana de la MCU de PT.

Desde una perspectiva de simulación, la SBC de PT y la MCU de PT difieren muy poco entre sí.
Específicamente, la SBC de PT puede alojar archivos y tiene una ficha Escritorio con varias aplicaciones,
como navegador web y cliente de correo electrónico. La MCU del PT no aloja archivos ni tiene una ficha
Escritorio.

Nota: si bien no es común encontrar Python en las MCU en la vida real, PT 7.0 implementa el soporte de
Python para comodidad de los usuarios.

Capítulo 3: el software es todo

Los programas (a los que también se les llama código) se utilizan en IoT para proporcionarles lógica e
inteligencia a los dispositivos. Agrupando adecuadamente estructuras de lógica especiales, un programador
puede crear un código para permitir que un dispositivo de IoT ejecute tareas tales como monitoreo,
comunicación con otros, procesamiento de datos y más.

Raspberry Pi, una computadora de una sola placa, está diseñada para ser pequeña y consumir muy poca
energía. La PL-App de Cisco permite el acceso a la Raspberry Pi directamente desde la red sin necesidad de
un monitor, un teclado o un mouse para conectarse. Raspberry Pi ejecuta Raspbian, una versión modificada
del código abierto y el sistema operativo Linux de amplia difusión. Raspberry Pi admite distintos lenguajes de
programación, incluido Blockly, un lenguaje de programación visual diseñado para ayudar a los principiantes a
aprender a programar. Este curso se centra en Python, un lenguaje de programación popular, simple y
potente.

Con el soporte agregado para Python, Cisco Packet Tracer es una gran herramienta para modelar, probar y
hacer prototipos de los sistemas completos de IoT.

Capítulo 4

LAN y WAN

El propósito de las redes es permitir la transmisión de mensajes entre varios dispositivos conectados.
Históricamente, la caracterización principal de las redes se basaba en la amplitud geográfica y en el alcance
de la administración de las redes. Las redes se categorizaban como redes de área local (LAN) o redes de
área amplia (WAN). La diversidad y la cantidad adicional de dispositivos conectados y las diversas
necesidades de conectividad de los dispositivos IoT dieron lugar a nuevas variaciones en los tipos de redes.
Conectar los servidores en un centro de datos es un problema diferente que conectar los microcontroladores
inalámbricos en un automóvil o conectar los sensores de una plaza de estacionamiento a los controladores.
Aunque los requisitos de conexión son diferentes, los sistemas fundamentales de redes que admiten cada una
de las diferentes necesidades son básicamente iguales.

La ruta que toma un mensaje desde el origen hasta el destino puede ser tan sencilla como un solo cable que
conecta una PC con otra o tan compleja como una red que literalmente abarca el mundo. La infraestructura de
red contiene tres categorías de componentes de red:

 Dispositivos

 Medios

 Servicios

Las figuras 1 a 3 representan los componentes de red.

Los dispositivos y los medios son los elementos físicos o hardware de la red. Por lo general, el hardware
consta de los componentes visibles de la plataforma de red, como PC portátiles, PC, switches, routers, puntos
de acceso inalámbricos o el cableado que se utiliza para conectar esos dispositivos.

Los servicios incluyen una gran cantidad de aplicaciones de red comunes que utilizan las personas a diario,
como los servicios de alojamiento de correo electrónico y los servicios de alojamiento web. Los procesos
proporcionan la funcionalidad que direcciona y traslada mensajes a través de la red. Los procesos son menos
obvios para nosotros, pero son críticos para el funcionamiento de las redes.

Una LAN es una infraestructura de la red que abarca un área geográfica pequeña. Las características
específicas de las LAN incluyen lo siguiente:

 Las LAN interconectan terminales en un área limitada, como una casa, un lugar de estudios, un edificio
de oficinas o un campus.

 Por lo general, la administración de las LAN está a cargo de una única organización o persona. El
control administrativo que rige las políticas de seguridad y control de acceso está implementado en el
nivel de red.

 Las LAN proporcionan un ancho de banda de alta velocidad a los dispositivos finales internos y a los
dispositivos intermediarios.

Una red de área personal (PAN) es un tipo de LAN útil para IoT. Una PAN es una red que abarca algunos
metros alrededor de la persona, generalmente con tecnología inalámbrica. Una PAN está destinada a
interconectar dispositivos como equipos portátiles, teléfonos móviles, auriculares y cualquier otra tecnología
personal. A menudo utiliza tecnologías inalámbricas de rango corto como Bluetooth.

Una LAN utilizada para conectar máquinas en la planta es un ejemplo de un uso más nuevo de la definición
de LAN que ha llegado a admitir la IoT. En este caso, es común escuchar la expresión “planta de producción”
para indicar el área específica ocupada por las máquinas industriales. El término “Internet industrial” a menudo
especifica los dispositivos que pueden funcionar en el entorno industrial. Este entorno se caracteriza por un
alto nivel de polvo, ruido, variaciones de temperatura y vibración mecánica. En estas situaciones todavía se
utilizan las tecnologías basadas en Ethernet, pero están surgiendo cada vez más tecnologías inalámbricas
como el mejor enfoque para admitir los entornos de fábricas inteligentes y otros entornos “atípicos”.

Una WAN es una infraestructura de la red que abarca un área geográfica extensa. En general, las WAN
pertenecen a empresas o a proveedores de servicios de Internet. A menudo, la administración de las WAN
está a cargo de proveedores de servicios (SP) o proveedores de servicios de Internet (ISP). Una red
empresarial puede administrarse internamente pero utilizar servicios WAN de un ISP.
Las características específicas de las WAN incluyen lo siguiente:

 Las WAN interconectan LAN a través de áreas geográficas extensas, por ejemplo, ciudades, estados,
provincias, países o continentes.

 Las WAN pueden incluir los segmentos de red administrados por varios proveedores de servicios.

 Normalmente, las WAN proporcionan enlaces de velocidad más lenta entre redes LAN.

La Internet WAN tradicional utiliza principalmente tecnologías de conexión por cable y el sistema se conecta a
la red de energía eléctrica para alimentarse. A menudo, en el caso de las WAN de IoT, la interconexión podría
utilizar enlaces inalámbricos y sensores con batería. Debido a estas nuevas limitaciones, ha surgido una
nueva clase de tecnologías WAN denominada Low Power Wide Area Network (LPWAN) que permite
interconexiones inalámbricas de ancho de banda reducido de los dispositivos con batería que se extienden en
un área geográfica.

Dispositivos de red y medios de comunicación

Los dispositivos de red son dispositivos que se conectan entre sí a través de una red. Los dispositivos de red
tradicionales con los que la gente está más familiarizada se denominan terminales. Algunos ejemplos de
terminales se muestran en la figura 1. En el espacio de IoT, todo puede convertirse en un dispositivo en red.
La Figura 2 muestra ejemplos de terminales domésticos. Para ver un conjunto de dispositivos conectados a
productos electrónicos, haga clic aquí.

Un dispositivo final o terminal es el origen o el destino de un mensaje transmitido a través de la red, tal como
se muestra en la animación de la figura 3. Para distinguir un terminal de otro, cada terminal en la red se
identifica por una dirección. Cuando un terminal inicia una comunicación, utiliza la dirección del terminal de
destino para especificar adónde se debe enviar el mensaje.

Los dispositivos intermedios conectan los terminales individuales a la red y pueden conectar varias redes
individuales para formar una internetwork. Los dispositivos intermedios proporcionan conectividad y garantizan
el flujo de datos en toda la red.

Estos dispositivos utilizan la dirección del terminal de destino, conjuntamente con información sobre las
interconexiones de la red, para determinar la ruta que deben tomar los mensajes a través de la red. Algunos
ejemplos de los dispositivos intermediarios más comunes son gateways, routers, switches y routers
inalámbricos.

La comunicación a través de una red es transportada por un medio. El medio proporciona el canal físico por el
cual viaja el mensaje de origen a destino.

Como se muestra en la Figura 4, las redes modernas utilizan principalmente tres tipos de medios para
interconectar los dispositivos y proporcionar la ruta por la cual pueden transmitirse los datos.

 Hilos metálicos dentro de cables: los datos se codifican en impulsos eléctricos.

 Fibras de vidrio o plástico (cable de fibra óptica): los datos se codifican como pulsos de luz.

 Transmisión inalámbrica: los datos se codifican mediante ondas de radio

Los diferentes tipos de medios de red tienen diferentes características y beneficios. No todos los medios de
red tienen las mismas características ni son adecuados para todos los propósitos. Por ejemplo, las
tecnologías inalámbricas que conectan sensores pueden tener diferentes características en las siguientes
áreas:
 el rango de uso va desde algunos centímetros a muchos kilómetros

 la cantidad del ancho de banda va desde algunos kilobits por segundo hasta gigabits por segundos

 la cantidad de consumo de energía va de nanowatts a algunos watts

Elegir la tecnología adecuada es una importante decisión de diseño que depende de la aplicación específica
de IoT.

La figura 5 muestra los criterios por considerar al momento de elegir los medios de red.

Protocolos de red

Aunque se requieren los medios adecuados para la comunicación de dispositivos, no es suficiente. Los
dispositivos deben cumplir las reglas comunes de comunicación antes de que puedan comunicarse. Estas
reglas se llaman protocolos.

Al igual que los lenguajes humanos, los dispositivos de red aprovechan las reglas específicas de
comunicación para asegurar que se envíen y reciban los mensajes y que puedan comprenderse. Dos familias
de protocolos muy importantes son Ethernet y TCP/IP.

Ethernet es una familia de tecnologías y protocolos que rige la comunicación entre los dispositivos locales y
asegura que puedan comunicarse correctamente mientras comparten el mismo medio de comunicación. Sin
Ethernet, las señales transmitidas por los dispositivos de red en medios compartidos podrían interferir y
volverse ilegibles.

TCP/IP es la familia de protocolos que interconecta miles de millones de dispositivos de las redes en toda la
Internet. Observe que mientras Ethernet y TCP/IP son protocolos de comunicación, tienen funciones y roles
muy diferentes en la comunicación de dispositivos de red. Ethernet asegura el uso correcto de los medios
locales, mientras que TCP/IP facilita la comunicación remota y es independiente de los medios. Se dice que
un dispositivo de red admite un protocolo de red específico cuando se ha configurado o programado el
dispositivo de red para enviar y recibir mensajes que cumplen con las reglas definidas por el protocolo de red
admitido.

En el dominio de IoT, están surgiendo protocolos nuevos que enriquecen el conjunto TCP/IP y se ocupan de
los requisitos específicos de la IoT. Muchas aplicaciones emergentes de IoT como la automatización
industrial, la agricultura inteligente y las ciudades inteligentes, requieren redes que admiten la adquisición de
datos inalámbricos a gran escala y los bucles de retroalimentación en los accionadores que se basan en
dispositivos integrados de baja energía.

A menudo, estas redes tienen conexiones que normalmente son menos confiables que las redes de TI típicas
de oficina. Algunas de estas nuevas redes denominadas redes de bajo consumo y con pérdidas (LLN) suelen
tener velocidades de transmisión más bajas y un mayor índice de pérdida de paquetes debido a varios
factores como antenas pequeñas, CPU, memoria, energía y factores ambientales. Mientras que Ethernet y
TCP/IP aún se reconocen universalmente como los protocolos principales de Internet, los protocolos
necesarios para admitir la IoT todavía se encuentran en desarrollo.

Nota: las reglas y los mecanismos específicos implementados por los protocolos emergentes exceden el
alcance de este curso. Haga clic aquí para más información.

Routing básico

Internet consta de LAN interconectadas por enlaces WAN. Para pasar de una LAN a otra (origen a destino),
los paquetes deben atravesar una o más redes. En tal situación, LAN y WAN actúan como rutas de tránsito
para los paquetes.
El proceso de dirigir un paquete hacia su destino se denomina routing y es la función principal de un router.
Los routers son dispositivos de red intermediarios. Son responsables de dirigir los paquetes por las redes,
hacia su destino final. Ya sea routing local (paquetes de routing dentro de las LAN) o routing remoto (paquetes
de routing entre las LAN), los routers son dispositivos de red intermediarios esenciales. Dado que puede
haber varias rutas para que un paquete vaya de origen a destino, también es la responsabilidad de un router
elegir la mejor ruta.

La figura muestra las LAN y sus respectivos enlaces WAN.

Los terminales que funcionan en redes de bajo consumo o con pérdidas (LLN) están limitados por la potencia,
la memoria, bajas velocidades de transmisión de datos y problemas ambientales. Los routers utilizados en los
mismos entornos “no tradicionales” también tienen las mismas limitaciones. Están surgiendo nuevos
protocolos de routing para admitir routers en estas situaciones inestables.

Nota: los detalles de cómo los routers eligen la mejor ruta de origen a destino exceden el alcance de este
curso.

LAN, WAN e Internet

En una pequeña oficina u oficina en el hogar (SOHO, small office or home office), es común utilizar un único
router. Este router es responsable de proporcionar conectividad a todos los dispositivos locales (PC, tablets,
smartphones y dispositivos inteligentes), a través de una conexión inalámbrica o por cable. El router de una
pequeña oficina u oficina en el hogar (SOHO) también actúa como punto de conexión entre la red de dicha
oficina e Internet. En esta situación, la red SOHO es una LAN, conectada al resto de las LAN (Internet)
mediante un enlace WAN. El enlace WAN proviene de un proveedor de servicios de Internet (ISP). Este
enlace WAN de ISP se conecta al router SOHO mediante un puerto especial, específicamente diseñado para
una conexión WAN.

Para los dispositivos locales SOHO, el router SOHO es la única forma de alcanzar las redes remotas. Debido
a esto, el router SOHO actúa como el gateway predeterminado para todos los dispositivos locales SOHO.
Cuando se enviarán los paquetes a destinos remotos, todos los dispositivos locales SOHO saben que deben
enviar el paquete al gateway predeterminado.

Todos los dispositivos conectados a Internet deben contar con un identificador único. El protocolo de Internet
(IP) define e implementa este identificador único como una dirección IP. Debido a que el IP es el protocolo de
comunicación más popular utilizado en Internet en la actualidad, si un dispositivo desea conectarse y
comunicarse en Internet, debe cumplir con las reglas de IP.

Todos los dispositivos locales deben configurarse con direcciones IP únicas. Los dispositivos locales también
deben configurarse con la dirección IP del gateway predeterminado que deben utilizar para alcanzar las redes
remotas. Cuando se completa la configuración, los dispositivos locales pueden comunicarse entre sí
directamente, utilizando las direcciones IP únicas. Si un dispositivo local desea comunicarse con una red
remota, debe enviar el paquete al gateway predeterminado, ya que el éste es el punto de salida para la LAN.

Un dispositivo local configurado con una dirección IP única pero no configurado con la dirección de su
gateway predeterminado, aún puede comunicarse de manera local pero no podrá comunicarse con ninguna
red remota.

La figura muestra cómo las LAN y WAN conforman Internet.

Protocolos de IoT

Los dispositivos IoT suelen ser dispositivos integrados con poca memoria y una disponibilidad de alimentación
limitada. Debido a que los dispositivos IoT a menudo se implementan en condiciones deficientes como
exteriores, plantas de producción o en el cuerpo humano, es posible que algunos requisitos básicos como la
alimentación y la conectividad de red se vean limitados. Estos desafíos obligan a los diseñadores de IoT a
trabajar con un conjunto diferente de protocolos creados específicamente para la IoT y sus desafíos
particulares.

Mientras que gran parte del éxito de la web se basa en el uso de un enfoque cliente-servidor utilizando el
protocolo HTTP para intercambiar mensajes, en el caso de las redes de IoT están surgiendo diferentes
enfoques. CoAP y MQTT son dos protocolos de datos comunes en la IoT.

CoAP (protocolo de aplicación restringida) es un protocolo destinado a los dispositivos IoT con recursos
limitados que permite que los dispositivos IoT se comuniquen con Internet. CoAP se basa en HTTP y el
modelo de REST donde los recursos se recuperan de un servidor con URI/URL. Los clientes utilizan métodos
conocidos de GET, PUT, POST y DELETE para manipular estos recursos. CoAP puede utilizarse a través de
otros mecanismos, como SMS en redes de comunicación móvil.

CoAP está diseñado para proporcionar soporte multidifusión, baja sobrecarga y simplicidad. Está diseñado
para funcionar en microcontroladores con 10 KB de RAM y 100 KB de espacio de almacenamiento a la vez
que proporciona una seguridad sólida.

El protocolo de MQTT proporciona un enfoque diferente. MQTT (transporte de telemetría de cola de


mensajes) es un protocolo ligero. MQTT es más adecuado para sistemas que dependen de conexiones de
ancho de banda reducido y requieren un código con poca repercusión. Los protocolos de MQTT utilizan el
concepto de comunicaciones de publicación o suscripción entre nodos.

El esquema de publicación o suscripción requiere la presencia de un nodo intermedio denominado agente de


mensajes. Cada fuente de datos debe publicar el elemento de datos en el nodo de agente que indique a que
“tema” pertenecen los datos. Los nodos interesados en recibir los datos sobre un tema específico deben
suscribirse a ese tema en el agente. Luego, el agente distribuirá los mensajes a los clientes interesados según
el tema del mensaje.

Más información sobre MQTT en http://mqtt.org/

Protección de la red de IoT

Los dispositivos IoT son cada vez más comunes en nuestra vida cotidiana. A medida que la IoT se integra
cada vez más en las actividades diarias de las personas, los dispositivos manejan más datos confidenciales.
La información personal relacionada con la salud, la ubicación, los recursos, las preferencias personales y las
conductas pasan por los dispositivos de IoT en grandes volúmenes. Este aumento del volumen eleva la
importancia del incremento de la atención brindada a la privacidad y la protección de los datos.

Para abordar la privacidad de los datos, los diseñadores de sistema deben realizar preguntas como las
siguientes: ¿Qué datos pueden recopilarse? ¿Qué formulario de consentimiento se requiere? ¿A quién se le
debe permitir ver los datos?

Muchas aplicaciones de IoT generan firmas rastreables de la ubicación y el comportamiento de los usuarios.
Este proceso trabaja en contra de la privacidad de los datos. Para enfrentar esto, los dispositivos IoT deben
poder verificar la propiedad del dispositivo y la identidad del propietario mientras que desacopla el dispositivo
del propietario. Este proceso se denomina imitación. Una sombra digital permite que los objetos del usuario
actúen en representación de un usuario mediante una identidad virtual.

La seguridad de datos debe asegurarse de que los datos no se filtren hacia afuera de la aplicación diseñada o
de que los datos no se alteren o eliminen por un ataque a la seguridad. Un elemento fundamental en la
seguridad de la red es la identidad del dispositivo y los mecanismos para autenticarlo. Cuando sea posible, los
dispositivos deben utilizar un cifrado sólido y esquemas de autenticación. Los nuevos protocolos de
autenticación y autorización se encuentran en proceso de desarrollo. Por ejemplo, actualmente el Instituto
Nacional de Normas y Tecnología (NIST) de los Estados Unidos está trabajando en una nueva versión
compacta del algoritmo hash seguro SHA-3 que se utilizará para dispositivos inteligentes o integrados.

La figura muestra un ejemplo de un marco de IoT seguro. Define los siguientes componentes:
 Autenticación: los dispositivos IoT que se conectan a la red crean una identidad válida basada en la
relación de confianza a través de mecanismos como: contraseñas, tokens, biometría, RFID, certificado
digital X.509, secreto compartido o dirección MAC de terminales.

 Autorización: se establece una relación de confianza en función de la autenticación y la autorización de


un dispositivo que determine a qué información puede accederse y compartirse.

 Política de red aplicada: controla todos los elementos que enrutan y transportan de manera segura el
tráfico de terminales en la red a través de protocolos de seguridad establecidos.

 Análisis seguro: visibilidad y control: proporciona reconocimiento, detección de amenazas y mitigación


de amenazas para todos los elementos que agreguen y correlacionen información.

WiFi

Los dispositivos inalámbricos constituyen una de las mayores áreas de crecimiento para la IoT. Se han
desarrollado muchas tecnologías inalámbricas nuevas y protocolo para incluir la variedad de dispositivos
nuevos y sus diferentes requisitos para la conectividad. ZigBee, Bluetooth, 4G/4G y LoRaWAN son algunos
ejemplos de estas tecnologías inalámbricas.

Algunos de los protocolos inalámbricos están diseñados para redes de rango corto, algunas para rango medio
y otras para rango largo. La Figura 1 muestra un gráfico que clasifica los diferentes protocolos según el rango
que admiten.

Las redes de baja potencia y área amplia (LPWAN) son una red de comunicaciones inalámbricas diseñada
para admitir las comunicaciones de largo alcance para los dispositivos con baja velocidad de bits como
sensores, accionadores y controladores. Las LPWAN proporcionan una excelente cobertura en áreas
urbanas, rurales y remotas. El área de la señal varía de 5 a 40 km según la abertura de la ubicación
geográfica. Las estaciones base tienen una vida útil de la batería de 10 años y admiten miles de dispositivos.
Algunos ejemplos de protocolos de LPWAN son LoRaWAN, Weightless-N y RPMA.
Los diseñadores de sistema seleccionarán la tecnología inalámbrica en función del rango de cobertura, los
requisitos de ancho de banda, el consumo de energía y la ubicación de la implementación. La Figura 2
compara topologías inalámbricas en función de estos criterios.

ZigBee

ZigBee es una especificación de protocolos inalámbricos de baja energía, de baja potencia y de baja
velocidad de transmisión de datos utilizada para crear redes de área personal. Algunas áreas de utilización
incluyen la domótica, la recopilación de datos de dispositivos médicos y otras necesidades de ancho de banda
reducido y baja potencia. Construido en función de la especificación de estándares basados en IEEE
802.15.4, ZigBee está diseñada para ser más simple y económica que otras redes de área personal
inalámbricas, como Bluetooth o wifi. Las aplicaciones basadas en ZigBee incluyen switches inalámbricos de
luz, medidores eléctricos con pantallas domésticas, sistemas de administración de tráfico y otros equipos
industriales y de consumo que requieren una transferencia de datos inalámbrica de rango corto y bajo índice.

Las redes inalámbricas de bajo consumo y bajo costo de ZigBee normalmente se utilizan con dispositivos que
cuentan con una prolongada vida útil de la batería que se utilizan en aplicaciones inalámbricas de monitoreo y
control. La especificación de ZigBee define una velocidad de transferencia de 250 kbps y es más adecuada
para las transmisiones de datos intermitentes.

Al funcionar en la banda de frecuencias de radio industriales, científicas y médicas (ISM), ZigBee se ha vuelto
muy popular para utilizarse en dispositivos IoT. Para incluir las capacidades de ZigBee en sus dispositivos, los
diseñadores de IoT suelen utilizar chips de ZigBee, integrados con radios y con microcontroladores.

La especificación de ZigBee depende de un dispositivo principal denominado coordinador de ZigBee.


Encargado de administrar todos los dispositivos de clientes de ZigBee, el coordinador de ZigBee es
responsable de la creación y el mantenimiento de la red de ZigBee. El coordinador puede hablar hasta con
ocho terminales o routers en cualquier combinación. Si un terminal se encuentra demasiado lejos del
controlador, puede utilizarse un router de ZigBee para conectar los datos entre el coordinador y el terminal.

La Figura 1 muestra un dispositivo ZigBee. La Figura 2 muestra algunas topologías de ZigBee y los roles de
los dispositivos.

Cada solicitud de datos que se envía o recibe de ZigBee utiliza un número de identificación del perfil de la
aplicación. Los números de ID del perfil de la aplicación son números de 16 bits relacionados con perfiles
públicos, los perfiles de fabricación o perfiles privadas.

Por ejemplo, la domótica es un perfil público de aplicación. Este perfil define los dispositivos en red de ZigBee
destinados al uso doméstico, como interruptores, termostatos, calentadores, aires acondicionados y sistemas
de entrada sin llave. Este perfil asegura que los dispositivos de un fabricante interactúen con los dispositivos
de otro.

Los perfiles privados se usan para aplicaciones en las que los dispositivos de proveedores diferentes no
necesitan interactuar.

La Figura 3 muestra un cuadro con algunos ID de perfil público de ZigBee.

Bluetooth

Bluetooth es un protocolo inalámbrico que se utiliza para la comunicación en distancias cortas. Ahora la
mayoría de los dispositivos móviles y accesorios admiten Bluetooth y constituye el estándar por defecto para
el audio entre los dispositivos móviles. La comunicación entre los dispositivos Bluetooth ocurre a través de
una red inalámbrica de rango corto denominada red de área personal (PAN).

Descrito originalmente en IEEE 802.15.1, es ahora supervisado por el Grupo con especial interés en Bluetooth
(SIG, Special Interest Group) encargado de supervisar el desarrollo de la especificación, administra el
programa de calificación y protege las marcas comerciales. Los fabricantes que deseen comercializar
productos como dispositivos Bluetooth deben cumplir con los estándares del SIG en Bluetooth.

Bluetooth funciona en la banda de radiofrecuencias industriales, científicas y médicas (ISM) de rango corto de
2,4 GHz Fue creado por Ericsson en 1994 y se define como un protocolo basado en paquetes. Funciona
basado en una estructura maestro/esclavo. La especificación Bluetooth es antigua y ha atravesado varias
iteraciones de la versión.

Bluetooth de baja energía (BLE, Bluetooth Low Energy), también conocido como Bluetooth Smart, es muy
relevante para IoT. BLE ha vuelto muy popular debido al respaldo del sector de smartphones y de las nuevas
aplicaciones en servicios de salud, bienestar y beacons. Bluetooth de baja energía funciona en la banda ISM
de 2,4 GHz Tiene una velocidad de conexión muy rápida (milisegundos) y una velocidad de transmisión de
datos muy alta (1 Mbps). Luego, el dispositivo de BLE se pone en “modo de suspensión” hasta que se
restablezca la conexión. Esta acción puede prolongar la vida útil de la batería por varios años.

Los beacons utilizan tecnología de BLE que se encuentra incorporada en la mayoría de los smartphones. Los
beacons son nodos pequeños (más pequeños que el ratón de una PC) que pueden colocarse prácticamente
en cualquier lugar. Pueden ubicarse en edificios, en cafeterías y en postes de luz. Su objetivo principal es
proporcionar servicios de ubicación. Por ejemplo, si una persona con un smartphone habilitado para BLE
camina cerca de un beacon, éste enviará su localización al smartphone. Luego depende de la aplicación del
smartphone decidir qué hacer con la información de la ubicación. Esta es una forma de comunicación
unidireccional. Los beacons unidireccionales no requieren una conexión emparejada.

Existe un rápido crecimiento de los teléfonos habilitados para BLE. Debido a esto, el sector de smartphones
está interesado en la extensión del uso de los beacons como una forma de realizar servicios basados en la
ubicación.

En junio de 2016, SIG en Bluetooth anunció Bluetooth 5. La versión 5 tiene cuatro veces más de rango y es
dos veces más rápida que las versiones anteriores. Cuando funciona en modo de la baja energía, Bluetooth 5
alcanza un aumento por ocho en la capacidad de transmisión de datos sobre Bluetooth 4.x. Esto es muy
importante para los dispositivos IoT que dependen de las fuentes de alimentación limitadas. El ancho de
banda de Bluetooth 5 se define en 2 Mbps pero permite que se ajuste el ancho de banda según la aplicación.

Los dispositivos de Bluetooth 5 se esperan para principios de 2017.

4G/5G

Las redes de datos basadas en telefonía móvil también constituyen una opción para IoT. Esta tecnología
avanzada permite que los dispositivos IoT aprovechen las comunicaciones en áreas geográficas extensas.

En los últimos 30 años el sector móvil ha evolucionado exponencialmente; desde la primera generación (1G)
en la década de 1980, la segunda generación (2G) en la década de 1990, la tercera generación (3G) en el
2000, la cuarta generación (4G) en 2010 y ahora la quinta generación emergente (5G) que se espera para
2020.

La cuarta generación (4G) es la actual tecnología basada en telefonía móvil para la transferencia de datos. El
estándar de telecomunicaciones móviles internacionales avanzadas (IMT-Avanzadas, International Mobile
Telecommunications Advanced) define el ancho de banda de cualquier sistema 4G en 100 Mbps para la
comunicación de alta movilidad, como trenes y automóviles, y en 1 Gbps para la comunicación de baja
movilidad, como peatones y usuarios fijos. El ancho de banda alto admitido por los sistemas 4G permite que
se admitan una gran cantidad de aplicaciones en las plataformas móviles. Proporciona soporte para voz,
telefonía IP, acceso a Internet móvil, videollamadas, servicios de videojuegos, computación en la nube,
televisión móvil de alta definición y televisión móvil 3D. Long Term Evolution (LTE) y WiMAX (IEEE 802.16e)
son dos sistemas 4G populares.

La última versión de tecnología 4G LTE es la versión 13e que incluye la estandarización de IoT de banda
estrecha (o NB-IoT, NarrowBand IoT), una tecnología de LPWAN.
Aunque las redes de datos de red celular son una excelente manera de conectar dispositivos IoT, la
tecnología aún es costosa. Los servicios celular insisten con los pagos mensuales vinculados al límite de
datos. Además, el hardware requerido para tener acceso a una red celular también es costoso, principalmente
debido a la propiedad intelectual y al uso de espectros de radiofrecuencia autorizados.

El término 5G, abreviatura de 5.ª generación, es el siguiente conjunto de estándares de telecomunicaciones


propuesto para reemplazar a los estándares actuales de 4G/IMT-Avanzadas. La investigación y el desarrollo
de 5G mejoran las comunicaciones de IoT, al reducir los costos, el consumo de batería y la latencia.

La alianza de redes móviles de última generación define los siguientes requisitos que debe cumplir un
estándar 5G:

 Velocidades de transmisión de datos de decenas de megabits por segundo para decenas de miles de
usuarios

 Velocidades de transmisión de datos de 100 megabits por segundo para áreas metropolitanas

 1 Gb por segundo simultáneamente para muchos trabajadores en el mismo piso de oficinas

 Varias cientos de miles de conexiones simultáneas para redes masivas de sensores inalámbricos

 Eficiencia espectral significativamente mejorada en comparación con 4G

 Mejor cobertura

 Mayor eficacia de la señal


 LoRaWAN
 LoRaWAN es un protocolo de red previsto para elementos inalámbricos que funcionan con batería en
redes regionales, nacionales o globales.
 LoRaWAN es una tecnología inalámbrica diseñada para proporcionar conexiones WAN inalámbricas
para dispositivos limitados en potencia. Categorizada como una red de área amplia de bajo consumo
(LPWAN), LoRaWAN apunta a los requisitos clave de la Internet de las cosas como servicios
bidireccionales seguros de comunicación, movilidad y localización.
 La arquitectura de LoRaWAN a menudo se presenta en una topología en estrella extendida (estrella
de estrellas) en la que los gateways transmiten mensajes entre los terminales y un servidor de red
central se encuentra ubicado en el back-end. Al actuar como puentes transparentes, los gateways se
conectan a los servidores de red de LoRaWAN mediante conexiones IP estándar. Los terminales de
LoRaWAN utilizan comunicaciones inalámbricas al gateway para lograr una conectividad completa a
Internet.
 La velocidad de transmisión de datos de LoRaWAN va desde 0,3 kbps a 50 kbps. Los servidores de
red de LoRaWAN administran la tasa de intercambio de datos en cada dispositivo, mediante una
tecnología denominada velocidad de datos adaptativa (ADR, Adaptive Data Rate), para maximizar la
vida útil de la batería de los terminales y la capacidad general de la red. La seguridad se incorpora en
el estándar LoRaWAN, vía la implementación del esquema de cifrado de varias capas. Se usan
claves únicas en las capas Aplicación, Red y Dispositivo.
 El video a continuación brinda una descripción general de LoRaWAN:
 https://www.youtube.com/watch?v=2Y0bMX3TVi0

 Protección de la red inalámbrica

 Debido a su naturaleza, las redes inalámbricas no tienen límites claros. Proteger las comunicaciones
inalámbricas requiere un cifrado sólido, autenticación y protocolos seguros.
 Acceso protegido por wifi (WPA, wifi Protected Access) y Acceso protegido por wifi II (WPA2) son dos
protocolos de seguridad y programas de certificación de seguridad desarrollados por la wifi Alliance
para proteger las redes de computadoras inalámbricas. Las redes inalámbricas que utilizan WEP o
WPA/TKIP no son muy seguras y son vulnerables ante ataques de hacking.

 WPA2 implementa AES, un algoritmo de cifrado sólido, y es más seguro que WPA. WPA2, una
implementación interoperable de 802.11i, actualmente es la opción más comúnmente implementada
de seguridad inalámbrica. Las redes inalámbricas que utilizan WPA2/AES deben tener una
contraseña de 21 caracteres como mínimo. Si se encuentra disponible una VPN IPsec, debe
utilizarse en cualquier red LAN inalámbrica pública. WPA2 también tiene una característica adicional
denominada tramas de administración protegidas (protected management frames). Esta
característica protege las tramas de administración de unidifusión y multidifusión contra
intercepciones y falsificaciones.

 La autenticación ahora constituye un componente fundamental de la política inalámbrica de la


empresa. La arquitectura 802.11i especifica 802.1x para su autenticación, que conlleva el uso de
EAP y un servidor de autenticación.

 Haga clic aquí para ver un video que resalta la vulnerabilidad de utilizar una zona de cobertura
inalámbrica insegura en una cafetería.

 Cuando se diseña un dispositivo IoT basado en wifi o una red inalámbrica, también deben tenerse en
cuenta varias consideraciones de seguridad como: la selección de un protocolo seguro, la protección
de tramas de administración, la identificación de interferencias de frecuencias, la detección de puntos
de acceso dudosos y el uso de seguridad en la capas de aplicación.

 Una de las amenazas de seguridad inalámbrica más comunes es la presencia de puntos de acceso
dudoso. Un punto de acceso dudoso no se aprueba por su administración pero, de todos modos,
trabaja en la red segura. Los empleados que buscan acceso inalámbrico gratuito o los intrusos con
intenciones más maliciosas pueden configurar estos puntos dudosos. Los administradores de
seguridad deben publicar y aplicar reglas estrictas referentes a los puntos de acceso dudoso,
emplear análisis de puntos de acceso activos para detectar puntos dudosos y utilizar la autenticación
entre los dispositivos en la red.

 Seleccione un protocolo inalámbrico con seguridad sólida y comprobada. Muchos protocolos como
LoRoWAN y Bluetooth proporcionan un cifrado excelente. Aunque ZigBee es uno de los estándares
internacionales de comunicación y es muy fácil de implementar, todavía no es perfecto. Al momento
de la escritura, la versión 1.2 de ZigBee tiene varias vulnerabilidades de seguridad graves y
susceptibles a ataques. La mayoría de estas fallas del diseño de protocolos se relacionan con los
intentos de hacer más fácil que el usuario final agregue un dispositivo de ZigBee a la red de ZigBee.
Debido a estas vulnerabilidades, la versión 1.2 de ZigBee no debe utilizarse en aplicaciones críticas.

 Si bien la mayoría de los protocolos tienen métodos de seguridad integrales, todavía es posible que
se lancen ataques contra las redes celulares. Debido a que la confidencialidad de los datos del
usuario es responsabilidad del proveedor del servicio celular, estos ataques aumentarían el riesgo de
violaciones de datos cuando éstos se transmiten por redes celulares. Por este motivo se recomienda
que la seguridad en forma de autenticación y cifrado de datos esté implementada como parte de las
aplicaciones que utilizan tecnologías como VPN y TLS/SSL.

Modelo de computación en la nube

La computación en la nube es un servicio que ofrece acceso bajo demanda a un grupo compartido de
recursos informáticos configurables. Estos recursos, a menudo implementados fuera de las instalaciones,
pueden estar disponibles rápidamente con un mínimo de esfuerzo de la administración.

Los proveedores de servicios en la nube utilizan centros de datos para sus servicios en la nube y sus recursos
basados en la nube. Para garantizar la disponibilidad de los servicios de datos y los recursos, los proveedores
mantienen a menudo espacio en varios centros de datos remotos.
La computación en la nube admite una variedad de problemas de administración de datos:

 Permite el acceso a los datos de organización en cualquier momento y lugar.

 Optimiza las operaciones de TI de una organización suscribiéndose únicamente a los servicios


necesarios.

 Elimina o reduce la necesidad de equipos, mantenimiento y administración de TI en las instalaciones.

 Reduce el costo de equipos y energía, los requisitos físicos de la planta y las necesidades de
capacitación del personal.

 Permite respuestas rápidas a los crecientes requisitos de volumen de datos.

Con su modelo de “pago según el consumo”, la computación en la nube permite que las organizaciones
consideren los gastos de computación y almacenamiento más como un servicio que como infraestructura. En
términos comerciales, esto significa que los costos iniciales requeridos para configurar una infraestructura de
TI (gastos de capital) ahora se transformaron en gastos operativos.

Actualmente, hay más de 3000 centros de datos en todo el mundo que ofrecen servicios de alojamiento
general a personas y organizaciones. Existen muchos más centros de datos que pertenecen a empresas del
sector privado y que son operados por estas para su propio uso.

La computación en la nube ofrece servicios en las siguientes áreas:

 Infraestructura como servicio (IaaS): un proveedor proporciona el hardware que incluye servidores y
otros componentes de infraestructura que se ajustan bajo demanda. El proveedor se encarga del
mantenimiento del sistema, las copias de seguridad y la planificación de continuidad.

 Plataforma como servicio (PaaS): un proveedor proporciona la plataforma, los servidores, el


almacenamiento y los sistemas operativos para que los usuarios desarrollen e inicien las aplicaciones.

 PaaS móvil (mPaaS): los proveedores proporcionan las capacidades de desarrollo para los diseñadores
y desarrolladores de aplicaciones móviles.

 Software como servicio (SaaS): el software, como la mensajería, el procesamiento de datos de IoT, el
procesamiento de nóminas, los videojuegos y la declaración de impuestos, se autoriza en mediante una
suscripción y se aloja en servidores de nube.
 Servicios en la nube

 Los servicios en la nube son servicios que ofrecen los proveedores de la nube, que se alojan fuera
de las instalaciones y están disponibles bajo demanda. Los clientes en la nube tienen acceso a un
grupo compartido de recursos informáticos configurables que puede abastecerse y lanzarse
rápidamente con un mínimo esfuerzo de administración.

 Debido a la alta disponibilidad y a las grandes propiedades de escalamiento de recursos de los


servicios en la nube, estos servicios son una excelente manera de ampliar la funcionalidad de un
sistema de IoT. El procesamiento y el almacenamiento de datos puede realizarse en la nube en lugar
de los dispositivos IoT. Dado que todos los servicios se encuentran alojados en la nube, los datos y
los recursos siempre están disponibles para cualquier dispositivo del sistema siempre que el
dispositivo tenga conectividad a Internet. Los proveedores de servicios en la nube también se toman
muy en serio la seguridad, verificando que los datos del cliente se mantengan seguros.
 Los sistemas de IoT que requieren comunicaciones de servidores como análisis de datos de la nube
podrían beneficiarse enormemente de un servicio de computación en nube. Los siguientes son
ejemplos de servicios en la nube:

 Amazon AWS: La computación en la nube es un servicio en la nube que proporciona computación


como servicio bajo demanda. Con la computación en la nube, un usuario puede implementar y
comenzar a usar las PC en cuestión de minutos. Debido a que el servicio está diseñado para ser bajo
demanda, los usuarios pueden comenzar con recursos de hardware escasos (memoria y CPU) y
expandirse según sea necesario. Amazon proporciona un excelente servicio de computación en la
nube denominado AWS.

 IFTTT: Abreviatura de “si sucede esto, entonces”, IFTTT permite que se creen URL de recursos
especiales y que se asignen a acciones específicas de IFTTT. Imagine que desea recibir un mensaje
SMS en su teléfono móvil cada vez que alguien camine frente a su casa. Puede instalar fácilmente
un dispositivo IoT con sensor de movimiento para seguir el movimiento pero el intercambio entre ese
dispositivo y el sistema de mensajería del teléfono móvil requerirá algo de trabajo. IFTTT oculta dicha
complejidad al permitir que su dispositivo de seguimiento de movimientos envíe mensajes SMS
simplemente mediante el acceso a una URL web cada vez que el sensor detecte movimiento.
Actualmente IFTTT admite muchas acciones, lo que lo convierte en un servicio en la nube útil para
IoT.

 Zapier: Similar a IFTTT, Zapier también permite la automatización basada en la nube. La diferencia
principal entre los dos servicios es que Zapier está más orientado a los negocios y admite más
aplicaciones y acciones. Otra diferencia importante es que Zapier solo es gratuito si tiene
configuradas hasta cinco acciones (o zaps, como lo llama Zapier). Si se requieren más zaps, debe
crearse una cuenta de pago.

 Built.io: Es un servicio en la nube que ayuda a los desarrolladores a crear aplicaciones como
aplicaciones móviles con un mínimo esfuerzo. Built.io es muy similar a IFTTT y Zapier pero ofrece
una funcionalidad avanzada.

 Cisco Spark : Servicio basado en la nube y centrado en la aplicación que proporciona un paquete de
colaboración completo para que los equipos creen, se reúnan, envíen mensajes, realicen llamadas,
escriban en la pizarra y compartan, independientemente de estar juntos o separados, en una serie de
tareas continuas antes, durante y después de las reuniones. Está diseñado para ayudar a los
equipos a trabajar sin inconvenientes. Es simple, seguro, completo y abierto, y proporciona un
espacio para que las personas trabajen mejor. Las capacidades principales de Cisco Spark son las
reuniones, la mensajería y las llamadas. Puede ser extendida mediante el uso de API de RESTful
abiertas e integradas en otras aplicaciones o sistemas de IoT.

 Modelo de computación en la niebla

 El modelo de computación en la niebla identifica una infraestructura de computación distribuida más


cercana al perímetro de la red. Habilita los dispositivos perimetrales para que ejecuten aplicaciones y
tomen decisiones inmediatas. Esto reduce la carga de datos en redes ya que los datos sin procesar
no necesitan enviarse a las conexiones de red. Aumenta la resistencia al permitir que los dispositivos
IoT funcionen cuando se pierde la conexión a Internet. También aumenta la seguridad al evitar que
los datos sensibles se transporten más allá del perímetro donde se necesitan.

 La computación en la niebla amplía la conectividad de la nube más cerca del perímetro. Permite a los
terminales, como los medidores inteligentes, los sensores industriales, las máquinas robóticas, etc.,
conectarse a un sistema local de cómputo, redes y almacenamiento integrados.

 La computación en la niebla incluye una combinación de soluciones de hardware y software. Algunas


plataformas de computación en la niebla admiten un sistema operativo especial denominado Cisco
IOx. Este sistema operativo básicamente combina CISCO IOS y Linux de código abierto. Esto
permite que un router de IoT ejecute el IOS y una aplicación en la niebla basada en Linux sin tener
que interactuar con la nube.
 Todas las aplicaciones en la niebla monitorean o analizan datos en tiempo real desde elementos
conectados en red y luego tomar medidas como bloquear una puerta, cambiar la configuración de un
equipo, activar los frenos de un tren, acercar con una videocámara, abrir una válvula en respuesta a
una lectura de presión, crear gráfico de barras o enviar una alerta a un técnico para realizar una
reparación preventiva. La acción puede incluir comunicaciones de máquina a máquina (M2M) e
interacciones de máquina a persona (M2P).

 Considere un semáforo inteligente. El semáforo interactúa de manera local con varios sensores que
puedan detectar la presencia de peatones y ciclistas, y mide la distancia y la velocidad de los
vehículos que se aproximan. El semáforo también interactúa con las luces vecinas que proporcionan
un esfuerzo coordinado. De acuerdo con esta información, el semáforo inteligente envía señales de
advertencia a los vehículos que se aproximan y modifica su propio ciclo para prevenir accidentes.
Los datos que obtuvo el sistema de semáforos inteligentes se procesan de manera local para realizar
análisis en tiempo real. La resincronización con los sistemas de semáforos inteligentes cercanos en
la niebla permite cualquier modificación del ciclo. Por ejemplo, puede cambiar la temporización de los
ciclos en respuesta a las condiciones del camino o a los patrones de tráfico. Los datos de los
clústeres de los sistemas de semáforos inteligentes se envían a la nube para analizar los patrones de
tráfico a largo plazo.

 Cisco prevé que el 40% de datos con IoT creados se procesarán en la niebla para 2018.

 Datos en movimiento y datos almacenados

 En pocas palabras, datos en movimiento es un término utilizado para referirse al proceso de extraer
valor de datos mientras se está generando. Es posible que los datos finalmente se almacenen o que
esto no suceda. Es posible pensar en los datos en movimiento como contar una historia a medida
que sucede. Por otra parte, datos almacenados o en reposo son los datos que se han almacenado.

 Una variedad de industrias que dependen de la extracción de valor de los datos antes de su
almacenamiento utilizan los datos en movimiento. Esto incluye los mercados de comercios
minoristas, servicios de salud, fabricación, producción energética, sector público y proveedores de
servicios. Si se cuenta con la infraestructura adecuada, usar datos en movimiento resulta más rápido
y más económico que usar datos almacenados ya que los datos en movimiento son más fáciles de
encontrar y no deben almacenarse.

 Por la gran cantidad de datos producidos por día, ya no es posible duplicar y almacenar todos esos
datos en un depósito de datos centralizado. Las implementaciones emergentes de dispositivos
incluyen una gran cantidad de sensores que capturan y procesan los datos. Las decisiones y
acciones deben producirse en el perímetro, dónde y cuándo se crean los datos. Con los nodos del
perímetro que obtienen más potencia de procesamiento y se vuelven más sensibles al contexto,
ahora es posible acercar los algoritmos de inteligencia y análisis a la fuente de los datos. En este
caso, los datos en movimiento permanece donde se crean y presentan perspectivas en tiempo real,
lo que impulsa mejores decisiones y más rápidas.

 Haga clic en Reproducir en la figura para ver la visión de Cisco de los datos en movimiento.

 Crecimiento de los datos

 La proliferación de dispositivos de IoT es uno de los principales motivos de crecimiento exponencial


de la generación de datos. Mientras que la cantidad de sensores y otros terminales crece
exponencialmente, se utilizan cada vez más los routers móviles para administrar mejor el tráfico de
Internet para los sistemas que están literalmente en movimiento. Los routers móviles se implementan
en aviones, vehículos comerciales e incluso en automóviles personales. No solo IoT está creciendo,
sino que en realidad se están moviendo sus límites. Así como la llegada del roaming inalámbrico
mejoró acceso a Internet, la implementación de redes móviles está cambiando la psicología y el
comportamiento de consumidores y empresas al aumentar las exigencias para el acceso a pedido en
cualquier momento y lugar.

 Imagine un sensor en un semáforo inteligente que recopile datos sobre la cantidad de automóviles
que por allí por minuto. Los datos recopilados serían pocos, lo que requiere un espacio de
almacenamiento reducido. Ahora imagine los semáforos inteligentes en toda una ciudad
metropolitana, como la Ciudad de México D.F. o Londres. Ahora habría miles o millones de sensores
recopilando datos similares sobre el tráfico. En términos de los requisitos de almacenamiento y
análisis, ¿qué requeriría dicho aumento exponencial en la recopilación de datos?

 Todo tiene que ver con los datos

 Los datos se han vuelto cada vez más importantes en los negocios y en la vida cotidiana. Este
crecimiento exponencial de los datos ha creado una nueva área de interés en tecnología y negocios
denominada “datos masivos” (big data). En general, los datos masivos son tan amplios y complejos
que se vuelven difíciles de almacenar, procesar y analizar con aplicaciones tradicionales de
almacenamiento de datos y análisis.

 Los datos masivos generalmente se caracterizan en tres dimensiones: volumen, velocidad y


variedad.

 El volumen describe la cantidad de datos que se transporta y se almacena, El desafío actual consiste
en descubrir formas de procesar con mayor eficacia las crecientes cantidades de datos, que se prevé
que aumenten unas 50 veces para 2020, hasta alcanzar los 35 zettabytes.

 Velocidad describe el ritmo al que se generan estos datos. Por ejemplo, los datos generados por
miles de millones de acciones vendidas en la bolsa de valores de Nueva York no pueden
simplemente almacenarse para un análisis posterior. La infraestructura de red debe poder responder
de inmediato a las demandas de las aplicaciones que tienen acceso y transmiten los datos.

 Variedad describe el tipo de datos, que rara vez se encuentran en un estado que esté perfectamente
listo para procesar y analizar. Los datos no estructurados (archivos de registro aplicaciones,
imágenes, videos, etc.) constituyen un gran colaborador para los datos masivos y se calcula que en
cualquier parte representan entre el 70 y el 90% de los datos del mundo.

 Los datos que son altos en uno o más de las 3 V crean una situación de datos masivos.

 Las características de los datos masivos requieren cambios radicales en la forma que se admiten.
Las plataformas de computación deben poder procesarlos; la red debe poder transportarlos; los
sistemas de almacenamiento deben poder almacenarlos y recuperarlos; y deben tomarse medidas
de seguridad para protegerlos.

 Los datos son muy valiosos; por este motivo, constituyen el motor principal que impulsa los avances
en tecnología. Los datos masivos han impulsado la creación de muchos enfoques nuevos hacia el
almacenamiento y la computación. Apache Hadoop, Spark, Cassandra y Kafka son algunos ejemplos
de proyectos de código abierto que se encargan de diferentes aspectos del almacenamiento, la
computación y la transmisión de conjuntos de datos masivos.

 Packet Tracer: explore el hogar inteligente

 En esta actividad, explorará el ejemplo de hogar inteligente. Según la aplicación, algunos datos se
procesan mejor cerca de la fuente. El ejemplo de hogar inteligente aprovecha la computación en la
niebla para monitorear y responder a los niveles de humo detectados en el hogar.
 Almacenamiento de datos

 Según la aplicación de IoT, es posible que se requiera que los dispositivos IoT almacenen datos
durante un período de tiempo antes de enviarlos para su procesamiento. Esta situación es común
con dispositivos que no mantienen conexiones constantes a sus gateways o controladores. Un buen
ejemplo de esta situación son los rastreadores de vehículos instalados en los camiones de
transporte. Es posible que el sistema esté creado para soportar períodos en los que los rastreadores
se encuentran fuera del alcance y no pueden comunicarse para transmitir la ubicación de camión. Si
esto ocurre, los rastreadores almacenarán los datos en el mismo dispositivo. A modo de ejemplo,
considere un automóvil conectado. Si presenta un daño irreparable, la compañía de seguros podría
optar por subastarlo, junto con los datos del propietario aún almacenados en los dispositivos de
almacenamiento del automóvil. En ambos ejemplos los datos deben mantenerse cifrados para evitar
la alteración o el robo de los mismos.

 Desde hace un tiempo, los dispositivos de almacenamiento portátiles y de escritorio (discos duros y
SSD) han incluido el soporte para el cifrado incorporado. Conocidos como unidades de cifrado
automático, estos dispositivos de almacenamiento se destacan porque la capacidad de cifrado está
incorporada en el controlador de la unidad y permiten que la misma unidad realice el cifrado y el
descifrado, independientemente del sistema operativo.

 Si bien no están incluidos en todos los dispositivo IoT, los fabricantes están comenzando a lanzar
nuevos dispositivos con memoria flash de cifrado automático. Ya sea en formato de dispositivo de
memoria o tarjeta SD, el concepto de dispositivos de almacenamiento con cifrado automático es muy
importante para IoT.

 A menudo, los servicios en la nube confían en los servidores para proporcionar servicio. Deben
cifrarse los datos almacenados en estos servidores para evitar el robo o la alteración de datos.
También es obligatorio realizar copias de seguridad regulares para minimizar las pérdidas en caso de
un desastre.

 Cisco reconoce la necesidad de seguridad y privacidad de datos. Haga clic aquí para leer una
descripción general de la seguridad y privacidad dentro de la plataforma de nube y mensajería de
Cisco Spark.

 Transmisión de datos

 Los dispositivos IoT a menudo son dispositivos pequeños y económicos, con poca o ninguna
seguridad. Aunque estos dispositivos son PC, dependen de recursos informáticos y de memoria
limitados y es posible que no admitan algoritmos de seguridad complejos y en desarrollo. Los
algoritmos de encriptación moderna pueden requerir mayor poder de procesamiento del que está
disponible en IoT. Además de la seguridad física, el dispositivo IoT debe poder proteger su propio
firmware y los datos que transmite. Si los datos no se protegen correctamente mediante la
encriptación, pueden ser interceptados, capturados o manipulados mientras están en tránsito.
Cualquiera de estas acciones pueden poner en peligro la confianza del sistema y hacer que los datos
no sean confiables.

 Para mitigar este problema, asegúrese de que los dispositivos IoT ejecuten la última versión del
firmware y los protocolos. También asegúrese de que todas las comunicaciones se realicen mediante
el uso de protocolos que proporcionen un cifrado seguro de manera predeterminada. El algoritmo de
cifrado debe ser sólido, y los algoritmos más antiguos suelen presentar debilidades susceptibles a
ataques. Independientemente del método de cifrado elegido, asegúrese de todos los terminales
acepten los parámetros más seguros disponibles. Un ataque común es engañar a los dispositivos
para que acepten parámetros de seguridad deficientes por los cuales pueden producirse ataques a la
conexión. También es importante utilizar y verificar los certificados digitales. A menudo esto es un
reto con los pequeños dispositivos IoT debido a su memoria y capacidad de CPU limitadas.
 También deben protegerse los servidores y terminales de la nube y utilizar algoritmos de cifrado
sólido antes de comunicarse con los dispositivos IoT. Si el dispositivo IoT depende de un dispositivo
intermediario como un gateway o un controlador, este dispositivo intermediario también debe utilizar
cifrado sólido. Naturalmente, los dispositivos intermediarios también deben mantenerse actualizados
con el software más reciente para evitar que el dispositivo se convierta en el eslabón débil que rompe
la cadena.

 Capítulo 4: redes, computación en la niebla y en la nube

 La información personal relacionada con la salud, la ubicación, los recursos, las preferencias
personales y las conductas pasan por los dispositivos de IoT en grandes volúmenes. Este aumento
del volumen eleva la importancia del incremento de la atención brindada a la privacidad de los datos
y la protección de los datos.

 Los nuevos protocolos y tecnologías inalámbricas, como ZigBee, Bluetooth, 4G/4G y LoRaWAN, se
han desarrollado para alojar diversos dispositivos de IoT. La tecnología inalámbrica se selecciona en
función del rango de cobertura, los requisitos de ancho de banda, el consumo de energía y la
ubicación de la implementación.

 Las consideraciones de seguridad inalámbrica incluyen: selección de un protocolo seguro, protección


de tramas de administración, identificación de interferencias de frecuencias, detección de puntos de
acceso no autorizados y uso de seguridad en la capas de aplicación.

 La computación en la nube es un servicio que ofrece acceso bajo demanda fuera de las instalaciones
a un grupo compartido de recursos informáticos configurables. La computación en la nube ofrece
servicios tales como IaaS, PaaS, mPaaS y SaaS.

 El modelo de computación en la niebla identifica una infraestructura de computación distribuida más


cercana al perímetro de la red. Habilita los dispositivos perimetrales para que ejecuten aplicaciones y
tomen decisiones inmediatas.

 La proliferación de dispositivos de IoT es uno de los principales motivos de crecimiento exponencial


de la generación de datos. Los datos pueden considerarse como móviles o inmóviles. Los datos
masivos generalmente se caracterizan en tres dimensiones: volumen, velocidad y variedad.

 Los datos almacenados en los servidores deben cifrarse para evitar el robo o la alteración de datos.
Es obligatorio realizar copias de seguridad regulares para minimizar las pérdidas en caso de un
desastre.

 Los dispositivos de IoT deben ejecutar la última versión del firmware y los protocolos; cualquier
comunicación entre los dispositivos debe realizarse a través de protocolos que brinden encriptación
de seguridad predeterminada.

Capítulo 5.

Conectar las cosas

Internet de las cosas (IoT) se trata de conectar lo que no está conectado. Permite acceder por Internet a
objetos a los que, históricamente, no se podía acceder. Con 26 300 millones de dispositivos conectados para
el año 2020 (de acuerdo con la proyección actual del Índice Cisco VNI), el mundo propiamente dicho
“desarrollará un sistema nervioso” y tendrá la capacidad de detectar las crecientes cantidades de datos y de
responder a ellas.

Considerar como ejemplo una red doméstica típica, como la que se muestra en la figura. 1. Se trata de una
LAN pequeña con dispositivos conectados al router del hogar. Algunos dispositivos pueden conectarse al
router mediante una conexión Ethernet cableada. Sin embargo, la mayoría de los dispositivos se conectan al
router mediante la LAN inalámbrica (WLAN). El router doméstico se conecta a Internet a través de un
proveedor de servicios de Internet (ISP) local. El ISP local se conecta a otros ISP, lo que permite el acceso a
sitios web y contenidos de todo el mundo.

Muchas redes domésticas ahora permiten que los dispositivos de IoT se conecten a Internet. Por ejemplo, la
figura 2 muestra una red doméstica que utiliza conexiones de máquina a máquina (M2M) para conectar una
serie de alarmas de incendio y sensores de seguridad en el hogar. Estos sensores se comunican entre sí y
envían datos a través del router de gateway (router doméstico) a un entorno de servidores en la nube donde
se acumulan y analizan los datos.

Las aplicaciones industriales en IoT requieren de un mayor grado de confiabilidad y autonomía en relación con
el requerido para el entorno del cliente. Algunas aplicaciones industriales requieren operaciones y cálculos
que se producen con demasiada rapidez como para depender de la intervención humana. En la figura 3, por
ejemplo, si un smartphone no puede recordarnos una cita, representa un inconveniente. Sin embargo, si el
sistema de frenos de un camión de minería de gran porte falla, las consecuencias pueden ser nefastas para el
conductor y la mina.

La red convergente y los objetos

Cisco estima que el 99% de las cosas que existen en el mundo físico se encuentran desconectadas. Por lo
tanto, IoT experimentará un enorme crecimiento mientras conectamos más de lo desconectado.

Como se muestra en la ilustración, en la actualidad hay muchos objetos conectados mediante un conjunto
disperso de redes independientes y de uso específico. En consecuencia, no se pueden aprovechar en IoT.
Por ejemplo, los automóviles actuales tienen varias redes exclusivas para controlar el funcionamiento del
motor, las características de seguridad y los sistemas de comunicación. Lograr que estos sistemas converjan
en una red común podría ahorrar recursos y simplificar el cableado en un automóvil moderno. Otros ejemplos
son los edificios comerciales y residenciales, que tienen distintos sistemas de control y redes para calefacción,
ventilación y aire acondicionado (HVAC), servicio telefónico, seguridad e iluminación. Por último, en las
fábricas y en los grandes sistemas de producción, se utilizan distintos protocolos y tecnologías para
monitorear y automatizar el proceso de producción. Estas tecnologías recientes también se denominan
Tecnologías Operacionales (OT).

Estas redes diferentes convergirán para compartir la misma infraestructura. Esta infraestructura incluye
capacidades de seguridad, análisis, y administración. A medida que los componentes se conectan a una red
convergente mediante las tecnologías de IoT, se tornan aún más poderosos.

Conexión y digitalización de la industria

IoT conecta objetos y máquinas a Internet. Conecta dispositivos informáticos tradicionales con dispositivos no
tradicionales. En IoT, el M2M permite la comunicación entre máquinas sin necesidad de intervención humana.
Por ejemplo, el M2M se produce en automóviles con sensores de temperatura y del aceite que se comunican
con una computadora integrada.

Haga clic en Reproducir en la figura para ver cómo Cisco desarrolla soluciones de digitalización para todos
los tipos de sectores.

Desafíos relacionados con la conexión de las cosas

Nos hemos embarcado en una nueva ola de digitalización para conectar lo que no está conectado. Para
aprovechar este movimiento de la digitalización, las empresas y ciudades implementan cada vez más
soluciones de IoT. Sin embargo, este rápido aumento en el crecimiento también presenta nuevos desafíos, a
saber:
 Cómo integrar millones de cosas representadas por dispositivos de diversos proveedores que utilizan
aplicaciones personalizadas

 Cómo integrar cosas nuevas a la infraestructura de red existente

 Cómo proteger los dispositivos nuevos, cada uno configurado con diversos niveles de seguridad

Para ayudar a abordar estos desafíos, Cisco presentó un enfoque a IoT denominado Sistema de IoT de Cisco.
Haga clic en Reproducir en la figura para obtener más información sobre el Sistema de IoT de Cisco.

Los seis pilares del Sistema de IoT de Cisco

Cisco introdujo el sistema IoT de Cisco para ayudar a las organizaciones y a los sectores a adoptar soluciones
de IoT. Específicamente, el sistema IoT de Cisco reduce las complejidades de digitalización para la
manufactura, las utilidades, petróleo y gas, transporte, búsqueda, y las organizaciones del sector público.

El sistema de IoT proporciona una infraestructura diseñada para administrar sistemas de gran escala de
terminales y plataformas muy diferentes, y la gran cantidad de datos que crean. El Sistema de IoT de Cisco
utiliza un conjunto de productos nuevos y existentes para contribuir a reducir la complejidad de la
digitalización.

El Sistema de IoT de Cisco utiliza los seis pilares descritos en la figura para identificar elementos
fundamentales.

Soporte de IoT en la industria

Existen diferentes tipos de redes: redes domésticas, redes de Wi-Fi públicas, redes de empresas en
crecimiento, redes empresariales, redes de proveedores de servicios, redes del centro de datos, redes en la
nube, y redes de IoT. Sin importar el tipo de red, todos requieren de dispositivos que ofrezcan conectividad de
red. Sin embargo, el equipo de conectividad de red varía según el tipo de red. Por ejemplo, las redes
domésticas suelen estar compuestas por un único router inalámbrico de banda ancha, mientras que las redes
empresariales tienen varios switches, puntos de acceso (AP), firewalls, routers y más.

El principio básico de la conectividad de red IoT de Cisco identifica los dispositivos que pueden utilizarse para
proporcionar conectividad de IoT a muchas industrias.

Haga clic en Reproducir en la figura para ver un video sobre cómo la tecnología Digital Ceiling de Cisco
transforma la experiencia de trabajo al interior.

Cada sector posee cosas comunes y particulares que necesita conectar. Esto significa que hay diferentes
tipos de equipos en distintas ubicaciones y condiciones. Por estos motivos, los dispositivos de IoT industriales
tienden a fabricarse con estándares más elevados y resistentes que los de la mayoría del resto de los
dispositivos de red.

Dispositivos de IoT industriales

El principio básico de la conectividad de red IoT de Cisco identifica los siguientes dispositivos de diseño
específico. Los dispositivos Cisco que se muestran en las figuras 1 a 4 cuentan con la certificación
correspondiente para cumplir con elevados estándares ambientales. Entre otros, se incluyen:

 Routers industriales (figura 1)

 Switches industriales (figura 2)

 Tecnología inalámbrica industrial (figura 3)

 Redes integradas (figura 4)

Estos dispositivos pueden admitir una variedad de interfaces de comunicación, entre ellas Ethernet, serial,
celulares, WiMAX, malla de radiofrecuencia (RF), LoRaWAN y otros protocolos de IoT. Estos dispositivos
pueden proporcionar datos seguros, voz y comunicaciones de video.

Haga clic aquí para obtener más información sobre los productos de conectividad de red de IoT de Cisco.

Administración de dispositivos

Los dispositivos de red envían y reciben diferentes flujos de tráfico. Estos flujos de tráfico se pueden agrupar
en tres categorías diferentes: tráfico de datos, tráfico de control y tráfico de administración. Estos flujos tienen
diferentes funciones y, en consecuencia, el dispositivo en sí suele describirse como compuesto por tres
planos: el plano de datos, el plano de control y el plano de administración.

 Plano de datos: también llamado plano de reenvío, es una abstracción lógica de todas las actividades
realizadas por los dispositivos para recibir datos de otros dispositivos y reenviarlos al siguiente
dispositivo en su trayecto hacia el destino.

 Plano de control: aquí es donde debería tomarse la decisión sobre qué ruta deben seguir los datos. El
plano de control de dispositivos adyacentes permite intercambiar información para encontrar la mejor
estrategia para reenviar los datos. Esto es lo que sucede en el enfoque estándar de routing.

 Plano de administración: el tráfico en este plano se utilizará para acceder al dispositivo en sí. Aquí es
donde, en el caso de una red estándar de TI, el administrador de red se conecta para modificar la
configuración o actualizar el software que se ejecuta en el dispositivo.
La administración de los nodos de IoT a menudo se realiza con un enfoque estándar de conexiones remotas
con Telnet, SSH o interfaces web. Sin embargo, este enfoque no es escalable debido a la gran cantidad de
dispositivos de IoT. Para administrar correctamente estas grandes cantidades de dispositivos, se requiere de
una forma de administración más automatizada.

Hasta hace poco tiempo, algunos fabricantes de dispositivos no prestaban atención al hecho de asegurar la
gestión del canal de comunicación a los terminales. El uso de contraseñas predeterminadas y protocolos de
conexión remota no seguros derivó en la transformación de cientos de miles de cámaras IP a un vector de
ataque para el mayor ataque de Denegación de servicio distribuida ocurrido hasta la fecha.

Haga clic aquí para obtener más información sobre la botnet de IoT Mirai.

El plano de administración contribuye a administrar el dispositivo, mientras que el plano de datos reenvía la
información. Sin embargo, la seguridad provista por los dispositivos de IoT debe examinarse en detalle.
Asegurar el plano de administración del dispositivo resulta fundamental para evitar su uso inadecuado. ¿Es
seguro el firmware que se ejecuta en el dispositivo? ¿Podemos confiar en el productor del dispositivo para
incorporarlo a nuestra red doméstica?

Recuerde que es en nuestro hogar donde nos sentimos seguros para usar los servicios bancarios en línea,
presentar nuestros impuestos de manera electrónica o consultar nuestros registros médicos.

¿Está seguro de que el hermoso timbre que utiliza su red de Wi-Fi no permite la fuga de información a algún
tipo de servidor de dudosa procedencia?

Asegurar los planos de datos y administración en IoT

Existen diversos métodos para garantizar el plano de control, incluido el uso de contraseñas seguras y cifrado
de datos. Por ejemplo, tomemos el ejemplo de una cafetera inteligente con un microcontrolador incorporado y
conectividad Wi-Fi. El fabricante de la cafetera se puede conectar a la red y controlarla con una aplicación
desde un dispositivo inteligente. Los mensajes intercambiados entre la cafetera inteligente y el dispositivo
inteligente se cifran para proteger el plano de control.

El plano de administración suele estar protegido por medio de la actualización del sistema operativo (OS) (o
firmware) en el dispositivo de IoT. Sin embargo, esto a veces se pasa por alto. Por ejemplo, ¿se actualiza con
regularidad la cafetera inteligente? ¿Qué sucedería si un atacante descubre una vulnerabilidad en el modelo
de la cafetera? ¿Puede verse comprometida y utilizarse como plataforma de lanzamiento para infringir
ataques más dañinos?

Estas son algunas cosas que se pueden hacer para minimizar el problema que surge cuando la integridad de
su red se ve comprometida por la incorporación de un dispositivo de IdC:

 Asegúrese de que el nuevo dispositivo de IoT pueda actualizarse fácilmente.

 Compre de fabricantes de confianza.

 Conecte los dispositivos de IoT a un segmento diferente de la red o conéctelos a otra LAN virtual
(VLAN).

 Busque e implemente actualizaciones del sistema de manera regular.

 Asegúrese de que los nombres de usuario/las contraseñas predeterminados se hayan cambiado.

 Asegúrese de que el acceso administrativo al dispositivo sea posible únicamente desde redes
confiables.

 Desactive todos los servicios innecesarios.


Protección de las cosas con el Sistema de IoT de Cisco

IoT puede introducir nuevos vectores de ataque que no suelen encontrarse en las redes empresariales
habituales.

El pilar de la seguridad del Sistema de IoT de Cisco ofrece soluciones escalables de ciberseguridad, lo que
permite que la organización pueda detectar, contener y solucionar los ataques de manera rápida y efectiva
para minimizar el daño.

Estas soluciones de ciberseguridad incluyen:

 Seguridad de tecnología operacional (OT): OT es el hardware y software que permiten que las
plantas de la fábrica funcionen y que se ocupan de administrar las líneas de proceso de la fábrica.

 Seguridad de la red de IoT: incluye los dispositivos de seguridad de redes y perimetrales, como
switches, routers y dispositivos de firewall de ASA.

 Seguridad física de IoT: incluye la videovigilancia que puede implementarse en una amplia variedad de
entornos.

Haga clic en Reproducir en la figura para ver un video sobre las soluciones de Seguridad de IoT de Cisco.

Mercados horizontales

El mercado horizontal satisface las necesidades comunes o similares de una amplia variedad de sectores,
como servicios de salud, manufactura, energía y servicios públicos. Como se muestra en la figura, las
empresas de seguridad, las empresas de tecnología de la información y las empresas financieras son
ejemplos de sectores que operan en mercados horizontales. Por ejemplo, una empresa de seguridad
informática proporciona soluciones para proteger el hardware, el software y la información para una amplia
variedad de sectores.

Los productos para mercados horizontales se comercializan a distintas empresas. Tienden a ser menos
especializados que un producto diseñado para un cierto tipo de industria con necesidades específicas. Por
ejemplo, una empresa que se especializa en sistemas de iluminación inteligentes de IoT puede comercializar
a cualquier cantidad de distintos tipos de clientes, entre los que pueden mencionarse ciudades, fabricantes,
prestadores de servicios de salud y consumo hogareño.

Mercados verticales

Un mercado vertical está compuesto por empresas que ofrecen productos y servicios a un conjunto de
clientes con necesidades especiales. Por ejemplo, el equipo de manufactura que se utiliza en la fabricación de
semiconductores o el software de registro de visitantes utilizado por la industria hotelera son productos
específicos del sector respectivo. Entre los mercados verticales comunes, pueden mencionarse el automotriz,
la actividad bancaria, la educación, los servicios de salud, el comercio minorista y los sectores tecnológicos.

La figura muestra un ejemplo de servicios de IoT que pueden ofrecerse en mercados verticales.
Soluciones integradas

Independientemente del sector, IoT crea nuevas oportunidades para la interacción y la relación entre una
variedad de dispositivos conectados. La integración de los dispositivos de IoT crea un sistema interconectado
que aporta valor. Estos dispositivos, componentes y servicios seguirán conectándose de las maneras
tradicionales. Sin embargo, la integración habilitada por IoT genera nuevas oportunidades empresariales y
experiencias del cliente.

Por ejemplo, un estadio deportivo conectado puede reunir todas las formas de comunicación y entretenimiento
en una sola red. Los lugares, equipos y seguidores están conectados de nuevas maneras, y se crean nuevos
niveles de valor para todos, como se muestra en la figura.

IoT no se trata exclusivamente de la conexión de dispositivos individuales. También se trata de la integración


de dichos dispositivos como un sistema integral, con un enfoque holístico. El resultado es un valor más
elevado y beneficios en general, que, exponencialmente, son superiores de lo que puede ofrecer cada
dispositivo individual.

Internet industrial

Internet industrial es un término que hace referencia a la integración de la maquinaria física compleja con los
sensores conectados y el software. Debido a la creciente incorporación de IoT, los datos están cada vez más
disponibles, los sensores son cada vez más sofisticados y el procesamiento informático se está volviendo
menos costoso. Estos hechos contribuyen a la recopilación y el análisis de datos de diversos sectores con el
objetivo de colaborar con el proceso de toma de decisiones.

Por ejemplo, los automóviles autónomos utilizan datos ambientales, datos visuales en tiempo real y
localizadores de GPS para permitir que el automóvil se traslade de manera segura a su destino evitando los
obstáculos.
Internet industrial aun se encuentra en su primera etapa de desarrollo. En este momento, la aplicación más
común es el mantenimiento predictivo. Los equipos, como trenes, aviones, MRI y escáneres de CT registran
ciertos factores, como horas de funcionamiento, niveles de resultados de las partes principales e información
ambiental que afecta al equipo. Según los datos recopilados y analizados, el dispositivo puede predecir
cuándo requiere mantenimiento. Esto ahorrará tiempo de inactividad inesperado y accidentes potenciales
producto de maquinarias defectuosas.

Los expertos predicen que Internet industrial aportará billones de dólares a la economía global en los
próximos años.

Desafíos en los servicios de salud

El sector de servicios de salud se centra en las propuestas de valor que aportan un mejor estado de salud
para las poblaciones, mejor atención para los individuos y reducción de los costos.

Sin embargo, el sector de servicios de salud experimenta importantes desafíos:

 Población cada vez con más años

 Servicios de alta demanda

 Falta de especialidades médicas clave

 Crecientes costos médicos


Cisco trabajó con el sector de servicios de salud para ayudarlo a brindar mejor atención y salud. Cisco utiliza
IoT para ayudar a los proveedores de servicios de salud a reducir los costos, mejorar la productividad
y brindar una mejor atención a las personas en las comunidades rurales y en los centros urbanos.

Soluciones de atención a distancia de Cisco

Para permitir exámenes y consultas a pacientes remotos, simplificar flujos de trabajo y mejorar la
colaboración, Cisco ofrece las siguientes propuestas de valor en lo que respecta a la atención a la distancia:

 Atención extendida de Cisco: facilita la atención del paciente remoto y la interacción con el equipo de
atención.

 Cisco TelePresence para los servicios de salud: vincula personas a nivel global para la capacitación,
la consulta y la colaboración, especializada.

 Cisco WebEx para los servicios de salud: facilita la colaboración, la capacitación, y la educación
remotas del paciente.

Haga clic en Reproducir en la figura para ver cómo Cisco ofrece una propuesta de valor de servicios de salud
para niños en regiones remotas de Brasil.

Soluciones (Cisco) Clinical Workflow

Cisco trabajó con el sector de servicios de salud para ayudarlo a brindar mejor atención en las instalaciones
de los proveedores de servicios de salud. Cisco aporta las siguientes soluciones para el flujo de trabajo en
clínicas:

 Cisco Virtual Patient Observation: monitorea a los pacientes de manera remota desde una ubicación
centralizada.

 Conectar a pacientes de Cisco: ofrece información médica personalizada, transmisión de medios y


servicios de voz y video a cualquier dispositivo ubicado en la habitación del paciente.

 Cisco Healthcare Intelligent Contact Center: equipa a los agentes del centro de llamadas para ayudar
a los pacientes de manera proactiva.

 Servicios de salud de Cisco, sensibles al contexto (y a la ubicación): integra la ubicación y la


información del sensor para responder con mayor rapidez a los pacientes.

 Digital Media Suite para servicios de salud: administra la educación y la capacitación en materia de
servicios de salud a nivel central.

Haga clic en Reproducir en la figura para ver un video sobre cómo Conectar al paciente de Cisco ayuda a los
proveedores de servicios de salud a comprometerse con pacientes, visitantes y personal del hospital en todos
los puntos en el recorrido de los servicios de salud.

Cisco Healthcare Intelligent Contact Center

Cisco también proporciona las siguientes soluciones de administración para proveedores de servicios de
salud:
 Servicios de Cisco para la salud conectada: recurre a los expertos en servicios de salud para
planificar, desarrollar y administrar una red que satisfaga las necesidades clínicas, empresariales y de
cumplimiento.

 Red de grado médico de Cisco: crea una base de red que admite el crecimiento y las necesidades
específicas de los servicios de salud.

Haga clic aquí para descargar el cartel de red de grado médico que ofrece información detallada sobre la Red
de grado médico de Cisco.

Haga clic aquí para ver más información sobre cómo Cisco ayuda a ofrecer soluciones de servicios de salud.

Desafíos afrontados por las ciudades modernas

Se ha previsto que, en los próximos 10 años, el 70 por ciento de la población mundial vivirá en ciudades. A
medida que las poblaciones se desplazan a las zonas urbanas, se presiona a los líderes de las comunidades
para que den respuesta a los siguientes problemas:

 Sobrepoblación

 Incremento en la contaminación

 Mayor congestión de tráfico

 Estacionamiento inadecuado

 Infraestructuras inadecuadas que derivan en el uso ineficiente del alumbrado público, el agua, y la
gestión de residuos

 Necesidad de crecimiento continuo

 Presión de brindar ciudades más seguras

 Limitaciones de recursos y presupuestos

La digitalización es una herramienta poderosa para que las ciudades se mantengan un paso adelante del
aluvión de urbanización. IoT puede crear soluciones comunitarias para comenzar a resolver estos problemas,
como se describe en la figura.

Soluciones Cisco Smart+Connected

Los segmentos de clientes de una ciudad incluyen a ciudadanos, visitantes, partners del sector, negocios y
operaciones municipales. Las ciudades inteligentes deben abordar las necesidades de estos segmentos y
brindar propuestas de valor a los ciudadanos. En la figura, se describen las seis propuestas de valor.

Cisco ha desarrollado Cisco Smart+Connected Communities para aportar un enfoque holístico con nuevos
modelos comerciales, soluciones y servicios para comunidades de todo el mundo. La red es la base de la
ciudad administrada y los servicios comerciales.

Ciudad inteligente: Hamburgo, Alemania


Haga clic en Reproducir en la figura para ver cómo la ciudad de Hamburgo, Alemania, se ha transformado en
una ciudad inteligente.

En las próximas páginas, se destacarán algunas de las soluciones Smart+Connected. Haga clic aquípara leer
más sobre las soluciones Smart+Connected Communities.

Haga clic aquí para leer sobre las ciudades que implementaron parte de la solución Smart+Connected
Community para convertirse en una ciudad inteligente.

Wi-Fi Cisco Smart+Connected

La infraestructura de red Wi-Fi Cisco Smart+Connected conecta a las personas, los datos, los dispositivos, los
procesos y los servicios de la ciudad. Las ciudades ahora pueden solucionar los problemas críticos de
estacionamiento, administración de tráfico, iluminación, agua y gestión de residuos, entre otros, en una
infraestructura compartida de red inteligente.

Las propuestas de valor proporcionadas por Smart+Connected Wi-Fi a otros segmentos de clientes incluyen:

 Servicios a los ciudadanos: el Wi-Fi público permite que los ciudadanos accedan a Internet.

 Servicios de la ciudad: servicios basados en la ubicación que contribuyen a que los planificadores de
la ciudad adquieran datos prácticamente en tiempo real.

 Servicios empresariales: las aplicaciones de turistas virtuales brindan a los visitantes acceso a datos
históricos e ideas para visitar puntos de referencia.

 Comercio de la ciudad: los comerciantes publican ofertas y negocios orientados a los ciudadanos en
función de su ubicación.

 Servicios de administración de la infraestructura: las aplicaciones de estacionamiento proporcionan


a los ciudadanos información sobre disponibilidad de estacionamiento en tiempo real. Las aplicaciones
de tráfico proporcionan a los operadores de tráfico una vista en tiempo real de las condiciones y los
accidentes de tránsito, que permiten reducir el tiempo de respuesta.

Iluminación Cisco Smart+Connected

La solución de iluminación Smart+Connected es un sistema basado en normas para obtener una amplia
variedad de datos del entorno. Los datos que se recopilan incluyen niveles de humedad, CO2 y O2, luz UVA y
UVB, materia particulada, movimiento y actividad sísmica, videos, sonidos y más.

Las ciudades que utilizan esta solución pueden hacer lo siguiente:

 Reducir drásticamente el consumo de energía, los costos y el mantenimiento de la ciudad

 Mejorar el cumplimiento de los vehículos de los ciudadanos y aumentar la detección de infracciones y


los ingresos de la ciudad

 Mejorar el conocimiento de la situación, la colaboración en tiempo real y la toma de decisiones entre las
agencias de la ciudad

 Agregar innovaciones inteligentes, basadas en sensores de IoT al transporte, los servicios públicos, la
seguridad pública y el monitoreo del entorno sin agregar una infraestructura física significativa
 Estacionamiento y tráfico Cisco Smart+Connected

 El treinta por ciento de la congestión de tráfico hacia el centro de la ciudad se debe a conductores
que buscan un lugar para estacionar. El veinticinco por ciento de la congestión de tráfico en las
autopistas de EE. UU se debe a accidentes automovilísticos. Las ciudades inteligentes pueden
abordar estas dos propuestas de valor al simplificar el estacionamiento y mejorar el flujo de tráfico.

 La solución de estacionamiento Cisco Smart+Connected proporciona a los ciudadanos información


en tiempo real sobre el estacionamiento disponible y les permite reservar espacios disponibles por
adelantado por medio del uso de aplicaciones móviles. Los resultados son una menor congestión de
tráfico y una asociación más eficaz entre ciudades, ciudadanos, empresas locales y organismos de
cumplimiento con las leyes de estacionamiento.

 La solución de tráfico Cisco Smart+Connected aporta una perspectiva de patrones de tráfico urbanos
de modo que las autoridades de tráfico puedan ofrecer una mejor planificación de respuesta
inmediata ante incidentes y, también, respuestas a largo plazo ante incidentes.

 Haga clic aquí para ver un video de Santander, España. La infraestructura de ciudad inteligente de
Santander redujo la congestión vial en el centro de la ciudad en un 80%.

 Centro de operaciones Cisco Smart+Connected

 A medida que las ciudades se esfuerzan por ofrecer una mayor capacidad de respuesta a las
necesidades de los ciudadanos, recurren a la flexibilidad de las redes de voz, video y datos
convergentes. Los centros de comandos de operaciones suelen recopilar datos y videos de distintas
fuentes. Las ciudades buscan cada vez más una visión de los datos personalizada, integrada y de
una sola interfaz.

 La solución del centro de operaciones Cisco Smart+Connected muestra un sensor, un mapa y datos
de video mediante un único diseño. Permite que los operadores controlen las actividades dinámicas
que implican el procesamiento de imágenes, la transmisión de video, la integración de datos y las
alertas.

 Desafíos en la energía

 La población creciente, el desarrollo urbano y la creciente dependencia en los dispositivos eléctricos


implican una exigencia para los proveedores de energía en muchos países. Los proveedores de
energía también sufren una presión cada vez mayor para utilizar fuentes de energía con emisiones
reducidas de carbono en lugar de combustibles fósiles.

 ¿Podemos tener un mundo sustentable y moderno? Estamos en una encrucijada. Si el mundo debe
ser sustentable, entonces se necesitan distintas maneras de pensar en la energía y en la forma en
que se la consume.

 Soluciones de IoT para la matriz eléctrica

 Impulsados por las obligaciones regulatorias para suministrar electricidad con bajo nivel de emisiones
de carbono, aumentar la satisfacción del cliente y lograr una mayor confiabilidad en el servicio, los
servicios públicos necesitan contar con una matriz eléctrica más ágil y moderna.

 Una solución de las soluciones parciales propuestas es la llamada red de distribución eléctrica
inteligente. El paradigma clave de la energía en la época eléctrica radica en la producción
centralizada de electricidad que fluye en un sentido, desde el productor hasta el consumidor. La red
de distribución eléctrica inteligente es un nuevo paradigma de interconexiones mucho más complejas
entre productores, instalaciones de almacenamiento y consumidores de electricidad.

 Como se muestra conceptualmente en la figura, la red de distribución eléctrica inteligente interactúa


con los hogares inteligentes, las fuentes de energía renovable, los clientes, las operaciones, la
distribución y los vehículos eléctricos. Una red de distribución eléctrica inteligente aporta la noción de
muchos hogares individuales, edificios, y redes más pequeñas que generan energía no solo para
ellos mismos, sino que devuelven la energía a la red para que otros hagan uso de ella.

 Haga clic aquí para ver un video que proporcione una explicación simple de las redes de distribución
eléctrica inteligente.

Soluciones de redes de distribución eléctrica inteligente de Cisco

Cisco proporciona y admite muchas soluciones de red de distribución eléctrica inteligente, a saber:

 Arquitectura de GridBlocks: brinda una vista moderna sobre cómo integrar la matriz eléctrica a una
red de comunicaciones digitales

 Servicios de matriz conectada: funcionan de manera conjunta con los servicios públicos con el
objetivo de planificar y diseñar arquitecturas de red confiables y con un alto nivel de seguridad

 Red de área de campo: ofrece mayor valor a partir de una plataforma multiservicio

 Transmisión y subestación: incluye routers y switches industriales para hacer frente a los entornos
más exigentes de la subestación

 Seguridad de la matriz: incluye tecnología de seguridad física y cibernética, y servicios para abordar el
cumplimiento reglamentario y la mitigación de amenazas

 Operaciones de la red: colabora para que las operaciones de los servicios públicos puedan administrar
redes de comunicaciones de red de distribución eléctrica inteligente convergentes

Haga clic aquí para obtener más información sobre estas soluciones.

Haga clic en Reproducir en la figura para ver de qué manera BC Hydro contribuyó a aumentar la eficiencia y
la satisfacción del cliente con la ayuda de las tecnologías de Cisco.

Desafíos de fabricación

La manufactura debe enfrentarse al desafío permanente de incorporar nueva tecnología innovadora a la


infraestructura existente de la planta. Esto puede causar problemas de integración entre la red de tecnología
operacional (OT) y la red de TI. Muchas plantas de fabricación deben administrar varias redes de OT en silos.
Estas redes en silos suelen estar a cargo de la operación y del mantenimiento realizados por distintos equipos
con diferentes requisitos. Esta diversidad en las redes incrementa los costos y la complejidad.

También puede haber problemas con la visibilidad. Por ejemplo, considere el resultado que aparece en la
estación de la consola de la planta en la figura. Existiría un problema de visibilidad de red si el ingeniero de
red conectado a la red de TI no pudiese ver la pantalla de la consola de la planta ya que pertenece a una red
de OT.

La falta de integración y visibilidad conducen a una amplia variedad de problemas, a saber:


 Operaciones poco eficientes

 Tiempos de respuesta lentos en la fábrica y el mercado

 Calidad de control deficiente

 Altos gastos adicionales

 Seguridad comprometida

Actualmente, los cambios importantes en la fabricación de equipos y maquinarias se encuentran impulsados


por la necesidad de optimizar las operaciones y desarrollar servicios que distingan la experiencia del cliente.

Soluciones de IoT para la fabricación

Para superar estos desafíos, las soluciones de IoT mejoran el negocio de manufactura al conectar a las
personas adecuadas con la información correcta. Para las personas implicadas en todos los aspectos del
proceso de manufactura, los sensores conectados proporcionan un nivel único de visibilidad de las
operaciones de fábrica y del flujo de la cadena de abastecimiento. A medida que se recopilan datos, pueden
contribuir a identificar las tendencias y las relaciones que revelan oportunidades para mejorar los procesos de
fabricación.

Por ejemplo, las empresas automotrices ahora usan datos de sensores para decidir si las condiciones para
pintar un automóvil son favorables. Si el sistema determina que las condiciones son desfavorables (p. ej.,
demasiado húmedo), el automóvil se enruta a otra área del proceso de fabricación. Esto reduce la necesidad
de volver a pintar y maximiza el tiempo de funcionamiento de la planta.

Haga clic en Reproducir en la figura para ver un video de cómo se utilizan la digitalización y la IoT en la
fabricación.

Soluciones de fabricación de Cisco

Cisco brinda las siguientes proposiciones de valor de fabricación de IdC:

 Fábrica conectada de Cisco: ofrece mejora en la seguridad, eficiencia operativa y productividad


operativa a partir del uso de una red segura, unificada para toda la fábrica

 Máquinas conectadas de Cisco: aporta mejoras para el negocio, como eficacia general del equipo
(OEE), monitoreo de equipos, optimización de máquinas y procesos, y mantenimiento predictivo

 Operaciones seguras de Cisco: ofrece protección contra riesgos, mejora la eficiencia y reduce el
tiempo de inactividad del sitio

 Cadena de abastecimiento conectado de Cisco: aporta mayor flexibilidad y agilidad a la cadena de


abastecimiento

 Herramientas de comunicaciones y colaboración de Cisco: mejora la comunicación y reduce el


tiempo de inactividad

Haga clic en Reproducir en la figura para ver de qué manera Cisco ayudó a Camiones Daimler a ofrecerles a
los clientes vehículos personalizados con mayor rapidez y nivel de efectividad, controlar los costos al impulsar
la eficiencia y el tiempo de actividad de los procesos de fabricación, y mejorar la agilidad y la escalabilidad
para admitir futuras necesidades de producción.

Haga clic aquí para obtener más información sobre las soluciones de IoT para la fabricación de Cisco.

Capítulo 6

Capítulo 6: Arquitectura para datos masivos e ingeniería de datos

Este capítulo comprendió cómo el centro de datos virtualizado admite datos masivos y análisis. Los datos se
pueden procesar casi inmediatamente después de que se generan, cerca del origen de su creación en la red
(computación en la niebla). Los centros de datos son ubicaciones centralizadas que contienen una gran
cantidad de equipos de computación y red. Estos equipos se utilizan para recopilar, guardar, procesar,
distribuir y proporcionar acceso a grandes cantidades de datos. Su función principal es mantener servicios de
informática disponibles cuando y en cualquier lugar necesarios. Los centros de datos se ocupan generalmente
de información confidencial o exclusiva; por lo tanto, estos sitios deben asegurarse física y digitalmente.

Los sistemas operativos (SO) separan las aplicaciones del hardware. Los SO crean una “abstracción” de los
detalles de los recursos de hardware a la aplicación. La virtualización separa el SO del hardware. Un sistema
informático consta de las siguientes capas de abstracción: aplicaciones, SO, firmware y hardware. Los centros
de datos pueden utilizar la virtualización para reducir costos y para ampliar sus ofertas como proveedores de
la nube. Algunas de estas ofertas son SaaS, PaaS y IaaS. La virtualización de almacenamiento combina el
almacenamiento físico de los dispositivos de almacenamiento de red múltiples en lo que parece ser un único
dispositivo de almacenamiento. La virtualización de redes (Network Virtualization o NV) es la creación de
redes virtuales dentro de una infraestructura virtualizada.

La próxima sección analizó la ingeniería de datos. La ingeniería de datos generalmente implica un sistema de
información empresarial basado en computadoras, que captura o genera, procesa, almacena, distribuye y
analiza información (datos). El ingeniero de datos crea una infraestructura que admite datos masivos. Diseña
y construye la plataforma en la que todos estos datos se almacenan y se procesan. Los ingenieros de datos
también administran todos estos datos. Aseguran la accesibilidad y la disponibilidad por parte de los
científicos de datos y los analistas de datos.

En el contexto de los datos masivos, la escalabilidad significa el diseño de una solución que pueda satisfacer
las demandas del crecimiento exponencial de grandes empresas. Es la capacidad de escalar almacenamiento
de datos y también informática. Mantener la disponibilidad es la principal preocupación para varias compañías
que trabajan con datos masivos. Es sumamente costoso para una empresa en línea como Amazon no poder
procesar miles de transacciones en todo el mundo inmediatamente. La tolerancia a fallas es similar a la
disponibilidad en que las necesidades comerciales de una empresa requieren estar constantemente en línea y
disponible todo el tiempo. La seguridad en estas plataformas se logra en gran medida con sitios web de
HTTPS con Transport Layer Security TLS.

El sistema de archivos distribuidos Hadoop (HDFS) es el sistema de archivos donde Hadoop almacena datos.
MapReduce es un marco de procesamiento distribuido para paralelizar algoritmos a través de una gran
cantidad de servidores genéricos, con la capacidad de administrar los conjuntos de datos masivos. Hadoop no
es una sola aplicación, sino un ecosistema de aplicaciones de trabajo conjunto.

La tercera sección explica cómo un plan de datos masivos suministra los datos para el análisis de IdC de
transmisión. En el formato básico, el plan de datos masivos consta de tres componentes: adquisición,
almacenamiento y procesamiento de datos (informáticos). Se utiliza Kafka para transmitir datos de transmisión
en tiempo real entre los distintos sistemas y aplicaciones.

Los datos masivos son el término para los volúmenes de datos extensos que creamos constantemente de una
enorme cantidad de fuentes de datos. También se refieren a grandes cantidades de datos que hemos
almacenado. Cassandra utiliza Cassandra File System (CSF). CSF no es una arquitectura maestro-esclavo
como HDFS. Cada nodo del grupo es el mismo, una implementación entre pares. Cassandra es un sistema de
administración de código abierto de bases de datos distribuidas NoSQL. Spark es un motor de procesamiento
de datos distribuido de código abierto que se utiliza para trabajos de datos masivos. En un esfuerzo para
converger análisis de datos históricos y de datos en tiempo real, se creó la arquitectura de lambda. Lambda es
una arquitectura de procesamiento de datos que utiliza el procesamiento de flujo y el procesamiento en lote
para obtener visiones precisas de datos “en vivo” y datos en lote.

La última sección de este capítulo presenta las prácticas de laboratorio de procesamiento de imagen. Algunas
de las técnicas en este curso se pueden aplicar a los datos de medios digitales. Las imágenes digitales se
pueden transformar en matrices numpy que pueden ser analizadas como si fueran matrices de cualquier otro
tipo de datos. Las técnicas de aprendizaje automático se pueden utilizar para analizar funciones de datos de
medios digitales.

Análisis del perímetro y análisis de la nube

Transformar datos en conocimientos valiosos requiere la computación y la capacidad de almacenamiento. Las


distintas arquitecturas de IdC tienen enfoques ligeramente diferentes sobre dónde y cuándo se procesan y se
almacenan los datos. Por ejemplo, en la arquitectura dispositivo-red-nube, todos los puntos de datos
recopilados por sensores que se incluyen en el dispositivo conectado se envían directamente a la nube para
almacenamiento y procesamiento. Esto es lo que sucede con la mayoría de los dispositivos portátiles
utilizados para hacer un seguimiento de ejercicio físico. Los datos recopilados por el dispositivo inalámbrico se
envían a la nube. Allí, se transforman usando análisis descriptivo y se entregan al usuario en el perfil de la red.

Este modelo de arquitectura es simple pero no escalable. Cuando los números de sensores aumentan junto
con la cantidad de puntos de datos generados, o cuando el procesamiento de datos requiere un tiempo de
respuesta mucho más breve, aquellas son situaciones donde los datos necesitan procesarse más cerca de
donde se generan. Aquí es donde se utiliza la arquitectura dispositivo-gateway-red-nube. Según la aplicación,
los datos se pueden procesar casi inmediatamente después de que se generan, muy cerca del origen de su
creación en el gateway u otros lugares intermedios en la red. Esto se denomina computación en la niebla. Se
denomina niebla porque es similar a la “nube” pero está más cerca del suelo. Esta área de origen también se
conoce como el perímetro y, por este motivo, este enfoque también se denomina análisis en el perímetro.

Los ejemplos de aplicaciones que requieren computación en la niebla son las redes de sensores que se
distribuyen geográficamente, como sensores de conexión a tierra de humedad en un viñedo y sensores de
movimiento en cada intersección de una ciudad. La computación en la nube ayuda a reducir el tiempo de
respuesta (baja latencia) y a reducir la cantidad de datos que se deben enviar a la nube. Por ejemplo, la
computación en la niebla elimina datos redundantes cuando una variable de sensor no está cambiando
porque es insustancial mantener la transmisión del mismo valor. En cambio, se transmiten los datos solo
cuando su valor cambia.

Independientemente de la arquitectura de IdC utilizada, la mayoría o todos los datos se recopilarán y


almacenarán en la nube eventualmente, donde están disponibles la computación y la capacidad de
almacenamiento potencialmente infinitas. ¿Qué hay detrás de la nube? Una red de centros de datos que usan
la tecnología de virtualización. Los centros de datos son recursos físicos dónde están disponibles miles (o
cientos de miles) de servidores, y los exabytes de capacidad de almacenamiento, están disponibles con
conexiones de red de alta velocidad. Esta tecnología de virtualización permite la creación dentro de cada
servidor físico de una o más máquinas virtuales donde el proceso de análisis de datos puede ejecutarse. Los
proveedores de plataformas de nube tienen una red de centros de datos con tolerancia a fallas. Estos centros
de datos son la infraestructura que hace la nube posible.

¿Qué es la virtualización?

Los sistemas operativos (SO) separan las aplicaciones del hardware. Los SO crean una “abstracción” de los
detalles de los recursos de hardware a la aplicación. La virtualización separa el SO del hardware.

Los proveedores de la nube ofrecen servicios que pueden aprovisionar servidores dinámicamente según sea
necesario. La virtualización de servidores saca provecho de los recursos inactivos en una máquina física y
consolida varios servidores virtuales en un solo equipo. Esto también permite que existan varios sistemas
operativos en una sola plataforma de hardware.
Por ejemplo, en la figura, los ocho servidores dedicados originales se han consolidado en dos servidores
mediante hipervisores, para admitir múltiples instancias virtuales de los sistemas operativos. El hipervisor es
un programa, un firmware o un hardware que suma una capa de abstracción a la parte superior del hardware
físico real. La capa de abstracción se utiliza para crear máquinas virtuales que tienen acceso a todo el
hardware de la máquina física, como CPU, memoria, controladores de disco y NIC. Cada una de esas
máquinas virtuales ejecuta un sistema operativo completo y separado. Con la virtualización, las empresas
ahora consolidan la cantidad de servidores que tienen y operan. Por ejemplo, no es raro que se consoliden
100 servidores físicos como máquinas virtuales en 10 servidores físicos mediante hipervisores.

El uso de la virtualización normalmente incluye redundancia para brindar protección desde un punto único de
falla. La redundancia se puede implementar de diferentes maneras. Si falla el hipervisor, se puede reiniciar la
VM en otro hipervisor. Además, la misma VM se puede ejecutar en dos hipervisores simultáneamente
copiando las instrucciones de RAM y de CPU entre estos. Si falla un hipervisor, la VM continúa ejecutándose
en el otro hipervisor.

¿Qué es Kafka?

Para adquirir datos en tiempo real, debe usarse una plataforma de transmisión distribuida como Kafka. Las
siguientes son algunas de las características de Kafka:

 Los flujos de registros se publican y ofrecen suscripciones (pub-sub), de forma similar al sistema de
mensajería de una empresa.

 Los flujos de registros son tolerantes a fallas debido al almacenamiento distribuido.

 Los flujos de registros se procesan mientras suceden, en tiempo real.

Se utiliza Kafka para transmitir datos de transmisión en tiempo real entre los distintos sistemas y aplicaciones.
También se usa para transformar y reaccionar ante el flujo de datos con aplicaciones en tiempo real. LinkedIn
desarrolló Kafka, pero se convirtió en un software de código abierto en 2011. Cisco Systems, Netflix y eBay
son algunas de las empresas que han utilizado, o usan actualmente, Kafka. Estos son algunos de los
conceptos importantes de la base sobre Kafka:

 Kafka se ejecuta en uno o más servidores como clúster. Los servidores en el clúster se conocen como
agentes.

 El clúster almacena flujos de registros en agrupaciones llamadas temas.

 Cada registro tiene una clave, un valor y una marca de hora.

Kafka tiene cuatro API de base, como se muestra en la figura:

 Productores: esta API es donde un flujo de registros es asignado por una aplicación a temas por Kafka.

 Procesadores de transmisiones: esta API es donde una aplicación consume flujos de entrada de
temas y puede producir secuencias de salidas y temas.

 Conectores: esta API es donde los temas de Kafka están conectados a los sistemas y las aplicaciones
existentes.

 Consumidores: esta API es donde se produce el flujo de registros en temas.

Kafka actúa como un sistema de mensajería para centralizar la comunicación entre todos los productores de
datos y todos los consumidores de datos en un sistema. Kafka tiene un diseño distribuido, que permite la
manipulación de grandes cantidades de datos y su fácil escalabilidad. También es resistente a fallas en el
hardware, el software y la red.