¿Qué aprenderá?
¿Qué hará?
¿Cuáles son los prerrequisitos?
Este tutorial ha sido construido para que el estudiante pueda emular el funcionamiento de un dispositivos físicos desplegado en la Capa de Dispositivos de un Sistemas IoT. El dispositivo a emular será una Raspberry Pi y para poder realizar la simulación de la captura y envío de datos, para tal fin el tutorial lo guiará en la instalación y configuración de un hipervisor de máquinas virtuales, la creación de una máquina virtual con el sistema operativo Raspberry Pi OS y aprenderá a realizar un uso básico de este sistema operativo. Por último, aprenderá a correr scripts de python que permitan realizar un ejemplo de la captura y envío de datos a los servidores de almacenamiento y visualización de los datos en la nube.
En este punto es importante resaltar que las prácticas fueron desarrolladas utilizando la versión 6.1.32 de VirtualBox y la versión Debian Buster lanzada en enero de 2021 del Raspberry Pi OS; sin embargo el software utilizado puede cambiar, por tanto no se puede garantizar que al desarrollar esta práctica todo estará exactamente igual a cuando se elaboró el tutorial. Esta es una realidad que se vive en el desarrollo de los proyectos de IoT y es muy importante desarrollar la habilidad de adaptarse a estos posibles cambios; así que los invitamos a que estén preparados para buscar información adicional que les permita llevar a buen término el trabajo propuesto. El equipo docente estará pendiente para ayudarlos.
Un hipervisor es un software que permite la creación y ejecución de máquinas virtuales (VM), para el presente tutorial se utilizará el hipervisor de Oracle llamado VirtualBox con la finalidad de crear una máquina virtual basada en el Sistema Operativo Raspberry Pi de manera que nos permita emular una tarjeta de desarrollo IoT.
Como primer paso, en caso de no tener instalado VirtualBox, se debe obtener el instalador adecuado para el sistema operativo (Windows, MacOS, Linux) de su equipo de cómputo, para tal fin ingrese a la página de descarga de esta aplicación.
En el caso de que ya disponga de esta aplicación, por favor siga con la sección Creación y configuración de la Máquina Virtual con Raspberry Pi OS de este tutorial.
Como se puede ver en la figura 1, en la sección "VirtualBox X.X.XX platform packages" se encontrarán los enlaces específicos para descargar el instalador requerido de acuerdo al sistema operativo, solo requiere hacer clic en el enlace que aplique a su caso.
Figura 1. Sitio web de descarga de VirtualBox
Para la instalación de este aplicativo siga los pasos enunciados por el instalador que descargó. Si tiene algún problema, no dude en comunicarse con el tutor o monitor del curso.
Una vez se disponga del Virtualbox debemos proceder a realizar la creación y configuración de la máquina virtual; ya que esta máquina es la que nos permitirá realizar la emulación de la placa de desarrollo de IoT.
Para efectuar la creación de la Máquina Virtual con el Sistema Operativo Raspberry Pi OS, realice la siguiente secuencia de pasos:
Raspberry Pi Desktop
" haga clic en "Descargar
". En este punto es importante resaltar que no tiene que escoger el sistema operativo pues la descarga es una imagen ISO que es compatible con el hipervisor.New
" (Ver Figura 2). A continuación, se desplegará una guía paso a paso que le ayudará en el proceso de creación de la máquina virtual.Figura 2. Interfaz de creación de máquina virtual
Next
".Si las versiones de 64-bit no aparecen en el listado consulte esta guía.
Figura 3. Interfaz de selección de sistema operativo
Memory Size
). Para este caso, asigne 1GB de memoria RAM como mínimo. Esto lo puede realizar escribiendo directamente la cantidad de memoria en el cuadro de texto o utilizando el slider que aparece en la ventana (Ver Figura 4). Una vez realizada la asignación de memoria pulse el botón "Next
".Figura 4. Interfaz de selección de memoria RAM
Create a virtual hard disk now
" y pulse el botón "Create
" (Ver Figura 5).Figura 5. Interfaz de creación de disco duro
VDI
(
VirtualBox Disk Image)
") como se puede ver en la Figura 6. Finalmente, pulse el botón "Next" para ir al siguiente paso en la configuración.Figura 6. Interfaz de selección de tipo de disco duro
Dinamically allocated
"), esto permitirá que la máquina virtual sólo utilice espacio en su disco duro físico a medida que se vaya llenando (hasta un tamaño máximo fijado) (Ver Figura 7). A continuación pulse el botón "Next
".Figura 7. Interfaz de tipo asignación de espacio para el disco duro
Create
".Figura 8. Interfaz de selección de tamaño de disco duro
Figura 9. Máquina virtual creada
Una vez creada la máquina virtual, se debe realizar su configuración; esto tiene que ver con la configuración de la conexión a Internet de la máquina virtual, la carga del sistema operativo y la instalación del mismo. A continuación se especifican los pasos a seguir.
Dado que en proceso de creación de la máquina virtual ya configuramos sus características básicas (Memoria RAM y Disco Duro), el siguiente paso necesario es la configuración de la red.
Para este fin, haga clic en el botón "Settings
" esto desplegará una ventana en la que podrá ver todas las características de la máquina virtual. Seleccione la opción "Network
" y en la pantalla que se despliega identifique el campo "Attached to
" y seleccione la opción "Bridged Adapter
"; esta configuración simula que la tarjeta virtual está conectada al mismo equipo de comunicación que la tarjeta física del computador anfitrión, por lo tanto, la máquina virtual se va a comportar como si fuese un equipo más dentro de la misma red física en la que está dicho equipo.
A continuación, en la sección "Advanced
" en el parámetro "Adapter Type
" seleccione la opción con Desktop en el nombre; para el parámetro "Promiscuous Mode
" seleccione la opción "Allow All
"; y para el parámetro "MAC Address
" presione el botón azúl al costado derecho para generar una nueva MAC virtual única para la máquina virtual (ver Figura 10) .
Figura 10. Interfaz de configuración de red
A continuación, se especifican los pasos a seguir para realizar la carga e instalación del sistema operativo.
Settings
", haga clic en la opción "Storage
" y en la ventana que esta opción despliega seleccione la opción "Controller: IDE
" y posteriormente seleccione la opción "Empty
". Esto desplegará en la interface un espacio qne el cual se pueden configurar los atributos del controlador; para tal fin haga clic sobre el botón "Virtual Disk
" (Choose a disk file...
" (Ver Figura 11). En la ventana emergente que se despliega, seleccione la imagen ISO de Raspbian Pi OS. Figura 11. Interfaz de carga del iso del sistema operativo
Si la configuración es correcta, bajo la opción "
Controller: IDE
" debe aparecer el archivo iso a cargar en la máquina virtual (Ver Figura 12).
Figura 12. Interfaz de configuración de disco virtual
OK
".A continuación, en la ventana principal de VirtualBox seleccione la máquina que se creó y haga clic en "
Start
" (ver Figura 13), al ser la primera vez que se enciende la máquina virtual está arrancará el proceso de instalación del sistema operativo.
Figura 13. Interfaz de inicio de máquina virtual
Graphical install
", para seleccionar esta opción utilice las flechas del teclado hasta que la opción quede en gris y luego presione "Enter" (Ver Figura 14). Figura 14. Interfaz de instalación de sistema operativo
Partition disk
") y de las opciones disponibles seleccione "Guided – Use Entire Disk
" esto utilizará todo el espacio asignado al disco duro para crear una sola gran partición (Ver Figura 15).Figura 15. Interfaz de selección de tipo de partición de disco
Continue
" (Ver Figura 16).Figura 16. Interfaz de selección de borrado del disco para realizar la creación de la partición de disco
All Files in one partition
"; esta selección corresponde le permite a la máquina almacenar todos los archivos creados en una sola partición (Ver Figura 17).Figura 17. Interfaz de esquema de partición
Yes
" y luego de clic en "Continue
" (Ver Figura 18).Figura 18. Interfaz de esquema de partición
Yes
" y de clic en el botón "Continue"
(Ver Figura 19).Figura 19. Interfaz de configuración de GRUB
Enter device manually
" (Ver Figura 20). Figura 20. Interfaz de configuración de GRUB
Figura 21. Interfaz de inicio de Raspberry Pi
El Sistema Operativo Raspberry Pi OS trae instaladas varias herramientas similares a las de un computador normal, le recomendamos explorarlas y familiarizarse con ellas. A continuación se presentarán dos funcionalidades que se requieren en el desarrollo del curso: la capacidad de navegación en Internet y la ejecución de programas en Python.
Para comprobar la conexión de internet hay varias opciones, pero en este tutorial se utilizará el comando ping
ejecutándolo desde la línea de comandos del sistema. A continuación se especifican los pasos a seguir.
ip a
para conocer los datos de conexión de la máquina virtual a la red. Por ejemplo en la Figura 22 se puede observar que la dirección IPv4 es 172.70.4.226. ping
a un servidor o página web. Para tal fin, digite comando ping
. (e.g. ping www.google.com)
. Al correr el comando se espera una respuesta del servidor de la cual se calcula el tiempo mínimo, medio y máximo de respuesta (Ver Figura 22). En caso de no recibir respuesta en un tiempo predeterminado, llegará un mensaje de que no hay conexión con el host, la red es inalcanzable o que no se encuentra la ruta al host; en caso de ocurrir esto se debe revisar las configuración de la red de la máquina virtual. Figura 22. Respuesta en consola de comandos para verificar conexión a Internet
La versión que se instaló de Raspberry Pi OS cuenta con la instalación de las versiones Python 2 y Python 3. Para verificar el correcto funcionamiento del intérprete de Python en este tutorial se va a escribir el programa Hello World; se realizará la verificación corriendo el programa desde consola así como guardando un archivo y ejecutándolo.
python3
. Esto abrirá la consola de Python y podrá ejecutar líneas de este lenguaje ahí. print("Hello World")
y oprima Enter. exit()
.echo "print(\"Hello World\")" > test.py
. python3 test.py
. La ejecución de los pasos anteriores en la máquina virtual se muestran en la Figura 23.
Figura 23. Respuesta en consola tras correr el programa "Hello World"
Finalmente se realizará la emulación de un dispositivo físico que realiza la captura de los datos de los sensores de temperatura y humedad; y su posterior envío a los servidores de almacenamiento y visualización.
A continuación se especifican los pasos a seguir para realizar la emulación de la captura y envío de los datos.
wget https://raw.githubusercontent.com/SELF-Software-Evolution-Lab/Realtime-Monitoring-webApp/main/tutoriales/Capa%20de%20Dispositivo/Emulador%20IOT.zip -O sensor.zip
unzip sensor.zip
cd
'
Emulador IOT
'
ls
pip3 install -r requirements.txt
pub.py
. El comando que se debe ejecutar el siguiente:--city
En el comando se deben reemplazar los parámetros USUARIO y CONTRASEÑA con los siguientes datos:
También debe ser reemplazado el parámetro CIUDAD por la ciudad en la cual usted se encuentra ubicado; es importante resaltar en este punto que para el parámetro de ciudad debe escribirse usando minúsculas, guión al piso en vez de espacios y sin tildes o acentos. Por ejemplo, "Santa Marta" sería santa_marta
, "Cañasgordas" sería canasgordas
y "Santa Bárbara" sería santa_barbara
.
Al finalizar este tutorial, se espera que sea capaz de instalar y hacer uso de una máquina virtual que le permita emular el funcionamiento de un dispositivos IoT basados en la tarjeta de desarrollo Raspberry Pi.
Santiago Fajardo Carlos Andrés Lozano Garzón | Autores |
Kelly Garcés Andrés Bayona Juan Avelino Rocío Héndez | Revisores |