通过umqtt将ESP32连接到AWS IoT

时间:2018-08-20 13:12:51

标签: mqtt micropython esp32

我有以下微型python代码:

client = MQTTClient("youraccount/feeds/lights", "a21sigud7911d7.iot.us-west- 
2.amazonaws.com", user="None", password="None" , keepalive=10000, ssl=True, 
ssl_params={"certfile":"/49c84a8c4a-certificate.pem.crt", 
"keyfile":"/49c84a8c4a-private.pem.key", "ca_certs":"/root.pem"})


 client.settimeout = settimeout
 client.connect()

但是当我在ESP32上从repl运行脚本时,我得到了:

connect中的文件“ umqtt / simple.py”,第61行 TypeError:提供了额外的关键字参数

请帮助

2 个答案:

答案 0 :(得分:2)

删除ssl_params词典中的ca_certs。请参阅Micropython connecting to AWS with MQTTwarning in ussl documentation
由于ESP32使用mbedtls,因此可以在ESP32上使用ESP32和Micropython-lib MQTT连接到AWS。但是,在unix / osx上是不可能的,因为它使用axtls库-请参考此issue

答案 1 :(得分:0)

我并没有尝试连接到AWS(而是我自己的TLS安全的MQTT Broker)–并且我有完全相同的错误消息。如果有人发现了这个问题,那么在尝试解决该问题时,答案实际上非常简单。您不能使用文件名,而需要它们的内容。所以这对我有用:

<div class="row">
                        <div class="col-md-12" id="divReporte">
                            @Html.ReportViewer(ViewBag.ReportViewer as Microsoft.Reporting.WebForms.ReportViewer, htmlAttributes: new { id = "ReportViewer12", name = "ReportViewer12" })
                        </div>
                    </div>

您显然需要用安全MQTT服务器的URL替换“ test.example.com” ...