utbrott / lora-psn

Embedded systems project using STM32 Nucleo to create a private sensor network with LoRa protocol.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LoRa Private Sensor Network

Embedded Systems IOT project that utilizes STM32 Nucleo and USI STM32 LoRa expansion to create a private sensor network.

Developed for Master's Thesis @ WUT Warsaw University of Technology.

Features

  • Slave modules refresh sensor readouts periodically,
  • Slave boards store readouts in a buffer, for faster response handling,
  • Slave responses to Master requests are handled via interrupts,
  • Master board handles requests on a non-blocking timer,

Built with

  • STM32 L152 Nucleo-64 development board,
  • USI STM32 Nucleo expansion board for LoRa,
  • BME280 I2C/SPI breakout board sensors (SLAVE modules),

File structure:

.
├── include
│   ├── bme280.h
│   ├── debug.h
│   ├── globals.h
│   ├── lora.h
│   ├── main.h
│   └── rollingavg.h
├── src
│   ├── bme280.cpp
│   ├── debug.cpp
│   ├── lora.cpp
│   ├── main.cpp
│   └── rollingavg.cpp
├── platformio.ini
└── README.md   --> This file
  • bme280.h - interfacing with Adafruit BME280 sensor breakout board,
  • debug.h - helper functions for debugging through Serial,
  • globals.h - project-wide definitions, typedefs, functions,
  • lora.h - interfacing with USI STM32 LoRa expansion shield,

Future development note

Project was built using PlatformIO Core CLI and PlatformIO IDE for VSCode.

About

Embedded systems project using STM32 Nucleo to create a private sensor network with LoRa protocol.


Languages

Language:C++ 100.0%