El siguiente trabajo corresponde a la asignatura de Internet de las Cosas de la carrera de Ingeniería en Telecomunicaciones Facultad de Ingeniería en Ciencias Aplicadas (FICA-CITEL) de la "Universidad Técnica del Norte" (UTN), realizado por Ana Grijalva bajo tutoría del docente MSC. Edgar Maya.
Objetivo:El objetivo general de este trabajo es emplear nodos reales Openmote-b en la localidad de Strasburgo de forma remota desde una cuenta en la plataforma de FIT IoT LAB para el envío de datos vía MQTT a un broker en la plataforma de AWS y permitir la visualizacion de datos correspondientes a una estación climática desde un dashboard alojado en Ubuntu Server.
Topología:La arquitectura a seguir para el siguiente trabajo se evidencia en la imagen mostrada a continuación:
- Cuenta en FIT IoT LAB y credenciales de acceso:
Antes de iniciar con el proceso como tal es necesario contar con algunos requerimientos, como crear una cuenta de tipo institucional en la plataforma de FIT IoT LAB, esto puede realizarse de forma sencilla siguiendo en enlace presentado a continuación: https://www.iot-lab.info/testbed/signup
Con la cuenta creada de forma adecuada, es necesario que, en una máquina virtual, en este caso Ubuntu 20.04, se realice el procedimiento descrito en el siguiente enlace: https://www.iot-lab.info/docs/getting-started/ssh-access/ , el cual otorga acceso, vía SSH al testbed de FIT IoT LAB desde el terminal, este tutorial es propio de la plataforma y puede adaptarse a distribuciones de Linux y Windows, más en este caso concreto, todos los comandos especificados corresponden a Linux.
- Creación de una cuenta en AWS
Amazon Web Service ofrece una larga lista de servicios que serán empleados a lo largo de este trabajo, por lo que en primera instancia se debe obtener una cuenta que permita hacer uso de todas sus funcionalidades, esto puede realizarse siguiendo el enlace a continuación: https://portal.aws.amazon.com/billing/signup#/start/email
Tras acceder al enlace es necesario empezar a completar todos los campos solicitados para la creación de la cuenta, finalizando con la solicitud de AWS de verificación de identidad mediante una tarjeta de alguna institución financiera.
- Creación de usuario IAM
1. El acceso IAM es parte crucial de esta práctica puesto que es el que permitirá establecer las conexiones requeridas, por que es necesario habilitar la opción y para realizar esto se debe acceder a la cuenta y buscar “Acceso de los usuarios y los roles de IAM a la información de facturación”.
2. Dentro de IAM, es necesario definir un nuevo usuario con el que se va a desarrollar todos los siguientes procesos, para esto se accede a la opción de “Crear un nuevo usuario ” y se completan los datos, se debe asignar un nombre, definir el acceso por contraseña personalizada.
3. A continuación se debe crear un grupo para añadir al usuario a su grupo, y una vez se ha definido esto se procede a finalizar la creación del usuario.
- Creación de objetos dentro de IoT Core
1. Para generar objetos en IoT Core en AWS, primero debe buscar "IoT Core" en la sección "Servicios". Esto lo llevará a una página completamente nueva donde seleccionará en la parte "Objetos" y allí hará clic en "Crear objeto". Luego cree un objeto exclusivo, asígnele un nombre y seleccione la sombra del dispositivo. En esta sección, seleccione 'Sombra sin nombre' y 'Siguiente' en la sección 'Certificados de dispositivo'. Seleccione la alternativa "Crear automáticamente un nuevo certificado", ya que se recomienda.Posteriomente se debe hacer click en "Crear un objeto" y descargar los certificados y claves proporcionados para poder conectarse a AWS, finalmente se podrá visualizar que el objeto fue creado correctamente.
2. Para crear una política, debe ir a la sección "Políticas" en IoT Core y seleccionar "Producir política" para luego establecer un nombre para la política que desea crear, luego debe seleccionar "Permitir" en "Impacto de la política" y "*" en "Acciones de la política" y "Recursos de la política" y seleccione el botón "Generar" para ver si la política se ha desarrollado correctamente. Luego, debe ingresar a la sección de certificados y adjuntar la política creada al certificado desarrollado previamente.
- Creaciónde tablas en DynamoBD
1. La tabla debe crearse en DynamoBD, que almacenará los datos proporcionados por la instancia creada en cada nodo, primero DynamoBD debe cargarse en el servicio de AWS, ir a la sección "Paneles" y hacer clic en "Generar tabla". Luego se debe asignar el nombre a la tabla y agregamos un parámetro "ID" en la clave de partición que es la clave principal de la tabla, así como un parámetro "datetime" en la clave de ordenación, que permite ordenar y buscar recursos. que comparten la misma clave de partición, al final tienes que hacer clic en "Generar" y podremos ver si la tabla se genera correctamente.
- Obtención de credenciales de acceso para Linux
1. Para realizar la vinculación AWS a su terminal Linux, necesitará sus credenciales de contabilidad para acceder a la sección Credenciales de estabilidad de Contabilidad y acceder a sus "Claves de acceso" para generar una contraseña completamente new.key", asegúrese de que esté activo y guarde ese documento para que los archivos de configuración posteriores puedan modificarse
- Configuración de Amazon Cognito
1. Para permitir la visualización de datos es necesario crear un grupo de identidades en Amazon Cognito, para lo que se precisa en primer lugar acceder y seleccionar “Administrar Grupo de identidades” y crear una nueva identidad.
2. Posteriormente se accede IAM y en el apartado de roles se selecciona el grupo de identidades creadas y asociar la política necesaria.
3. Finalmente en las identidades federadas se selecciona el grupo creado, y se puede obtener el código muestra en formato Javascript para usar posteriormente en la configuración del servidor web.
1. Al tener el document.elf para el enrutador de borde, es posible iniciar el experimento para el cual debe ingresar al banco de pruebas y crear un nuevo experimento para el cual debe seleccionar los nodos correspondientes a la arquitectura que se utilizará en la situación de Open mote y A8 y la ubicación correspondiente al servidor utilizado, en este ejemplo Strasbourg.
2. Al iniciar el experimento pueden visualizarse los nodos agregados previamente.
1. Acceder a través del terminal por ssh a la cuenta personal creada previamente en el sitio web de Fit IoT-LAB en el siguiente enlace: https://www.iot-lab.info/.Para lo cual es necesario ingresar el nombre de usuario correspondiente a la cuenta de Fit IoT-LAB enlazada.
sudo ssh <user>@strasbourg.iot-lab.info2. A continuación, se procede a cambiar al directorio de ejemplos proporcionado por Fit IoT-LAB correspondiente a border router, para posteriormente seleccionar la fuente del sistema operativo e implementar el comando make en donde se especifica el canal y placa a implementar para obtener un archivo. elf, el cual es el que permitirá flashear los nodos dentro del laboratorio virtual..
cd iot-lab/parts/RIOT/examples/gnrc_border_router
source /opt/riot.source
make ETHOS_BAUDRATE=115200 DEFAULT_SUBGHZ_CHANNEL=0 BOARD=openmote-b clean all3. Una vez obtenido el archivo, para poder usarlo es necesario copiarlo en un repositorio en la memoria real de la máquina virtual por lo que se requiere que, se copie directamente el fichero desde el servidor donde se aloja realmente, para esto es necesario seleccionar en que carpeta se va a guardar la copia haciendo uso del comando scp.
- Nota: este paso debe realizarse en un nuevo terminal sin cerrar el anterior.
sudo su
scp <user>@strasbourg.iot-lab.info:/senslab/users/<user>/iot-lab/parts/RIOT/examples/gnrc_border_router/bin/openmote-b/gnrc_border_router.elf /home/<destination directory>/openmoteb-border-router.elfgit clone https://github.com/AnaGrijalva/IoT_B24. A continuación, se debe flashear (Subir el archivo.elf proporcionado anteriormente) en el nodo que se le designará como Border router e iniciar la simulación.
5. Se debe proceder con el comando que inicia el router, el cual debería estar siempre activo para que siga administrando comunicación.
sudo ethos_uhcpd.py openmoteb-19 tap8 2a07:2e40:fffe:00f5::/641. Para obtener el firmware necesario para flashear las 2 estaciones que se implementará, al igual que en el Router de borde, primeramente es necesario acceder por shh a la cuenta personal de FiT IoT-LAB, para posteriormente clonar el repositorio proporcionado en el apartado de code de este proyecto.
git clone https://github.com/AnaGrijalva/IoT_B22. Posteriormente, se enlista los repositorios para verificar si la clonación fue realizada correctamente, para después cambiar al directorio de Comprementos y verificar que exista el directorio Emcute_MQTTSN.
ls
cd IoT_B2/Complementos
ls3. A continuación es necesario copiar el directorio Emcute_MQTTSN al directorio en donde se encuentran los ejemplos proporcionados por Fit IoT-LAB para posteriormente poder hacer uso de él.
cp -r Emcute_MQTTSN/ /senslab/users/<user>/iot-lab/parts/RIOT-examples/
cd /senslab/users/<user>/iot-lab/parts/RIOT-examples/
ls4. Para obtener el firmware de la estación 1, primeramente es necesario seleccionar la fuente del sistema operativo e implementar el comando make en donde se especifica el canal, placa a implementar e identificador de la estación para obtener el archivo. elf, el cual es el que permitirá flashear el nodo correspondiente a la estación 1 dentro del laboratorio virtual.
cd iot-lab/parts/RIOT/examples/Emcute_MQTTSN
source /opt/riot.source
make DEFAULT_SUBGHZ_CHANNEL=0 BOARD=openmote-b EMCUTE_ID=station1 clean al5. Una vez obtenido el archivo para la estación 1, para poder usarlo es necesario copiarlo en un repositorio en la memoria real de la máquina virtual por lo que se requiere que, se copie directamente el fichero desde el servidor donde se aloja realmente, para esto es necesario seleccionar en que carpeta se va a guardar la copia haciendo uso del comando scp.
- Nota: este paso debe realizarse en un nuevo terminal sin cerrar el anterior.
sudo su
scp <user>@strasbourg.iot-lab.info:/senslab/users/<user>/iot-lab/parts/RIOT/examples/Emcute_MQTTSN/bin/openmote-b/emcute_mqttsn.elf /home/<destination directory>/openmoteb-emcute_mqttsn1.elf6. Para obtener el firmware de la estación 2, primeramente es necesario seleccionar la fuente del sistema operativo e implementar el comando make en donde se especifica el canal, placa a implementar e identificador de la estación para obtener el archivo. elf, el cual es el que permitirá flashear el nodo correspondiente a la estación 2 dentro del laboratorio virtual.
cd iot-lab/parts/RIOT/examples/Emcute_MQTTSN
source /opt/riot.source
make DEFAULT_SUBGHZ_CHANNEL=0 BOARD=openmote-b EMCUTE_ID=station2 clean all7. Una vez obtenido el archivo para la estación 2, para poder usarlo es necesario copiarlo en un repositorio en la memoria real de la máquina virtual por lo que se requiere que, se copie directamente el fichero desde el servidor donde se aloja realmente, para esto es necesario seleccionar en que carpeta se va a guardar la copia haciendo uso del comando scp.
- Nota: este paso debe realizarse en un nuevo terminal sin cerrar el anterior.
sudo su
scp <user>@strasbourg.iot-lab.info:/senslab/users/<user>/iot-lab/parts/RIOT/examples/Emcute_MQTTSN/bin/openmote-b/emcute_mqttsn.elf /home/<destination directory>/openmoteb-emcute_mqttsn2.elf8. A continuación, se debe flashear (Subir los archivos.elf proporcionados anteriormente) en los nodos que se les designará como estación 1 y estación 2 e iniciar la simulación.
9. Finalmente, se procede a ingresar desde el terminal del sistema operativo a los nodos openmote-b designados como estaciones.
- Ingreso al nodo designador como estación 1.
nc openmoteb-<#nodo> 20000- Ingreso al nodo designador como estación 2.
nc openmoteb-<#nodo> 20000En base a lo señalado en el protocolo WiSUN se procede a definir una modulación en la que trabajen los nodos de open mote, esta debe ser igual en todos considerando el canal especificado y el tipo de modulación para que puedan comunicarse, se define en este caso con los siguientes parámetros y de forma inicial debe accederse a los nodos con el siguiente comando:
nc openmoteb-<#nodo> 20000Una vez accedido al nodo dentro de cada uno se establecen los siguientes parámetros en base a la modulación que se vaya a emplear:
- Modulación FSK
La modulación FSK cuenta con diferentes parámetros a definir para especificar en que modo van a trabajar los nodos en base a esta modulación siendo así dentro de la configuración de la interfaz 6, que es la que permite que exista comunicación entre los nodos, se define: tipo de modulación, índice y orden de la modulación, el espaciado del canal o el ancho de banda, el canal en que se vana comunicar los nodos y la tasa de datos o velocidad de transmisión.
1. El primer nodo a configurar es el router de borde, y se realiza empleando los siguientes comandos en el terminal del nodo, estos datos pueden variar en base a como se quiera que trabaje el nodo, para variarlos, se debe revisar el estándar y colocar los valores deseados, y una vez se desarrollo la configuración se hace uso del comando "ifconfig" para verificar que se hayan realizado correctamente las configuraciones.
ifconfig 6 set phy_mode MR-FSK
ifconfig 6 set modulation_index 1
ifconfig 6 set modulation_order 2
ifconfig 6 set channel_spacing 200
ifconfig 6 set chan 10 <en base a los canales especificados en el estandar>
ifconfig 6 set srate 50
ifconfig2. Una vez configurado el router de borde las mismas configuraciones deben ser asignadas a ambas estaciones, puesto que para que exista comunicación estas deben estar operando en el mismo modo, canal y esquema de modulación, por lo que se repite el procedimiento:
ifconfig 6 set phy_mode MR-FSK
ifconfig 6 set modulation_index 1
ifconfig 6 set modulation_order 2
ifconfig 6 set channel_spacing 200
ifconfig 6 set chan 10 <en base a los canales especificados en el estandar>
ifconfig 6 set srate 50
ifconfig3. Una vez se hallan configuradas, es necesario verificar que exista comunicación entre las estaciones de la red que se está generando, por lo que se hace uso del siguiente comando:
ping6 <ipv6destino>%6- Modulación OFDM
1. Similar a lo realizado con la modulación FSK se usar el comando ifconfig6 y se van enviando los diferentes parámetros de configuración a emplear para los nodos, de igual forma debe realizarse el procedimiento dentro del router de borde así como en cada estación, como recomendación, antes de cambiar la configuración de un nodo es aconsejable reiniciarlo dentro de FIT IoT Lab para trabajar con el nodo en su estado inicial, para OFDM se deben ir especificando parámetros como el tipo de modulación, la opción, el esquema y el canal, todos estos parámetros se hallan también dentro del estándar correspondiente a 802.15.4g y pueden variar como se indica en las diferentes líneas de código:
ifconfig 6 set phy_mode MR-OFDM
ifconfig 6 set option 1 <1-4> <se elige uno>
ifconfig 6 set scheme 0 <0-6> <define el data rate en base al estandar>
ifconfig 6 set chan 2 <en base a los canales especificados en el estandar>
ifconfig2. Al igual que en el caso anterior, las estaciones deben configurarse con los mismos parámetros para que exista comunicación en la red, el procedimiento será el mismo siguiendo los comandos presentados a continuación , los valores pueden variar en base a las necesidades siempre y cuando se apeguen a lo definido por el estándar.
ifconfig 6 set phy_mode MR-OFDM
ifconfig 6 set option 1 <1-4> <se elige uno>
ifconfig 6 set scheme 0 <0-6> <define el data rate en base al estandar>
ifconfig 6 set chan 2 <en base a los canales especificados en el estandar>
ifconfig3. Una vez se hallan configuradas a la nueva modulación se debe verificar que exista convergencia en la red mediante el siguiente comando:
ping6 <ipv6destino>%6- Modulación Q-PSK para sub-GHz
1. Para el siguiente esquema de modulación se vuelve a repetir el mismo procedimiento, se hace uso del comando ifconfig6 para ir enviando las configuraciones respectivas a cada nodo empezando por el router de borde considerando que se van emplear modificaciones en: esquema de modulación, canal, chip rate y rate mode, todos estos valores definidos en el estándar 802.15.4g:
ifconfig 6 set phy_mode MR-O-QPSK
ifconfig 6 set chan 0 <Solo es utilizable el canal 0>
ifconfig 6 set chip_rate 100
ifconfig 6 set rate_mode 0 <0-3 variable en base a los valores del estándar>
ifconfig2. Siguiendo los mismos pasos anteriores en cada nodo correspondiente a las estaciones se realizarán las mismas configuraciones con la finalidad de que exista comunicación entre los tres nodos que forman la red.
ifconfig 6 set phy_mode MR-O-QPSK
ifconfig 6 set chan 0 <Solo es utilizable el canal 0>
ifconfig 6 set chip_rate 100
ifconfig 6 set rate_mode 0 <0-3 variable en base a los valores del estándar>
ifconfig3. Y finalmente, al igual que en los casos anteriores se procede a realizar un ping para verificar que los nodos si estén configurados en los mismos canales y puedan comunicarse sin problema.
ping6 <ipv6destino>%61. Una vez se tiene flasheado e iniciado el router de borde es cumple con función de DHCP, es decir asigna de forma automática las direcciones IP a las diferentes estaciones que se van a emplear, por lo que una vez estas también se hallen flasheadas e iniciadas se procede a verificar su dirección ip global, para lo que en primer lugar se debe acceder desde el terminal con el siguiente comando, y a continuación con ifconfig se verifica la asignación de IP
nc openmoteb-<#nodo> 20000
nc openmoteb-<#nodo> 20000
ifconfigY al ya conocer sus direcciones IP se puede realizar un ping para asegurar que los nodos tengan comunicación entre ellos.
2. Cuando los nodos que van a representar a los clientes funcionen de forma adecuada, se procede a acceder de forma remota a la placa A8 que hará la función de bróker para que así se pueda realizar el envío de datos, para lo que se debe conocer también su dirección IP haciendo uso de los siguiente comandos, para el acceso al nodo y para verificar su dirección IP:
ssh root@node-a8-<#nodo>
ip -6 -o addr show eth03. Una vez que se verifica la dirección IP es necesario copiarla para posteriormente poder iniciar las estaciones, en primer lugar, para iniciar el broker se debe crear el siguiente archivo:
vim config.confY dentro del archivo se debe colocar el siguiente texto en el que se define la comunicación MQTT que se va a desarrollar.
# add some debug output
trace_output protocol
# listen for MQTT-SN traffic on UDP port 1885
listener 1885 INADDR_ANY mqtts
ipv6 true
# listen to MQTT connections on tcp port 1886
listener 1886 INADDR_ANY
ipv6 true4. A continuación se procede a ejecutar los archivos considerando orden, en primer lugar el broker, en segundo lugar la estación 1 y luego la estación dos con los siguientes comandos, se debe aclarar que cada una debe tener la conexión SSH abierta en un terminal diferente para que funcionen en simultáneo.
Broker ------ broker_mqtts config.conf
Estación 1 ----- start <Direc. IPv6 global de la placa A8> 1885 1
Estación 2 ----- start <Direc. IPv6 global de la placa A8> 1885 2Y es posible visualizar en envío de datos en tiempo real de ambas estaciones al broker:
1. Para realizar la configuración del Bridge MQTT-SN se ha designado la placa A8 para cumplir este rol, para lo cual es necesario acceder por shh a la cuenta personal de FiT IoT-LAB y de igual forma hacia dicha placa designada como bridge.
sudo ssh <user>@strasbourg.iot-lab.info
ssh root@node-a8-<#nodo>2. A continuación, se debe cambiar al directorio Complementos para posteriormente clonar los certificados proporcionados por AWS, los cuales fueron subidos previamente a github para hacer uso de ellos.
cd IoT_B2/Complementos
git clone https://github.com/<certs ubication>3. Posteriormente, es necesario modificar los parámetros dentro del archivo "MQTTSNbridge.py", los cuales son la región en la que que se ha desarrollado la máquina virtual, el nombre de la tabla creada previamente, el ID de la sombra y el nombre de los archivos clonados en el paso anterior.
cd /home/root/IoT_B2/Complementos/MQTTSN
vim MQTTSNbridge.py4. A continuación se debe instalar pip en la placa bridge A8.
TMPDIR=/ pip3 install --cache-dir=/ --build / boto3==1.15.35. Para instalar AWS en el bridge es necesario crear el directorio y crear el archivo config credentials y posteriormente verificar la conectividad a la siguiente url mediante el comando curl.
cd
mkdir -p ~/.aws
cd ~/.aws
touch config credentials
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"pip3 install AWSIoTPythonSDK6. Para continuar con la instalación, es necesario descomprimir el archivo.zip de AWS.
unzip awscliv2.zip./aws/install7. A continuación, se deben configurar las credenciales de AWS en el archivo "config" y dentro de este ingresar la región en la que que se ha desarrollado la máquina virtual.
cd ~/.aws
vim config8. Posteriormente, es necesario agregar las credenciales proporcionadas por AWS en el archivo "credentials" como se puede observar a continuación.
vim credentials9. Finalmente, es necesario cambiar al directorio /home/root/IoTB2/Complementos/MQTTSN en el cual se encuentra el archivo para compilar el bridge "MQTTSNbridge.py" mediante python, el cual al compilarse se debe especificar las estaciones 1 y 2 para poder visualizar lo datos que estas se encuentren enviando y a su vez para que sean almacenadas en la tabla creada dentro de AWS.
cd /home/root/IoT_B2/Complemento/MQTTSN
python3 MQTTSNbridge.py- Una vez compilado el bridge se debe especificar las estaciones para las que se desee recibir los datos que estas se encuentren almacenando, para el presente caso se especifica ambas secciones de la siguiente manera,
1
2
stop1. Para poder tener un servidor web activo que a su ve asigne una dirección IP pública y DNS se hace uso de otro de los servicios de AWS, y se procede a lanzar una nueva instancia para alojar este servidor, en este caso se escoge una máquina virtual de Ubuntu Server 18.04.
2. Se debe seleccionar crear un nuevo grupo de seguridad, hace uso de una nueva clave.pem y crear un nuevo grupo de seguridad, así también se debe permitir el tráfico SSH para tener el acceso remoto, también se debe permitir el tráfico HTTPS en caso de querer manejar un servidor web confiable y el HTTP que es el que se va a emplear.
3. Una vez configurado se procede a lanzar la instancia y se debe esperar a que esta se halle completamente lista para acceder desde un terminal externo con la dirección IP pública y la clave creada junto a la instancia.
4. Una vez iniciada la conexión SSH por el terminal, se procede a realizar la instalación del servidor web mediante el comando:
sudo apt install apache25. Y sin realizar ninguna otra configuración se puede acceder con el DNS dado por la instancia o la IP pública.
1. Con el repositorio clonado es necesario ejecutar la siguiente serie de comandos para crear el repositorio que almacene dentro de la carpeta de Apache los archivos que reemplacen al index base.
git clone https://github.com/AnaGrijalva/IoT_B22. Una vez ejecutados los comandos se procede a ir al repositorio base y del fichero First assigment se obtiene los archivos de la página web para copiarlos hacia el fichero que se acaba de crear.
cd /var/www
sudo mkdir /var/www/<nombre_fichero>
sudo chown -R $USER:$USER /var/www/<nombre_fichero>
sudo chmod -R 755 /var/www/<nombre_fichero>3. Los siguientes comandos permitirán copiar los archivos necesarios para subir al servidor web todo el contenido necesario para mostrar la página web con los datos necesarios para mostrar lo que envían las estaciones de Fit IoT Lab.
cd /home/ubuntu/IoTB2/WebApp
cp -r * /var/www/<nombre_fichero>
cd /var/www/<nombre_fichero>
cd web
cp * /var/www/<nombre_fichero>4. Una vez realizados los pasos anteriores, es necesario hacer uso de los siguientes comandos para acceder al archivo scrip.js que es el que va a permitir tomar datos para actualizar la página web, en este caso, se debe, en primer lugar reemplazar el encabezado que corresponde a las credenciales obtenidas en Amazon Cognito y el nombre de la tabla por el que corresponda a la tabla que se tenga creada en DynamoDB.
cd /var/www/<nombre_fichero>
cd assets/js
nano script.js5. A continuación en necesario crear un archivo que permita almacenar el host virtual que garantice tener acceso a la página web, para esto es necesario hacer uso del siguiente comando y colocar el texto a continuación donde se establezca el nombre del repositorio que se ha creado de forma previa.
sudo nano /etc/apache2/sites-available/iot.com.conf
-------------------Texto para el archivo---------------------
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName iot.com
DocumentRoot /var/www/<nombre_fichero>
DirectoryIndex dashboard.html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>6. Como último paso es necesario realizar un reinicio de todo el servidor web para almacenar estas nuevas variaciones establecidas en la configuración del servidor:
sudo a2ensite iot.com.conf
sudo a2dissite 000-default.conf
sudo apache2ctl configtest
sudo systemctl reload apache2Con el servicio levantado y el dashboard diseñado es posible visualizar desde cualquier navegador web los datos que se hallan enviando las estaciones en tiempo real, debido a la facilidad de AWS de ofrecer IP pública y un DNS.






Comments