From ec7a10f5ffb7d3b82475ead27820ccbb438fcce9 Mon Sep 17 00:00:00 2001 From: Joerg Lehmann Date: Sat, 22 Jun 2024 09:35:37 +0200 Subject: [PATCH] new Heltec Library, send confirmed data when necessary, FW-Version 20240622 --- MiniBeieliNodeSketch/MiniBeieliNodeSketch.ino | 26 ++++++++++++++----- README.md | 22 +++++++++++++--- 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/MiniBeieliNodeSketch/MiniBeieliNodeSketch.ino b/MiniBeieliNodeSketch/MiniBeieliNodeSketch.ino index 672ea9d..e1c0df1 100644 --- a/MiniBeieliNodeSketch/MiniBeieliNodeSketch.ino +++ b/MiniBeieliNodeSketch/MiniBeieliNodeSketch.ino @@ -12,7 +12,7 @@ BME280 bme280; /******************************************************************************/ /* Firmware Version */ /******************************************************************************/ -static const int32_t fwVersion = 20220930; +static const int32_t fwVersion = 20240622; /******************************************************************************/ /* LoraWAN Settings */ @@ -225,6 +225,7 @@ bool stop_iterations = false; bool start_new_iteration = false; bool next_package_is_init_package = true; uint32_t gRebootMs; +char last_channel = 'X'; /******************************************************************************/ /* Functions for Global Data Structures */ @@ -404,6 +405,9 @@ bool InitializeScales() result &= nau7802.setSampleRate(NAU7802_SPS_40); //Set samples per second to 40 result &= nau7802.setRegister(NAU7802_ADC, 0x30); //Turn off CLK_CHP. From 9.1 power on sequencing. + // see https://github.com/sparkfun/SparkFun_Qwiic_Scale_NAU7802_Arduino_Library/issues/7 + //result &= nau7802.clearBit(NAU7802_PGA_PWR_PGA_CAP_EN, NAU7802_PGA_PWR); + return result; } @@ -446,14 +450,22 @@ long ReadScale(char channel) channelNumber = NAU7802_CHANNEL_2; } unsigned long startTime = millis(); - nau7802.setChannel(channelNumber); - bool calibrate_success = nau7802.calibrateAFE(); - if (! calibrate_success) { + if (channel != last_channel) { + last_channel = channel; + nau7802.setChannel(channelNumber); + bool calibrate_success = nau7802.calibrateAFE(); + if (! calibrate_success) { + if (config_data.debug_level > 0) { + Serial.printf("Error: Calibration not successful!\n"); + } + } if (config_data.debug_level > 0) { - Serial.printf("Error: Calibration not successful!\n"); + Serial.printf("getChannel1Gain: %d\n", nau7802.getChannel1Gain()); + Serial.printf("getChannel1Offset: %d\n", nau7802.getChannel1Offset()); + Serial.printf("NAU7802_GCAL2_B3: %d\n", nau7802.get32BitRegister(NAU7802_GCAL2_B3)); + Serial.printf("NAU7802_OCAL2_B2: %d\n", nau7802.get32BitRegister(NAU7802_OCAL2_B2)); } } - if (nau7802.available()) { long dummy = nau7802.getReading(); } @@ -967,6 +979,8 @@ void loop() case DEVICE_STATE_SEND: { if (ReadSensors(false)) { + // we send confirmed packages when weight change is too big or for every init package + isTxConfirmed = (TooBigWeightChange()) || (iteration <= INIT_PACKETS) || (iteration % INIT_PACKAGE_INTERVAL == 0); prepareTxFrame(appPort); LoRaWAN.send(); package_counter++; diff --git a/README.md b/README.md index d11f15d..80b01d0 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,9 @@ Das sind die verwendeten Libraries [1]: | URL | Branch | Commit | Commit Date | | --- | ------ | ----- | ----------- | -| https://github.com/HelTecAutomation/ASR650x-Arduino.git | 538fac1 | Wed, 28 Sep 2022 16:13:13 +0800 | -| https://github.com/sparkfun/SparkFun_Qwiic_Scale_NAU7802_Arduino_Library.git | 688f255 | Fri, 3 Jan 2020 12:35:22 -0700 | -| https://github.com/sparkfun/SparkFun_BME280_Arduino_Library.git | 56e7ff4 | Mon, 9 May 2022 08:15:59 -0600 | +| https://github.com/HelTecAutomation/ASR650x-Arduino.git | 7d7e157 | Mon, 8 Apr 2024 10:51:43 +0800 | +| https://github.com/sparkfun/SparkFun_Qwiic_Scale_NAU7802_Arduino_Library.git | e6b91f8 | Mon, 26 Feb 2024 09:55:18 +0000 | +| https://github.com/sparkfun/SparkFun_BME280_Arduino_Library.git | c42e780 | Tue, 19 Sep 2023 14:53:45 -0600 | ` [1]: echo "| $(git remote -v |grep fetch |awk '{print $2}' |tr '\n' ' ') | $(git log --pretty=format:'%h | %cD ' -n 1) |" @@ -36,7 +36,7 @@ Installation: ` $ brew install arduino-cli $ arduino-cli version -arduino-cli Version: 0.20.2 Commit: 13783819 Date: 2021-12-07T16:41:50Z +arduino-cli Version: 1.0.0 Commit: 05c9852a Date: 2024-06-12T12:11:23Z $ arduino-cli sketch new MiniBeieliNodeSketch @@ -60,6 +60,20 @@ $ FQBN="CubeCell:CubeCell:CubeCell-Board:LORAWAN_REGION=6,LORAWAN_CLASS=0,LORAWA Compile: $ arduino-cli compile --export-binaries --clean --fqbn ${FQBN} MiniBeieliNodeSketch +=== Beispiel === +joerg@mbp mini-beieli-node-cubecell % arduino-cli compile --export-binaries --clean --fqbn ${FQBN} MiniBeieliNodeSketch +Der Sketch verwendet 113756 Bytes (86%) des Programmspeicherplatzes. Das Maximum sind 131072 Bytes. + +Benutzte Bibliothek Version Pfad +LoRa 1.0 /Users/joerg/Documents/Arduino/hardware/CubeCell/CubeCell/libraries/LoRa +LoraMac_102 1.0.2 /Users/joerg/Documents/Arduino/hardware/CubeCell/CubeCell/libraries/LoraWan102 +SparkFun BME280 2.0.10 /Users/joerg/Documents/Arduino/libraries/SparkFun_BME280_Arduino_Library +SparkFun Qwiic Scale NAU7802 Arduino Library 1.0.5 /Users/joerg/Documents/Arduino/libraries/SparkFun_Qwiic_Scale_NAU7802_Arduino_Library + +Used platform Version Pfad +CubeCell:CubeCell 1.0.0 /Users/joerg/Documents/Arduino/hardware/CubeCell/CubeCell +============= + Upload: $ arduino-cli upload --verbose --fqbn ${FQBN} -p /dev/tty.usbserial-0001 MiniBeieliNodeSketch