基于NodeMCU ESP8266的物联网智能停车系统
扫描二维码
随时随地手机看文章
如今,在繁忙的地区找到停车位非常困难,而且没有系统可以在线获取可用停车位的详细信息。想象一下,如果你可以在手机上获得停车位的可用信息,而你不需要到处漫游来检查可用性。这个问题可以通过基于物联网的智能停车系统来解决。使用基于物联网的停车系统,您可以通过互联网轻松访问可用的停车位。该系统可以完全实现汽车停车系统的自动化。从您的进入到付款和退出都可以自动完成。
因此,我们正在构建一个基于物联网的停车系统,使用NodeMCU,五个红外传感器和两个伺服电机。入口和出口入口处使用两个红外传感器来检测车辆,而三个红外传感器用于检测停车位的可用性。伺服电机根据传感器的值来开启和关闭闸门。在这里,我们使用Adafruit IO平台来显示发布在云上的数据,可以从世界任何地方监控。
组件的要求
硬件
•NodeMCU ESP8266
•红外传感器(5)
•伺服电机(2)
在线服务
•Adafruit IO
线路图
下面给出了这个基于物联网的智能停车系统项目的电路图。
在这个使用物联网的智能停车系统中,我们使用了五个红外传感器和两个伺服电机。红外传感器和伺服电机连接到NodeMCU。NodeMCU控制整个过程,并将停车可用性和停车时间信息发送给Adafruit IO,以便使用该平台从世界任何地方对其进行监控。进出门处采用两个红外传感器,可以检测进出门处的车辆,自动开启和关闭大门。我们以前在许多物联网项目中使用Adafruit IO云,点击链接了解更多信息。
使用两台伺服电机作为进出门,因此每当红外传感器检测到汽车时,伺服电机自动从45°旋转到140°,并在延迟后返回到初始位置。另外三个红外传感器用于检测停车位是否可用或被占用,并将数据发送给NodeMCU。Adafruit IO仪表板也有两个按钮手动操作入口和出口门。
以下是使用物联网的智能停车系统的完整设置:
Adafruit IO设置物联网停车系统
Adafruit IO是一个开放的数据平台,允许您在云中聚合、可视化和分析实时数据。使用Adafruit IO,您可以在互联网上上传,显示和监控数据,并使您的项目启用物联网。您可以使用Adafruit IO控制电机,读取传感器数据,并通过互联网制作酷的物联网应用程序。为了测试和尝试,有一些限制,Adafruit IO是免费使用的。我们以前也在树莓派上使用过Adafruit IO。
1. 要使用Adafruit IO,首先,您必须在Adafruit IO上创建一个帐户。要做到这一点,请访问Adafruit IO网站,点击屏幕右上方的“免费开始”。
2. 在完成帐户创建过程后,登录您的帐户并单击右上角的“AIO密钥”以获取您的帐户用户名和AIO密钥。
当你点击“AIO密钥”,一个窗口将弹出你的Adafruit IO AIO密钥和用户名。复制此密钥和用户名,稍后将在代码中用到。
3. 现在,在此之后,您需要创建一个提要。要创建提要,请单击“feed”。然后点击“Actions”,然后点击“Create a New Feed”,如下图所示。
4. 在此之后,将打开一个新窗口来输入提要的名称和描述。书写描述是可选的。
5. 点击“创建”,然后;您将被重定向到新创建的提要。
在这个项目中,我们为出口门、入口门、槽1入口和出口、槽2入口和出口以及槽3入口和出口创建了总共9个馈源。
创建提要之后,现在创建Adafruit IO仪表板,以便在单个页面上显示所有这些提要。要创建仪表板,请单击dashboard选项,然后单击“Action”,然后单击“create a New dashboard”。
在下一个窗口中,输入仪表板的名称并单击“Create”。
6. 随着仪表板的创建,我们将向仪表板添加提要。要添加提要,请单击右上角的“+”。
首先,我们将为进出门添加两个RESET按钮块,然后为停车细节添加七个TEXT块。
要在仪表板上添加按钮,请单击RESET块。
在下一个窗口中,它将要求您选择提要,因此单击入口门提要。
在最后一步,给你的块一个标题,并相应地自定义它。将按下值从“1”更改为“ON”。因此,无论何时按下按钮,它都会将“ON”字符串发送给NodeMCU,而NodeMCU将执行进一步的任务。如果你不想改变这里的按值,你可以改变程序中的条件。
在此之后,按照相同的步骤为出口门创建另一个块。
要创建其余的块,请遵循相同的过程,但不是创建RESET块,而是创建TEXT块,以便可以显示停车详细信息。
创建完所有的块之后,我的仪表板如下所示。您可以通过单击设置按钮来编辑仪表板
物联网停车系统的NodeMCU编程
要用Arduino IDE编程NodeMCU,请进入File - > preferences - >Settings。
在“附加板管理器URL”字段中输入,然后单击“确定”。
现在转到Tools > Board > Boards Manager。
在板管理器窗口中,在搜索框中输入esp, esp8266将在下面列出。现在选择最新版本的电路板并单击install。
安装完成后,进入“工具>单板> NodeMCU 1.0(ESP-12E模块)”。现在您可以使用Arduino IDE对NodeMCU进行编程。
在这里我们一步一步地解释程序,以便您可以轻松理解此代码的工作。
首先,包括所有必需的库。ESP8266 Wi-Fi和Servo.h库已经安装在IDE中。您可以从以下链接下载NTP客户端和Adafruit MQTT库:
NTPClient.h
Adafruit_MQTT.h
然后包括从Adafruit IO服务器复制的Wi-Fi和Adafruit IO凭据。这些将包括MQTT服务器、端口号、用户名和AIO密钥
设置你要发布内容的提要。这里的农业数据是饲料名称。
将进、出口伺服电机连接到NodeMCU的D4、D5引脚上,选择红外传感器的输出引脚作为INPUT。
在void循环中,timeClient.update()函数用于在我们向NTP服务器请求时更新日期和时间。获取数据后,我们将小时、分钟和秒存储为三个不同的整数。
数字读取入口和出口红外传感器引脚,并检查这些引脚是否高。如果引脚高,然后移动伺服电机打开入口和出口门。然后增加入口门的计数,减少出口门的计数,并将数据发布到Adafruit IO仪表板。
检查1号槽位红外传感器。如果它是‘ 1 ’并且布尔函数为false,则从NTP服务器获取条目时间并将其保存在EntryTimeSlot1变量中。将变量数据发布到Adafruit IO feed。
如果红外传感器引脚变为零并且布尔函数为真,则将退出时间发布到Adafruit IO馈送。
对slot2和slo3传感器执行类似的步骤。
在这里,我们直接检查订阅提要中的特定单词,如果该单词与我们指定的单词匹配,即“ON”,它将旋转伺服电机打开门。
对出口门执行类似的步骤。
这就是如何在Adafruit IO仪表板上发布停车细节。它将显示每个插槽的进入时间和退出时间。这个仪表板也有两个按钮手动打开入口和出口大门。
这就是使用物联网构建智能停车系统的方法。你可以添加更多的传感器来增加停车位,也可以添加一个支付系统来自动支付停车费。
本文编译自iotdesignpro