I am an IoT junkie. I am also a Particle fan-boy, and am heavily invested in the Particle Cloud for all of my IoT needs. However, not every networking-equipped IoT device has native capabilities to communicate with the Particle Cloud. This puts my other devices like the ESP8266, Netduino, and Arduino at a disadvantage in my inventory. Not any more!
This project uses a Particle Photon to act as a gateway for my other devices. The Photon simply listens to a UDP port for incoming traffic from other devices. If the checksum passes, the Photon then "forwards" the data to the Particle Cloud via the
Particle.publish(...) command. For this particular project, I am using an Adafruit HUZZAH ESP8266 to take temperature readings with a DS18B20 and send them to the Particle Cloud for processing.
There a couple of things to note with the Adafruit HUZZAH ESP8266. Deep sleep will not work out of the box. You will need a jumper from RST to GND. You will also need a pull-up resistor (10K worked for me) from pin 5 to 3V. In earlier revisions of the board, it may have to be from pin 4 to 3V. Note that those pin numbers are the ones silkscreened on the Adafruit board. If you are using a non-Adafruit ESP8266 breakout, you'll want that pull-up resistor to be from GPIO2 to 3V.
If you are interested in the stats/graphing package I use once the data hits the cloud, here are some relevant links:
- My statsd-graphite Docker Container - StatsD + Graphite wrapped up in an easy-to-use, ready-to-go package
- My particle-statsd daemon - Listens to my Particle event feed, parses data, and sends it to StatsD