Code: Select all
#include<SPI.h>
#include<BLEPeripheral.h>
#define BLE_REQ 10
#define BLE_RDY 2
#define BLE_RST 9
BLEPeripheral blePeripheral = BLEPeripheral(BLE_REQ,BLE_RDY,BLE_RST);
BLEService pressureReadingService = BLEService("BBB0");
BLEFloatCharacteristic pressure1Characteristic = BLEFloatCharacteristic("BBB1",BLERead | BLENotify);
BLEDescriptor pressure1Descriptor = BLEDescriptor("2901", "kPa");
BLEFloatCharacteristic pressure2Characteristic = BLEFloatCharacteristic("BBB2",BLERead | BLENotify);
BLEDescriptor pressure2Descriptor = BLEDescriptor("2901", "kPa");
BLEFloatCharacteristic pressure3Characteristic = BLEFloatCharacteristic("BBB3",BLERead | BLENotify);
BLEDescriptor pressure3Descriptor = BLEDescriptor("2901", "kPa");
#include <Wire.h>
long previousMillis = 0; //Stores the last time sensor was read
long interval = 2000; //Interval between sensor readings
void setup()
{
Serial.begin(9600);
Serial.println(F("Bluetooth Low Energy Sensor Reader"));
blePeripheral.setLocalName("Pressure Reader");
blePeripheral.setDeviceName("Pressure Reader");
blePeripheral.setAdvertisedServiceUuid(pressureReadingService.uuid());
blePeripheral.addAttribute(pressureReadingService);
blePeripheral.addAttribute(pressure1Characteristic);
blePeripheral.addAttribute(pressure1Descriptor);
blePeripheral.addAttribute(pressure2Characteristic);
blePeripheral.addAttribute(pressure2Descriptor);
blePeripheral.addAttribute(pressure3Characteristic);
blePeripheral.addAttribute(pressure3Descriptor);
Serial.println("12");
blePeripheral.begin();
Serial.println("34");
}
void loop()
{
Serial.println("1234");
blePeripheral.poll();
Serial.println("5678");
if (millis() - previousMillis > interval)
{
pollSensors();
previousMillis = millis();
}
}
void pollSensors()
{
float voltage1 = analogRead(A0);
float pressure1 = voltage1*5/1023; //Change for correct calibration
float voltage2 = analogRead(A1);
float pressure2 = voltage2*2*5/1023; //Change for correct calibration
float voltage3 = analogRead(A2);
float pressure3 = voltage3*2*5/1023; //Change for correct calibration
if (!isnan(pressure1) && pressure1Characteristic.value() !=pressure1)
{
pressure1Characteristic.setValue(pressure1);
Serial.print(F("Pressure 1: "));
Serial.println(pressure1);
}
if (!isnan(pressure2) && pressure2Characteristic.value() !=pressure2)
{
pressure2Characteristic.setValue(pressure2);
Serial.print(F("Pressure 2: "));
Serial.println(pressure2);
}
if (!isnan(pressure3) && pressure3Characteristic.value() !=pressure3)
{
pressure3Characteristic.setValue(pressure3);
Serial.print(F("Pressure 3: "));
Serial.println(pressure3);
}
}
GND->GND
RST->Digital 9
RDY_>Digital 2
REQ->Digital 10
MOSI->Digital 11
MISO->Digital 12
SCK->Digital 13
Any help is much appreciated. TIA