Enrique Garrote

Data Analyst
Resume
Linkedin
Contact
Data Analytics Web Scrapping Software IoT Firmware RPI Blockchain Safety Cybersecurity Arduino Programming Networking PID Business Investment

Cryptocurrency trading bot - Roboadvisor

11/2020 - Now

This project was born as an advanced version of a previous project. In this evolution of the project, in which we worked three friends, we used another approach to achieve profitability by operating in a fully automated way in multiple cryptocurrency markets simultaneously.

This project is differentiated by the ability of the system to make decisions automatically based on the history used to create the model, but also based on new decisions that have been adopted. To do so, it uses multiple data sources, and by combining them, the program automatically creates a priority order and a decision model, based on which it proceeds.

To develop the project we have mainly used SQL, Excel and Python, although other tools or languages have also been used in a minority way.

Tags: Investment, Trading, Data Analytics, Programming

Design and installation of a full IoT environment in a rural area

06 - 2019

This project has been one of the longest to date, given the size of the same and doing it alone, while completing the master's degree in Industrial Engineering and combining it with my work as Engineer. The motivation of the project was the beginning of a family business with a rural home, which required certain services and needs, such as hot water and heating, smoke detection, alarm, access control, lighting, etc.

One of the main problems lay in the heating system, as it was intended to use the same boiler to service two houses. The boiler had enough capacity for this, but it was necessary to install a control system to make it possible. In addition, the rural house would be managed remotely, which required a precise knowledge of the state of it, both for safety and to ensure the comfort and convenience of tenants.

To achieve the objective I installed a network of ZigBee sensors for temperature, humidity, magnetic sensors for doors, movement and smoke, and a series of actuators, such as relays to control lighting and other devices, solenoid valves to govern the heating system, magnetic locks for the main accesses and an access control implemented by an NFC sensor and an ESP8266. All this network is controlled by a LINUX server installed in a Raspberry Pi, with web server and several control bots implemented in Telegram. In addition, the system is complemented with an Uninterruptible Power Supply System, a current sensor with monitoring and alerts of voltage drops and manual control for emergencies.

Tags: Design, Fabrication, IoT, Safety, Cybersecurity, RPI, Networking, Programming, Business, Investment

Actúaupm programme. Newspaper "El Economista"

04 - 2018

In 2018 I participated in the "actuaupm" business creation program, with a new concept of electronic lock that solves the problems of dependence and vulnerability of the current ones.

The technological development of the lock was carried out as part of my end-of-degree work, finished with honors, in spite of having presented the same under a different specialty to the one I had studied.

In the program "actuaupm" I developed the business model of the lock, using agile methodology and tools such as Business Model Canvas or excel for forecasting cash flows and calculating profitability and investment needs. In this program I won the prize for one of the best business ideas in the 2018 edition, with more than 500 ideas presented.

Tags: Business, Design, Data analysis, Investment

Automatic digital currency trader by means of genetic algorithm.

12 - 2017

With the virtual currency boom, a virtual parallel market has been created, dominated by automatic transactions and the diversity of currencies that not only represent an independent currency, but also an asset in itself, with its own growth and profitability.

It was in this context that I launched, together with a friend, to implement an automatic trading system capable of adapting to the volatility of the market. The idea was not to program the trader, but to configure it and adapt it to such a volatile market.

To achieve this we used indicators usually used in FOREX, but adapting their parameters through a genetic algorithm using historical past prices classified according to trends.

Tags: Linux, Programming, Business, Investment

Network security analysis. Aircrack-ng, nmap and other tools.

09 - 2017

With this project I wanted to increase my knowledge of cybersecurity while testing my own home installation. The idea was to become a supposed local attacker, trying to violate the WiFi network to access the internal network. Once inside, analyze the different computers on the network and take control of them.

At that time, my network had a home router with WiFi turned off, while wireless access was provided through a dedicated device (AP). It also had a server with some active services (apache, ssl, openvpn), a NAS configured with internet access but smb disabled, and a network printer.

To try to violate WPA2 security I used aircrack-ng software and MAC cloning, without achieving the objective. However, I continued the attack within the network assuming that an attacker had gained access. To do this, I used nmap software to locate the different computers. Once I had located and understood the structure of the network and the computers on it, I used collections of known vulnerabilities to try to gain access to them.

Tags: Linux, Cybersecurity, Programming

Programming bots. Telegram API

04 - 2017

During the different automation projects I had done, the control panels were implemented through a web server or similar, with a good result. However, this system has some drawbacks, such as the need to expose the server to the Internet, waiting for the loading time of the web or the authentication of users and the security of the site. These disadvantages are amplified for small installations, where it is tedious to access the web and log in only to turn on a light, for example.

In order to improve the control system, I analyzed different solutions, and finally decided on the telegram API, which offers an optimal service for many applications. In order to learn and understand how it works, I considered several projects. In total there were 3 bots: a bot for online players, a bot for document management and, finally, a bot for domotic control.

I programmed all of them on PHP on an Apache server, some with "webhook" and others through "polling". The first bot consisted of a real time information system for online players, where users could ask certain questions and the program answered them offering them real time information. The second bot was connected to a cloud, where it stored and classified the documents it received. Depending on different variables, such as file type, size, name, time, message that accompanies the file, the program decided where to save it. Finally, the domotic control bot offered a fast control tool with ample security and without exposing the server to the Internet.

Tags: Linux, Programming, Networking, Cybersecurity

3D printed modular lamp. Extreme Printing Challenge

02 - 2017

At the beginning of 2017 Stratasys organized an international 3D design competition with redesign as it's main motivation. The aim was to redesign an everyday object or concept so that it could be printed by any type of 3D printer.

For this project I decided to focus on FDM printers, as they are the most widespread and have a greater challenge due to greater manufacturing limitations. The goal I set myself was to create a product that would be marketable, with a low manufacturing cost that would allow me to achieve high quality at a lower cost. To increase the value of the product I considered the introduction of an additional consumer device that would be integrated into the design.

Finally, I opted for the design of a modular lamp, fully printable by any domestic FDM printer, and with integrated LED lighting. The lamp consists of two parts, the base and the rings. The base has an integrated LED controller, while the ring has an integrated LED strip and has a rear cavity where a cable is inserted to feed the next strip. The rings are all the same, and can be printed as many as you want to make the lamp bigger or smaller.

Tags: 3D printing, Design, Fabrication, Business

Application to retrieve data from soccer indicators in real time

05 - 2016

The objective of this project was to be able to access metrics, indicators and other data in real time. The raw data was extracted from the internet and an automatic process was performed to calculate the indicators, metrics and others, before reporting them.

The application included an interactive tool to request specific data on demand. For this I developed a search engine that interpreted the term entered and proceeded to retrieve the data from the internet through web scraping.

Tags: Data Analytics, Programming, Web Scrapping, Software, Bot

Low-cost remote home automation

12 - 2016

Two of the main drawbacks of a domotic system are the maintenance costs and the cost of network and processing equipment, which become excessive for small installations. Maintenance can be reduced by avoiding the use of mechanical devices, and by using extensively tested and debugged software and hardware. On the other hand, the cost of equipment can be reduced by reusing old equipment, which is not incompatible with the first point.

This project arose in response to a fairly common request: a low-cost home automation system that would allow two relays to be controlled over the Internet via a mobile connection. The main problem was to achieve a competitive price, with full functionality, without having to make a large initial investment in design, purchase of material and manufacturing. In addition, the system had to be completely autonomous, with no need for periodic maintenance.

As a solution, I opted for the reuse of old routers that telephony operators offered for free to their customers, and they sold them on second-hand websites at the end of their contract. The process consisted of installing a version of LINUX on the equipment and using the GPIO outputs that were originally intended for the status LEDs to control the relays. The Internet connection was made through a 3G modem that was installed in one of the USB ports of the router, and was included with the router itself, although it had to be unlocked to be able to use it with any operator.

Tags: Programming, Design, Fabrication, Business, Linux, Networking, IoT

My own 3D printing business

10 - 2016

During my degree senior year, in order to deepen my knowledge of business, I decided to create my own business. I began by setting up a business scenario that did not require a high cost, neither of investment nor of operation, but dedicating my time with a high availability.

After studying different alternatives, using agile methodology and other tools, such as business model canvas, I decided on a 3D printing business. I had the necessary equipment, very low operating costs, and a large untapped market.

In order to find the target market, I used second-hand sales platforms where I uploaded fake advertisements and analyzed visits. Based on this information I began to sell objects that assured me a high margin and a moderate demand, so that I did not exceed my production capacity.

Tags: 3D printing, Data analysis, Business, Business model canvas, Agile

Optimizing my 3D printer. Structural and safety improvements.

07 - 2016

For the development of my end-of-degree work and as a tool for my projects I set up a low-cost 3D printer. These printers that are sold by the piece are a very economical solution but the accuracy they offer is very limited.

In order to improve performance and achieve enough accuracy to develop the projects I had in mind, I designed and implemented a number of improvements.

First of all, I reinforced the hyperstatic structure, using some printed pieces, to reduce the displacements that occur when the extruder moves. I then installed an independent power control for the hot bed to prevent possible fires caused by excess intensity on the control plate. I also installed a double fuse switch and two relays, one for each phase, on the power supply. Finally, I installed a raspberry pi with a Linux distribution and a remote control software that allowed me to monitor prints, turn the printer off or on, and even receive real-time video.

Tags: Programming, Design, Fabrication, Safety

Controlling your home by means of a relay board

01 - 2016

A person contacted me with a particular request: He bought a 16 relays board for Arduino and he wanted to control it over internet. However, he had no internet at home and I had no access to the installation site, so I had to create a plug and play system which started working by itself and doesn't require maintenance.

It was a big challenge for two reasons: it had to work perfectly from the beginning and the fact that he didn't have an Internet connection, so I would need to use a mobile connection, but service providers usually route the connections of different customers through a single ip, so they won't allow external connections and a request for ip forwarding will be probably denied.

To make sure the system worked properly, I included a power supply in the device, making it independent, and installed it in different locations with different levels of mobile network coverage, programming my laptop to randomly access the device, use it and check its response. Finally, I configured an intermediate web server to accept connections from the device and connect it to the client, ensuring complete availability.

Tags: IoT, Arduino, Programming, Networking, Business

Building my own cloud

11 - 2015

Cloud services have become an indispensable tool thanks to the many advantages they offer. Data security, full accessibility and availability from anywhere with Internet access and, above all, the possibility of extending the memory as much as needed, without having to carry a larger device. However, there are two major drawbacks to all its advantages that can affect profitability: confidentiality and cost.

This project started from this idea, to analyze to what extent it was profitable to subscribe to a paid cloud service, and what woud be the price of confidentiality. To do this, I analyzed different solutions to create my own cloud, with their respective investment and operating costs, CAPEX and OPEX.

Finally, once the viability of the project was confirmed, I proceeded to build the system. To do this, I opted for a DIY solution, buying a low-power PC and configuring it with free cloud software on a Linux distribution. Access was via https, with TLS 1.2 encryption, but as I did not have a fixed ip, I used a dynamic routing. The final investment cost did not exceed the planned, although the operation cost was lower given the lower power consumption of the PC.

Tags: Programming, Networking, Linux, Data analysis, Business

"Wireless" lamp

09 - 2015

This is a really simple, cheap and useful project of DIY that I enjoyed to make and have a really cool looking and high funcionality. It consist on a high power desk lamp which apparently doesn't need wires ;)

I was upset with desk lamps. I spent a lot of time studying and doing things, so I aprecciated a good luminosity and a comfortable space, but the most common commercial desk lamps consist of a single light source that can be adjusted through a mechanical system of bars and springs. If you want more light you can install a more powerful bulb, but it will probably dazzle you. In addition, the light will not illuminate the entire desk with the same intensity, producing shadows and glare.

I designed this lamp based on libraries illumination but developing my own design. I thought it would be great if it had no wires, so I used it own structure to power the led strip. The main challenge was to perfectly isolate the piece where led strip will be placed to avoid short circuits. I isolated this piece with a special chemical solution and an isolating film, adding a piece of a non-conductive material between the conductive structure and the horizontal piece. Finally, to ensure security I installed a security circuit to break electrical supply in case of short circuit or current leakage.

Tags: PCB, Design, Safety

Improving heating control. Manual control and UPS.

05 - 2015

A couple of months later I started working on some modifications over the first version. I realised that it could be very interesting to have the chance of manually control the temperature, without needing to access the website. Moreover, it would be fantastic to monitorise the mains to notify me when it goes down.

Manual control was important for my parents, who prefer to change the parameters manually when they are at home. When it came to power availability, the idea was to know how long it had been down to prevent food spoilage and to ensure that automatic systems worked properly, such as irrigation.

I began installing an encoder and programming an interactive interface on the display, which allowed the user to set the heating status (on/off), adjust the set point temperature and access a brief history of the sensors. I also installed a replaceable battery pack which allows the system to operate when the power goes. Some of the challenges that I had to meet were programming the encoder for a smooth experience and improving the code to handle many different simultaneous requests.

Tags: IoT, Arduino, Programming

Design and creation of a domestic heating control over the internet

02 - 2015

I made this project in 2015, to control the temperature of my parents home. In that year there weren't such a variety of commercial products available to do this, and all of them had a high price, so I decided to made my own.

The objetive was to control the temperature over the internet and sensorize different things, like current consumption. To achieve that I used an Arduino board and an Ethernet Shield connected directly to the router. All the system was powered by POE.

The Arduino was programmed to simulate a web page, returning html code to each http request. To achieve this I had to solve different challenges, like securing the connection without ssl support (arduino cannot stablish ssl connections) or ensure full availability through dynamic ip.

Tags: IoT, Arduino, Programming, Networking

My first contact with electronics. Programming a timer

11 - 2013

During the third course of my Industrial Engineering Degree we had our first contact with electronics design and programming, and the possibility to participate in a voluntary project with an apparently simple target: Programming a timer.

For this project we used an arduino and a shield developed by CEI UPM. This shield had a complete variety of sensors with the aim to digitally process their signals. The main difficult of the project was dealing with input noise from buttons and considering processor frequency in order to achieve a high precision time measuring.

Tags: Arduino, Programming