首页 理论教育 ArduinoESP8266模块实现-快速开发技巧

ArduinoESP8266模块实现-快速开发技巧

时间:2023-10-23 理论教育 版权反馈
【摘要】:使用Arduino IDE编程ESP8266,将数据发送到ThingsBoard。在继续执行该程序之前,请确保你已经使用board manager在Arduino IDE中安装了所需的电路设置信息,以便使用Arduino对ESP8266进行编程。一旦IDE和硬件准备就绪,我们就可以检查ESP8266部件是否工作正常。在上述电路中使用FTDI模块,通过保持编程模式将代码上传至ESP8266。然后打开串行监视器,你将看到以下内容:图2-9监测信息此消息确认ESP8266模块能够在Thingsboard服务器上与我们的设备建立通信。因此,现在是时候将ESP8266与Arduino连接起来,为ESP8266提供数据了。

ArduinoESP8266模块实现-快速开发技巧

(1)使用Arduino IDE编程ESP8266,将数据发送到ThingsBoard。

首先,我们必须对ESP8266进行编程,以连接到Wi-Fi路由器,并使用我们先前获得的令牌地址与我们的ThingsBoard设备同步。一旦完成,它应该通过其串行引脚积极寻找来自Arduino板的详细信息。如果它获得数据,会对信息进行短语化,并将其发送到Thingsboard仪表板。

对此的解释如下。在继续执行该程序之前,请确保你已经使用board manager在Arduino IDE中安装了所需的电路设置信息,以便使用Arduino对ESP8266进行编程。还需要使用Sketch->Include Library->Manage Library安装以下库。只需搜索所需的库并单击install。

PubSubClient by Nick O’Leary;

Wi-FiEsp by bportaluri。

一旦IDE就绪,我们就可以通过添加所需的库并提供Wi-Fi凭据和密码以及我们之前获得的令牌值来开始该程序。然后,创建一个连接到Thingsboard演示页面的Wi-Fi客户端。其代码如下所示:

在setup()函数中,我们设置串行通信波特率为9600,并初始化Wi-Fi模块以连接到Wi-Fi路由器。最后,我们将把Wi-Fi客户端连接到ThingsBoard服务器。

在loop()函数中,我们将不断检查与服务器的连接是否处于活动状态,如果不是,我们将使用重新连接功能尝试重新连接。如果客户端连接成功,程序将检查来自串行监视器的输入数据,如果收到数据,它将转换为字符串并存储在名为Name的变量中。然后,使用函数Send_to_ThingsBoard()将此变量以JSON格式发送到ThingsBoard服务器。如果没有串行数据输入,那么我们将使用line client.loop()来维护客户端连接。

(www.xing528.com)

Thingsboard服务器接受JSON格式的信息,因此我们必须以JSON格式从ESP8266构建有效负载。我们只需在Arduino中使用字符串级联函数就可以做到这一点。我们还将负载命名为“name”。属性必须提到我们发送到Thingsboard的有效载荷的大小。由于每个员工姓名中的字符数会有所不同,我们的有效负载没有固定的属性值,因此我们将其最大值设置为100。然后要通过ESP8266发送它们,我们使用toCharArray方法将字符串转换为char,最后使用client.publish选项发送。注:不应更改v1/devices/me。

(2)测试ESP8266与ThingsBoard的连接。

一旦IDE和硬件准备就绪,我们就可以检查ESP8266部件是否工作正常。在上述电路中使用FTDI模块,通过保持编程模式将代码上传至ESP8266。上传代码后,将其连接回AT命令模式并按下重置按钮。然后打开串行监视器,你将看到以下内容:

图2-9 监测信息

此消息确认ESP8266模块能够在Thingsboard服务器上与我们的设备建立通信。在此阶段,ESP8266正在等待通过其串行监视器的输入,当它接收到某个信息时,它会将该数据发送到服务器。因此,现在是时候将ESP8266与Arduino连接起来,为ESP8266提供数据了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈