2.0 KiB
2.0 KiB
arduino-blume
Measure analog signal using an Arduino and Bluetooth communication.
This project was written for my bachelor's thesis.
It mesaures voltage one one of arduino's analog pins and transmits it via Bluetooth LE. It was written for (and only tested with) the Arduino RP2040 Connect.
m-teng has a backend that can connect to the Arduino to receive the data.
Configuration
See settings.hpp
for which pin needs to be connected.
The program uses 3 leds for displaying device status, however these are optional.
Installation
git clone https://github.com/MatthiasQuintern/arduino-blume
arduino-cli compile --profile nanorp
arduino-cli upload --profile nanorp
Communication via Bluetooth
The Arduino will advertise a Bluetooth Low Energy service which can be used to interact with the device.
Service UUID: 00010000-9a74-4b30-9361-4a16ec09930f
- status (
uint8_t
,rn
):00010001-9a74-4b30-9361-4a16ec09930f
0
: ERROR: error occured: invalid command received, can not advertise Bluetooth service, etc.1
: BUSY2
: WAIT_CONNECT: waiting for Bluetooth connection3
: CONNECTED: connected, waiting for command4
: MEASURING: connected, measurement running
- command (
uint8_t
,rw
):00010002-9a74-4b30-9361-4a16ec09930f
send a command to the arduino:0
- STOP: stop active measurements1
- MEASURE_COUNT: measure count measurements with interval seecount
andinterva
below2
- MEASURE: measure with interval until interrupted seecount
below
- reading (
uint16_t
rn
):00010003-9a74-4b30-9361-4a16ec09930f
the reading from the Arduinos analog pin - count: (
uint16_t
,rw
):00010004-9a74-4b30-9361-4a16ec09930f
set the number of measurements to take withMEASURE_COUNT
- interval: (
uint16_t
,rw
):00010005-9a74-4b30-9361-4a16ec09930f
set the interval between measurements in ms