步骤1:简介
每当我们有一个需要一些数据显示的项目时并记录下来,通常需要在网络上提供数据。这样我们就可以远程监控对象的状态,甚至可以从世界上任何地方控制我们的设备。
在此项目中,我们将使用带有ESP8266 12e模块的NodeMCU v1.0板。此外,我们需要使用可以托管Laravel应用程序的计算机。如果你想了解如何设置这样的环境,请检查我的视频。
第2步:准备Laravel应用程序
我们的第一步是通过Composer安装Laravel。我不会详细介绍如何执行此操作,因为文档详细解释了这一点,您可以在此处找到它。
为了保持此演示简单,在Laravel中我们将记录从Arduino到文本文件,以便我们稍后查看。为此,我们首先要在“ api.php ”文件中创建一个新的POST路由。在回调中,我们将注入请求详细信息,以便稍后检索发送的参数。
要写入文件,我使用Laravel的Storage Facade及其方便的附加方法。调用此方法时,会接收文件名和字符串数据,并将此数据添加到指定文件中。如果该文件不存在,则在第一次调用时创建该文件。
我们在每一行中写入的数据由当前日期和时间组成,后跟温度和湿度的请求值。如果你有多个这样的值,你可以为所有这些值重复相同的检索过程。
步骤3:准备Arduino发送者
现在让我们看一下Arduino代码和数据发送。
为了使NodeMCU板能够连接到我们的WiFi并发送请求,我们首先需要在顶部包含几个库。接下来,我们需要指定我们连接到的网络的SSID及其密码。如果您使用带有以太网屏蔽的Uno,那么您的过程将会有所不同。
此外,我们在这里保存我们刚刚创建的Laravel服务器的根URL。在我的情况下,这是我本地计算机的IP地址,但您可以添加任何可访问代码的主机URL。
在设置功能中,我们启动串行通信,以便我们可以监控正在进行的操作。此外,我们需要设置NodeMCU板,以便它可以正确连接到WiFi。完成后,我们可以启动连接并等待,直到我们从路由器收到IP地址。
在此示例中,我实际上没有将任何传感器连接到板上。相反,我只是使用随机函数生成一些随机数据,而我正在发送它。
此数据需要以查询字符串的形式准备,在HTTP请求启动后,我们需要使用HTTP客户端上的POST方法发送它。我们之前添加的标题是让服务器知道请求中需要收集的数据。
因此,我们首先获取HTTP状态代码,然后获取响应有效负载。如果一切顺利,我们应该获得200作为代码,并且由于我们没有从Laravel应用程序返回任何内容,因此有效负载将为空。
如果由于某种原因状态代码不是200,那么有效负载通常会包含发生的错误消息。
最后,我们需要确保关闭请求并等待一段时间,在我们的示例中为5秒再次执行相同的过程。
结果是我们在每次迭代时都会将这些值保存在文本文件中,以便我们以后可以使用它来显示它或将其映射到图表上。
第4步:进一步的步骤
如您所见,该过程相当简单,可以轻松扩展以读取来自不同传感器的值并可能将其写入在数据库中。你可以用它构建的结果仅限于你的想象力。为了帮助您入门,下面是示例中使用的完整源代码的链接。
https://github.com/bkolicoski/arduino-laravel-comm 。..
责任编辑:wv
-
Arduino
+关注
关注
187文章
6461浏览量
186570 -
laravel
+关注
关注
0文章
26浏览量
2335
发布评论请先 登录
相关推荐
评论