In August of 2018, Particle announced they are rolling out a new system of mesh-based IoT devices. I decided to pre-order 4 of them: 1 Argon (wifi + mesh) and 3 Xenons (mesh only).
They seemed to have a lot of promise, as I wouldn't have to set up each board with my router. In addition, I could put them in places well beyond the reach of my wifi signal, because some Xenons could act as repeaters.What is Particle Mesh?
The mesh networking boards use the Threading protocol to communicate with each other. The Argon acts as a gateway between my router and the rest of the network, allowing for Over-The-Air (OTA) firmware updates and letting each mesh device have its own IP address. That means each device can also use webhooks and Particle.publish() to talk to the "larger" internet, such as IFTTT or Actions on Google.Setup
Particle provides an app for both Android and iOS that allows for users to see their devices and interact with them. I started by scanning the QR code on the top of the Argon's RF shield and then ran the firmware update.
Then I set it up as a mesh gateway. Next, I set up each Xenon by scanning the QR code and connecting it to the mesh network. After everything was setup, I restarted everything and then went to the Particle Cloud console (https://console.particle.io/networks) to view it.Experiment Time
I was familiar with using Particle Photons and their wifi capabilities. Most of the functions stayed the same. The main difference between the Photons and mesh devices is the addition of the Mesh class. Mesh devices can either publish or subscribe to mesh network events, which can only be "heard" by devices on the same mesh network. Knowing this, I decided to upload some test code that would publish an event and then the recipient would echo it via Particle.subscribe(). It worked, so it was time to move onto greater things.Networking Sensors
Elegoo sent me their latest Upgraded 37-in-1 Sensor Kit (https://www.amazon.com/d/Computer-Motherboards/ELEGOO-Upgraded-Modules-Tutorial-Arduino/B01MG49ZQ5/) to try out, so I decided to test a sensor and some outputs with the mesh network.
One of the Xenons was connected to an HC-SR04 distance module that would publish an event called "distance" to the mesh network. Another Xenon was connected to an RGB LED which makes the LED brighter or dimmer based on the distance from the "distance" event. The Argon was connected to 2 LEDs, which would be red if the distance is less than 5cm, and green if greater than 5cm.
I would like to make a whole-home monitoring system and even add some automated actions using the mesh network, which can all be controlled via a web interface.
Thanks to Elegoo for the sensor kit!