arduino-blume/README.md
2023-08-30 17:55:32 +02:00

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

  1. status (uint8_t, rn): 00010001-9a74-4b30-9361-4a16ec09930f
    • 0: ERROR: error occured: invalid command received, can not advertise Bluetooth service, etc.
    • 1: BUSY
    • 2: WAIT_CONNECT: waiting for Bluetooth connection
    • 3: CONNECTED: connected, waiting for command
    • 4: MEASURING: connected, measurement running
  2. command (uint8_t, rw): 00010002-9a74-4b30-9361-4a16ec09930f send a command to the arduino:
    • 0 - STOP: stop active measurements
    • 1 - MEASURE_COUNT: measure count measurements with interval see count and interva below
    • 2 - MEASURE: measure with interval until interrupted see count below
  3. reading (uint16_t rn): 00010003-9a74-4b30-9361-4a16ec09930f the reading from the Arduinos analog pin
  4. count: (uint16_t, rw): 00010004-9a74-4b30-9361-4a16ec09930f set the number of measurements to take with MEASURE_COUNT
  5. interval: (uint16_t, rw): 00010005-9a74-4b30-9361-4a16ec09930f set the interval between measurements in ms