scieee AI-readable full text Open interactive document viewer

Data transmission via wifi and mobile data to a database using Arduino

Fernández De Villalta Canals, Eduardo

Abstract

Actualment, la nostra societat es basa en el traspàs d'informació i és Internet el causant amb més pes d'aconseguir un món plenament globalitzat. Aquest treball tracta sobre la transmissió de dades via WiFi i dades mòbils a una base de dades implementada a una màquina virtual a un servidor de la UPC. Per aconseguir-ho, s'han utilitzat dues plaques Arduino enllaçades amb un sensor ultrasònic i un fotoresitor. La primera placa emprada ha estat la MKR WiFi 1010, que és la que s'encarrega de la connectivitat WiFi i la segona ha estat la placa MKR GSM 1400, que és la que permet la connexió mitjançant dades mòbils. Finalment, atès que aquest projecte desenvolupa un servei, s'ha dut a terme la simulació de la creació d'un negoci anomenat "YourData" que ofereix els seus serveis a través d'una web informativa.

Full text

DATA TRANSMISSION VIA WIFI AND MOBILE DATA TO A DATABASE USING ARDUINO A Degree Thesis Submitted to the Faculty of the Escola Tècnica d'Enginyeria de Telecomunicació de Barcelona Universitat Politècnica de Catalunya by Eduardo Fernández de Villalta Canals In partial fulfilment of the requirements for the degree in TELECOMMUNICATIONS TECHNOLOGIES AND SERVICES ENGINEERING Advisor: José Antonio Lázaro Villa Barcelona, June 2022 1 Abstract Currently our society is based on the transfer of information and the Internet is the main cause of achieving a fully globalized world. This work deals with the transmission of data via WiFi and mobile data to a database implemented in a virtual machine at a server in the UPC. To achieve this, two Arduino boards linked with an ultrasonic sensor and a photoresistor sensor have been used. The first board used was the MKR WiFi 1010, which is the responsible for WiFi connectivity, and the second one was the MKR GSM 1400 board, which is the one that allows connection via mobile data. In addition, since this project develops a service, the simulation of the creation of a company called “YourData” has been carried out, which offers its services through an informative website. 2 Resum Actualment, la nostra societat es basa en el traspàs d'informació i és Internet el causant amb més pes d'aconseguir un món plenament globalitzat. Aquest treball tracta sobre la transmissió de dades via WiFi i dades mòbils a una base de dades implementada a una màquina virtual a un servidor de la UPC. Per aconseguir-ho, s'han utilitzat dues plaques Arduino enllaçades amb un sensor ultrasònic i un fotoresitor. La primera placa emprada ha estat la MKR WiFi 1010, que és la que s'encarrega de la connectivitat WiFi i la segona ha estat la placa MKR GSM 1400, que és la que permet la connexió mitjançant dades mòbils. Finalment, atès que aquest projecte desenvolupa un servei, s'ha dut a terme la simulació de la creació d’un negoci anomenat “YourData” que ofereix els seus serveis a través d'una web informativa. 3 Resumen Actualmente, nuestra sociedad se basa en el traspaso de información y es Internet el mayor causante de lograr un mundo plenamente globalizado. Este trabajo trata sobre la transmisión de datos vía WiFi y datos móviles a una base de datos implementada en una máquina virtual en un servidor de la UPC. Para lograrlo, se han utilizado dos placas Arduino enlazadas con un sensor ultrasónico y uno fotorresistor. La primera placa empleada ha sido la MKR WiFi 1010, que es la que se encarga de la conectividad WiFi y la segunda ha sido la placa MKR GSM 1400, que es la que permite la conexión mediante datos móviles. Finalmente, dado que este proyecto desarrolla un servicio, se ha llevado a cabo la simulación de la creación de un negocio llamado “YourData” el cual ofrece sus servicios a través de una web informativa. 4 Dedicatoria Dedicado a mis padres, a mi hermano, a mi abuela y a mi pareja por brindarme siempre su apoyo y estar ahí siempre que lo he necesitado. También a mi tutor José Antonio Lázaro por haberme acompañado y guiado durante todo el proceso de esta experiencia. 5 Agradecimientos Quiero agradecer a mi tutor José Antonio Lázaro por la ayuda que me ha brindado en este proyecto y su implicación en él, llevando a cabo reuniones semanales para asegurar el correcto desarrollo del trabajo. Además, me ha facilitado los materiales necesarios y me ha permitido hacer uso de un laboratorio para poder trabajar en las mejores condiciones posibles. Quiero agradecer también a Joaquín Fernández Piqueras, un gran informático de la UPC, que ha sido el responsable de la creación de las máquinas virtuales y que ha estado disponible siempre que se le requería. Por último, quiero agradecer a mis compañeros guiados también por José, cuyos proyectos eran paralelos al mío, ya que gracias a ellos toda esta travesía ha sido más gratificante. 6 Revision history and approval record Revision Date Purpose 0 1/9/2022 Document creation 1 17/9/2022 Document revision 2 30/9/2022 Document revision 3 3/10/2022 Document revision 4 8/10/2022 Final revision DOCUMENT DISTRIBUTION LIST Name Eduardo Fernández de Villalta Canals José Antonio Lázaro Villa Written by: Reviewed and approved by: Date 1/9/2022 Date 10/10/2022 Name Eduardo Fernández de Villalta Canals Name José Antonio Lázaro Villa Position Project Author Position Project Supervisor 7 Índice Abstract ............................................................................................................................ 1 Resum .............................................................................................................................. 2 Resumen .......................................................................................................................... 3 Dedicatoria ....................................................................................................................... 4 Agradecimientos ............................................................................................................... 5 Revision history and approval record ................................................................................ 6 Listado de Figuras ............................................................................................................ 9 Listado de Tablas ........................................................................................................... 10 Listado de Acrónimos ..................................................................................................... 11 1. Introducción ............................................................................................................. 12 1.1. Objetivos del proyecto ...................................................................................... 13 1.2. Metodología ...................................................................................................... 13 1.3. Especificaciones del proyecto........................................................................... 13 1.4. Incidencias y cambios respecto a la idea inicial ................................................ 13 1.5. Plan de trabajo y diagrama Gantt ..................................................................... 14 2. Estado del arte de las tecnologías usadas:.............................................................. 17 2.1. Arduino ............................................................................................................. 17 2.1.1. Arduino MKR WiFi 1010 ............................................................................ 17 2.1.2. Arduino MKR GSM 1400 ........................................................................... 18 2.2. Sensores .......................................................................................................... 19 2.2.1. Sensor de ultrasonidos HC-SR04 .............................................................. 19 2.2.2. Sensor fotorresistor GL55.......................................................................... 20 2.3. MongoDB & Node.js ......................................................................................... 20 2.4. Máquinas Virtuales ........................................................................................... 21 2.5. Wordpress ........................................................................................................ 21 3. Desarrollo del proyecto: ........................................................................................... 22 3.1. Creación de las máquinas virtuales .................................................................. 22 3.2. Implementación de la base de datos ................................................................ 22 3.3. Configuración del Arduino MKR WiFi 1010 ....................................................... 24 3.4. Configuración del Arduino MKR GSM 1400 ...................................................... 26 3.5. YourData .......................................................................................................... 27 8 3.5.1. Idea de negocio y origen ........................................................................... 27 3.5.2. Misión, visión y valores .............................................................................. 27 3.5.3. Descripción del servicio ............................................................................. 28 3.5.4. Propuesta de valor .................................................................................... 28 3.5.5. Público objetivo ......................................................................................... 28 3.5.6. Imagen corporativa .................................................................................... 28 3.5.7. Precio ........................................................................................................ 29 3.5.8. Distribución y promoción ........................................................................... 30 3.5.9. Plan de viabilidad ...................................................................................... 31 4. Resultados .............................................................................................................. 32 5. Costes del proyecto ................................................................................................. 35 5.1. Costes de los recursos humanos ...................................................................... 35 5.2. Costes de los recursos materiales .................................................................... 35 5.3. Costes de los recursos intangibles ................................................................... 36 6. Conclusiones y futuros desarrollos: ......................................................................... 37 Bibliografía: .................................................................................................................... 38 Apéndices ....................................................................................................................... 40 8.1. Script Node.js ................................................................................................... 40 8.2. Código del Arduino MKR WiFi 1010 ................................................................. 41 8.3. Código del Arduino MKR GSM 1400 ................................................................ 44 15 Nombre del Proyecto: Arduino MKR WiFi 1010 WP ref: Wp 3 Descripción: Programar la placa Arduino MKR WiFi 1010 para que envíe los datos de manera satisfactoria Fecha inicio: 21/4/2022 Fecha fin: 31/5/2022 Tarea interna 1: Entender el funcionamiento de la placa Tarea interna 2: Desarrollar un código que permita la transmisión vía WiFi Tarea interna 3: Comprobación de los resultados Tabla 1-3 Work Package 3: Arduino MKR WiFi 1010 Nombre del Proyecto: YourData WP ref: Wp 4 Descripción: Creación de la entidad YourData y desarrollo de la página web Fecha inicio: 1/6/2022 Fecha fin: 1/7/2022 Tarea interna 1: Entender cómo funciona WordPress Tarea interna 2: Desarrollo de la página web Tabla 1-4 Work Package 4: YourData Nombre del Proyecto: Arduino MKR GSM 1400 WP ref: Wp 5 Descripción: Programar la placa Arduino MKR GSM 1400 para que envíe los datos de manera satisfactoria Fecha inicio: 2/7/2022 Fecha fin: 27/9/2022 Tarea interna 1: Entender el funcionamiento de la placa Tarea interna 2: Desarrollar un código que permita la transmisión vía datos móviles Tarea interna 3: Comprobación de los resultados Tabla 1-5 Work Package 5: Arduino MKR GSM 1400 Nombre del Proyecto: Memoria WP ref: Wp 6 Descripción: Redactar la memoria del trabajo Fecha inicio: 28/9/2022 Fecha fin: 3/10/2022 Tarea interna 1: Escribir la memoria Tabla 1-6 Work Package 6: Memoria 16 Figura 1-1 Gantt Febrero-Mayo Figura 1-2 Gantt Junio-Octubre 17 2. Estado del arte de las tecnologías usadas: 2.1. Arduino Arduino es una plataforma electrónica de código abierto que se basa en hardware y software accesibles para todo el mundo. Las placas Arduino tienen todos los elementos necesarios para enlazar periféricos a los inputs y outputs de un microcontrolador. A lo largo de los años, Arduino ha sido el cerebro de muchos proyectos, yendo desde lo más básico a lo más complejo. Arduino ofrece una gran serie de ventajas respecto a otros sistemas parecidos: · Es económico: es mucho más asequible que otras plataformas de microcontroladores. · Entorno de programación simple y claro: el software Arduino es sencillo de usar para los recién iniciados, pero también es lo suficientemente flexible como para que los usuarios más avanzados puedan hacer un gran uso de él. · Software extensible: al ser de código abierto, cualquier usuario puede subir el código que haya desarrollado, por ejemplo, a GitHub, dando la oportunidad a cualquier usuario de emplearlo y mejorarlo. · Hardware extensible: los esquemas de las placas Arduino se publican en Internet y el usuario puede añadir los módulos que quiera siguiendo las pautas necesarias. 2.1.1. Arduino MKR WiFi 1010 Figura 2-1 Arduino MKR WiFi 1010 Figura 2-2 Pinout del Arduino MKR WiFi 1010 [4] En la figura 2-1 se puede apreciar cómo es la placa Arduino MKR WiFi 1010 desde las diferentes perspectivas. En la figura 2-2 se puede observar cómo la placa dispone de 7 conectores y 14 pines digitales. La conectividad WiFi se realiza con un módulo de u-blox, el NINA-W102, un chipset que funciona en el rango de 2,4 GHz. El MKR WiFi 1010 se 18 puede alimentar a través de USB o una batería de polímero de litio al cargador de batería integrado (BQ24195L). Esta batería tiene una corriente de carga mínima de 512 mA y sólo admite 3,3V. La placa tiene un crypto chip incorporado (el ATECC508) que garantiza que los datos permanezcan seguros y privados. Finalmente, la capacidad de transmisión es la siguiente: en IEEE 802.11b hasta 1,375 Megabytes/s, en IEEE 802.11g hasta 6,75 Megabytes/s y en IEEE 802.11n hasta 9 Megabytes/s. [5] 2.1.2. Arduino MKR GSM 1400 Figura 2-4 Arduino MKR GSM 1400 Figura 2-5 Pinout del Arduino MKR GSM 1400 [3] Figura 2-3 Arduino MKR GSM 1400 con la antena integrada Dónde se coloca la tarjeta SIM. 19 En la figura 2-4 se puede apreciar cómo es la placa Arduino MKR GSM 1400 desde las diferentes perspectivas. Por otro lado, en la figura 2-5 se puede observar cómo la placa dispone de 7 conectores y 14 pines digitales. Para hacer uso de la placa es necesario comprar una antena aparte, en este caso, la Antena GSM U.F.L, ya que la placa funciona en las bandas de frecuencia GSM/3G, concretamente a 850MHz y 1900MHz. En la figura 2-3 se visualiza la antena unida a la placa. La conectividad por datos móviles se realiza con un módulo de u-blox, el SARA-U201. El MKR GSM 1400 se puede alimentar a través de USB o una batería de polímero de litio al cargador de batería integrado (BQ24195L). Esta batería tiene una corriente de carga mínima de 512 mA y sólo admite 3,3V. La placa tiene un crypto chip incorporado (el ATECC508) que garantiza que los datos permanezcan seguros y privados. Finalmente, la capacidad de transmisión es la siguiente: en subida 46,875 Kilobytes/s y en bajada 37,5 Kilobytes/s. [3] 2.2. Sensores Un sensor es un módulo que detecta unos cambios en el entorno convirtiendo el parámetro físico, como puede ser la temperatura, en una señal que puede ser medida eléctricamente. Para realizar este proyecto se han usado los siguientes sensores: 2.2.1. Sensor de ultrasonidos HC-SR04 Figura 2-6 Sensor de ultrasonidos HC-SR04 Como se puede observar en la figura 2-6, en la parte delantera del sensor ultrasónico hay dos cilindros de metal, los transductores. Éstos transforman las fuerzas físicas en señales eléctricas. El cilindro de la izquierda actúa como un transmisor, es decir, convierte la señal eléctrica en pulsos de sonido ultrasónico de 40 KHz. El cilindro de la derecha, el receptor, escucha los pulsos transmitidos y emite un pulso de salida cuyo ancho se usa para saber la distancia recorrida por el pulso. [15] 20 2.2.2. Sensor fotorresistor GL55 Figura 2-7 Sensor fotorresistor GL55 La figura 2-7 muestra el sensor fotorresistor usado en el proyecto. Un fotorresistor es un sensor cuya resistencia varía en función de la luz recibida. Es esta variación la que permite, a través de las entradas analógicas, medir una estimación del nivel de luz. La resistencia que se ha usado en este proyecto es de 10k Ω. [14] 2.3. MongoDB & Node.js Las bases de datos están a la orden del día, son necesarias para almacenar información. De esta manera, se puede preservar para acudir a ella en cualquier momento [21]. En este proyecto se ha utilizado MongoDB, ya que es muy intuitiva a la hora de gestionar los datos almacenados y tiene una fácil lectura de los archivos JSON (forma en la que enviará los datos los Arduino). [22] MongoDB es una DBMS NoSQL, es decir, un sistema de gestión de bases de datos que no requieren estructuras fijas como tablas [24]. Para que la BBDD funcione correctamente, se necesita implementar un script de Node.js. Node.js es capaz de trabajar con MySQL y MongoDB como BBDD [23]. Para manejar cualquiera de estas BBDD, es necesario descargar y usar los módulos requeridos mediante el administrador de paquetes de Node [10]. MongoDB se puede manejar mediante comandos, pero existe una versión visual llamada MongoDB Compass que es la que se ha usado en el proyecto y se puede observar en la figura 2-8. Figura 2-8 MongoDB Compass 21 2.4. Máquinas Virtuales Las VM (Virtual Machines) son un entorno virtual que simula un sistema de computación y permite la ejecución de programas. Las VM tienen su propia IP así que para acceder a ellas es necesario usar la aplicación que viene dada por Windows llamada “Conexión a escritorio remoto” (Figura 2-9). Dado que las VM son creadas en la UPC, para conectarse a ellas será requerido utilizar una VPN. Figura 2-9 Conexión a Escritorio Remoto 2.5. Wordpress WordPress es un software de código abierto que se puede utilizar para la creación de webs, blogs o aplicaciones. Es un sistema de gestión de contenidos (CMS) que permite crear y mantener cualquier tipo de web. Además, WordPress dispone de un sistema de plugins (algunos gratuitos y otros de pago) que permiten ampliar sus funcionalidades. Por otro lado, permite la opción de añadir “woocommerce”, convirtiendo así la página web en un e-commerce, ya que permite vender productos online. En el caso de este proyecto no será necesario, ya que se trata de una web informativa, pues el precio final es adaptado y personalizado según cada petición y proyecto. 22 3. Desarrollo del proyecto: 3.1. Creación de las máquinas virtuales Las máquinas virtuales han sido creadas en uno de los servidores del departamento del TSC de la UPC. Se han generado dos VM diferentes, una para el caso de la transmisión de datos mediante WiFi y la otra para el caso de la transmisión de datos vía datos móviles. La IP de la primera VM es 10.5.38.109 y la IP de la segunda es 147.83.105.37. Es importante saber la IP de cada VM, ya que es donde se aloja la BBDD y donde el Arduino apuntará. Como se puede observar, la primera IP se trata de una de entorno local puesto que solo aceptará datos por transceptores WiFi conectados a la red local de la UPC, mientras que la segunda IP corresponde a una pública. A medida que avanzó el proyecto resultó que la VM no recibía los datos de manera satisfactoria. La solución a este problema fue abrir el puerto 8081 de la VM para que fuera accesible desde la red 10.0.0.0/8, es decir, cualquier red que empiece por 10. Lo mismo pasó en la segunda VM, en este caso, había que abrir el puerto 8081 a todo Internet. 3.2. Implementación de la base de datos Para implementar la BBDD, es necesario instalar 2 herramientas, MongoDB y Node.js. Con Node.js es posible comunicarse con la BBDD con comandos más sencillos. NPM (Node Package Manager) es un complemento que se usa para instalar varios complementos de Node.js mediante un solo comando. Primero se realiza la instalación de MongoDB. Hay que poner los siguientes comandos en el terminal: [8] $ curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add – $ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodborg/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list $ sudo apt update $ sudo apt install mongodb-org $ sudo systemctl start mongod.service $ sudo systemctl enable mongod Una vez instalado el MongoDB se procede a instalar la versión gráfica para poder visualizar mejor los datos, es decir, MongoDB Compass. $ sudo apt mongodb-compass Para instalar Node.js es necesario seguir los siguientes comandos en el terminal: [7] $ sudo apt update $ sudo apt install nodejs $ sudo apt install npm 23 Figura 3-1 Comando para iniciar MongoDB Compass Al abrir MongoDB Compass (Figura 3-1) aparece la siguiente ventana: Figura 3-2 Configuración MongoDB Compass Se tiene que pulsar la opción de Connect y, si todo se ha instalado correctamente, se observará la figura 2-8 pero sin las colecciones creadas. Figura 3-3 Creación de la database y las colecciones Creación de la database Creación de las colecciones 24 Para organizar un poco MongoDB Compass se ha llamado a la database TFG y a las colecciones con el nombre de las placas Arduino. Para llevar a cabo la BBDD es necesario hacer un script en Node.js. Este código está basado en diferentes páginas en las que se usa esta herramienta. [1] [6] [10] El script implementado en Node.js se encuentra en el Anexo1. Una vez se tiene el script se ejecuta en el terminal poniendo: $node Database.txt Figura 3-4 Ejecución script Node.js 3.3. Configuración del Arduino MKR WiFi 1010 Dado que el Arduino MKR WiFi 1010 y el Arduino MKR GSM 1400 pertenecen a la misma familia, tienen muchas configuraciones idénticas. En este apartado se explicarán cada una de ellas. El escenario de sensores se conecta de la misma manera en ambas placas. En la figura 3-5 se observan las diferentes conexiones y en la imagen 3-6 se visualiza el resultado final. [14] [15] [16] [20] Figura 3-6 Escenario de sensores junto conectado al Arduino Figura 3-5 Conexión de los sensores y la placa 31 3.5.9. Plan de viabilidad Para analizar la viabilidad del negocio, primeramente, se calcularán los costes fijos mensuales: Costes fijos mensuales Salario Desarrollador de Hardware 2500€ (con SS incluida) Salario Desarrollador de Software 2500€ (con SS incluida) Salario Project Manager 2800€ (con SS incluida) Alquiler de laboratorio 500€ Suministros 60€ Fibra 50€ Publicidad de la web en Google 100€ Total 8510€ Tabla 3-3 Costes fijos mensuales Estos costes fijos se le restarán a los beneficios generados a partir de los dos proyectos, es decir, a los 15.545,4€ calculados en el apartado 3.5.7. El margen de beneficio será de 7.035,4€. 32 4. Resultados Una vez hecho todo el procedimiento, es hora de ver los resultados. Cuando se ejecuta el código Arduino en la placa MKR WiFi 1010 y paralelamente se ejecuta el código de Node.js lo que nos muestra el terminal de Arduino es lo siguiente: Figura 4-1 Salida terminal Arduinol MKR WiFi 1010 (Transmisión de los datos) En la Figura 4-1 se puede observar que se conecta satisfactoriamente a la red WiFi que tenía como objetivo. También es posible visualizar la IP que tiene la placa en ese instante. Las últimas líneas corresponden a la correcta transmisión del dato, como se puede observar en la Figura 4-2 y 4-3. Figura 4-2 Recibimiento de datos en el terminal de la VM con IP privada 33 Figura 4-3 Datos almacenados en MongoDB Compass (WiFi 1010) En el caso del Arduino MKR GSM 1400 la salida por pantalla es la siguiente: Figura 4-4 Salida terminal Arduino MKR GSM 1400 (Conectado) Figura 4-5 Salida terminal MKR GSM 1400 (Transmisión de los datos) En la figura 4-4 se visualiza cómo se ha conectado de manera exitosa a la VM y en la figura 4-5 se puede observar que se ha enviado el dato correctamente. 34 Por otra parte, en el terminal de la máquina virtual (iot@sunset-iotsrv2 147.83.105.37) se puede percibir como los datos han sido recibidos correctamente. Figura 4-6 Recibimiento de datos en el terminal de la VM con IP pública Finalmente, entrando en el MongoDB Compass se observan los datos de la Figura 4-7 almacenados y estructurados en la BBDD TFG.Mkr GSM 1400. Figura 4-7 Datos almacenados en MongoDB Compass (GSM 1400) 35 5. Costes del proyecto En este apartado se hará una estimación del presupuesto del proyecto, teniendo en cuenta los diferentes elementos que han jugado un papel crucial como el personal, los materiales y los recursos intangibles. 5.1. Costes de los recursos humanos En el coste del personal se debe tener en cuenta que hay tres personas partícipes en el proyecto, un Ingeniero junior de la UPC, un informático y un supervisor del proyecto: Cargo Salario/h Horas mensuales Salario/ mes Seguridad social/mes 33,3% Duración del proyecto (meses) Coste Total Ingeniero Junior 14€ 40 560€ 186,48€ 8 5971,84€ Supervisor del proyecto 30€ 4 120€ 40€ 8 1280€ Informático 25€ 1 25€ 8,33€ 8 266,64€ Total 7518,48€ Tabla 5-1 Costes de los recursos humanos 5.2. Costes de los recursos materiales En los costes de los recursos materiales se evalúan todos los materiales utilizados en el proyecto: Materiales Coste/unidad-mes Unidades Coste total Ordenador 800€ 1 800€ Arduino MKR Wifi 1010 39,9€ 2 79,8€ Arduino MKR GSM 1400 65,95 2 131,9€ Antenas 5,5€ 2 11€ Sensores 9€ 1 9€ SIM 2€ 1 16€ Total 1047,7€ Tabla 5-2 Costes de los recursos materiales 36 5.3. Costes de los recursos intangibles Los recursos intangibles son aquellos que están presentes en el proyecto, pero no se pueden percibir físicamente: Recursos Coste/mes Meses Coste total Electricidad 30€ 8 240€ Internet 26€ 8 208€ Alquiler de laboratorio 500€ 8 4000€ Total 4448€ Tabla 5-3 Costes de los recursos intangibles 37 6. Conclusiones y futuros desarrollos: Una vez terminado el proyecto, es posible corroborar que todos los objetivos se han cumplido con éxito. El primer objetivo se trataba de lograr que el Arduino MKR WiFi 1010 enviara datos procesados por un sensor de ultrasonidos y por otro de fotorresistencia de manera exitosa a una base de datos alojada en un servidor de la UPC. Los resultados en las imágenes 4-1, 4-2 y 4-3 confirman experimentalmente que el proceso ha sido logrado. Por otro lado, el segundo objetivo se trataba de lograr lo mismo anteriormente mencionado, pero esta vez con el Arduino MKR GSM 1400. En este caso, la transmisión ha sido efectuada mediante datos móviles. Los resultados en las figuras 4-4, 4-5, 4-6 y 4-7 demuestran que se ha cumplido el objetivo. Finalmente, viendo las posibilidades infinitas de transmisión de datos que pueden surgir actualmente y la necesidad de este servicio por parte de muchas empresas, he creído que la mejor opción de vender y llevar al mundo real el producto/servicio que he desarrollado en mi proyecto, es mediante un modelo de negocio llamado “YourData“. Este negocio tiene como objetivo satisfacer las necesidades existentes relacionadas con la transmisión de información. Dado que cada proyecto tendrá unos requerimientos distintos, la mejor manera de llegar al cliente es a través de una página web informativa, que tiene como objetivo captar leads (clientes potenciales). Cada petición se tratará de manera personalizada según las diferentes necesidades, variando así los costes en función de cada proyecto en concreto. En conclusión, me gustaría destacar que para mí este proyecto ha sido un reto y a su vez una experiencia muy gratificante y enriquecedora, ya que he podido comprobar que durante el transcurso del proyecto se pueden presentar adversidades técnicas y complejas que, con esfuerzo y dedicación, he podido resolver. 38 Bibliografía: [1] Alejandro Roa (2019): “Aprender Node.js, API con express.js y mongoDB”. Disponible en: https://alejandroroa.medium.com/aprender-node-js-api-con-express-js-y-mongodb12023cf62a0c [Consultado 25-03-2022] [2] Arduino (2019): “MKR1010 to Processing Over WiFi – Arduino LiveCast S03E05” Disponible en: https://www.youtube.com/watch?v=UmEPTh80KLc [Consultado 01-052022] [3] Arduino (2022) “MKR GSM 1400”. Disponible en: https://docs.arduino.cc/hardware/mkr-gsm-1400 [Consultado 10-07-2022] [4] Arduino (2022) “MKR WiFi 1010”. Disponible en: https://docs.arduino.cc/hardware/mkrwifi-1010 [Consultado 02-05-2022] [5] Arduino (2022): “Arduino MKR WiFi 1010. Product Reference Manual. SKU: ABX00023”. Disponible en: https://docs.arduino.cc/static/5cf0e42b25c26b7eac6146189ada1af1/ABX00023datasheet.pdf [Consultado 01-05-2022] [6] Bluuweb (2020): “Curso Node.js [#10 Conexión a Mongo DB]”. Disponible en: https://www.youtube.com/watch?v=IpQSsb-1N1g [Consultado 03-03-2022] [7] Boucheron, Brian (2020): “Cómo instalar Node.js en Ubuntu” Disponible en: https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-2004-es [Consultado 06-03-2022] [8] Drake, Mark (2020): “Cómo instalar MongoDB en Ubuntu 20.04” Disponible en: https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-2004-es [Consultado 15-03-2022] [9] Fernández, Yúbal (2021): “APN o nombre del punto de acceso: qué es, para qué sirve y cómo configurarlo” Disponible en: https://www.xataka.com/basics/apn-nombre-puntoacceso-que-sirve-como-configurarlo [Consultado 10-07-2022] [10] Guru99 (2022): “Node.js MongoDB Tutorial con ejemplos”. Disponible en: https://guru99.es/node-js-mongodb/ [Consultado 22-03-2022] [11] La Hora Maker (2019): “Cómo conectar a Internet tu Arduino MKR Wifi 1010 – Curso objetos conectados #2”. Disponible en: https://www.youtube.com/watch?v=yG9fzXvPDg&t=8s [Consultado 11-05-2022] [12] La Hora Maker (2019): “Cómo lanzar comandos por Internet utilizando Arduino MKR Wifi 1010 – Curso Objetos conectados #3”. Disponible en: https://www.youtube.com/watch?v=HJ20NnBZFP8&t=247s [Consultado 12-05-2022] [13] La Hora Maker (2019): “Primeros pasos Arduino MKR Wifi 1010 – Curso Objetos Conectados #1”. Disponible en: https://www.youtube.com/watch?v=_zCSLceuGeo&t=427s [Consultado 10-05-2022] [14] Luis Llamas (2022): “Medir nivel de luz con Arduino y fotoresistencia LDR (GL55)”. Disponible en: https://www.luisllamas.es/medir-nivel-luz-con-arduino-y-fotoresistencia-ldr/ [Consultado 15-04-2022] 39 [15] Selectro (2022): “¿Cómo funciona el sensor de ultrasonidos medidor de distancia”. Disponible en: https://solectroshop.com/es/blog/como-funciona-el-sensor-deultrasonidos-medidor-de-distancia--n99 [Consultado 14-04-2022] [16] Tinkerall (2017): “Arduino Básico EP11. Programar sensor de luz o fotorresistor con ARDUINO”. Disponible en: https://www.youtube.com/watch?v=l5VmwOvUwpc [Consultado 14-04-2022] [17] Usuario “@rob2791” (2021): “Conectar Arduino con Philips Hue”. Disponible en: https://askarduino.com/q/21256/conectar-arduino-con-philips-hue [Consultado 16-072022] [18] Usuario “per1234” en GitHub (2021): “Arduino-libraries / MKRGSM” Disponible en: https://github.com/arduinolibraries/MKRGSM/blob/master/examples/GPRSPing/GPRSPing.ino [Consultado 16-072022] [19] Usuario “per1234” en GitHub (2021): “Arduino-libraries / MKRGSM” Disponible en: https://github.com/arduino-libraries/MKRGSM [Consultado 16-07-2022] [20] Usuario “proyectoTEOS” en GitHub (2019): “Sensor-de-distancia-HC-SR04-conArduino”. Disponible en: https://github.com/proyectoTEOS/Sensor-de-distancia-HCSR04-con-Arduino [Consultado 14-04-2022] [21] Wikipedia (2022): “Base de Datos”. Disponible en: https://es.wikipedia.org/wiki/Base_de_datos [Consultado 20-03-2022] [22] Wikipedia (2022): “Mongo DB”. Disponible en: https://es.wikipedia.org/wiki/MongoDB [Consultado 20-03-2022] [23] Wikipedia (2022): “Node.js”. Disponible en: https://es.wikipedia.org/wiki/Node.js [Consultado 22-03-2022] [24] Wikipedia (2022): “NoSQL”. Disponible en: https://es.wikipedia.org/wiki/NoSQL [Consultado 20-03-2022] [25] OpenMind BBVA (2021): “El impacto de Internet en la sociedad: perspectiva global”. Disponible en: https://www.bbvaopenmind.com/articulos/el-impacto-de-internet-en-lasociedad-una-perspectiva-global/ [Consultado 25-09-2022] 40 Apéndices 8.1. Script Node.js // Configuración inicial de MongoDB let express = require('express'); let app = express(); app.listen(8081, '0.0.0.0'); let MongoClient = require('mongodb').MongoClient; var url = "mongodb://localhost:27017/"; var bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json('application/json')); app.use(express.urlencoded({ extended: true })); app.use(express.json()); app.post('/', (req, res, next) => { console.log(req.header('Content-Type')) console.log(req.body) // Declaración de las variables de datos var d1 = parseInt(req.body.Luz); var d2 = parseInt(req.body.Distancia); MongoClient.connect(url, async function(err, db,) { if (err) throw err; var dbo = db.db("TFG"); //En este código esta puesta la colección del MKR WiFi 1010, si queremos acceder a la del MKR GSM 1400 únicamente hay que cambiar el nombre // Transmisión de los datos dbo.collection("Mkr Wifi 1010").insertOne({"Luz": d1, "Distancia" : d2} ,function(err, result) { if (err) throw err; if (result["acknowledged"] == true) { res.setHeader('Content-Type', 'application/json'); res.json({"Inserted" : true}); // Si la transmisión es correcta } else { res.setHeader('Content-Type', 'application/json'); res.json({"Inserted" : false}); // Si la transmisión falla } db.close(); }); }); });