Battery Level
-
Hello,
I'm trying to get the battery level percentage reported but only get battery voltage. Here is my sketch:
// General settings #define SKETCH_NAME "TempSensorSuite" #define SKETCH_VERSION "2.0" #define MY_BAUD_RATE 9600 #define MY_NODE_ID 2 #define MY_RADIO_NRF24 #define MY_SIGNAL_REPORT_ENABLED #define MY_SPLASH_SCREEN_DISABLED //#define MY_TRANSPORT_UPLINK_CHECK_DISABLED #define MY_TRANSPORT_WAIT_READY_MS 5000 #define MY_SLEEP_TRANSPORT_RECONNECT_TIMEOUT_MS 2000 //#define MY_PARENT_NODE_ID 0 //#define MY_PARENT_NODE_IS_STATIC #define NODEMANAGER_DEBUG OFF // #define NODEMANAGER_DEBUG_VERBOSE OFF #define NODEMANAGER_SLEEP ON // #define NODEMANAGER_RECEIVE OFF #define NODEMANAGER_POWER_MANAGER OFF #define NODEMANAGER_CONDITIONAL_REPORT ON #define NODEMANAGER_INTERRUPTS OFF #define NODEMANAGER_EEPROM OFF #define NODEMANAGER_TIME OFF #define NODEMANAGER_RTC OFF #define NODEMANAGER_SD OFF #define NODEMANAGER_HOOKING OFF #define NODEMANAGER_OTA_CONFIGURATION OFF #define NODEMANAGER_SERIAL_INPUT OFF // disable Forecast on BME280 - not working with OTA conf Off! #define NODEMANAGER_SENSOR_BOSCH_LITE ON #include <MySensors_NodeManager.h> // BME280 #include <sensors/SensorBME280.h> #define BME280_ADDRESS (0x76) #define SEALEVELPRESSURE_HPA (1019.7) //#define CHILD_ID_AMBIENT 1 SensorBME280 ambient; // Battery Level (default child_id 201) #include <sensors/SensorBattery.h> SensorBattery battery; // Radio Signal Quality (default child_id 202) #include <sensors/SensorSignal.h> SensorSignal signal; // before void before() { // call NodeManager setup routine ambient.children.get(1)->setDescription("tssuite_temp"); ambient.children.get(2)->setDescription("tssuite_hum"); ambient.children.get(3)->setDescription("tssuite_press"); ambient.children.get(4)->setDescription("tssuite_fcast"); /*ambient.children.get(1)->setValueDelta(0.2); ambient.children.get(2)->setValueDelta(0.5); ambient.children.get(3)->setValueDelta(0.5);*/ // let controller know ambient pressure sensor reports in hPa ambient.children.get(3)->setUnitPrefix("hPa"); // send unit prefixes to controller (i.e. V, A, hPa, %, etc.) nodeManager.setSendUnitPrefix(true); // battery level - BOD set to 1.8V, 2xAA = 3V max battery.children.get(1)->setDescription("tssuite_bat"); battery.setSendBatteryLevel(true); battery.setMinVoltage(1.8); battery.setMaxVoltage(3.2); // sleep cycle nodeManager.setSleepMinutes(5); //nodeManager.setSleepMinutes(1); // 500ms to let the transport send all buffer before sleeping. //nodeManager.setSleepBetweenSend(500); // report freq for ambient measurements ambient.setReportIntervalMinutes(5); //ambient.setReportIntervalMinutes(1); // report freq for battery battery.setReportIntervalDays(1); //battery.setReportIntervalMinutes(1); // report freq for radio signal - pseudo SR_TX_RSSI and SR_UPLINK_QUALITY are available for NRF24 signal.children.get(1)->setDescription("tssuite_sin"); signal.setReportIntervalDays(1); //signal.setReportIntervalMinutes(1); signal.setSignalCommand(SR_UPLINK_QUALITY); //nodeManager.setPowerManager(power); // call NodeManager before routine nodeManager.before(); } // presentation void presentation() { // long int t1 = millis(); // call NodeManager presentation routine nodeManager.presentation(); // long int t2 = millis(); // Serial.print("Presentation: "); Serial.print(t2-t1); Serial.println(" milliseconds"); } // setup void setup() { // long int t1 = millis(); nodeManager.setup(); ambient.setSampling(Adafruit_BME280::MODE_FORCED, Adafruit_BME280::SAMPLING_X1, // temperature Adafruit_BME280::SAMPLING_X1, // pressure Adafruit_BME280::SAMPLING_X1, // humidity Adafruit_BME280::FILTER_OFF, //filter Adafruit_BME280::STANDBY_MS_0_5); // long int t2 = millis(); // Serial.print("Setup: "); Serial.print(t2-t1); Serial.println(" milliseconds"); } // loop void loop() { //long int t1 = millis(); ambient.takeForcedMeasurement(); nodeManager.loop(); //long int t2 = millis(); //Serial.print("Loop: "); Serial.print(t2-t1); Serial.println(" milliseconds"); } #if NODEMANAGER_RECEIVE == ON // receive void receive(const MyMessage &message) { // call NodeManager receive routine nodeManager.receive(message); } #endif #if NODEMANAGER_TIME == ON // receiveTime void receiveTime(unsigned long ts) { // call NodeManager receiveTime routine nodeManager.receiveTime(ts); } #endifI'm probably doing something wrong. Any help will be much appreciated.
Thanks
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login