Publish mqtt to AWS Iot from UiFlow



  • Hi,
    I'm wondering if it's possible to publish messages to an MQTT topic on AWS IOT.
    Here's how I'm initializing my MQTT session

    m5mqtt = M5mqtt('MY_DEVICE_NAME', 'IOT_CORE_ENDPOINT', 8883, '', '', 4000, ssl = True, ssl_params = {'key': "PATH_TO_MY_PRIVATE_KEY", 'cert': "PATH_TO_MY_CERTIFICATE"})

    But it doesn't work. Any suggestions ?
    Thanks for your help

    Thanks,


  • Global Moderator

    Hello,
    Could you try with the ssl settings disabled to see if it works? I'm wondering if it's SSL certificate path issues or your AWS server, have you copied the ssl key and certificate to the M5Stack device? make sure you import it in the right directory.



  • I am also stuck trying to get this to work. Some research reveals that there may be a ca_certs parameter required to include Amazon's root CA. I've tried it like this but no luck:

    while True:
      output.setText('Setting up mqtt')
      m5mqtt = M5mqtt('m5stick', 'a2zey9c7ts6fdf-ats.iot.us-west-2.amazonaws.com', 1883, '', '', 300, ssl = True, ssl_params = {'key': "/flash/res/priv.key", 'cert': "/flash/res/cert.pem", 'ca_certs': "/flash/res/ca.pem"})
      m5mqtt.subscribe(str(''), fun__)
      output.setText('starting mqtt')
      m5mqtt.start()
      output.setText('publishing hello world')
      m5mqtt.publish(str('test'),str('hello world'))
      output.setText('sent hello world')
      wait(1)
      wait_ms(2)
    

    Can anyone from m5stack confirm whether ca_certs is a supported ssl parameter?