In this thesis are described the tools, hardware and software, needed to create a home automation system, which is oriented to the control and monitoring of devices through a web page. The system consists of sensor and actuator modules, implemented with NodeMCU v3 development boards and ESP-01 and their respective sensor (exemplified by the use of a DHT11 digital sensor) or actuator (relays and a CD motor were used), which is connected to Internet and send information that is stored in a database and is displayed on the website. To send and receive information between the modules and the server was done through the MQTT protocol and additionally with a standard security and encryption protocol SSL. This information is received and stored in a server, to present it to the user who requests it. The website has user registration and identification; each user has an account, password and associated IoT devices. The server uses the MySQL database to store all the information of devices and users. The development of the server was developed in Node.js, which manages the MySQL database, the MQTT Broker, and the HTTP requests of the web page. The website was developed with HTML, CSS and JavaScript. The Cloud Build Service tool was used to design the firmware of the ESP-01 and NodeMCU modules, esptool.py to flash the firmware in the modules, Lua code and the ESPlorer user interface for programming them.
En esta tesis se exponen las herramientas necesarias, de hardware y software, para crear un sistema de domótica, el cual está orientado al control y monitoreo de dispositivos a través de una página web. El sistema consta de módulos sensores y actuadores, implementados con tarjetas de desarrollo NodeMCU v3 y ESP-01 y su respectivo sensor (se ejemplificó con el uso de un sensor digital DHT11) y como actuador (se emplearon relevadores y un motor de CD), los cuales se conectan a Internet y envían información que se almacena en una base de datos y se muestra en una página web. El envío y recepción de información entre los módulos y el servidor se realiza mediante el protocolo MQTT conjuntamente al protocolo de seguridad y encriptación estándar SSL. Dicha información es recibida y almacenada en un servidor, para posteriormente presentarla al usuario que la solicite. La página web cuenta con registro e identificación de usuarios; cada usuario tiene su cuenta, contraseña y dispositivos IoT asociados. El servidor utiliza la base de datos MySQL para almacenar la información de los dispositivos y usuarios. El desarrollo del servidor se implementó en Node.js, el cual gestiona la base de datos MySQL, el Broker MQTT, y las peticiones HTTP de la página web. La página web se desarrolló con HTML, CSS y JavaScript. Se utiliza la herramienta Cloud Build Service para el diseño del firmware de los módulos ESP-01 y NodeMCU, esptool.py para programar el firmware en los módulos, código Lua y la interfaz ESPlorer para la programación de los mismos.