diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index 4c81e95d..6d4056c2 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -68,6 +68,9 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { mEep->read(ADDR_PINOUT+2, &mSys->Radio.pinIrq); + // nrf24 amplifier power + mEep->read(ADDR_RF24_AMP_PWR, &mSys->Radio.AmplifierPower); + // mqtt uint8_t mqttAddr[MQTT_ADDR_LEN]; char mqttUser[MQTT_USER_LEN]; @@ -93,7 +96,7 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { mSys->setup(); - if(!mSettingsValid) + if(!mWifiSettingsValid) Serial.println("Warn: your settings are not valid! check [IP]/setup"); } @@ -285,6 +288,17 @@ void app::showSetup(void) { html.replace("{PINOUT}", String(pinout)); + // nrf24l01+ + String rf24; + for(uint8_t i = 0; i <= 3; i++) { + rf24 += ""; + } + html.replace("{RF24}", String(rf24)); + + if(mSettingsValid) { mEep->read(ADDR_INV_INTERVAL, &interval); html.replace("{INV_INTERVAL}", String(interval)); @@ -409,7 +423,7 @@ void app::showLiveData(void) { //----------------------------------------------------------------------------- void app::showMqtt(void) { String txt = "connected"; - if(mMqtt.isConnected()) + if(!mMqtt.isConnected()) txt = "not " + txt; mWeb->send(200, "text/plain", txt); } @@ -456,6 +470,10 @@ void app::saveValues(bool webSend = true) { } + // nrf24 amplifier power + mSys->Radio.AmplifierPower = mWeb->arg(String(pinArgNames[i])).toInt() & 0x03; + mEep->write(ADDR_RF24_AMP_PWR, mSys->Radio.AmplifierPower); + // mqtt uint8_t mqttAddr[MQTT_ADDR_LEN] = {0}; char mqttUser[MQTT_USER_LEN]; diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index c94668cc..74bb4f90 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -25,7 +25,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 2 -#define VERSION_PATCH 6 +#define VERSION_PATCH 7 //------------------------------------- @@ -50,6 +50,8 @@ typedef struct { #define PINOUT_LEN 3 // 3 pins: CS, CE, IRQ +#define RF24_AMP_PWR_LEN 1 + #define MQTT_ADDR_LEN 4 // IP #define MQTT_USER_LEN 16 #define MQTT_PWD_LEN 32 @@ -66,7 +68,9 @@ typedef struct { #define ADDR_PINOUT ADDR_START_SETTINGS -#define ADDR_INV_ADDR ADDR_PINOUT + PINOUT_LEN +#define ADDR_RF24_AMP_PWR ADDR_PINOUT + PINOUT_LEN + +#define ADDR_INV_ADDR ADDR_RF24_AMP_PWR + RF24_AMP_PWR_LEN #define ADDR_INV_NAME ADDR_INV_ADDR + INV_ADDR_LEN #define ADDR_INV_TYPE ADDR_INV_NAME + INV_NAME_LEN #define ADDR_INV_INTERVAL ADDR_INV_TYPE + INV_TYPE_LEN diff --git a/tools/esp8266/hmRadio.h b/tools/esp8266/hmRadio.h index ea0120fc..02989ec9 100644 --- a/tools/esp8266/hmRadio.h +++ b/tools/esp8266/hmRadio.h @@ -13,6 +13,10 @@ #define DUMMY_RADIO_ID ((uint64_t)0xDEADBEEF01ULL) +const char* const rf24AmpPower[] = {"MIN", "LOW", "HIGH", "MAX"}; + + + //----------------------------------------------------------------------------- // MACROS //----------------------------------------------------------------------------- @@ -54,7 +58,8 @@ class HmRadio { pinCe = CE_PIN; pinIrq = IRQ_PIN; - mSendCnt = 0; + AmplifierPower = 1; + mSendCnt = 0; } ~HmRadio() {} @@ -79,7 +84,8 @@ class HmRadio { // enable only receiving interrupts mNrf24.maskIRQ(true, true, false); - mNrf24.setPALevel(RF24_PA_MAX); + Serial.println("RF24 Amp Pwr: RF24_PA_" + String(rf24AmpPower[AmplifierPower])); + mNrf24.setPALevel(AmplifierPower & 0x03); mNrf24.startListening(); Serial.println("Radio Config:"); @@ -180,6 +186,8 @@ class HmRadio { uint8_t pinCe; uint8_t pinIrq; + uint8_t AmplifierPower; + private: void sendPacket(uint64_t invId, uint8_t buf[], uint8_t len) { //Serial.println("sent packet: #" + String(mSendCnt)); diff --git a/tools/esp8266/html/h/setup_html.h b/tools/esp8266/html/h/setup_html.h index 0fb05a10..83000eb7 100644 --- a/tools/esp8266/html/h/setup_html.h +++ b/tools/esp8266/html/h/setup_html.h @@ -1,4 +1,4 @@ #ifndef __SETUP_H__ #define __SETUP_H__ -const char setup_html[] PROGMEM = "
Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.
Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.
Pinout (Wemos)
{PINOUT} +Radio (NRF24L01+)
+ + +MQTT
@@ -43,7 +47,7 @@ - +