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)