Diseño de Sistemas IoT y Accesibilidad
Diseño de Sistemas IoT y Accesibilidad
1
5. Diseño de sistemas Smart
El diseño de sistemas apuesta por llevar tecnología de la información y comunicación (TIC) a cualquier
entorno; en este caso a la creación de dispositivos inteligentes, y a estos dispositivos se los denomina
Smart (Inteligente).
Ya se tiene dispositivos Smart en el cotidiano vivir, como ser: Smart phone (teléfonos), Smart Tv
(televisores), y en general empresas de marca tienen soluciones para determinados sectores, por ello
se puede mencionar a:
El internet de las cosas (IoT), es un campo de investigación y desarrollo, al haber salido al mercado
dispositivos electrónicos con capacidad de conectarse a internet, hace posible desarrollar además de
telemedida (monitoreo remoto), permite hacer telecontrol.
En telemedida, el cliente envía datos de sus puertos (de los sensores), hacia un servidor
generalmente en formato ASCCI (American Standard Code for Information Interchange) es decir
forma una cadena de caracteres string, hacia el servidor, ó también puede ser otro dispositivo
maestro.
Para telecontrol, el servidor, o dispositivo maestro, tiene un programa (o algoritmo) el cual una vez
procesado los datos recibidos del cliente (o los clientes), envía datos ASCII en forma de string hacia el
cliente. Este cliente tiene un programa que interpreta el dato recibido, y ejecuta acción sobre sus
puertos, generalmente acción de control On-Off (Prender/Apagar)
Lo particular de los dispositivos IoT, está que los mejores se conectan por wifi, porque al haber una
red muy desarrollada y extendida, es posible realizar muchos proyectos.
De todo lo anterior se puede decir que los IoT son dispositivos Smart, conectados a internet, dedicados
a telemedida y telecontrol.
2
Una telecomunicación es toda transmisión (Tx) y recepción (Rx) de señales de cualquier naturaleza,
típicamente electromagnéticas, que contengan signos, sonidos, imágenes o, en definitiva, cualquier
tipo de información que se desee comunicar a cierta distancia.
La telecomunicación incluye muchas tecnologías como la radio, televisión, teléfono y telefonía móvil,
comunicaciones de datos, redes informáticas, Internet, radionavegación o GPS o telemetría. Para
cada una de ellas existe un espectro de frecuencia de comunicación, es decir que al igual que nuestra
voz humana opera entre 250 y 3.000 Hz, entonces para cada tecnología hay frecuencias de trabajo.
La accesibilidad universal se da cuando la telefonía móvil llega a evolucionar a 4G, es decir ha habido
1G-2G-3G generaciones. Una breve historia se puede resumir en:
1G. Fueron los primeros teléfonos móviles que aparecieron en la década de los 80. Tecnología
analógica.
2G. Nace a partir de 1990, donde los teléfonos pasaron de analógicos a digitales. Más seguridad
y la posibilidad de hacer Tx de SMS. La velocidad de datos pasó de 56 Kbit/s hasta 114 Kbit/s. Se
conoce como FDMA (Frequency Division Multiple Access).
3G. Aparecen en 2001. Ofrecían servicios como la descarga de programas, intercambio de
correos electrónicos y mensajería instantánea. Contaban con más seguridad que los 2G y la
velocidad podía llega hasta 2048 Kbit/s (2 Mbit/s). Se conoce como TDMA (Time Division
Multiple Access) y CDMA (Code Division Multiple Access) y los datos se transmiten por GPRS
(General Packet Radio Service).
4G. 2010 es el año donde aparecen los nuevos teléfonos que se utilizan actualmente. Cuentan
con una seguridad de Tx de datos mayor y su fiabilidad es más alta. Las velocidades llegan hasta
1.048.576 Kbit/s (1 Gbit/s). Algo por reconocer es el uso de LTE (Long Term Evolution).
5G. 2020 es el año en que se espera que llegue al mercado. La velocidad de conexión llegará a
[Link] kbit/s (1 Tbit/s). Se dice que podría haber ventajas del 5G para proyectos IoT
(Internet of things), M2M (Machine to Machine) y P2P (Peer to Peer).
Ahora el tema de estudio se enfoca en analizar las redes de telefonía móvil 4G, donde las estaciones
de Tx se llaman radio bases (RB), las empresas operadoras en Bolivia son tres: Viva, Tigo, Entel, cada
una tiene una frecuencia de operación otorgado por la Autoridad de Telecomunicaciones y
Transportes (ATT) de Bolivia, que es el ente regulador del uso de todas las frecuencias. El uso de
frecuencias no autorizadas llega a penalidades si estos dispositivos de transmisión superan los 50
miliwatios en la potencia de transmisión.
3
Figura 1 Antenas a) Torre autosoportada con antenas sectoriales b) Mástil con antena sectoria c) Mástil con antenas de
Microndas, y antenas sectoriales
Figura 2 Caseta o Shelter mostrando interior con gabinetes y tarjetas para telefonía móvil
4
Figura 3 Accesibilidad Universal
Afortunadamente para desarrollar este tema se debe entender que, si en el lugar donde se quiere
hacer telemedida existe señal (zona de cobertura del operador), o se tiene señal wifi, entonces se
puede realizar telemedida y telecontrol, si no hay señal, se debe recurrir a empresas que den soporte
para extender la señal de telefonía, o empresas que utilizan otras bandas de frecuencia como VHF
(Very High Frecuency ocupa el rango de frecuencias de 30 MHz a 300 MHz), o UHF (Ultra High
Frecuency ocupa el rango de frecuencias de 300 MHz a 3 GHz), en cuyo caso suele ser caro, antes
solían cotizar por cantidad de caracteres ASCII usados.
La señal wifi trabaja sobre dos tipos de frecuencia: 2.4G, y 5G. El 2.4G significa 2.4 Gigahercios (GHz),
mientras que el 5G significa 5 Gigahercio (GHz), las diferencias se pueden observar en la siguiente
tabla:
5
Tabla 1 DIferencias para wifi 2.4 y 5 GHz
En nuestro contexto de redes wifi, la gran mayoría usa el 2.4G entonces existe saturación de señales,
por lo cual es común escuchar de wifi con frecuencia 5G.
Ahora para decidir cuál equipo de 2.4G ó 5G, la siguiente imagen muestra la intensidad de señal (que
suele ser el parámetro definitorio), de la cual recomendable suele ser la de 2.4G.
Ahora si por ejemplo se tiene un servicio de streaming (Tx y Rx de video en HD) de alta calidad,
entonces es mejor optar por un equipo, o una configuración 5G.
6
Para tener redes de sensores de debe tener múltiples dispositivos que envíen datos al servidor. Y aquí
es donde entra la ventaja de tener una red de comunicaciones que funciona, es decir el usuario debe
pagar por el acceso a internet, donde por ella hay Rx y Tx los datos. Recordar el caso en un red local
(LAN), si se tiene una IP tipo C, es posible conectar a 254 dispositivos, entre ellos se puede tener los
sensores.
Cada dispositivo para conexión a internet necesita una dirección de control de acceso a medios
llamada MAC (Media Access Control), la dirección MAC, es una identificación única asignada a las
tarjetas de interfaz de red (NIC Network interface controller). También se conoce como una dirección
física o de hardware.
Para conocer la MAC de la computadora se ingresa al símbolo del sistema CMD de la computadora, y
se coloca el comando ipconfig /all
7
Figura 7 Cómo obtener las direcciones MAC de las tarjetas de Ethernet y Wireless
Para el ejemplo, la laptop tiene dos MAC, una para la tarjeta Ethernet (para cable de red), y la otra
para la tarjeta wireless o del wifi.
Entonces cada dispositivo tiene una MAC, en el celular se puede observar la MAC desde.
8
Cuando se incorpora un dispositivo para desarrollar prototipos IoT, se debe tener en cuenta las
características de esta herramienta:
Sensibilidad. Las máquinas necesitan sensores para poder interpretar la realidad a su alrededor.
Estos dispositivos facilitan el monitoreo, la detección, la recopilación de datos y otras funciones
básicas vinculadas a las IoT.
Interacción. El uso de la IoT ha hecho posible la comunicación entre realidad, sistemas y
personas. Este avance se traduce en diferentes logros, como lo visto todo tiende a Smart.
Conectividad. Más allá de tener algún simple módulo, el mayor potencial de esta se refleja en la
aumentar la compatibilidad y el acceso a la red sin importar el contexto.
Seguridad. A mayor cantidad de equipos conectados, mayores las necesidades de protegerlos.
Por ello, la arquitectura y la ciberseguridad son esenciales para estos proyectos. Para ello es
posible filtrar por MAC a los dispositivos que se conectarán, o los que se bloquearán.
Se estima que este año 2030 el número de dispositivos conectados de internet de las cosas (IoT) será
de 100 mil millones. Con independencia del dispositivo, la máquina o la «cosa», la seguridad siempre
ha sido un componente crucial de las plataformas y los entornos de IoT de éxito.
Para elegir una plataforma primero se debe selección un dispositivo IoT, luego se procede a la
selección.
[Link]. Raspberry
Es un dispositivo lanzada en 2011, es una pequeña computadora (tiene microprocesador, memoria
RAM, puertos USB, Ethernet, HDMI, audio), se suele necesitar de los periféricos (teclado, ratón,
fuente de energía), su SO se carga sobre una memoria SD (Secure Digital), y tienen una salida de video
para un monitor.
El SO se llama Raspbian (basado en Linux), pero también existen SO: Ubuntu, Noobs, Libre Elect y
otros, recientemente salió Windows para Raspberry.
Al tener instalado Raspbian como SO, y correr por tanto sobre Linux, es posible realizar programas de
código abierto o libre, por tanto es posible realizar soluciones basados en Ingeniería.
Para el área de robótica, viene siendo preferido para desarrollar investigaciones para desarrollar
sistemas operativos ROS (Robot Open Source), en el tema de procesamiento de datos, visión artificial,
inteligencia artificial, y muchos más.
9
Como se puede apreciar, las ventajas son muchas. En desventaja para realizar una IoT, suele ser que
es un dispositivo muy alto, como por ejemplo para medir temperatura y humedad, resultaría mejor
buscar otras alternativas. En términos de costos un Raspberry Pi 3 B+ cuesta 450 Bs, sin incluir los
periféricos, el Raspberry Pi 4 (4GB RAM) cuesta 950 BS, incluidos los cables y la fuente, sin periféricos.
Del porqué se usan para la IoT, es que cuentan con módulos wifi y trabaja con ROS (Robot Open
Source).
[Link]. Arduino
Los diseños de la placa Arduino utilizan una variedad de microprocesadores y controladores,
aparecieron el año 2005. Las placas están equipadas con conjuntos de pines de entrada/salida (E/S)
digitales y analógicos que pueden ser conectados a varias placas de expansión (shields) o protoboards
(para la creación de prototipos) y otros circuitos. Las placas tienen interfaces de comunicación en
serie, incluyendo el bus serie universal (USB) en algunos modelos, que también se utilizan para cargar
programas desde la computadora. Los microcontroladores pueden ser programados usando su IDE
basados en lenguajes de programación C y C++.
Es a partir del año 2010 con la aparición del Arduino Uno, y la liberación de los diseños, que se
empiezan a fabricar masivamente en China, abaratando costos, por ello aparecen los desarrolladores
(makers), que dan soporte a muchas librerías para el uso de muchos dispositivos, y es código abierto.
10
Figura 10 Presentación de un Arduino Uno, hecho en Italia
La marca de microcontroladores es AVR, y de ella se tienen modelos como ser: Atmega 328p (Arduino
Uno, o Nano), Atmega2460 (Arduino Mega), Atmega32U4 (Arduino Leonardo), etc.
En cualquier caso los Arduino necesitan de un dispositivo wifi para realizar las funciones de IoT
(además de la programación respectiva), este dispositivo sería el ESP8266.
Figura 11 Arduino Leonardo con su cable, un ESP8266 módulo wifi, y comparando con el tamaño de una moneda
El dispositivo wifi ESP8266, tiene un tamaño reducido, la configuración del mismo se realiza con la
misma IDE de Arduino, hace falta descargar librería, compilar, y hacer funcionar.
11
Figura 12 IDE Arduino con programa ejemplo para ESP8266
Respecto a costos, en el mercado local un Arduino Nano cuesta 65 Bs (incluido el cable), el ESP8266
cuesta 30 Bs.
Figura 13 (Izquierda) NodeMcu, (Derecha) ESP32, ambos comparados con una moneda
Como se puede observar en la figura 13, NodeMCU es una pequeña placa wifi compatible con
Arduino, lista para usar en cualquier proyecto IoT. Está montada alrededor del ESP8266 y expone
todos sus pines en los laterales. Además ofrece más ventajas como la incorporación de un regulador
12
de tensión integrado, así como un puerto USB de programación. Se puede programar con LUA
aunque es mejor mediante el IDE de Arduino, o bien usar Micro Python.
Dispone de una extensa comunidad y documentación que permite conectar los proyectos al mundo
exterior mediante conexión wifi.
Debido a que utiliza un conversor USB CH340 (conversor USB a serial), normalmente el sistema
operativo lo instala automáticamente, aunque dependiendo de los casos, puede que se necesite
instalar el driver específico.
Características Nodemcu:
El módulo ESP32, además de tener wifi, tiene bluetooth, también se usa bastante para IoT.
13
Características ESP32:
[Link]. Firebase
Firebase es una plataforma para el desarrollo de aplicaciones web y aplicaciones móviles desarrollada
por Google en 2014.
14
Es una plataforma ubicada en la nube, integrada con Google Cloud Platform, que usa un conjunto de
herramientas para la creación y sincronización de proyectos que serán dotados de alta calidad,
haciendo posible el crecimiento del número de usuarios.
Sincronizar fácilmente los datos de los proyectos sin tener que administrar conexiones o escribir
lógica de sincronización compleja.
Usa un conjunto de herramientas multiplataforma, se integra fácilmente para plataformas web
como en aplicaciones móviles. Es compatible con grandes plataformas, como IOS, Android,
aplicaciones web, Unity y C++.
Usa la infraestructura de Google y escala automáticamente para cualquier tipo de aplicación,
desde las más pequeñas hasta las más potentes.
Crea proyectos sin necesidad de un servidor: Las herramientas se incluyen en los SDK para los
dispositivos móviles y web, por lo que no es necesario la creación de un servidor para el
proyecto.
Firebase dota a sus usuarios de una gran documentación para crear aplicaciones usando esta
plataforma. Aparte de esto, ofrece soporte gratuito mediante correo electrónico para todos sus
usuarios, y además sus desarrolladores participan activamente en plataformas como Github y
StackOverflow.
Gracias a todas estas funcionalidades, Console de Firebase será el elegido para realizar IoT.
[Link]. ThingSpeak
Según sus desarrolladores, ThingSpeak es una aplicación y API para IoT de código abierto, para
almacenar y recuperar datos de cosas que utilizan el protocolo HTTP (Hypertext Transfer Protocol) y
MQTT a través de Internet o a través de una red de área local.
15
Una de las grandes ventajas de la plataforma Thingspeak es que permite visualizar los datos enviados
por los dispositivos en tiempo real, pero también la posibilidad de analizar los mismos recurriendo
Matlab.
[Link]. [Link]
Es otra potente plataforma de código abierto dirigido a IoT, para procesamiento y registro de
variables como la temperatura, energía, etc. Su página es: [Link]
16
Figura 19 Presentación de datos en Laptop y Android para Emoncms
Fuente: [Link]
[Link]. ThingWorx
La plataforma ThingWorx, es muy popular para el mundo de las IoT. Esta plataforma, la mayoría con
vistas al segmento de negocio, incluye las tecnologías y herramientas que permiten a las empresas
desarrollar e implementar soluciones innovadoras de la IoT y experiencias de realidad aumentada de
forma rápida y sencilla.
17
[Link]. Kaa
Esta es una plataforma de código abierto para el desarrollo de soluciones IoT y Smart. Kaa ofrece una
amplia gama de herramientas de IoT que pueden ser fácilmente interconectadas.
[Link]. [Link]
Esta plataforma de código abierto soporta múltiples tipos de protocolos, sensores y actuadores.
Ofrece una buena interfaz altamente interactiva.
18
Figura 22 Presentación Plataformna [Link]
Una vez conectado, se puede tener control total sobre el dispositivo al que se este conectado
remotamente. Luego se puede ejecutar cualquier aplicación o abrir archivos en la computadora o
dispositivo.
Respecto a las LAN y WAN se comentó en el capítulo anterior, el nuevo concepto es la VPN. Una red
privada virtual VPN (Virtual Private Network) es una tecnología de red de ordenadores que permite
una extensión segura de la red de área local sobre una red pública o no controlada como Internet. La
mejor forma de expresar, es que es un túnel entre dos o más redes, dónde operan como una sola red.
19
Figura 23 Una VPN es cómo un túnel entres redes remotas
Se ingresa a: [Link]
20
Figura 24 Ingreso a remote desktp google
En algunos casos pide ingresar por medio de la cuenta Gmail, incluida contraseña.
21
Figura 27 Añadir a extensiones
Ahora, en la computadora a la que se va controlar, se debe configurar como cliente. Para ello en
Chrome, extensiones, ahora debería aparecer
22
Figura 30 En Acceso remoto, Activar
Dar un nombre, este nombre será el que debe encontrar el dispositivo el otro dispositivo.
Luego de esta acción, demora a veces un poco, ya debería estar en línea el dispositivo remoto.
23
Figura 33 Estado Cliente remoto en línea
Suele haber conflicto cuando se ha iniciado sesión con otro dispositivo, en ese caso se debe eliminar
la sesión, y con ello se logra ingresar.
Ahora esta operación de control, también se puede realizar cuando la computadora Cliente a
controlar está en línea.
24
Figura 35 App Escritorio remoto de Chrome, desde el Playstore
Con los anteriores pasos, se tiene las configuraciones, y se tiene el control total de la computadora
cliente remota.
IDE Arduino
NodeMcu más cable
Dispositivo android
Más adelante es necesario otro paso más para enviar datos, y almacenar en la nube.
[Link]
Se elige el sistema operativo (Windows recomendado), elegir just download, nuevamente just
download y se descarga un comprimido, se descomprime y se abre para usar.
25
5.9.2. Pruebas con el ESP8266
Descargar el manejador de librería para el ESP8266.
La prueba se realiza cargando un programa ejemplo del IDE Arduino, donde la función de prender y
apagar un led, es la tarea más elemental, y si funciona, entonces se tiene una placa que recibe
programación para desarrollos más avanzados, que el caso final es desarrollar IoT.
26
Se abre un ejemplo (el IDE Arduino tiene muchas ejemplos) desde Archivo>Ejemplo>
[Link]>BlinkWithoutDelay.
Luego se debe cambiar el valor del led a controlar en el ESP8266, se carga el programa (hace la
compilación y luego carga), se espera, y con ello se tiene cargado el programa del led intermitente.
27
Figura 39 Modificar para controlar el led de la placa
Es decir se cambia el valor de una línea de comando, y es posible tener un led intermitente.
const int ledPin = D2;
28
Figura 41 led intemitente de prueba en D2, se ve la opción de cambiar en D16
En la tarjeta del ESP8266, se tiene otro led al cual es posible controlar, esto se logra cambiando en la
línea const int ledPin = D16;
El valor del interval es 1000, este valor significa 1000 milisegundos. Por tanto al variar este valor,
se tendrá, mayor o menor intermitencia.
29
5.10. IoT aplicada
Para realizar IoT existen muchas plataformas como las mostradas en 5.7.2., pero en esta parte se
mostrará una aplicación de control remoto, haciendo uso de herramientas aprendidas, con un
aditamento especial, y es el envío de datos a Firebase de google.
[Link]
Ingresar con la cuenta Gmail se puede seleccionar pantalla oscura, y la pantalla de presentación es
similar como la siguiente imagen, se debe crear un nuevo proyecto
30
Figura 44 Nuevo proyecto Firebase
31
De debe esperar unos instantes hasta, en ello se está creando el proyecto.
32
Figura 50 Habilitar en modo de prueba
Se tiene una dase de datos en tiempo real, donde se puede enviar datos, y se presentarán en el
recuadro amarrillo de la figura siguiente.
33
Figura 52 Forma de ubicar la url necesaria para los proyectos
34
Figura 54 Cómo crear la etiqueta led
Luego se debe tener un programa para el ESP8266 donde importa tener cuatro cosas.
#include <ESP8266WiFi.h>
#include <FirebaseESP8266.h>
// Pines
#define LED_PIN D0
// Inicialización de Firebase
FirebaseData firebaseData;
void setup() {
// Configuración del pin
pinMode(LED_PIN, OUTPUT);
// Configuración de Firebase
[Link](FIREBASE_HOST, FIREBASE_AUTH);
[Link](true);
}
void loop() {
// Verificar el estado de la etiqueta /led en Firebase
if ([Link](firebaseData, "/led")) {
String ledState = [Link]();
if (ledState == "1") {
digitalWrite(LED_PIN, HIGH);
[Link]("Estado del LED ON");
} else if (ledState == "0") {
digitalWrite(LED_PIN, LOW);
[Link]("Estado del LED OFF");
}
}
delay(1000); // Intervalo de actualización
}
36
5.11.3. Appinventor para control
Para realizar el telecontrol se puede realiza la siguiente app.
La programación es la siguiente:
37