I want to send some JSON data to an MQTT topic on Amazon IOT. I can send using the Raspberr Pi WiFi adapter, but I want to send using any GSM module. Is there any way or advice on how to do this?
I think this question is related to what you're trying to accomplish - https://answers.launchpad.net/mosquitto/+question/249129. It sounds like it there may not be a straightforward way to do it.
The problem to connect with AWS IoT is that AWS IoT requires TLS1.2 Encryption and most of GSM modules like SIM800 and SIM900 supports TLS1.0 Encryption technology.
So I think it is not possible to directly connect to AWS IoT through SSL Certificates and AT Commands.
So to solve the above problem there is one technique which I am using in my project.
You can establish PPP (Point-to-Point) connection with your GSM module. It will act as a normal internet connection like your wifi or eth0.
I have attached some of important links to establish PPP connections:
By following above links you can connect to internet and can publish to AWS IoT with SSL Certificates by normal Mosquitto Publish command with certificates.
Try to disable any other interfaces when connecting to PPP network.