Network base stations are often located in remote areas which are hard to reach. The maintenance and replacement of components of these towers tend to be expensive and resource consuming. Our goal was to create an IoT device that monitors structural changes to the tower and send real-time data to a server, which displays this information to the user. Having this kind of information means that extensive analysis can be done to predict needs for maintenance or replacements, as well as gather other statistical data. By monitoring the towers remotely, it is possible to save costs and other resources. Moreover, we will be able to make better predictions about tower placement and understand the effect of external conditions (e.g., wind and cold) on the structure.

In simple terms, our project aimed to:
– Gather data from light function, tower temperature and deflection (using wireless sensor stations)
– Transmit the measurements from the sensors to a microprocessor (on our gateway) using bluetooth connection
– Use energy harvesting technology to power the sensor stations and gateway
– Transmit data from the gateway to a cloud server using mobile network
– Receive, process and store the data using a database
– Provide a user interface for statistical display, anomaly notifications and calculated predictions.

(Figure 1 – Final prototype)


For this project our goal was to design a gateway and multiple sensor stations, each of them with a custom PCB designed using KiCad. The PCB schemes can be found on the attached files. For the gateway, we used the nRF52832 system-on-chip (SoC) and the BMD-301 modules, as well as a bluetooth antenna with max gain of 5.0 dBi, 1/2 wave type and ingress protection IP65 for receiving data from the sensor stations. Additionally, we chose the Icarus IoT v2 Board and LTE antenna to manage sending data to the server through mobile networks.

The sensor stations used the same bluetooth module and antennas as the gateway, in addition to a Ruuvi 1000 mAh Li/MnO2 ​​CR2477T battery. The specific sensors used for the light, temperature, and accelerometer stations were VEML3328, MCP9808 and ICM-20948, respectively. We chose the sensors keeping in mind our goals of low power consumption and a unified system (using I2C protocol).


demonstrate pcb circuits
(Figure 2 – PCBs with their respective soldered components)

Data Transfer

The measurement gathered by the sensors are sent to the gateway using Bluetooth low energy (BLE). Inside the gateway, the data transfer between modules was done with UART. The communication done between gateway and server uses LTE and the gateway makes POST requests to the server.

Software (server)

The data processing and data display is hosted on a cloud Unix server. Its main functionalities are listening for data sent from the gateway, processing and storing it, as well as hosting a web app for data and statistical display.

The data display is run on a Flask app. Its main objective is to display the last measured value, graphs (past measurements over time) and basic statistics from all existing sensor stations. The app also flags data anomalies – extreme values – and display them as notifications.

Postgres was used for data storage.

(Figure 3 – alerts page of the website)

Files and links

granlund—protopaja-main (zip file compiling all files used in this project)

PCBs and Schematics



github repository


Beatriz Glaser – ELEC, Digital Systems and Design
Thuy “Mimi” Määttä – ELEC, Digital Systems and Design
Akbar Urlenbayev – CHEM, Chemical Engineering

License: MIT license