Is there a price breakdown of the SIM Card subscription. If I go to the Particle Console, I do see an opportunity to increase the Data Limit, but what are the pricing for each Data Limits?
I currently have 5MB data limit per month set (this was an out-of-box setting), if I remember correctly.
For the $2.99 a month (first 3 free) you pay for a cellular device you get 3MB/month. The limit you can set is at which point you want the device to automatically be cut-off at and no longer be allowed to send/receive data.
Data past that 3MB will cost you $0.40/MB, more info here.
What I’ve done is copy the RAW output from an event in the console, put in into a byte-counter such as this, and mathed out the frequency, thus total usage, from there.
I’ve only briefly tinkered with cellular (really getting into it starting this week) so I can’t attest to how accurate this method is.
Using my Particle mobile app, if I look into the EVENTS, my packet looks like what is shown below. It is 264 bytes. More than double what is shown in the RAW output from the event console (webpage https://console.particle.io/).
But to provide some what accurate client budgeting and estimating I still need to know which data usage do I get charged for; the 122 bytes or 264 bytes data usage.
I'm sure you'll get a more detailed official answer, but I would assume More than the 264 bytes.
There is some overhead in establishing the Cellular Connection, and with each Publish.
Some things you cant calculate, such as a location with poor cellular signal strength that would require frequent re-connects, etc.
I use a Particle Variable for my Publish Frequency/interval during testing.
That way you can quickly change the Publish Schedule without OTA flashing, and compare the next days Cellular Data verses the previous in the API link.
Sorry, I said that incorrectly.
You can use a Particle.function to change your publish interval from the console.
Something like this might get you started:
SYSTEM_THREAD(ENABLED)
int publish_delay = 1 * 60000 ; // Multiply # of Minutes * 60,000. This is how often updates are published.
unsigned int lastPublish = 0;
void setup() {
// Register Particle Function to allow user to remotely Change the Publish Delay from the Particle Console.
Particle.function("setDelay", setPublishDelay);
} // End Setup()
void loop() {
if ((millis() - lastPublish) > publish_delay) { // It's Time to Publish
// perform your publish here
lastPublish = millis();
}
} // End LOOP()
// Change the Publish Delay from the Particle Console with this Function. Value sent from Console must be an Integer....1,2,3, etc in Minutes.
int setPublishDelay(String command) {
publish_delay = ( command.toInt() * 60000 );
Particle.publish("Publish Delay set to ", String(publish_delay), PRIVATE);
}