The architecture and first steps of a new IoT implementation using PSoC 6, CYW43012 WiFi, AnyCloud MQTT, Raspberry Pi, Python, Influx, Grafana, Telegraf and Docker. Wow, sounds like a lot.
For quite some time, I have been wanting to replace my original Elkhorn Creek implementation because. … well …, it is old school and a bit tired. I started an implementation which I called “The Creek 2.0” which used AWS IoT, AWS Lambda, and MySQL. I thought it was interesting to learn about all of the AWS stuff… but I never finished the user interface, nor did I replace the Raspberry Pi. Also, this solution was going in the old school direction and I wanted to use more open source.
So, this time I am going to go all the way. Here is the architecture:
There are a bunch of things that I have never used including:
- Mosquito MQTT
- Influx DB
Which is quite a bit of new stuff. Almost every time I work on a series like this I do all of the work in advance of writing the first article. That way I know how things are going to an end and what is going to go wrong. This way I can fix them in advance of you guys having to suffer with me. This time, well, not so much, so I am quite sure that there will be some drama.
To this point I have spend a bunch of time with:
- Learning Docker
- Trying out Influx DB and Grafana
- Making Telegraf work
There are still some things which are a bit unknown, including:
- I don’t like the Telegraf implementation of the mqtt_consumer, which is going to require me to spend time learning “Go”
- I don’t really know how to expose Grafana to the internet safely (is that going to be OK?)
- I am considering writing a “Influx Client Library” for PSoC to skip the MQTT?
- I am considering using “Influx Line Protocol” and not using MQTT
So over the next few weeks we will see how things evolves. I also decided to purchase a new Linux box for my house to run the system so I will talk about what I did there.