Arduino program for analog measurements and Bluetooth communication
host | ||
teng | ||
.gitignore | ||
README.md |
arduino-blume
Measure analog signal using an Arduino and Bluetooth communication. This program was written for (and tested with) the Arduino RP2040 Connect.
m-teng has a backend that can connect to the Arduino.
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