Monitor the RSSI(Received Signal Strength Indicator) values on the Argon module

Hi guys,

I am new to Particle. I am currently working on a project that involve monitoring RSSI values of Particle Argon module.

I have connected an Argon to a display and an antenna. The Argon is communicating with a Xenon to display temperature values on a Display.

I will be moving the Xenon away from the Argon and will be monitoring the temperature values on the Display. During this moving around, I would like to track the RSSI values of the antenna.

I would like to know what are possible ways to track the RSSI values of an antenna in connection with the Argon. Any suggestion will be appreciated!

@LTW1994 Welcome to Particle Community.

You have not said which RSSI value you want to measure and report?

You have an Argon which can be WiFi connected and the WiFi RSSI can be read using;
WiFi.RSSI() returns the signal strength of a Wi-Fi network from -127 (weak) to -1dB (strong) as an int . Positive return values indicate an error with 1 indicating a Wi-Fi chip error and 2 indicating a time-out error.

For the Mesh there is currently no Mesh.RSSI() function in the device API that can be used for the Mesh network signal strength.

@ Armor G3CC,

Thank you for the reply. I am trying to get the RSSI value for an external antenna and internal antenna that I have for my Argon. Thank you for the help!

Also, may you please lead me in the right direction on writing the WiFi.RSSI ( ) in my code? Where should I insert this code or Wifi.RSSI( )? Also, what goes in the parenthesis?

Take a look here in the documentation - this is an invaluable resource that huge amounts of detail and examples:

https://docs.particle.io/reference/device-os/firmware/argon/#rssi-

Hi,
I was wondering if anyone ever found a example on using the WIFI class with a argon. I have looked at the documentation, and when I try to compile a simple example which I included below I get a Wifi not declared in this scope. Any suggestions would be appreciated.

#include <Particle.h>
 
int led1 = D0; // Instead of writing D0 over and over again, we'll write led1
// You'll need to wire an LED to this one to see it blink.

int led2 = D7; // Instead of writing D7 over and over again, we'll write led2
// This one is the little blue LED on your board. On the Photon it is next to D7, and on the Core it is next to the USB jack.

// Having declared these variables, let's move on to the setup function.
// The setup function is a standard part of any microcontroller program.
// It runs only once when the device boots up or is reset.

//int rssi = WiFi.RSSI();
//WiFiSignal rssi = WiFi.RSSI();

SYSTEM_THREAD(ENABLED);
SYSTEM_MODE(SEMI_AUTOMATIC);

int rssi = 0;
char data[16];

void wifi_status() 
{    
    rssi = WiFi.RSSI();

    Particle.publish("rssi", data, PRIVATE);
    //Blynk.virtualWrite(V50, rssi);
}

void setup() {
  // We are going to tell our device that D0 and D7 (which we named led1 and led2 respectively) are going to be output
  // (That means that we will be sending voltage to them, rather than monitoring voltage that comes from them)

  // It's important you do this here, inside the setup() function rather than outside it or in the loop function.

  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  //Particle.variable("RSSI", rssi);
}

// Next we have the loop function, the other essential part of a microcontroller program.
// This routine gets repeated over and over, as quickly as possible and as many times as possible, after the setup function is called.
// Note: Code that blocks for too long (like more than 5 seconds), can make weird things happen (like dropping the network connection).  The built-in delay function shown below safely interleaves required background activity, so arbitrarily long delays can safely be done if you need them.

void loop() {
  // To blink the LED, first we'll turn it on...
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);

  // We'll leave it on for 1 second...
  delay(1000);

  // Then we'll turn it off...
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);

  // Wait 1 second...
  delay(1000);
  
//Particle.keepAlive(23 * 60); 
wifi_status();
}

Never mind. I figured out that unless a argon is selected in the Web IDE it will give this error because the wifi hardware is not in a xenon.