Using Boron as a Gateway?

I have what is maybe a design question involving multiple Particle devices.

I have a handful of unused Argons which I am planning to use on an IoT project for capturing and sending sensor data to a web service on the public Internet.

My thoughts are the following (which I'm pretty sure is possible):

[Sensors] ==> [Argon|Photon 2] == HTTPClient ==> Public Internet ==> Web Service

I see there is an HttpClient library available, so I'm assuming this should be possible. However, what about locations where WiFi is not available, but cellular is? I see that Particle sells a cellular Boron device, which also has BLE, so my thinking is possibly:

[Sensors] ==> [Argon|Photon 2] == BLE ==> [Boron] == Cellular ==> Public Internet ==> Web Service

For BlueTooth, I have found an example online that looks like I can talk BLE-to-BLE between devices, which uses one device broadcasting (advertising?) to another device. So does it make sense that I can send data (probably small 16 byte packets) from one device (Argon|Photon 2) to the other [Boron] via BLE? Or does anyone see a problem with this? I admit that I have never played with Bluetooth / BLE before, so I'm a bit naive about what I can do with it.

But more importantly, what connectivity to cellular does a Boron device provide? E.g., does it provide access to things like sending SMS messages? Or does it just connect to the Particle PaaS cloud? And if the latter, can I use something like the HttpClient library to make outgoing (HTTP GET) requests to the Public Internet from the Boron?

Any thoughts or feedback would be appreciated. I've gotten to the point of Google'ing and reading on the Internet that I think this should all work, but before I actually start purchasing Boron devices to actually try and make it work

For both questions (device-to-device BLE-to-BLE, and Boron Cellular-to-Public-Internet), please feel free to send me links to documentation that I might have somehow missed online. And when I say [Argon|Photon 2], I mean that I know Particle has discontinued the Argon, so I would have to use the Photon 2 going forward.



Hi @dfilip!

It is technically possible to use a Boron as "a gateway" if you plan to gather all your other devices' data via BLE and publish using cellular if there is no wifi available, although I don't have the context of someone doing it before.

Just keep in mind that Boron is designed mainly to use cell data to publish to our cloud, and there is no SMS. So you are limited by the API field limits, and the usage limit depending on your pricing plan.

Thanks @jalbersr for the response! That definitely changes my way of thinking of this, but I get it, the cellular connectivity is specifically for Particle cloud connectivity.

So I understand I can make Boron variables accessible from the cloud, and retrieve them using:

GET /v1/devices/{DEVICE_ID}/{VARIABLE}

from the Public Internet. However, I also see in the documentation:

Each variable retrieval uses one Data Operation from your monthly or yearly quota. Setting the variable does not use Data Operations.

So, if I sent continuously (probably with a delay() of 1-5 minutes or so in between) in loop(), that will not be charged against my "quota", but every time I retrieve the variable from the cloud (from the Public Internet), then it will be charged? I haven't used the cloud variables before, so do I automatically get a quota, and if so, how do I know what it is? I am a single developer with a handful of Particle devices, and am not playing separatly for cloud access, so what is my quota?

Secondly -- and I've just been reading about cloud variables based on your response -- are they stored and cached in the cloud, or read from the device real time? Or, more specifically, if a Boron device writes a variable to the cloud, and is then turned off (power remove), can that variable still be read from the cloud? Or does the device have to be physically turned on in order to read the variable?

As I said in my original e-mail, I was originally thinking of the Boron using the HttpClient library to make an outgoing request (which I believe is what that library does?). But variables look like another option. And I'm not sure if the cellular connection from a Boron will permit use of the HttpClient library to make an outgoing request?

Final question, at least for now, is beyond purchasing a Boron, will I have any charges for cellular usage? I think I read that the cellular account is included "free" with the device? Or did I misinterpret that? Are there any data charges (e.g., from AT&T) for using a Boron on a cellular connection?

Thanks in advance for helping clarifying all of this, and giving me another way to think about providing data outside of the cloud (by GET'ing variables, vs. the device calling (GET'ing) a web service with URL parameters outside of the Particle cloud, but obviously a web service that I would write, which I have plenty of experience with).



Hi, it's all here:

yes :point_up:

that is what happens :point_up:

Since variable reads consume one data operation, you could create a variable that is a long concatenation of all the values to read, then read only that.