This project is the final project for my ECET-431 Microcontroller Interfacing class. It is a simple home alarm system. In this project, we needed to have a Nucleo F401RE running our sensors and an OLED screen, an ESP32 to act as a wifi AP and host our website, finally, all of these needed to communicate with each other.
This project consists of the following components:
– STM32 Nucleo F401RE
– ESP32 Dev Board
– Breadboard
– SSD1306 OLED
– LM35 Temperature Sensor
– VL53L0X Laser Distance Sensor
– 10kΩ Resistor
– 2x 330Ω Resistors
– 2 LEDs
– Jumper Wires
This is the wiring schematic for the project:
Note: There is a spot beside the OLED that wire run to but it is empty this is where the laser distance sensor goes. This is done because there was not an appropriate laser distance sensor on the fritzing software.

This project will require two separate software’s:
– STM32 Cubed
– Arduino
Nucleo F401RE operations:
The Nucleo F401RE is programed to the pull the temperature sensor values, and the laser distance sensor values. It is also programmed to send values to the STM32 upon the request of the website. The STM32 also updates the OLED display when the website gets and update request. In order to make the laser distance sensor and OLED to work you must download and install the VL53L0X Library and the SSD1306 Library. This is programmed with STM32 Cubed
STM32 operations:
The STM32 acts a WIFI AP and hosts the website. This is programmed with Arduino IDE.
This project uses both TX/RX communication and I2C communication protocols.
This a video explaining how the system works and showing an example it operating.
References
SSD1306 Library: https://github.com/DrHarrisWCU/stm32-ssd1306
VL53L0X Library: https://github.com/DrHarrisWCU/STM-VL53L0x-API
ESP32 Wifi Setup: https://randomnerdtutorials.com/esp32-access-point-ap-web-server/
Generative AI was used as per instruction of the professor to modify the HTML code.
Wire Schematic made in Fritzing
Recent Comments