An
´
alisis de la capacidad de la placa ESP32
para integrar sistemas IoT descentralizados
Analysis of the ESP32 board to integrate decentralized IoT systems
Ciro Edgardo Romero
†1
, and Alejandro Elustondo
∗2
†
Dpto. de I + D + i, C&S Informatica S.A.
Buenos Aires, Argentina
1
cromero@cys.com.ar
∗
XDK2MAM for IOTA Foundation
Buenos Aires, Argentina
2
alejandro.elustondo@ext.iota.org
Abstract—Some years ago, articles and commercial
products started using ESP32 as its core. This tendency
has helped cyber-physic systems to start evolving into
more complex models. Among them, one can quote those
used in distributed computing models. Nevertheless,
those kinds of systems face the difficulties of software
development and also the uncertainty caused by the use
of new technologies. In this article one can read the
experience of developing a system capable of collecting
environmental variables integrated to decentralized
network. The objectives proposed in this article are:
to develop a proof of concept where one can see the
problems that may appear when integrating a project
of this nature with a decentralized network; to use
different open-source technologies that are enabled for
decentralized environments and to analyse the viability
for productive developments.
Keywords: ESP32; IOTA; Internet of things; Blockchain.
Resumen— En los ´ultimos a ˜nos comenzaron a verse
art´ıculos y productos comerciales que emplean la placa
ESP32 como n ´ucleo. Esta tendencia ha servido para que los
sistemas ciber-f´ısicos comiencen a evolucionar a modelos
m´as complejos. Dentro de estos, se hallan los utilizados
en el modelo de la computaci ´on distribuida. No obstante,
este tipo de sistemas poseen problem´aticas propias del
desarrollo de software, sumadas a la incertidumbre
deveniente del uso de las nuevas tecnolog´ıas. En este
trabajo se detalla la experiencia al desarrollar un sistema
capaz de recolectar variables ambientales integrado con
una red descentralizada. Los objetivos del mismo son:
realizar una prueba de concepto donde se vean las
problem´aticas a resolver al momento de integrar un
proyecto de la naturaleza descripta anteriormente en una
red descentralizada; utilizar las diferentes tecnolog´ıas
abiertas, disponibles para entornos descentralizados, y
analizar la viabilidad para desarrollos productivos.
Palabras clave: ESP32; IOTA; Internet of things;
Blockchain.
I. Introducci
´
on
Los sistemas ciber-f
´
ısicos se vieron favorecidos por
el avance en el poder de c
´
omputo, la miniaturizaci
´
on
electr
´
onica y las interconexiones de redes, en un am-
plio espectro de nuevas capacidades que antes no eran
posibles [1]. Estos sistemas, utilizan componentes in-
form
´
aticos digitales que interact
´
uan directamente con
el mundo a su alrededor. En este tipo de desarrollos
la arquitectura del sistema define la ruta a trav
´
es de la
cual un dispositivo se conecta a otro; a su vez, esta ruta
determina cu
´
an flexible puede ser el sistema, al mismo
tiempo que establece cu
´
an receptivo y confiable puede
llegar a ser [2]. Desde hace algunos a
˜
nos, apareci
´
o
un concepto conocido como Internet de las Cosas o
IoT (por sus siglas en ingl
´
es, Internet of Things) que
utiliza las tecnolog
´
ıas que se ven involucradas en los
sistemas de esta naturaleza. Un sistema IoT involucra
elementos electr
´
onicos que interact
´
uan con servicios
inform
´
aticos. Este sistema puede ser planteado como
una arquitectura cliente-servidor con el prop
´
osito de
que los profesionales especializados en cada elemento,
pueden centrar esfuerzos en su campo de expertise. No
obstante, la arquitectura centralizada enfrenta varios
problemas.
A. Caso de estudio y propuesta de solucion
En el presente articulo, se plantea un sistema
m
´
ınimo que incursiona en la integraci
´
on de un dis-
positivo con conexi
´
on a internet (propio de los sis-
temas IoT) con una red descentralizada. Desde esta
experiencia se abordan algunas problem
´
aticas de las
antes mencionadas y se proponen soluciones para las
mismas. El objetivo principal de realizar este trabajo,
es dejar registro sobre el proceso de desarrollo de
un sistema de las caracter
´
ısticas citadas anteriormente,
como una base para implementaciones similares en
diversas aplicaciones.
II. Problem
´
atica de seguridad en sistemas
ciber-f
´
isicos
Seg
´
un MITRE ATT&CK, una de las problem
´
aticas
de los sistemas clientes-servidor es que, todas las
operaciones inform
´
aticas de cada elemento de la red se
llevan a cabo utilizando un
´
unico servidor. Esto crea un
punto cr
´
ıtico central donde una falla provoca que todo
el sistema est
´
e no disponible. Adem
´
as, la arquitectura
centralizada es un objetivo f
´
acil de varios tipos de
ataques de seguridad y privacidad, ya que todos los
datos de IoT recopilados desde diferentes dispositivos
Recibido: 26/02/22; Aceptado: 04/05/22
Creative Commons License - Attribution-NonCommercial-
NoDerivatives 4.0 International (CC BY-NC-ND 4.0)
https://doi.org/10.37537/rev.elektron.6.1.142.2022
Original Article
Revista elektron, Vol. 6, No. 1, pp. 41-45 (2022)
ISSN 2525-0159
41
est
´
an bajo la autoridad total de un
´
unico servidor [3].
Las debilidades y vulnerabilidades del IoT pueden
ser mitigadas utilizando tecnolog
´
ıa descentralizada,
tambi
´
en conocida como DLT (por sus siglas en ingles,
Distributed Ledger Technology).
A. Empleo de tecnolog´ıas descentralizada
Las tecnolog
´
ıas descentralizadas resuelven las l
´
ıneas
de fallas de seguridad presentes en los entornos
p
´
ublicos sin confianza, donde la mayor
´
ıa de los dis-
positivos IoT est
´
an conectados entre s
´
ı [4]. Dichos
entornos, representan las redes existentes a las cuales
los dispositivos se conectan para poder tener acceso a
internet. La capacidad de mantener la integridad de las
transacciones al descentralizar la comunicaci
´
on entre
los nodos participantes en la red, elimina la necesidad
de una autoridad central. Adem
´
as, su naturaleza dis-
tribuida peer-to-peer
1
puede abordar las deficiencias
de los modelos cliente-servidor en las soluciones de la
nube. Si bien la convergencia de IoT y DLT puede po-
tenciar las implementaciones sobre estas tecnolog
´
ıas.
Su adopci
´
on todav
´
ıa presenta varios problemas, tales
como la escalabilidad, algoritmos de consenso, pri-
vacidad de datos , eficiencia, disponibilidad, alma-
cenamiento, interoperabilidad, estandarizaci
´
on, entre
otros. Adem
´
as, no hay consenso hacia ning
´
un modelo
de referencia o mejores pr
´
acticas que especifiquen
c
´
omo se deben integrar las tecnolog
´
ıas correspondi-
entes a cada campo [5].
III. Entorno distribuido
Desde un punto de vista te
´
orico, un sistema ciber-
f
´
ısico podr
´
ıa integrar objetos inteligentes con seres
humanos de forma estandarizada. El paradigma IoT
buscar conectar entre s
´
ı a operadores humanos y/o
consumidores del sistema, a trav
´
es de un canal seguro
y confiable. Esto implica la implementaci
´
on de una red
distribuida que demuestre confianza en su dise
˜
no, al
mismo tiempo que pueda ser integrada a otras redes
[6]. En este punto, el salto tecnol
´
ogico necesario para
lograrlo es alcanzado por la tecnolog
´
ıa blockchain la
cual proporciona una red de registro
´
unico, consen-
suado y distribuido [7]. Los gestores que intervienen,
obran como agentes de confianza al verificar la iden-
tidad y las credenciales de la red. Dicha red utiliza el
formato de cadena de bloques, vinculados de manera
segura, para que la informaci
´
on pueda ser rastreada
[8].
El empleo de la tecnolog
´
ıa blockchain posee sus
propias problem
´
aticas al momento de su imple-
mentaci
´
on. El costo asociado para cada transacci
´
on es
un punto de an
´
alisis a tener en cuenta, ya que este
puede ser elevado seg
´
un el tr
´
afico que se necesite en
la red.
1
red en la que todos, o algunos, nodos funcionan sin clientes
ni servidores fijos; comport
´
andose igualitariamente entre s
´
ı. Ver:
AUTORES, VARIOS (2015). ”10.Peer-To-Peer”. Distributed Systems,
Concepts and Design (en ingl
´
es) (5ª edici
´
on). Pearson. pp. 423-461.
ISBN 978-01-3214-301-1
A. IOTA como red distribuida
En una red blockchain, cada nodo tiene la necesidad
de que se llegue a un consenso, antes de lanzar un
nuevo bloque. Si no se mantiene esta sincronicidad,
obtenemos bloques ”hu
´
erfanos”, los cuales comprom-
eten el rendimiento general de la red [9]. Esta prob-
lem
´
atica se ve resuelta con la propuesta innovadora de
IOTA Foundation, de utilizar una arquitectura propia
conocida como The Tangle. La misma est
´
a basada en
un concepto matem
´
atico llamado Grafo Ac
´
ıclico Di-
rigido (DAG). Dicha arquitectura es un libro mayor
distribuido abierto, gratuito y escalable, dise
˜
nado para
admitir la transferencia de datos y valor sin proble-
mas. En esta estructura, los bloques ”hu
´
erfanos” se
tienen presentes por ser una consecuencia inevitable
de una alta tasa de transacciones. A diferencia de los
sistemas blockchain, estos se fusionan nuevamente en
el sistema, sin generar desperdicios [10]. Todas las
transacciones en blockchain deben esperar hasta que
se incluyan en un bloque. Debido a las limitaciones
en el tama
˜
no del bloque y al tiempo de producci
´
on
de este, se crea congesti
´
on y tiempos de espera para
las transacciones. En el caso de The Tangle esto no
ocurre, ya que al ser un grafo ac
´
ıclico dirigido, cada
transacci
´
on se adjunta a dos transacciones anteriores,
es por esto que el protocolo puede procesar varias
cantidades de transacciones en paralelo. En la figura
1 se muestra la comparativa del cuello de botella
del tr
´
afico de bloques producido por una arquitectura
blockchain y por la arquitectura Tangle
Fig. 1. Cuello de botella de Blockchain vs Tangle
2
.
2
Imagen tomada de https://commons.wikimedia.org/wiki/File:
Blockchain vs tangle bottleneck.png
Revista elektron, Vol. 6, No. 1, pp. 41-45 (2022)
ISSN 2525-0159
42
http://elektron.fi.uba.ar
En esta red no hay bloques y no existen los
mineros. Cuando una transacci
´
on es enviada, valida
simult
´
aneamente otras dos transacciones. Esto permite
que IOTA supere las limitaciones de costo y escala-
bilidad de blockchain sumado a que garantiza que la
informaci
´
on sea confiable y no pueda ser manipulada
ni destruida. La IOTA Foundation, describe su red
como una tecnolog
´
ıa de registro de datos distribuida
y de c
´
odigo abierto que permite de forma segura el
intercambio de informaci
´
on y valor, dado que soporta
micro-transacciones gratuitas con bajos recursos de
hardware [11].
IV. Adquisici
´
on de datos de forma distribuida
El esquema de un sistema ciber-f
´
ısico, de arquitec-
tura distribuida, supone una interacci
´
on de diferentes
elementos comunic
´
andose entre s
´
ı de manera indepen-
diente [12]. Basado en este concepto, se puede interpre-
tar que existir
´
an dispositivos que realicen mediciones
y las env
´
ıen a una base de consulta colectiva. Por
otro lado, habr
´
a dispositivos que funcionar
´
an como
actuadores, y que realizar
´
an acciones sobre el sistema
basados en la mediciones anteriores. En la figura 2
se muestra un esquema de posibles elementos que
formar
´
ıan parte de un sistema distribuido.
Fig. 2. Ejemplo de sistema distribuido
A. Sistemas IoT con ESP32
En nuestra experiencia, la placa ESP32 es una buena
alternativa para el desarrollo y mantenimiento de sis-
temas. La misma es autor
´
ıa de la empresa Espressif
Systems, y representa una serie de microcontroladores
de bajo costo. Se adec
´
ua a diversos tipos de imple-
mentaciones por su bajo consumo de energ
´
ıa, sus
m
´
ultiples entornos de c
´
odigo abierto y sus bibliote-
cas [13]. Al mismo tiempo, posee una extensa docu-
mentaci
´
on y varias comunidades activas con ejemplos
para programarla en lenguaje C/C++ y Python, entre
otros.
V. Desarrollo de prueba de concepto
Al plantear un entorno distribuido se pueden pre-
sentar diversos elementos que conforman la totalidad
del sistema de una manera compleja. Desde este punto,
es interesante realizar una prueba de concepto simpli-
ficando la interacci
´
on que existir
´
a en el sistema uti-
lizando dispositivos que tendr
´
an un comportamiento
elemental. El entorno distribuido puede ser descripto
como un sistema IOT, desde su entendimiento m
´
as
sencillo. Sobre esta idea, se tienen que abordar las
problem
´
aticas de:
• Complejidad del sistema general
• Capacidades limitadas en los dispositivos
• Diversidad de tecnolog
´
ıas coexistiendo
• Seguridad inform
´
atica
• Costos
• Falta de rigurosidad en el tratamiento de datos
• Decisiones que comprometen la eficiencia
Desde el Departamento de Investigaci
´
on, Desarrollo
e Innovaci
´
on de la empresa C & S Inform
´
atica S.A,
se realiz
´
o una prueba de concepto como experiencia
para abordar algunas de las problem
´
aticas anteriores
[14]. Sobre estas pruebas se logra la comunicaci
´
on
entre un nodo sensor con una red distribuida. Los
datos recolectados por un nodo basado en la placa
ESP32, son enviados a la red IOTA (elegida como red
distribuida), con la intenci
´
on de simular la comuni-
caci
´
on t
´
ıpica de un sensor inteligente dentro de un
sistema no centralizado. Al mismo tiempo, se intenta
desarrollar un programa f
´
acil de mantener desde la
perspectiva del dispositivo, a trav
´
es de un lenguaje de
programaci
´
on de f
´
acil lectura.
A. C´odigo bare-metal
Seg
´
un Tollerv