如何连接ESP32与IBM沃森云平台
扫描二维码
随时随地手机看文章
根据一份报告,到2020年,全球将有超过204亿个联网设备。物联网平台是互联设备增长的主要推动者。为了将设备连接到互联网,它们提供许多集成服务和基础设施,如数据存储、连接、显示、控制等。因此,它们减少了部署物联网解决方案所需的工作量和投资,这是一些最成功的物联网解决方案背后的主要原因之一。
我们已经熟悉了一些流行的物联网平台,如ThingSpeak, Adafruit IO, Blynk等,并已经使用这些平台构建了许多物联网项目。但除了这些平台之外,还有一些工业级物联网平台,如亚马逊网络服务、微软Azure和IBM沃森,它们经常被大型行业用于存储和分析从物联网设备收集的数据。这些平台更安全,并提供许多有用的服务,从获取数据到使用机器学习算法进行分析。
在本教程中,我们将学习IBM Watson平台,它是在安全性和兼容性方面最好的物联网平台之一。IBM Watson或Bluemix是一个云平台,支持许多产品和服务,如计算基础设施和服务、物联网、数据分析、移动应用服务、存储等。该平台兼容MQTT协议、HTTP和REST api。对于初学者来说,可能很难使用这个平台。
在本教程中,我们将设置IBM Watson帐户,并使用ESP32模块将DHT11温度和湿度数据发送给它。我们还将借助图形将这些数据可视化。以前我们使用ESP32来构建许多基于物联网的应用程序,如果您是ESP32新手,请开始使用ESP32教程。
所需的材料
•ESP32董事会
•DHT11温湿度传感器
•公母线
线路图
硬件只涉及ESP32和DHT11传感器。DHT11信号引脚接D4, DHT11的Vdd和GND引脚分别接ESP32的3.3v和GND引脚。
我们之前将DHT11传感器数据发送到许多其他物联网云以建立气象站
•基于物联网的温湿度监测使用BLYNK, ESP8266和DHT11传感器
•基于物联网的树莓派气象站,使用DHT11和BMP180传感器
•使用树莓派和辣椒进行云上温度和湿度监测
•Arduino接口与Node-RED监测网页上的温度和湿度
•物联网无线气象站使用Arduino, ESP8266和ThingSpeak
IBM沃森物联网平台的设置帐户
要在IBM Watson平台上创建帐户,请转到IBM云页面并单击创建IBM帐户。输入您的详细信息并单击创建帐户,如下所示。
2. 要在IBM平台上使用任何服务,我们必须为它创建资源。因此,使用您的凭据登录(请注意,IBMid是您用于创建帐户的电子邮件id),您将被重定向到IBM云网站。现在,单击Create Resource。
3. IBM Cloud提供了许多服务,所有这些服务都可以在参考资料列表中看到。因为我们想要使用物联网服务。点击物联网,点击物联网平台。
4. 下一页上有一些预先填写的信息,保留这些信息,然后单击Create。
5. 现在我们已经准备好了物联网资源。通过单击Launch启动创建的资源。
6. 现在,您将被重定向到物联网页面。在这里,添加您的设备以将其连接到物联网平台。单击Add device。
7. 在下一页填写设备详细信息。在设备类型中给出名称,设备ID将是该设备的MAC地址。您可以使用下面的代码找到ESP32的MAC地址
MAC地址将打印在串行监视器上,复制该数字并粘贴在设备ID中。单击Next。
8. 下一页,有一些与设备相关的信息。保留这些信息,然后单击下一步。Security部分也一样,保留它不填充,然后单击next,如图所示。
9. 在最后一页作为Summary,单击Finish。
10. 现在,我们已经成功创建了设备,设备凭据将显示在下一页上。复制所有凭证并将其保存在某个地方。代码中将需要它们。
11. 单击Devices,您将看到ESP32已成功创建,但未连接。现在,我们将通过编写代码将ESP32与该平台连接起来。
12. 要以图形格式显示温度和湿度,请通过进入设备并单击使用概况板创建模板。
13. 现在,单击Add New Card。在这里,您将找到要显示的不同类型的图形。我们将使用折线图,所以继续点击折线图。
14. 选择我们之前创建的设备并单击Next。在下一页点击连接新数据集。
15. 现在,输入要显示在图上的数据。我们将在status1事件上发送温度值(代码中提到了status1变量)。将属性和名称设置为温度,类型设置为数字,单位设置为摄氏度,然后单击Next。
16. 选择图形大小,点击下一步,然后在下一页选择图形颜色,点击提交。
17. 现在,您将看到如下所示的图表。重复以上步骤制作另一个湿度图,并将事件设为status2,属性和名称设为湿度,值设为Number,单位设为%。
18. 实现IBM云和ESP32之间的通信。转到安全选项并单击连接安全。
19. 在默认规则下,选择安全级别为TLS可选,然后单击保存。
就是这样。我们已经成功地为ESP32建立了IBM沃森物联网平台。现在,我们需要编写将温度和湿度值发送到该平台的代码。
代码与说明
在继续之前,请确保您已经安装了ESP32板文件,如果您没有板文件,请按照我们之前关于ESP32的教程了解如何安装板文件。
现在,为DHT传感器和PubSub客户机安装库。去sketch ->包括库->管理库。然后搜索DHT和PubSubClient库,然后安装它。
在这里我们解释了完整的程序,以了解项目的工作原理。
首先,包括Wi-Fi、PubSubClient和DHT的库。因为我们使用MQTT协议来发送和接收消息,所以我们需要PubSubClient。该库使用MQTT协议订阅和发布数据。
定义dhtpin和DHT传感器类型的一些变量。此外,我们需要定义在Watson平台上添加设备时复制的所有凭据,如下所示。
在字符变量中添加Wi-Fi凭据作为SSID和密码。
现在,提供我们将发布数据的链接。此外,提供我们将发布数据的主题。我们有2个主题,一个是温度,另一个是湿度,分别命名为status1和status2。给出验证方法为“use-token-auth”,然后定义clientID,如下所示。
在void Setup函数中,使用.begin()函数初始化串行监视器,DHT传感器和Wi-Fi。然后将模块与Wi-Fi连接。建立连接后,使用给定的凭据将模块连接到IBM Watson平台。
在void loop函数中,从DHT传感器获取温度和湿度数据并存储在两个不同的变量中。然后将此有效负载作为字符串发送。我们需要创建两个字符串,一个用于温度,另一个用于湿度,每秒钟发送一次数据。
类似地,为湿度创建一个字符串。
现在我们已经完成了编码部分。您可以在本教程的末尾找到完整的代码和演示视频。
从ESP32上传数据到IBM沃森物联网云
最后根据接线图将DHT传感器与数字引脚4连接,并在工具菜单中选择ESP32 Dev模块上传代码。
检查IBM Watson上传的数据
现在,是时候检查IBM Watson平台上上传的数据了。一旦您的模块与Wi-Fi连接,您将看到IBM Watson平台上的连接状态,如下所示。
1. 转到Boards并单击Usage Overview选项。
2. 这里创建了两个图表,用于查看每秒钟更新的温度和湿度值,如下所示。
3. 通过在仪表板中选择适当的选项,可以看到不同格式的值,如图表形式或仪表。
IBM Watson平台还有许多其他特性需要探索。这就是ESP32如何将数据发送到IBM沃森云平台
本文编译自iotdesignpro