Dear all,
I am starting to explore some IoT concepts and architectures both regarding SW and HW. Since I am beginning with all of this, there is really large amount of information
that I would really like to put to its place. I would appreciate if someone with knowledge and experience can answer a couple of (maybe stupid) begginner questions.
First let's begin with HW:
I've noticed good ammount of RFM69 RF-to-mqtt gateways.
1) Can somebody please explain how these work and what is the purpose of having RF-to-MQTT gateway?
2) How does the ESP8266 fit into all of this? (for example there are ESP32's and ESP8266's packed with RFM69 on same board)
3) What is the purpose of ESP8266 in such gateway (transciever)
There are also some RFM2PI boards with rfm69 and atmega chips that attach to RaspberryPi, so:
1) What is the idea behind this?
2) What job RPi does in such cases? What is it used for?
3) Can it replace the above ESP8266 + RFM69C concept or both concepts have their own purpose?
Regarding the IoT SW arhitecture:
1) Can somebody please explain the idea behind MQTT, Node-Red and how all this SW arhitecture fits in to two of the above mentioned concepts.
2) What OS does Rpi need to have in order to be deployed as MQTT broker?
1.1) ultra low power LoRa radios need to get their data onto the network, the gateway does this
1.2/3) the esp8266 handles the mqtt over wifi bit and can communicate with sensors or LoRa radios via its GPIO's
2) same stuff but having an rpi with LoRa radio doing the gateway work instead of the ESP module
3) MQTT is a way of seperating producers from consumers - you have devices and sensors providing new data events on the network and then you can have multiple listeners recording/reacting to those events.
many will argue you can use http rpc or custom udp servers instead of MQTT but you then need to replicate the multiple listener feature and thats not as simple as it seems.
multiple listeners means you can have one stable daemon recording the data that never gets touched.
then you have other listeners doing screen displays or alarm events, all seperate to each other without over loading the one program with too many features that make it slow or unstable.
it allows you to isolate all the features of your IOT app from each other and things that are stable can stay stable.
you can also then have the MQTT brokers push events out across different networks (bridging) and build complicated public/private scenarios.