58
1 DESARROLLO DE UN SISTEMA DE COMUNICACIÓN BASADO EN RADIO DEFINIDO POR SOFTWARE PARA UN ROBOT MODULAR Documento para optar al título de Tecnólogo en Electrónica Modalidad de Investigación PROPONENTES Helmunt Alberto Gómez Pérez Nicolás Porras Garzón DIRECTOR Ing. Luis Fernando Pedraza Martínez PhD. UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA TECNOLOGÍA EN ELECTRÓNICA BOGOTÁ D.C 2020

DESARROLLO DE UN SISTEMA DE COMUNICACIÓN BASADO …

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

1

DESARROLLO DE UN SISTEMA DE COMUNICACIÓN BASADO

EN RADIO DEFINIDO POR SOFTWARE PARA UN ROBOT

MODULAR

Documento para optar al título de Tecnólogo en Electrónica

Modalidad de Investigación

PROPONENTES

Helmunt Alberto Gómez Pérez

Nicolás Porras Garzón

DIRECTOR

Ing. Luis Fernando Pedraza Martínez PhD.

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD TECNOLÓGICA

TECNOLOGÍA EN ELECTRÓNICA

BOGOTÁ D.C

2020

HOJA DE ACEPTACIÓN

“Desarrollo de un sistema de comunicación basado en radio definido por

software para un robot modular”

Observaciones.

_________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________

_______________________________

Firma del director del proyecto

_______________________________

Firma del jurado

_______________________________

Firma del jurado

Fecha de presentación: febrero de 2020

TABLA DE CONTENIDO

1. Descripción de la propuesta ........................................................................ 1

1.1. Resumen ................................................................................................. 1

1.2. Planteamiento del problema .................................................................... 1

1.3. Justificación ............................................................................................. 2

2. Objetivos ..................................................................................................... 4

2.1. Objetivo general ....................................................................................... 4

2.2. Objetivos específicos ............................................................................... 4

3. Marcos de referencia................................................................................... 5

3.1. Marco teórico ........................................................................................... 5

3.1.1. Redes inalámbricas ........................................................................... 5

3.1.2. Radiocomunicación ........................................................................... 7

3.1.3. Radio definida por software ............................................................... 7

3.1.4. Sistemas de control ........................................................................... 8

3.1.5. Sistemas de comunicación ................................................................ 9

3.1.6. Internet de las cosas (IoT) ............................................................... 10

3.1.7. Industria 4.0 .................................................................................... 11

3.1.8. Características Raspberry pi 3 ........................................................ 11

3.1.9. Sistema de múltiples robots ............................................................ 12

3.1.10. Microcontrolador ESP32 ............................................................... 13

3.1.11. Simulador virtual............................................................................ 14

3.1.12. Servidor conectado a internet ....................................................... 14

3.2. Estado del arte ....................................................................................... 15

3.2.1. El paradigma IoT ............................................................................. 15

3.2.2. Sistemas basados en Radio definido por Software ......................... 16

3.2.3. Sistemas inalámbricos utilizando Raspberry Pi 3 ............................ 17

4. Desarrollo del sistema de comunicación ................................................... 19

4.1. Implementación del transceptor ............................................................. 20

4.1.1. Hot-spot en Raspberry pi 3 ............................................................. 21

4.1.2. Aplicación para extraer datos de la red WifiInfoView ...................... 24

4.1.3. Interconexión entre Windows y Raspberry pi 3 ............................... 26

4.1.4. Parámetros para la aplicación del SDR ........................................... 28

4.2. Transmisión de la información ............................................................... 31

4.2.1. Protocolo de comunicación UDP entre Raspberry y ESP32 ........... 31

4.3. Conexión a la nube ................................................................................ 33

4.3.1. Programación de ThingSpeak ......................................................... 33

5. Resultados ................................................................................................ 35

6. Conclusiones ............................................................................................. 41

7. Trabajo futuro ............................................................................................ 43

8. Bibliografía ................................................................................................ 44

Anexos ............................................................................................................. 49

A. Código 1: .................................................................................................. 49

B. Código 2: .................................................................................................. 50

LISTA DE FIGURAS

Figura 1: Diagrama de una red WLAN. .............................................................. 6

Figura 2: Diagrama sinóptico de una tarjeta SDR. ............................................. 8

Figura 3: Diagrama de un sistema de comunicación. ......................................... 9

Figura 4: Concepción de conexión de dispositivos en IoT. .............................. 10

Figura 5: Raspberry pi 3. .................................................................................. 12

Figura 6: Robot EMeRGE................................................................................. 13

Figura 7: Módulo ESP32. ................................................................................. 13

Figura 8: Alojamiento de datos en ThingSpeak. ............................................... 15

Figura 9: Diagrama conceptual del RTL-SDR. ................................................. 17

Figura 10: Diagrama de bloques general de la propuesta de solución. ............ 20

Figura 11: Diagrama de bloques del transceptor. ............................................. 20

Figura 12: Archivo de parámetros de configuración del AP. ............................ 23

Figura 13: Ejecución de la aplicación de escaneo de red por comandos. ........ 25

Figura 14: Diagrama lógico de operación en el PC. ......................................... 28

Figura 15: Diagrama lógico aplicación de algoritmo para SDR. ....................... 30

Figura 16: Diagrama de la transmisión de datos. ............................................. 31

Figura 17: Diagrama envío de datos a la nube. ................................................ 33

Figura 18: Diagrama lógico operación Raspberry y conexión a la nube. ......... 34

Figura 19: Partes del sistema de comunicación. .............................................. 35

Figura 20: Partes del sistema de comunicación, robot EMeRGE encendido. .. 35

Figura 21: Interfaces de red disponibles en el embedido. ................................ 36

Figura 22: Puerto serie al ejecutar algoritmo UDP en Raspberry. .................... 37

Figura 23: Puerto serie al ejecutar el algoritmo del ESP32. ............................. 38

Figura 24: Datos de captura en Wireshark (Raspberry) ................................... 39

Figura 25: Adaptadores de red configurados en la Raspberry. ........................ 39

Figura 26: Interfaz de ThingSpeak para alojar datos en la nube. ..................... 40

1

1. DESCRIPCIÓN DE LA PROPUESTA

1.1. Resumen

Este proyecto presenta la implementación de un sistema de comunicación

emisor y receptor de señales en la Raspberry pi 3 para enviar instrucciones de

movimiento al controlador de un robot modular de tipo cadena. El sistema de

comunicación usa tecnología Wi-Fi basada en radio definida por software

(SDR) para evaluar parámetros de la red circundante y hacer al sistema menos

susceptible al ruido. Para incorporar SDR en la Raspberry pi 3 se ejecuta un

algoritmo que mide la relación señal a ruido (SNR) de cada uno de los 11

canales de Wi-Fi y determina cual es el mejor canal para establecer la conexión

con el controlador del robot. Finalmente se envía la trama de movimientos

generada mediante protocolo de datagrama de usuario (UDP) al controlador del

robot y, posteriormente, se alojan parámetros de desempeño del robot en un

servidor en línea (ThingSpeak).

Palabras clave: Radio definida por software, Raspberry pi 3, Relación Señal a

Ruido, sistema de comunicación, Wi-Fi.

1.2. Planteamiento del problema

En el sector productivo e industrial, los conceptos de la cuarta revolución

industrial (industria 4.0) e Internet de las cosas (IoT) están íntimamente

relacionados, sin embargo, dado la relativa novedad en este tipo de

tecnologías, es claro que su introducción en la industria es aún muy básica, por

lo que es común encontrar que en la gran mayoría de empresas aún no existe

este modelo tecnológico implementado en ninguna forma, esto es fácilmente

evidenciable si se indaga en el caso de Colombia [1].

Dado este panorama, es claro que el papel de las telecomunicaciones en la

eficiencia de sistemas que puedan o deban ser controlados (o automatizados)

en el sector productivo es clave, y una vez más, también es una tendencia

actual darle más protagonismo a los sistemas de comunicación para controlar

ciertos procesos en la industria u otros sistemas que aparentemente están

2

desligados con estos conceptos, como por ejemplo, los sistemas de

distribución eléctrica [2].

Se hace evidente la necesidad de desarrollar alternativas en el manejo de

información que puedan servir para situaciones de aplicación orientadas en las

tendencias de automatización actuales (IoT por ejemplo), una de estas

alternativas está basada en la radio definida por software, que ofrece

flexibilidad, dinamismo y alta adaptabilidad en situaciones donde el manejo de

información exige hardware y software versátil [3], como por ejemplo en la

industria.

1.3. Justificación

Hoy día, la sociedad está en la denominada industria 4.0, este concepto

involucra la necesidad latente de las industrias en la automatización bajo un

enfoque de velocidad y reducción de recursos físicos, en conjunto con la

robótica, la nanotecnología, el IoT, entre otros conceptos desarrollados desde

hace poco tiempo, pero sin un enfoque claro hacia las industrias. La industria

4.0 tiene como un objetivo claro encaminar la automatización a la digitalización,

es decir, es posible establecer que la digitalización de los procesos productivos,

es la clave de un futuro donde el mercado estará dominado por la alta

competitividad [4].

De forma equiparable a los procesos llevados a cabo en un línea de producción

industrial real, es posible estudiar dichas alternativas eficientes a partir de

casos concretos de estudio, por ejemplo, esta propuesta plantea el caso

concreto en el que un conjunto de instrucciones alojados en un embebido

(haciendo símil a un controlador en la industria) necesita transmitir

instrucciones inalámbricamente a un sistema de múltiples robots (como

vanguardia en aplicación de robots industriales [5]), luego este enlace es

controlado y monitoreado a partir de un sistema de comunicación basado en

radio definido por software, que actualmente puede ser estudiado bajo un

enfoque específico de una aplicación del gran concepto que abarca el Internet

de la cosas, esto es, darle una prioridad a la forma en cómo se manejan los

datos del robot para adaptarlos a las necesidades que se requieran; en este

3

caso específico, los datos deben ser enviados a un servidor web y el canal de

comunicación entre el embebido y el robot se fundamenta en un transceptor

que usa tecnología SDR, que posibilita de manera dinámica el manejo de

información de forma inalámbrica con las ventajas que provee la tecnología

SDR frente a los clásicos esquemas basados en tecnología ZigBee [6].

Esta propuesta hace parte del proyecto de investigación: Simulador y

programador virtual para un sistema de múltiples robots usando una red de

comunicación de radio definida por software, realizado en la Universidad

Distrital Francisco José de caldas bajo la línea de investigación en

telecomunicaciones del grupo de investigación GIDENUTAS y SIREC.

4

2. OBJETIVOS

2.1. Objetivo general

Desarrollar un sistema de comunicación basado en radio definida por software

para un robot modular.

2.2. Objetivos específicos

• Implementar el transceptor del sistema basándose en tecnología de

radio definida por software utilizando Raspberry Pi 3.

• Transmitir la información generada por un simulador al robot de manera

full-dúplex.

• Enviar la información del parámetro de desempeño del robot a la nube

para ser visualizada y almacenada en un servidor conectado a internet.

5

3. MARCOS DE REFERENCIA

3.1. Marco teórico

Se presenta información imprescindible para el correcto abordaje de las

diferentes partes del proyecto, en general, los elementos básicos en los que se

debe tener conocimiento son:

3.1.1. Redes inalámbricas

El término red inalámbrica se utiliza en informática para designar la conexión

de nodos que se da por medio de ondas electromagnéticas, sin necesidad de

una red cableada o alámbrica. La transmisión y la recepción se realizan a

través de puertos.

Una de sus principales ventajas es notable en los costos, ya que se elimina el

cableado ethernet y conexiones físicas entre nodos, pero también tiene una

desventaja considerable ya que para este tipo de red se debe tener una

seguridad mucho más exigente y robusta para evitar intrusos [7].

Clasificación de las redes y comunicación inalámbrica:

Existen diversas formas para hacer uso de la comunicación inalámbrica entre

dispositivos conectados a una red, se pueden clasificar de la siguiente forma [7]

[8]:

WPAN (Wireless Personal Área Network)

En este tipo de red de cobertura personal, existen tecnologías basadas en

HomeRF (estándar para conectar todos los teléfonos móviles de la casa y los

ordenadores mediante un aparato central); Bluetooth (protocolo que sigue la

especificación IEEE 802.15.1); ZigBee (basado en la especificación IEEE

802.15.4 y utilizado en aplicaciones como la domótica, que requieren

comunicaciones seguras con tasas bajas de transmisión de datos y

maximización de la vida útil de sus baterías, bajo consumo); RFID, sistema

remoto de almacenamiento y recuperación de datos con el propósito de

transmitir la identidad de un objeto (similar a un número de serie único)

mediante ondas de radio.

6

WLAN (Wireless Local Área Network)

En las redes de área local se encuentran tecnologías inalámbricas basadas en

HiperLAN (del inglés, High Performance Radio LAN), un estándar del grupo

ETSI, o tecnologías basadas en Wi-Fi, que siguen el estándar IEEE 802.11 con

diferentes variantes.

WMAN (Wireless Metropolitan Área Network, Wireless MAN)

Para redes de área metropolitana se encuentran tecnologías basadas en

WiMax (Worldwide Interoperability for Microwave Access, es decir,

Interoperabilidad Mundial para Acceso con Microondas), un estándar de

comunicación inalámbrica basado en la norma IEEE 802.16. WiMax es un

protocolo parecido a Wi-Fi, pero con más cobertura y ancho de banda.

También es posible hallar otros sistemas de comunicación como LMDS (Local

Multipoint Distribution Service).

En estas redes se encuentran tecnologías como UMTS (Universal Mobile

Telecommunications System), utilizada con los teléfonos móviles de tercera

generación (3G) y sucesora de la tecnología GSM (para móviles 2G), o también

la tecnología digital para móviles GPRS (General Packet Radio Service).

Figura 1: Diagrama de una red WLAN.

Fuente: [9]

IEEE 802.11 [8]

Este es un estándar diseñado por la IEEE para mantener

interoperabilidad entre distintos fabricantes, esta familia de especificaciones

garantiza la funcionalidad del dispositivo sin considerar necesariamente el tipo

7

de red implementada (cableada o inalámbrica). Está constituido por

especificaciones como: IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE

802.11i y IEEE 802.11n.

Redes de gran alcance inalámbricas (WWAN)

“Las WWAN permiten la conexión de redes y usuarios de zonas

geográficamente distantes. Se distinguen dos tipos: 1) WWAN fijas, que utilizan

radioenlace o satélite, y 2) WWAN móviles, que utilizan las compañías u otros

servicios públicos en la transmisión y recepción de señales” [8].

Entre las ventajas de usar comunicación inalámbrica en comparación a

una cableada, se encuentra: el bajo coste de instalación y mantenimiento, la

alta flexibilización y accesibilidad del sistema debido a su fácil y alto alcance y

la alta disposición de comunicación a varios dispositivos. Sin embargo, este

tipo de comunicación también tiene algunos contras que son importantes

mencionar, tales como: el alto consumo que exige para los dispositivos

receptores de la señal haciéndola poco eficiente para aplicaciones donde se

debe considerar el consumo energético de los dispositivos a comunicar, la alta

susceptibilidad a interferencias electromagnéticas del entorno, y la limitada

capacidad de transferencia de datos de manera simultánea.

3.1.2. Radiocomunicación

La radiocomunicación es una forma de telecomunicación que se realiza a

través de ondas de radio u ondas hertzianas, la que a su vez está

caracterizada por el movimiento de los campos eléctricos y campos

magnéticos. La comunicación vía radio se realiza a través del espectro

radioeléctrico cuyas propiedades son diversas dependiendo de sus bandas de

frecuencia. De esta forma se tienen bandas conocidas como baja frecuencia,

media frecuencia, alta frecuencia, muy alta frecuencia, ultra alta frecuencia, etc.

En cada una de ellas, el comportamiento de las ondas es diferente [7].

3.1.3. Radio definida por software

El término “Radio Definido por Software” fue acuñado por Joe Mitola en 1991

para referirse a “radios” reconfigurables. Es decir, una misma pieza de

hardware capaz de realizar diferentes funciones en diferente tiempo. De esta

manera plantea el hecho de contar con un dispositivo de hardware de

8

“propósito general” en el ámbito de comunicaciones. Este concepto ha logrado

abrir un amplio panorama de oportunidades para la industria de las

comunicaciones y la investigación en ese mismo sentido. Uno de los conceptos

más importantes para definir la SDR es: Sistema de comunicación por radio en

donde los componentes que se han implementado por hardware (por ejemplo,

mezcladores, filtros, amplificadores, moduladores, demoduladores, detectores,

etc.) ahora se implementan utilizando software en una computadora u otros

dispositivos. La figura 2 se muestra un diagrama de bloques de las diferentes

etapas que conforman un dispositivo SDR en general.

Figura 2: Diagrama sinóptico de una tarjeta SDR.

Fuente: [10]

La SDR es una tecnología creada para mejorar la interoperabilidad entre

diferentes servicios. La tecnología SDR está compuesta de software y

hardware, y puede ser reconfigurada dinámicamente para habilitar

comunicaciones entre una amplia variedad de normas de comunicaciones,

protocolos y radio enlaces. La SDR permite crear dispositivos inalámbricos y

equipo de redes multibanda y multifuncionales, que pueden ser dinámicamente

reconfigurados, o a través de actualizaciones de software y reconfiguraciones

de hardware [11].

3.1.4. Sistemas de control

El control de sistemas físicos se emplea extensivamente en la aplicación de

señales y sistemas en la sociedad industrial. Como algunos ejemplos

específicos en los que se aplica el control, se mencionan los pilotos

automáticos de aviones, vehículos de transportes masivos, motores de

automóvil, máquina-herramienta, refinerías petroleras, fábricas de papel,

reactores nucleares, centrales eléctricas y robots. El objeto que se va a

9

controlar se conoce comúnmente como una planta; en este contexto, un avión

es una planta.

Hay muchas razones para emplear sistemas de control. Desde la

perspectiva de la ingeniera, las dos más importantes son lograr una respuesta

satisfactoria y un desempeño robusto [12, pp. 6].

3.1.5. Sistemas de comunicación

La comunicación es la transferencia de información con sentido desde un lugar

(remitente, origen, fuente, transmisor) a otro lugar (destino, receptor). Por otra

parte, información es un patrón físico al cual se le ha asignado un significado

comúnmente acordado. El patrón debe ser único (separado y distinto), capaz

de ser enviado por el transmisor, y capaz de ser detectado y entendido por el

receptor.

Si la información es intercambiada entre comunicadores humanos, por lo

general se transmite en forma de sonido, luz o patrones de textura en forma tal

que pueda ser detectada por los sentidos primarios del oído, vista y tacto. El

receptor asumirá que no se está comunicando información si no se reciben

patrones reconocibles.

En la siguiente figura se muestra un diagrama a bloques del modelo básico de

un sistema de comunicaciones, en éste se muestran los principales

componentes que permiten la comunicación [13].

Figura 3: Diagrama de un sistema de comunicación.

Fuente: [13]

10

Adicionalmente, Haykin y Barry Van Veen [12, pp. 3], definen que hay tres

elementos básicos para todo sistema de comunicación, específicamente,

transmisor, canal y receptor. El transmisor se localiza en un punto en el

espacio, el receptor se ubica en algún otro punto separado del transmisor, y el

canal es el medio físico que los conecta. Cada uno de estos tres elementos

puede verse como un sistema con señales asociadas propias. El fin del

transmisor es convertir la señal del mensaje producido por una fuente de

información en una forma adecuada para la transmisión a través del canal. El

mensaje de la señal podría ser una señal de voz, una señal de televisión

(video) o datos de computadora. Es posible que el canal sea una fibra óptica,

un cable coaxial, un canal de satélite o un canal de radio móvil; cada uno de

estos tiene su área de aplicación específica.

3.1.6. Internet de las cosas (IoT)

El «Internet de las Cosas» (Internet of Things, habitualmente referido por sus

siglas en inglés, IoT), también denominado por algunos «Internet de los

Objetos» (IO) es un supraconcepto que caracteriza la próxima gran

transformación en la evolución de Internet: su expansión [14].

Más allá de la comunicación entre las personas, o entre las personas y el

contenido digital, que ahora se extiende a miles de millones de objetos

cotidianos. Los sistemas IoT implican la adquisición de datos de sensores y la

entrega de órdenes a dispositivos que interactúan o forman parte del mundo

real (concepto que es esquematizado en la Figura 4). También reconocen

eventos y cambios, y pueden reaccionar de forma autónoma y apropiada [15].

Figura 4: Concepción de conexión de dispositivos en IoT.

Fuente: [16]

11

3.1.7. Industria 4.0

El término industria 4.0 se refiere a un nuevo modelo de organización y de

control de la cadena de valor a través del ciclo de vida del producto y a lo largo

de los sistemas de fabricación apoyado y hecho posible por las tecnologías de

la información. El término industria 4.0 se utiliza de manera generalizada en

Europa, si bien se acuñó en Alemania. También es habitual referirse a este

concepto con términos como “Fábrica Inteligente” o "Internet industrial". En

definitiva, se trata de la aplicación a la industria del modelo "Internet de las

cosas" (IoT). Todos estos términos tienen en común el reconocimiento de que

los procesos de fabricación se encuentran en un proceso de transformación

digital, una "revolución industrial" producida por el avance de las tecnologías de

la información y, particularmente, de la informática y el software. La cuarta

revolución industrial.

En la primera Revolución Industrial, entre los siglos XVIII y XIX, se

mecanizaron los procesos de producción, transformando la economía agraria y

artesanal en otra liderada por la industria. La segunda transición, en el siglo

XX, trajo la producción en serie, con la aparición de fábricas y líneas de

montaje que permitieron fabricar productos para el gran consumo. El final del

Siglo XX trae una nueva transformación. El despliegue de la electrónica y la

informática en los procesos industriales permitió automatizar las líneas de

producción y que las máquinas reemplazaran a las personas en tareas

repetitivas.

Dos décadas de vertiginosos avances en la tecnología de Internet han

producido un impacto radical en la economía y en la sociedad. La convergencia

de las tecnologías de la información con la sensórica y la robótica están

transformando el internet tradicional (información y personas) en internet de las

cosas (IoT). Y este nuevo escenario aplicado a la industria ha producido un

impacto disruptivo en ésta, abriendo un escenario de enormes oportunidades

basado en el aprovechamiento de la informática [17].

3.1.8. Características Raspberry pi 3

Raspberry pi es un sistema embedido (o “microPc”) diseñado principalmente

para usos académicos y de aprendizaje, sin embargo, sus prestaciones y

12

características lo hacen un candidato selecto y adecuado para el desarrollo de

proyectos electrónicos a pequeña y gran escala en un amplio rango de

aplicaciones.

Respecto a la Raspberry pi 3, se encuentran importantes características que

permiten usarla en diversos proyectos de electrónica, control o

comunicaciones. La Raspberry pi 3 cuenta con un procesador Quad Core

1.2GHz Broadcom BCM2837 de 64bit CPU, 1GB RAM, 40 pines GPIO,

adaptador inalámbrico BCM43438 LAN, adaptador Bluetooth Low Energy

(BLE), 4 puertos USB, puerto HDMI de tamaño completo, puerto CSI de

cámara para la conexión de Raspberry Pi camera, puerto DSI de display para

la conexión de Raspberry Pi touchscreen display (pantalla táctil), puerto micro

SD para cargar el sistema operativo y almacenamiento de datos, y, una entrada

micro USB de alimentación con fuente mayor a 2.5A [18]. La apariencia del

sistema embedido puede apreciarse en la Figura 5.

Figura 5: Raspberry pi 3.

Fuente: [18]

3.1.9. Sistema de múltiples robots

En este proyecto el robot modular usado será el robot EMeRGE (ver Figura 6);

que cuenta con módulos iguales para dar forma a distintas morfologías posibles

y que sean capaces de dar un movimiento coordinado para desplazarse. Los

módulos tienen un grado de libertad, sus caras están compuestas por tres de

tipo hembra y una macho para las distintas configuraciones.

13

Cada módulo tiene sus circuitos impresos para su control mediante un

controlador local. Además de estos, se hace necesario otros dispositivos para

el correcto funcionamiento de EMeRGE como lo es; comunicación, medición

de orientación y medición de distancias [19].

Figura 6: Robot EMeRGE.

Fuente: [19]

3.1.10. Microcontrolador ESP32

El microcontrolador ESP32 (ver Figura 7) cumple con características de alta

adaptabilidad requeridas en este proyecto y es, además, de bajo costo.

El ESP32 puede funcionar como un sistema independiente completo o como un

dispositivo esclavo de un host de MCU, reduciendo la sobrecarga de la pila de

comunicación en el procesador de la aplicación principal. El ESP32 puede

interactuar con otros sistemas para proporcionar funcionalidad Wi-Fi y

Bluetooth a través de sus interfaces SPI / SDIO o I2C / UART [20].

Figura 7: Módulo ESP32.

Fuente: [21]

Este microcontrolador puede programarse en Arduino. Arduino es un lenguaje

de programación sencillo y bastante versátil, su facilidad permite abordar

grandes proyectos con diferentes placas destinadas a diversos propósitos con

una gran simplicidad [22].

14

3.1.11. Simulador virtual

Este se compone de un software desarrollado sobre MATLAB y aproxima las

condiciones reales en las que se desplazará el robot modular.

Existen varias plataformas para realizar aplicaciones que permiten ver los

posibles movimientos de objetos en 3D, en este caso MATLAB es capaz de

proporcionar estos ambientes con 3D World Editor.

En 3D World Editor es posible implementar distintas formas y especificar VRML

(Virtual Reality Modeling Language) o X3D, creando mundos virtuales, donde

se pueden ensamblar nodos y darles distintos aspectos. Además, es

compatible con varios programas, como Solidworks, permitiendo exportar los

diseños en 3D y manipularlos según los requerimientos de cada proyecto [23].

3.1.12. Servidor conectado a internet

El servidor conectado a internet proporciona una estadística del parámetro de

desempeño del conjunto de robots. El servidor debe actualizar información en

períodos de tiempo regulares y debe ser accesible por cualquier dispositivo con

acceso a internet, en cualquier lugar.

Bajo estos criterios se presentaron varias alternativas que fueran compatibles

en cuanto a crear servidores web y envío datos desde el ESP32. La alternativa

más factible seleccionada fue ThingSpeak.

ThingSpeak es una plataforma de servicios de almacenamiento de datos en la

nube basada en IoT, permite alojar un flujo de datos (obtenidos de distintos

dispositivos conectados a la nube) de manera continua, además de

visualizarlos y analizarlos en tiempo real. Esta plataforma tiene compatibilidad

con código MATLAB, por lo que es posible ejecutar análisis y procesamiento de

datos con las herramientas que ofrece el software MATLAB y Simulink [24]. En

la figura 8 se muestra el funcionamiento básico de ThingSpeak.

15

Figura 8: Alojamiento de datos en ThingSpeak.

Fuente: [24]

3.2. Estado del arte

Se presenta un breve análisis de los diferentes proyectos e investigaciones

desarrolladas en el marco del panorama actual de los sistemas de

comunicación en virtud de evaluar las ventajas o desventajas de cada uno y

comprender cuales son las tendencias actuales en hardware, software,

técnicas usadas, etc. que compaginan con lo planeado en el proyecto de

investigación; para ello se evalúan temas de gran interés como lo son: la

aplicación del IoT, el radio definido por software y aplicaciones de la Raspberry

pi 3 basadas en sistemas inalámbricos.

3.2.1. El paradigma IoT

En términos de evaluar los diferentes impactos de IoT en la actualidad, se

puede encontrar valiosa información que indica de forma evidente que este

supraconcepto ha sido utilizado en la mayoría de aplicaciones que requieran el

tratamiento de datos, el control de forma inalámbrica y el manejo de espacio en

un entorno ciberconectado (almacenamiento en la nube), por supuesto que

estas consideraciones involucran a los sistemas de comunicación y el

almacenamiento de parámetros en servidores web (tal como se plantea en este

proyecto), por lo que interpretar de forma básica las diferentes propuestas en

torno a esta temática ayudan a abordar el problema de forma adecuada.

Hay varios estudios publicados que cubren diferentes aspectos de la tecnología

de IoT. Por ejemplo, en [25], se cubren las principales tecnologías de

16

comunicación, cableadas e inalámbricas y los elementos de redes de sensores

inalámbricos (WSN). En [26], los autores abordan la arquitectura de IoT y los

desafíos de desarrollar e implementar aplicaciones de IoT. Las tecnologías que

lo hacen posible y los servicios de aplicación que utilizan una visión de nube

centralizada se presentan en [27]. En [28] proporcionan un estudio de IoT para

dispositivos inalámbricos clínicos especializados que utilizan 6LoWPAN/IEEE

802.15.4, Bluetooth y NFC para aplicaciones de mSalud y eSalud. Además,

[29] aborda el IoT en términos de tecnologías que lo hacen posible con énfasis

en RFID y sus potenciales aplicaciones. Los desafíos de IoT se presentan en

[30] para cerrar la brecha entre la investigación y los aspectos prácticos.

Además, en [30] se presenta una descripción general de los estándares y

desafíos actuales del Grupo de Trabajo de Ingeniería de Internet para el IoT.

3.2.2. Sistemas basados en Radio definido por Software

Con respecto a los dispositivos de radio definida por software, es importante

analizar qué alternativas se han planteado en torno a sus diversas

aplicaciones. Una vista general en la literatura indica un claro enfoque hacia los

dispositivos de radio con modulación analógica (AM, FM) [31] [10] [32],

esencialmente este fue el uso para el que se proyectó el SDR, sin embargo, las

tecnologías actuales también aprovechan en gran medida las posibilidades que

ofrece el SDR; por ejemplo, en [33], [34] se exploran las características y el

desempeño de esquemas de redes basadas en IEEE 802.11p e IEEE 802.11ah

respectivamente, cabe aclarar que estos dos estándares son relativamente

nuevos, parcialmente implementados y aún se generan diversas propuestas

para investigar sus alternativas y alcances a fondo, por lo que el uso de las

herramientas que ofrece el SDR abre el panorama y brinda grandes aportes

para entablar un directo interés en la comunidad general para explorarlos.

Por otra parte, en cuanto a dispositivos y equipos se refiere, resaltan algunos

aportes relevantes para comprender como se disponen de dichos dispositivos

según el uso o área en el que se empleen. Rafik Zitouni y Laurent George [35],

hacen un análisis a diferentes dispositivos de Radio definido por Software

(SDR). Se destaca que los parámetros de ancho de frecuencia y potencia de

salida son muy importantes en este tipo de dispositivos y que además los

17

dispositivos de bajo costo y gran utilidad están diseñados específicamente para

ser cada vez mejores en los aspectos de: gasto de potencia de salida, ancho

de banda de frecuencia y capacidades de frecuencia de muestreo. A forma de

ejemplo, la figura 9 muestra un diagrama de las diferentes partes que

componen el RTL-SDR, un hardware de tipo SDR que es actualmente de los

más baratos disponibles en el mercado.

Figura 9: Diagrama conceptual del RTL-SDR.

Fuente: [32]

En otros trabajos como [36] [37], se centraron en las placas secundarias

(daughter boards) RFX 900, RFX2400 y SBX, controlado por un USRP N-210

(equipo de SDR especificado en [35]). El propósito fue medir la salida RF, el

ancho de banda y linealidad de potencia. El ancho de banda de RF obtenido

fue encontrado más pequeño de lo anunciado. Para daughter boards SBX, la

potencia de salida disminuía constantemente al aumentar la frecuencia de

salida. Este resultado llevó a proponer un modelo empírico para predecir la

función de potencia de salida de la frecuencia y parámetros del amplificador de

software. El beneficio de tal resultado puede ser utilizado para construir

experimentos realistas de redes inalámbricas. Este documento informa sobre

nuevas configuraciones de medidas y resultados en el USRP B210 [35].

3.2.3. Sistemas inalámbricos utilizando Raspberry Pi 3

El control de la información es un reto que afronta la tecnología día tras día,

siendo este una razón por la cual generar innovación, contribuir al desarrollo y

claramente dar un nuevo enfoque a la investigación. Como consecuencia, en el

ámbito las redes de comunicación, la tecnología inalámbrica tiene una gran

importancia y continuamente presenta mejoras para hacer a un lado varias

aplicaciones cableadas. Dentro de esto, es posible mencionar el uso de la

Raspberry Pi 3, como un dispositivo capaz de cumplir una gran cantidad de

18

aplicaciones inalámbricas siendo un embebido potente de bajo costo. En [38]

se utiliza la Rapberry Pi 3 como un servidor que es capaz de transferir archivos

a varios computadores utilizando Wi-Fi mediante el software Samba, además

se hace una adaptación de la tecnología ZigBee al sistema con el fin de

comparar rangos de trabajo y hacer seguimiento de la información por medio

de XCTU. Esto es importante de analizar porque con base a la recolección y

transferencia de datos es que es posible realizar aplicaciones en el entorno

utilizando estos dispositivos como se puede ver en [39], donde se genera una

estación de monitoreo comunicada inalámbricamente con una Raspberry Pi 3 y

sensores analógicos conectados mediante un ADC, en conjunto, este sistema

es capaz de almacenar variables ecológicas en un entorno abierto como lo son:

temperatura ambiente y velocidad del viento. Aplicaciones similares como

[40],[41],[42] y [43] usan comunicación inalámbrica para realizar controles y

monitoreo de sistemas de riego basados en Raspberry Pi 3.

Anidado el concepto de IoT, se encuentran una gran cantidad de aplicaciones

basadas en los sistemas inalámbricos, ya que estos brindan conectividad

continua en cualquier instante y lugar como se resalta en [26].

Aplicaciones similares al proyecto que se plantea en la presente propuesta,

como en [44], controlan un robot basando su sistema de comunicación en el

protocolo 802.11g y TCP/IP. Logrando monitoreo y almacenamiento de datos

en tiempo real. En [45] se programa un control para un robot en Python con la

capacidad de generar movimientos básicos y de enviar a su vez, parámetros de

video a un dispositivo Android.

19

4. DESARROLLO DEL SISTEMA DE COMUNICACIÓN

En primera instancia, es clave tener en cuenta el funcionamiento básico del

robot modular y entender cómo afecta a los parámetros que se deseen imponer

al transceptor.

Dada su morfología y el tipo de movimiento que realizará, es necesario

incorporarle un micro controlador que será el encargado de enviar el algoritmo

de funcionamiento y devolver datos necesarios al transceptor, es decir, este

receptor tiene cualidades diferentes dado que debe ser más pequeño y

portable para que pueda incorporarse al robot.

Por otra parte, como parte del desarrollo del proyecto de investigación, se

decidió usar como red de comunicación la tecnología basada en Wi-Fi, por lo

que, teniendo en cuenta esta elección, se seleccionaron diferentes equipos de

radio definida por software que pudieran suplir esta característica y

dependiendo la mejor relación entre su robustez, precio y prestaciones, se

escogieron los más adecuados.

Para este proyecto se evaluaron las prestaciones del USRP N210, HackRF

One y la Raspberry pi 3. En donde se encontró que, el USRP N210 tiene

características más robustas y superiores a los otros dos equipos [46], sin

embargo, su entorno de programación (GNU Radio) no dispone de bloques

enfocados a el protocolo IEEE 802.11 (Wi-Fi), por lo que implementar el

sistema de comunicación sobre esta plataforma supone una tarea compleja y

de mucho tiempo, ya que se haría necesario programar de forma autónoma los

bloques a partir del código fuente proporcionado por el software, debido a esto,

se descartó este equipo. Dispositivos como HackRF One y la Raspberry pi 3

tienen prestaciones muy similares (para aplicaciones orientadas a la radio

definida por software), por lo que los parámetros de selección se redujeron al

precio y manejo de la plataforma tecnológica, donde finalmente se seleccionó

la Raspberry pi 3 por su alta flexibilidad y fácil manejo orientado hacia el

desarrollo de proyectos basados en comunicación Wi-Fi. Adicionalmente, se

utilizó el dispositivo ESP32 para recibir las instrucciones de control

provenientes desde la Raspberry.

Una vez definido el embebido principal para el sistema de comunicación, se

hace necesario generar una serie de pasos para poder construir las diferentes

partes del mismo, por lo que es posible de forma secuencial ejecutar

20

actividades para llevar a cabo el proyecto en torno a los objetivos específicos

planteados (ver sección 2), en la figura 10 se muestra un diagrama de bloques

de la solución propuesta para el sistema de comunicación que comunica el

conjunto de instrucciones generadas en un embebido con el robot modular,

seguido, se enuncian las actividades propuestas para su realización:

Figura 10: Diagrama de bloques general de la propuesta de solución.

Fuente: propia

4.1. Implementación del transceptor

En la figura 11 se muestran los elementos que involucran la implementación del

transceptor del sistema de comunicación:

Figura 11: Diagrama de bloques del transceptor.

Fuente: propia

21

4.1.1. Hot-spot en Raspberry pi 3

Punto de Acceso Inalámbrico:

El hot-spot creado sobre la Raspberry aprovecha al máximo las prestaciones

para las que fue diseñada, ya que además de ser un embebido muy versátil y

poderoso (a muy bajo costo), la Raspberry tiene cualidades que facilitan su uso

como dispositivo inalámbrico.

Para lograr una efectiva comunicación inalámbrica bajo Wi-Fi es necesario

definir el protocolo 802.11 sobre la Raspberry, gracias a que en la Raspberry

ya existe una tarjeta de red con previos registros y adecuaciones físicas para el

funcionamiento de Wi-Fi, solo hay que acceder por medio de códigos y ajustes

a la misma, para configurarla en modo Punto de Acceso Inalámbrico (WAP). El

punto de acceso configurado sobre la Raspberry debe ser capaz de proveer

registros de autentificación, tener un SSID, una “frase de paso” o contraseña,

ofrecer un correcto cifrado de seguridad, habilitar servicios de conectividad,

ofrecer un servidor DNS y DHCP (para el uso de la distribución de direcciones

de red IP de forma dinámica y configuración de parámetros de dispositivos y

servicios conectados al punto de acceso) y tener conexión a internet.

Para configurar de forma adecuada el punto de acceso, es necesario instalar

dos paquetes de software en la Raspberry, ellos son: hostapd y dnsmasq.

El paquete hostapd ofrece herramientas para configurar un punto de acceso

inalámbrico en la Raspberry. Por su parte, dnsmasq brinda utilidades para

para la configuración de un servidor DHCP y DNS.

Primero, para instalar estos paquetes basta con usar la orden apt-get

install desde el terminal; tras su instalación, es necesario usar el

administrador de servicios de sistema, systemctl, para detener la ejecución de

los programas recién instalados mientras son configurados, para ello solo hay

que usar el comando stop de este administrador junto con los paquetes

instalados, es decir:

sudo systemctl stop hostapd

sudo systemctl stop dnsmasq

Las órdenes de detención de servicios del sistema e instalación de paquetes

deben tener permisos de root por lo que es necesario ejecutarlas desde sudo.

22

Para la configuración del servidor DHCP con el paquete dnsmasq, hay que

tener varias consideraciones:

La primera de ellas es que se usará una IP estática en la interfaz de red

inalámbrica de la Raspberry (wlan0), para esto se debe editar el archivo

alojado en /etc/dhcpcd.conf y agregar las siguientes líneas:

interface wlan0

static ip_address=192.168.0.10/24

denyinterfaces eth0

denyinterfaces wlan0

Que configurarán la interfaz wlan0 con una ip estática, en este caso

192.168.0.10 en el puerto 24. Los comandos denyinterfaces escritos en este

archivo configuran utilidades para usar el brigde necesario para habilitar

conexión a internet para el punto de acceso, se explica de forma detallada más

adelante.

La segunda consideración está en editar el archivo de asignación del servicio

de DHCP que por defecto que está alojado en la ruta /etc/dnsmasq.conf,

para proveer el conjunto de direcciones que asignará el servidor DHCP en un

rango discreto (en este caso direcciones entre 192.168.0.11 y 198.168.0.30)

para la interfaz de red wlan0.

interface=wlan0

dhcp-range=192.168.0.11,192.168.0.30,255.255.255.0,24h

Estas configuraciones bastan para el servidor DHCP. Por otra parte, para la

configuración del punto de acceso implica usar las utilidades del paquete

instalado, hostapd. Para lograr la configuración correctamente, es necesario

acceder al archivo en la ruta /etc/hostapd/hostapd.conf, y una vez más

con ayuda del editor de texto nano, agregar todos los parámetros de

configuración del punto de acceso a crear tal como se muestra en la Figura 12.

Por ejemplo, la línea interface edita la interfaz del punto de acceso (en este

caso wlan0); ssid edita el nombre SSID del hot-spot; channel configura el

canal donde se dispondrá la señal de Wi-Fi (entre 1 y 13); y así sucesivamente

con otras órdenes.

23

Guardar los cambios, reiniciar la Raspberry, usar los comandos enable y

start del administrador de servicios systemctl para reanudar el

funcionamiento de hostapd, es suficiente para hacer válidos los cambios en el

punto de acceso inalámbrico.

Figura 12: Archivo de parámetros de configuración del AP.

Fuente: propia.

Acceso a internet:

Para brindar acceso a internet al punto de acceso, es necesario realizar un

brigde (puente) entre la interfaz inalámbrica de la Raspberry (wlan0) y el

adaptador de red cableado (eth0), de esta forma todo el tráfico se

redireccionará a través del cable Ethernet que proporcionará una conexión a

internet usando router.

Primero, hay que habilitar el redireccionamiento del tráfico a través de Ethernet.

Basta con editar el script alojado en /etc/sysctl.conf (con el editor de texto

nano, desde el terminal) y quitar el comentario en la línea que contiene el la

descripción #net.ipv4.ip_forward=1, sin embargo esta instrucción no

configura el bridge entre los adaptadores de red de la Raspberry.

Es necesario instalar servicios adicionales para configurar de manera

adecuada el bridge; para ello, se debe instalar bridge-utils (usando una vez

más, el comando apt-get install) y hacer uso del comando brctl de este

paquete.

La instrucción:

24

sudo brctl addbr br0

Añade un bridge llamado br0.

El comando

sudo brctl addif br0 eth0

Agrega la interfaz (eth0) al puente (br0).

Por último, para hacer efectivos los cambios, es necesario editar los archivos

de información de interfaces de red que usa la Raspberry, para ello se edita el

archivo alojado en /etc/network/interfaces y se agregan las siguientes

líneas al final del archivo:

auto br0

iface br0 inet manual

bridge_ports eth0 wlan0

Que mantiene permanente los cambios realizados a la interfaz de red de la

Raspberry, por lo que solo resta reiniciar el sistema para hacer efectivas las

configuraciones del bridge y el hot-spot explicado previamente, para ello se

usa:

sudo reboot

4.1.2. Aplicación para extraer datos de la red WifiInfoView

WifiInfoView es una aplicación diseñada para escanear las redes inalámbricas

en el área cercana, proporciona información como: SSID, dirección MAC, tipo

de protocolo PHY usado, RSSI, calidad de la señal, frecuencia, número de

canal, velocidad máxima, nombre y modelo del router, importación y

exportación de varios formatos de archivos, entre otras utilidades [47].

Adicionalmente, es importante recalcar que el software es de licencia libre, por

lo que su distribución es completamente gratuita y todas sus utilidades son de

total acceso al usuario.

WifiInfoView es una herramienta que permite extraer datos de todos los puntos

de acceso cercanos detectados por la tarjeta de red y compararlos con las

redes cercanas, el objetivo en este caso es obtener información de la

distribución de las diferentes redes Wi-Fi en los 11 canales disponibles para la

banda de 2.4GHz (según IEEE 802.11) y el RSSI (potencia de la señal

recibida) de cada una, esta información es clave para tomar decisiones en

torno en que canal es más efectivo y rápido establecer la señal Wi-Fi, es decir,

25

a partir del software adaptar las condiciones y prestaciones del hardware en

función de las necesidades requeridas (menor ruido, menor solapamiento y

menor congestión de la red), esto es, el acercamiento y la aplicación del Radio

definido por software en Raspberry.

Dado que la aplicación está desarrollada para el sistema operativo Windows,

es requerido el uso de un equipo adicional (PC) conectado al router de forma

inalámbrica con el único fin de funcionar como un sniffer (detector pasivo) de

red que suministre suficiente información de los AP’s y le de autonomía a la

Raspberry en la toma de decisiones respecto a que canal debe elegir. A partir

de aquí, hay que establecer un método para que la información recolectada por

el analizador de red sea llevada a la Raspberry pi 3 para que (con dicha

información) pueda ajustar el algoritmo de configuración basado en radio

definido por software, para resolver este problema se realizó lo siguiente:

1) Dado que el software tiene alta versatilidad, es posible ejecutarlo desde

línea de comandos con la ventaja que el desarrollador ha incorporado varias

opciones de comandos que realizan tareas específicas. De forma simplificada

solo es de interés ejecutar los comandos mostrados en la Figura 13, en donde

se ha ejecutado el programa desde la ventana de comandos de Windows

(cmd); la primera línea del comando accede a la ubicación donde está alojada

la aplicación, en la segunda línea se usa la instrucción Start para iniciar la

aplicación junto con los comando deseados: /NumberOfScans que especifica el

número de escaneos a realizar cuando se usa guardado de archivos por línea

de comandos, y, /stabular que guarda la lista de redes inalámbricas en un

archivo de texto tabular.

Figura 13: Ejecución de la aplicación de escaneo de red por comandos.

Fuente: propia

26

2) Para optimizar los procesos y reducir el tiempo en la ejecución de las tareas

requeridas por la aplicación usada, se crea un archivo de procesamiento por

lotes (BATCH -.bat -) en Windows, de tal forma que con hacer un simple click

en este archivo se realizarán de forma secuencial exactamente las mismas

tareas mostradas en la Figura 13.

3) El archivo generado en texto plano gracias a la aplicación (hel.txt para el

caso de la Figura 13) es el que debe ser compartido con la Raspberry pi 3 para

su análisis, para ello se realiza lo mostrado en el siguiente apartado.

4.1.3. Interconexión entre Windows y Raspberry pi 3

Para realizar la conexión entre los dos sistemas operativos se utiliza la red que

los vincula junto con el software Samba, que es un software libre licenciado

bajo GNU/GPL, proporciona servicios de impresión e intercambio de archivos

utilizando el protocolo SMB/CIFS para todo tipo de clientes, ya sea DOS,

Windows, OS/2, Linux y muchos otros. Gracias a Samba, es posible que

equipos con GNU/Linux, Mac OS X o Unix funcionen como servidores o actúen

como clientes en redes Windows. Además de esto, Samba, permite validar

usuarios, hacer de dominio Active Director en redes basadas en Windows,

servir colas de impresión, directorios compartidos y autenticar con su propio

archivo de usuarios [48].

En primera instancia, el analizador de red se conecta inalámbricamente a la

misma red a la que está conectada de forma alámbrica la Raspberry pi 3 por

medio del Bridge (ver figura 11), para que estén en la misma red y así habilitar

el envío de archivos de un dispositivo al otro usando Samba. En el PC se crea

una carpeta en la sección de red de Windows con permisos de lectura y

escritura para todos los usuarios con el fin de que sea detectable el directorio

en la Raspberry pi 3.

Ahora creamos el folder que se va a enlazar con Windows desde la Raspberry

pi 3:

cd $HOME/pi/Desktop

mkdir shared

Seguido a esto, se realiza una instalación del software Samba en la Raspberry

Pi 3 de la siguiente manera:

sudo apt install samba samba-common-bin

27

Luego se accede al archivo de configuración de Samba mediante la instrucción:

sudo nano /etc/samba/smb.conf

Dentro de este archivo se editaron las siguientes configuraciones para poder

compartir en red:

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server

will part of

workgroup = WORKGROUP

# Windows Internet Name Serving Support Section:

# WINS Support - Tells the NMBD component of Samba to enable its

WINS Server

wins support = yes

[share]

comment = Share Directory

path = /srv/samba/share

browseable = Yes

writeable = Yes

create mask = 0644

directory mask = 0755

public = no

Una vez configurado Samba, se procede a reiniciar el servicio dejándolo

plenamente funcional.

sudo systemctl restart smbd

Por último, se ejecuta el siguiente comando en la Raspberry pi 3 con los

parámetros necesarios para actualizar el directorio compartido y obtener el

archivo desde Windows:

sudo mount.cifs //<hostname or IP address>/share

/home/pi/windowshare -o user=<name>

Donde hostname or IP address es la dirección IP asignada al equipo

Windows dentro de la red, y name es el usuario de acceso a la Raspberry pi.

El proceso realizado entre el PC y la Raspberry pi 3, se sintetiza en el diagrama

de flujo de la figura 14.

28

Figura 14: Diagrama lógico de operación en el PC.

Fuente: propia

4.1.4. Parámetros para la aplicación del SDR

Modelo matemático utilizado:

Para establecer un criterio fidedigno de aplicación de la radio definida por

software en Wi-Fi, se requiere que el sistema de comunicación tenga la

capacidad de evaluar dinámicamente bajo qué condiciones puede proporcionar

una conexión inalámbrica con la menor cantidad de ruido posible (lo que

propicia una mayor velocidad de transmisión de datos y evita pérdidas de

paquetes), para este proyecto se usó la relación señal a ruido (SNR) como

parámetro principal para evaluación de las condiciones óptimas en las que

puede funcionar el transceptor. Gracias a la relación señal a ruido es posible

investigar la cantidad de ruido presente en un canal de Wi-Fi (de en total 11

canales) y tener un punto de referencia creíble en el que se pueda establecer la

conexión sin importar la cantidad de usuarios conectados al canal. Con este

parámetro el sistema de comunicación tiene la autonomía suficiente para

denominarse como un hardware con prestaciones de SDR.

29

Como se explicó en la sección 4.1.2., los datos en los que se tiene interés al

realizar el escaneo de la red inalámbrica son principalmente dos: el RSSI de

cada punto de acceso y el canal asociado al mismo, con estos parámetros se

calcula la relación señal a ruido (SNR) en cada canal teniendo en cuenta un

modelo matemático basado en el cálculo en la interferencia y optimización en

redes 802.11n [49], su aplicación en este caso se realiza de la siguiente

manera:

A) La relación señal a ruido (𝑆𝑁𝑅) es de tipo logarítmica y debe ser tratada

como tal, en este caso se calculará como la diferencia entre la Potencia

promedio del canal (��𝑐ℎ𝑎𝑛𝑛𝑒𝑙) y la Potencia de ruido blanco Gaussiano

(𝑃𝑤ℎ𝑖𝑡𝑒_𝑛𝑜𝑖𝑠𝑒), ambas en dBm, luego:

��𝑐ℎ𝑎𝑛𝑛𝑒𝑙[𝑑𝐵𝑚] =∑ 𝑃𝑐ℎ𝑎𝑛𝑛𝑒𝑙𝑁𝑖=1

𝑁

𝑃𝑤ℎ𝑖𝑡𝑒_𝑛𝑜𝑖𝑠𝑒[𝑑𝐵𝑚] = 10log(𝑘𝑇𝐵)

𝑆𝑁𝑅[𝑑𝐵] = ��𝑐ℎ𝑎𝑛𝑛𝑒𝑙[𝑑𝐵𝑚]−𝑃𝑤ℎ𝑖𝑡𝑒𝑛𝑜𝑖𝑠𝑒[𝑑𝐵𝑚]

Donde:

• ��𝑐ℎ𝑎𝑛𝑛𝑒𝑙 es la potencia promedio del canal de Wi-Fi medida en dBm.

• 𝑃𝑐ℎ𝑎𝑛𝑛𝑒𝑙 es la potencia individual de la señal recibida de un punto de

acceso inalámbrico medida en dBm.

• 𝑃𝑤ℎ𝑖𝑡𝑒_𝑛𝑜𝑖𝑠𝑒 es la potencia de ruido blanco Gaussiano presente en el

ambiente medida en dBm.

• 𝑁 es el número de puntos de acceso inalámbricos que están presentes

en el mismo canal.

• 𝑘 es la constante de Boltzmann.

• 𝑇 es la temperatura ambiente medida en grados Kelvin.

• 𝐵 es el ancho de banda de cada canal Wi-Fi medida en Hz.

• 𝑆𝑁𝑅 la relación señal a ruido del canal medido en dB.

B) Dado que la potencia de ruido blanco gaussiano es invariante considerando

que, para efectos prácticos, la temperatura ambiente y el ancho de banda se

mantienen estables y será del mismo valor en todos las SNR de cada canal (ya

30

que no hay cambio de medio), es posible considerar esta expresión como una

constante, cuyo valor es:

𝑃𝑤ℎ𝑖𝑡𝑒𝑛𝑜𝑖𝑠𝑒[𝑑𝐵𝑚] = 10 log(298.15 ∙ 1.3806852 × 10−23 ∙ 20 × 106)

𝑃𝑤ℎ𝑖𝑡𝑒𝑛𝑜𝑖𝑠𝑒(𝑇 = 25°𝐶, 𝐵 = 20𝑀𝐻𝑧) ≅ −131𝑑𝐵𝑚

En donde se ha considerado una temperatura ambiente de T = 25°C, un ancho

de banda de B = 20MHz (según IEEE 802.11) y la constante de Boltzmann

como 𝑘 = 1.3806852 × 10−23𝐽/𝐾.

Script algoritmo SDR:

Por otra parte, se genera un script en la Raspberry con el fin de darle sentido a

lo explicado en la sección 4.1.2 y 4.1.3 y de forma ilustrativa, en el diagrama de

flujo mostrado a continuación se representa la secuencia usada para ejecutar el

proceso de SDR en la Raspberry. El cual en primera instancia abre el archivo

proveniente de Windows, luego se realiza la transferencia de archivos por

protocolo SMB/CIFS, después compara todas las SNR obtenidas por cada

canal detectado en el ambiente, y finalmente, tras este análisis se elige el canal

donde hay mejor SNR en comparación al resto de redes (el menos ruidoso) y

se configura dentro del archivo mostrado en la figura 12.

Figura 15: Diagrama lógico aplicación de algoritmo para SDR.

Fuente: propia

31

4.2. Transmisión de la información

La condición más importante del simulador usado en el proyecto es el algoritmo

generado a partir del mismo, dicho algoritmo será usado por el conjunto de

robots para generar una secuencia de movimiento determinada, es decir, no es

más que el conjunto de datos que estarán presentes en el sistema de

comunicación y que son programados en la Raspberry; estos datos deben

presentar la menor cantidad de errores y debe garantizarse enviar la trama

desde el transceptor hasta el Microcontrolador del conjunto de robots (ESP32).

La figura 16 muestra gráficamente el proceso descrito:

Figura 16: Diagrama de la transmisión de datos.

Fuente: propia

4.2.1. Protocolo de comunicación UDP entre Raspberry y ESP32

Se estableció una comunicación bidireccional entre el ESP32 y la Raspberry pi

3 por medio del protocolo UDP (User Datagram Protocol). Para su

estructuración de protocolos de red (según modelo TCP/IP) se utiliza la capa

de red proporcionada por un Modem casero, para esto fue necesario realizar

códigos en Arduino IDE y Python 3 respectivamente.

32

Script generado en Raspberry pi 3:

El sistema operativo manejado en Raspberry en este caso es raspbian, que no

es más que una distribución de GNU/Linux basada en Debian pero optimizada

para la Raspberry pi [50]. Al estar soportado sobre Linux, la mayoría de

aplicaciones son programadas sobre Python, luego entonces el script

desarrollado para enviar y recibir información debe ser programado en Python.

El código nº1 mostrado en la sección de Anexos, ayuda a comprender de qué

forma se implementó la capa de transporte para el transceptor. Para este

ejemplo se envían paquetes de datos a la IP 10.28.1.216 que es la asignada

por el DHCP al ESP32, en total se envían 7 paquetes de datos codificados

(instrucción .encode()) que corresponden a las secuencias de movimientos de

cada módulo del robot EMeRGE. Cada secuencia se envía a través del puerto

cada 2 segundos y por último se habilita el buffer de entrada para recibir datos

provenientes del ESP32.

Algoritmo generado en el módulo ESP32:

La rutina (algoritmo) de programación contenida en el ESP32 y programada en

Arduino debe contener las instrucciones necesarias para interpretar los

comandos enviados desde la Raspberry Pi 3 para controlar el robot; debe

poder recopilar los datos obtenidos por el robot y debe tener la capacidad de

conectarse a un hot-spot establecido por el transceptor, para poder

interconectar el robot al mismo y posibilitar el envío de datos.

Tras configurar las librerías de este dispositivo (ESP32), se procede con el

siguiente algoritmo que conecta el microcontrolador al Punto de Acceso

generado en la Raspberry, de forma ilustrativa el código de programación

establece que la dirección IP del server es 192.168.0.5 en el puerto 1234 y el

SSID del AP es “HeltN” con frase de paso “proyecto123”:

33

4.3. Conexión a la nube

En la figura 17 se muestra las partes del sistema de comunicación involucradas

en el envío de datos al servidor conectado a internet:

Figura 17: Diagrama envío de datos a la nube.

Fuente: propia

4.3.1. Programación de ThingSpeak

ThingSpeak suple las necesidades mínimas requeridas en este proyecto, por lo

que se elige como el servidor usado para llevar a cabo el alojamiento de datos

34

del parámetro de desempeño del robot, el cual para este caso es la velocidad

angular promedio de cada movimiento.

En este apartado se realizó la creación del canal en la plataforma para subir el

parámetro de desempeño del robot mediante la Raspberry pi 3 usando como

medio físico el router conectado a la misma.

Para realizar la conexión al servidor de ThingSpeak, se ejecuta el código nº2

en la Raspberry que está anidado como un sub proceso dentro del código nº1

(ver Anexos). En la figura 18, se muestra el proceso llevado a cabo por el

sistema de comunicación para alojar los datos en el servidor. Mediante la llave

y el ID proporcionados por la plataforma, se accede al canal previamente

creado. Posteriormente, tras lograr la transmisión de datos entre el transceptor

y el microcontrolador, se habilita la rutina que envía el parámetro de

desempeño al servidor para ser visualizado tras un retardo.

Figura 18: Diagrama lógico operación Raspberry y conexión a la nube.

Fuente: propia

35

5. RESULTADOS

En la figura 19 y 20 se muestran diferentes dispositivos que componen el

sistema de comunicación junto con el robot EMeRGE: el router, la Raspberry pi

3 y el ordenador para el escaneo de la red.

Figura 19: Partes del sistema de comunicación.

Fuente: propia

Figura 20: Partes del sistema de comunicación, robot EMeRGE encendido.

Fuente: propia

36

Configuración del transceptor:

Para establecer una plena conexión a internet es necesario en primera

instancia comprobar una correcta configuración del bridge en la Raspberry, en

la siguiente figura, se evidencia que la interfaz de red inalámbrica (wlan0) no

tiene asignada ninguna dirección IP, en su lugar, br0 tiene el valor asignado de

la IP por el servicio de DHCP.

Figura 21: Interfaces de red disponibles en el embedido.

Fuente: propia

Transmisión de datos:

Tras conseguir un correcto acceso a internet por parte de la Raspberry, se

ejecuta el script programado en la Raspberry que posibilita la comunicación

UDP entre el transceptor y el ESP32 y también inicia el sub-proceso para el

envío de datos a ThingSpeak. En la figura 22 se muestra la consola de

ejecución del algoritmo UDP en la Raspberry pi 3, el programa ejecuta líneas

en el terminal cada vez que envía exitosamente cadenas de datos al ESP32.

En este caso en específico, el ESP32 toma el rol de cliente con una dirección

IP 10.28.1.192 en el puerto 1234, desde la Raspberry se envía la secuencia de

movimiento del robot (A0512#B0512#...) y, además, desde el programa en el

ESP32 se envía el mensaje ‘ArduinoToRasp’ a la Raspberry, que es

correctamente recibido por la misma.

37

Figura 22: Puerto serie al ejecutar algoritmo UDP en Raspberry.

Fuente: propia

Paralelamente, en la rutina principal del ESP32 están programadas

instrucciones para visualizar en el puerto serie los datos de la secuencia de

movimiento que ejecutará el robot, que corresponden a los valores de

A0512#B0512… y que son enviados desde el transceptor según lo mostrado

anteriormente. Adicionalmente, al abrir el puerto serie en Arduino se muestra

información relacionada con el protocolo UDP e información de la red, en la

figura 23 se muestra dicha información: el canal es el 1, la dirección IP desde

donde llega la información es 10.28.1.174 (la Raspberry), la dirección IP del

dispositivo de destino es 10.28.1.192 (el ESP32) y la longitud de la cadena de

datos (52 bytes) como era de esperarse.

38

Figura 23: Puerto serie al ejecutar el algoritmo del ESP32.

Fuente: propia

Evaluación de pruebas de conectividad:

Para probar la correcta conectividad entre el transceptor y el microcontrolador

que comunica al robot, se usa el software Wireshark para capturar los datos

que están presentes en la red, el programa permite visualizar peticiones,

protocolo usado, entre otros parámetros que son de utilidad en este caso.

La figura 24 muestra la captura de datos en el host de la Raspberry; en este

Host se realizan principalmente tareas de comunicación y ejecución de distintas

peticiones entre la IP 10.28.1.174 y la IP 10.28.1.192, que no son más que las

direcciones asociadas a la Raspberry pi 3 y el ESP32 respectivamente

Otras peticiones incluyen reconocimiento ante la red y solicitudes al hardware

de red principal, el router.

39

Figura 24: Datos de captura en Wireshark (Raspberry)

Fuente: propia

La figura 25 muestra las peticiones llevadas a cabo por el microcontrolador

ESP32. Es visible que el ESP32 realiza tareas de identificación ante la red,

además de peticiones ante el host 10.28.1.174, que no es más que la dirección

IP de la Raspberry pi.

Figura 25: Adaptadores de red configurados en la Raspberry.

Fuente: propia

40

Finalmente, la información es alojada en el servidor dispuesto en ThingSpeak,

tal como se ve en la figura 26.

Figura 26: Interfaz de ThingSpeak para alojar datos en la nube.

Fuente: propia

41

6. CONCLUSIONES

• El presente sistema de comunicación demostró ser significativamente

más ágil transmitiendo datos que el simulador virtual comunicado por

LoRaWAN y MATLAB desarrollado de forma paralela a este proyecto y

que hace parte del proyecto de investigación principal. Existe un retardo

menor transmitiendo datos usando el sistema de comunicación con

tecnología Wi-Fi. Con un tiempo aproximado de 15 segundos en enviar

una secuencia de movimiento del robot completa, frente a 1 minuto que

toma enviar estos datos desde MATLAB con el simulador virtual y

LoRaWAN, el transceptor implementado sobre la Raspberry pi 3 resulta

ser en conjunto, más adecuado para transmitir las instrucciones de

movimiento del robot.

• El modelo matemático implementado para calcular la relación señal a

ruido (SNR) en los canales de Wi-Fi, se adapta perfectamente a los

fundamentos de radio definida por software (SDR). Debido a que el

concepto de SDR abarca características generales para sistemas de

comunicación en donde la más importante es la de adaptar las

condiciones de hardware por medio de software, en este caso en

específico (802.11g/n) la aplicación del SDR está enfocada en poder

elegir dinámicamente el canal donde se establece la conexión con un

parámetro realmente preponderante en el ámbito de las

comunicaciones: la SNR presente en el medio donde se realiza la

conexión.

• ThingSpeak es una herramienta versátil para el envío de datos a la

nube, permitiendo alojar una cantidad de datos considerables y mostrar

gráficas básicas para el análisis periódico de los datos. Sin embargo, la

versión gratuita de ThingSpeak tiene limitaciones en cuanto a los

intervalos de subida y actualización de las gráficas entre cada dato,

presentando latencias adicionales a los datos subidos.

• La velocidad de respuesta de conexión del microcontrolador ESP32 es

ideal para el uso que se le da en este proyecto. Debido a que la

Raspberry debe reiniciarse, para aprovechar al máximo los parámetros

establecidos gracias a la aplicación de SDR, el microcontrolador debe

tener la capacidad de conectarse al punto de acceso de forma rápida e

42

inmediatamente direccionar los datos hacia la Raspberry, propósito que

es satisfactoriamente cumplido.

• Debido a que la Raspberry pi 3 solo posee una interfaz de red

inalámbrica, configurarla como Punto de Acceso limita la cantidad de

funcionalidades de las que se puede disponer de la misma, debido a

esto, no fue posible usarla como sniffer para rastrear las redes

circundantes, obligando a usar un ordenador de apoyo que tuviera otra

tarjeta de red disponible para exclusivamente esta funcionalidad. Sin

embargo, esta limitante puede ser solucionable usando un dispositivo

tipo USB dongle insertado de forma local en la Raspberry para darle un

control total al sistema de comunicación desde el embebido.

43

7. TRABAJO FUTURO

El entorno de software libre tiene diversas opciones para explorar, GNU Radio

es una de ellas. GNU Radio tiene prestaciones dedicadas a radio definida por

software, lo que ofrece alternativas interesantes para desarrollo de programas

de forma rápida y sencilla, esto es esencialmente importante si se usa para

sistemas de comunicación con dispositivos SDR sobre software libre, máxime

si se opta por dispositivos robustos como los USRP. Se sugiere explotar las

cualidades de GNU Radio para futuras propuestas basadas en sistemas de

comunicación con SDR.

44

8. BIBLIOGRAFÍA

[1] C. A. Parra, “Industria 4.0, ¿una realidad en Colombia?,” Editorial La

República S.A.S, 2018. [Online]. Available:

https://www.larepublica.co/internet-economy/industria-40-una-realidad-

en-colombia-2792292. [Accessed: 22-Aug-2019].

[2] G. J. Díaz, “Telecomunicaciones en la eficiencia de los Sistemas de

Distribución Eléctrica,” Revista ElectroIndustria, 2013. [Online]. Available:

http://www.emb.cl/electroindustria/articulo.mvc?xid=2154&srch=servicios

&act=3. [Accessed: 23-Aug-2019].

[3] Ptolomeo.unam, “Capítulo 1 Radio Definido por Software 2 1. Radio

Definido por Software,” pp. 2–15.

[4] Equipo de Prensa de Revista ElectroIndustria, “AUTOMATIZACIÓN Y

CONTROL INDUSTRIAL: Digitalizar los procesos productivos, la clave

para el futuro,” Revista ElectroIndustria, 2019. [Online]. Available:

http://www.emb.cl/electroindustria/articulo.mvc?xid=3379&tip=&xit=autom

atizacion-y-control-industrial-digitalizar-los-procesos-productivos-la-clave-

para-el-futuro. [Accessed: 21-Aug-2019].

[5] hisparob, “La modularidad es el futuro de la robótica industrial y de la

automatización flexible |,” hisparob.es, 2019. [Online]. Available:

https://www.hisparob.es/la-modularidad-es-el-futuro-de-la-robotica-

industrial-y-de-la-automatizacion-flexible/. [Accessed: 21-Aug-2019].

[6] M. Á. Sastoque-Caro, G. A. Puerto-Leguizamón, and C. A. Suárez-

Fajardo, “Oportunidades para la implementación de radio definida por

software en redes de sensores,” Rev. Fac. Ing., vol. 26, no. 45, pp. 137–

148, Apr. 2017.

[7] redesunoglv.blogspot.com, “REDES UNO: REDES INALAMBRICAS,”

2019. [Online]. Available: http://redesunoglv.blogspot.com/p/redes-

inalambricas.html. [Accessed: 27-Aug-2019].

[8] J. P. Blázquez, “Introducción a los sistemas de comunicación

inalámbricos,” FUOC. Fundació per a la Universitat Oberta de Catalunya.

[Online]. Available:

https://www.exabyteinformatica.com/uoc/Informatica/Tecnologia_y_desarr

ollo_en_dispositivos_moviles/Tecnologia_y_desarrollo_en_dispositivos_

moviles_(Modulo_1).pdf. [Accessed: 14-Apr-2018].

45

[9] -Diego Álvarez Delgado -Carolina Jorquera Cáceres -Gabriel Sepúlveda

Jorquera -Camila Zamora Esquivel, “Redes Privadas Virtuales (VPN),”

2014.

[10] M. Saber, H. K. Aroussi, A. El Rharras, and R. Saadane, “Raspberry Pi

and RTL-SDR for Spectrum Sensing based on FM Real Signals,” Int.

Conf. Multimed. Comput. Syst. -Proceedings, vol. 2018-May, pp. 1–6,

2018.

[11] J. Mitola, “Software radios: Survey, critical evaluation and future

directions - IEEE Aerospace and Electronics Systems Magazine,” no.

April, pp. 25–36, 1993.

[12] S. Haykin and B. Van Veen, Señales y sistemas, 1ra edició. México D.F.:

LIMUSA WILEY, 2001.

[13] L. E. Frenzel, Sistemas electronicos de comunicaciones. Marcombo,

2004.

[14] M. BARRIO ANDRÉS, Internet de las cosas. Madrid, 2017.

[15] J. MANYIKA, “Unlocking the potential of the Internet of Things,” Informe

del McKinsey Global Institute, 2015. .

[16] P. Dobbins, “How IoT is Changing the Future of Mobile,”

iotevolutionworld.com, 2018. [Online]. Available:

https://www.iotevolutionworld.com/iot/articles/438430-how-iot-changing-

future-mobile.htm. [Accessed: 08-Feb-2020].

[17] J. L. del Val Román, “Industria 4.0. La Transformación Digital de la

Industria Española,” p. 120, 2012.

[18] RASPBERRY PI FOUNDATION, “Raspberry Pi 3 Model B - Raspberry

Pi.” [Online]. Available: https://www.raspberrypi.org/products/raspberry-pi-

3-model-b/. [Accessed: 14-May-2018].

[19] H. Hernández, “Estimación de una serie de movimientos utilizando un

algoritmo de optimización bio-inspirado para la operación de manera

autónoma y On-Line de una plataforma Multi-Robot ( Caso robot modular

),” 2018.

[20] ESPRESSIF SYSTEMS, “ESP32 Overview | Espressif Systems.”

[Online]. Available:

https://www.espressif.com/en/products/hardware/esp32/overview.

[Accessed: 24-Aug-2019].

46

[21] Prometec.net, “Instalando el ESP32 | Tienda y Tutoriales Arduino.”

[Online]. Available: https://www.prometec.net/instalando-esp32/.

[Accessed: 24-Aug-2019].

[22] Y. FM, “Qué es Arduino, cómo funciona y qué puedes hacer con uno,”

Xataka, 2018.

[23] The MathWorks Inc, “3D World Editor - MATLAB & Simulink,”

www.matworks.com. [Online]. Available:

https://www.mathworks.com/help/sl3d/the-3d-world-editor.html.

[Accessed: 05-Feb-2020].

[24] The MathWorks Inc, “Learn More - ThingSpeak IoT,”

www.thingspeak.com. [Online]. Available:

https://thingspeak.com/pages/learn_more. [Accessed: 09-Jan-2020].

[25] L. Atzori, A. Iera, and G. Morabito, “The Internet of Things: A survey,”

Comput. Networks, vol. 54, pp. 2787–2805, 2010.

[26] R. Zaheer and S. Khan, “Future Internet: The Internet of Things

Architecture, Possible Applications and Key Challenges,” pp. 257–260,

2012.

[27] J. Gubbi, R. Buyya, S. Marusic, and M. Palaniswami, “Future Generation

Computer Systems Internet of Things (IoT): A vision, architectural

elements, and future directions,” Futur. Gener. Comput. Syst., vol. 29, pp.

1645–1660, 2013.

[28] J. Tan and S. G. M. Koo, “A Survey of Technologies in Internet of Things,”

2014.

[29] D. V and A. Kumar Singh, “Internet of Things: a Survey of the

Advancements,” Int. J. Eng. Technol., vol. 7, no. 3.12, p. 255, 2018.

[30] A. Gluhak, S. Krco, M. Nati, D. Pfisterer, N. Mitton, and T.

Razafindralambo, “A Survey on Facilities for Experimental Internet of

Things Research,” vol. 49, no. 11, 2011.

[31] S. Romero, C. Tipantuña, J. Estrada, and J. Carvajal, “Desarrollo de

sistemas receptores de AM, FM y ADS-B utilizando radio definida por

software, hardware y software libre,” pp. 147–156, 2015.

[32] E. G. Sierra and G. A. R. Arroyave, “Low cost SDR spectrum analyzer

and analog radio receiver using GNU radio, raspberry Pi2 and SDR-RTL

dongle,” 2015 7th IEEE Latin-American Conf. Commun. LATINCOM

47

2015, 2016.

[33] B. Bloessl, M. Segata, C. Sommer, and F. Dressler, “Performance

Assessment of IEEE 802.11p with an Open Source SDR-Based

Prototype,” IEEE Trans. Mob. Comput., vol. 17, no. 5, pp. 1162–1175,

2018.

[34] B. Ramírez, “A study of IEEE 802.11ah and its SDR implementation,”

Tesis, Esc. Técnica Super. Ing. Ind. y Telecomunicación, Univ. Pública

Navarra, 2016.

[35] R. Zitouni and L. George, “Output power analysis of a software defined

radio device,” 2016 IEEE Radio Antenna Days Indian Ocean. RADIO

2016, pp. 1–2, 2016.

[36] R. Zitouni, S. Ataman, and L. George, “RF Measurements of the RFX 900

and RFX 2400 Daughter Boards with the USRP N210 Driven by the GNU

Radio Software,” Int. Conf. Cyber-Enabled Distrib. Comput. Knowl.

Discovery, Beijing, China, Oct. 10–12, 2013, pp. 490–494.

[37] R. Zitouni, S. Ataman, M. Mathian and L. George, "Radio frequency

measurements on a SBX daughter board using GNU radio and USRP N-

210," Measurements & Networking (M&N), 2015 IEEE International

Workshop on, Coimbra, 2015, pp. 1-5.

[38] C. Wai Zhao, J. Jegatheesan, and S. Chee Loon, “Exploring IOT

Application Using Raspberry Pi,” Int. J. Comput. Networks Appl., vol. 2,

no. 1.

[39] W. J. Mcbride and J. R. Courter, “Using Raspberry Pi microcomputers to

remotely monitor birds and collect environmental data,” 2019.

[40] A. Imteaj, T. Rahman, M. K. Hossain, and S. Zaman, “IoT based

autonomous percipient irrigation system using raspberry Pi,” in 19th

International Conference on Computer and Information Technology,

ICCIT 2016, 2017, pp. 563–568.

[41] Y. Kim, R. G. Evans, and W. M. Iversen, “Remote Sensing and Control of

an Irrigation System Using a Distributed Wireless Sensor Network,” IEEE

Trans. Instrum. Meas., vol. 57, no. 7, pp. 1379–1387, 2008.

[42] K. K. Namala, A. V. Krishna Kanth Prabhu, A. Math, A. Kumari, and S.

Kulkarni, “Smart irrigation with embedded system,” in IEEE Bombay

Section Symposium 2016: Frontiers of Technology: Fuelling Prosperity of

48

Planet and People, IBSS 2016, 2017.

[43] S. Vaishali, S. Suraj, G. Vignesh, S. Dhivya, and S. Udhayakumar,

“Mobile integrated smart irrigation management and monitoring system

using IOT,” in 2017 International Conference on Communication and

Signal Processing (ICCSP), 2017, pp. 2164–2167.

[44] X. Li, X. Ding, Y. Zhang, Z. Sun and H. Zhao, "IoT Family Robot Based on

Raspberry Pi," 2016 International Conference on Information System and

Artificial Intelligence (ISAI), Hong Kong, 2016, pp. 622-625.

[45] M. Güleçi and M. Orhun, "Android based WI-FI controlled robot using

Raspberry Pi," 2017 International Conference on Computer Science and

Engineering (UBMK), Antalya, 2017, pp. 978-982.

[46] Ettus Research, “USRP N210 Software Defined Radio (SDR) - Ettus

Research | Ettus Research, a National Instruments Brand | The leader in

Software Defined Radio (SDR).” [Online]. Available:

http://www.ettus.com/all-products/un210-kit/. [Accessed: 21-Aug-2019].

[47] N. Sofer, “WifiInfoView - WiFi Scanner for Windows 10/7/8/Vista,”

http://www.nirsoft.net/, 2012. [Online]. Available:

http://www.nirsoft.net/utils/wifi_information_view.html. [Accessed: 04-Feb-

2020].

[48] El Atareo, “Compartir archivos en red con Samba en tu Raspberry - El

atareao,” atareo.es, 2017. [Online]. Available:

https://www.atareao.es/tutorial/raspberry-pi-primeros-pasos/compartir-

archivos-en-red-con-

samba/?fbclid=IwAR0L9HCpttr8BC40Y7z0d3NPpXTZMpzj5mGoE8mF3L

HIpzcFSZY8EaBOZzw. [Accessed: 04-Feb-2020].

[49] I. Dolińska, A. Masiukiewicz, and G. Rządkowski, “The mathematical

model for interference simulation and optimization in 802.11n networks,”

CEUR Workshop Proc., vol. 1032, pp. 99–110, 2013.

[50] RASPBERRY PI FOUNDATION, “FrontPage - Raspbian,” Welcome to

Raspbian. [Online]. Available: https://www.raspbian.org/. [Accessed: 29-

Dec-2019].

49

ANEXOS

A. Código 1:

import socket

import time

import sys

import subprocess

process1 =

subprocess.Popen(['python3','/home/pi/Desktop/thingspeak.py'])

sock = socket.socket(socket.AF_INET, # Internet

socket.SOCK_DGRAM) # UDP

sock.bind(("0.0.0.0", 1234))

while True:

UDP_IP = "10.28.1.216"

UDP_PORT = 1234

MESSAGE1 = "A0469#B0571#".encode()

MESSAGE2 = "A0512#B0650#".encode()

MESSAGE3 = "A0563#B0550#".encode()

MESSAGE4 = "A0650#B0470#".encode()

MESSAGE5 = "A0550#B0420#".encode()

MESSAGE6 = "A0370#B0470#".encode()

MESSAGE7 = "A0512#B0580#".encode()

print("UDP target IP:", UDP_IP)

print("UDP target port:", UDP_PORT)

print("message:", MESSAGE3)

sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))

time.sleep(1)

sock.sendto(MESSAGE1, (UDP_IP, UDP_PORT))

50

time.sleep(2)

sock.sendto(MESSAGE2, (UDP_IP, UDP_PORT))

time.sleep(2)

sock.sendto(MESSAGE3, (UDP_IP, UDP_PORT))

time.sleep(2)

sock.sendto(MESSAGE4, (UDP_IP, UDP_PORT))

time.sleep(2)

sock.sendto(MESSAGE5, (UDP_IP, UDP_PORT))

time.sleep(2)

sock.sendto(MESSAGE6, (UDP_IP, UDP_PORT))

time.sleep(2)

sock.sendto(MESSAGE7, (UDP_IP, UDP_PORT))

time.sleep(2)

data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes

print("received message:", data) #time.sleep(1)

print("received message:", data)

B. Código 2:

import Adafruit_DHT

from time import time, sleep

from urllib.request import urlopen

import sys

WRITE_API ="UDPZ1BC08MWFHCVE" # Replace your ThingSpeak API key

here

BASE_URL =

"https://api.thingspeak.com/update?api_key={}".format(WRITE_API)

ThingSpeakPrevSec = 0

ThingSpeakInterval = 20 # 20 seconds

vel1=17

vel2=40.67

51

vel3=25.16

vel4=26.09

vel5=25

vel6=35

vel7=42

i=[1,2,3,4,5,6,7]

try:

while True:

for k in i:

if k==1:

thingspeakHttp = BASE_URL +

"&field1={:.2f}".format(vel1)

print(thingspeakHttp)

conn = urlopen(thingspeakHttp)

print("Response: {}".format(conn.read()))

conn.close()

sleep(15)

print (k)

if k==2:

thingspeakHttp = BASE_URL +

"&field1={:.2f}".format(vel2)

print(thingspeakHttp)

conn = urlopen(thingspeakHttp)

print("Response: {}".format(conn.read()))

conn.close()

sleep(15)

print (k)

if k==3:

thingspeakHttp = BASE_URL +

"&field1={:.2f}".format(vel3)

print(thingspeakHttp)

conn = urlopen(thingspeakHttp)

print("Response: {}".format(conn.read()))

52

conn.close()

sleep(15)

print (k)

if k==4:

thingspeakHttp = BASE_URL +

"&field1={:.2f}".format(vel4)

print(thingspeakHttp)

conn = urlopen(thingspeakHttp)

print("Response: {}".format(conn.read()))

conn.close()

sleep(15)

print (k)

if k==5:

thingspeakHttp = BASE_URL +

"&field1={:.2f}".format(vel5)

print(thingspeakHttp)

conn = urlopen(thingspeakHttp)

print("Response: {}".format(conn.read()))

conn.close()

sleep(15)

print (k)

if k==6:

thingspeakHttp = BASE_URL +

"&field1={:.2f}".format(vel6)

print(thingspeakHttp)

conn = urlopen(thingspeakHttp)

print("Response: {}".format(conn.read()))

conn.close()

sleep(15)

print (k)

if k==7:

thingspeakHttp = BASE_URL +

"&field1={:.2f}".format(vel7)

53

print(thingspeakHttp)

conn = urlopen(thingspeakHttp)

print("Response: {}".format(conn.read()))

conn.close()

sleep(15)

print (k)

except KeyboardInterrupt:

conn.close()