亲,“电路城”已合并升级到更全、更大、更强的「新与非网」。点击查看「新与非网」

本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于 Bolt 物联网的汽车防盗系统

发布时间:2021-11-02
分享到:

基于 Bolt 物联网的汽车防盗系统

发布时间:2021-11-02
分享到:

本方案是一个基于 Bolt 物联网的汽车防盗系统,该项目旨在为用户提供一种解决方案,以便在有人试图偷窃或闯入时实时跟踪他们的车辆。

由于全球流行的大流行情况,现在汽车正逐渐成为必需品。对于汽车所有者来说,能够保护他们的汽车免遭盗窃变得非常重要。有些人根本就没有车库来存放他们的汽车。其他人在将汽车停在未知地点时需要安全解决方案。这些问题需要一种解决方案,以便在汽车被盗时能够实时追踪他们的汽车。

该项目旨在为用户提供一种解决方案,以便在有人试图闯入车辆并窃取车辆时实时跟踪他们的车辆。系统每 10 秒通过 Telegram 向车主发送警报,并在谷歌地图链接上提供汽车的 GPS 坐标。除此之外,蜂鸣器还会响起,提醒靠近汽车的人车辆被盗。

那么,让我们详细了解一下该系统。

硬件设置
要创建汽车防盗系统,我们需要通过以下步骤来为系统进行适当的连接。

步骤 1:在面包板上,将面包板最末端的一列连接到 Arduino 的 3.3V 电源。这一侧的下一列连接到 Arduino 的 5V 电源。

第 2 步:在面包板另一端的点列上,将其从 Arduino 连接到 GND。

第 3 步:将蓝色 LED 的正极与面包板上的 330 欧姆电阻连接。从电阻器的另一条腿,将一根电线连接到 Arduino 的引脚 D5。LED 的负极连接到面包板上的 GND 电源。

第 4 步:将蜂鸣器放置在面包板上,其负极连接到面包板的 GND 电源,正极连接到 Arduino 的引脚 D4。

步骤 5:将 LM393 LDR 模块放置在面包板上。它的 Vcc 和 GND 端子分别连接到面包板上的 3.3V 和 GND 电源。LDR 模块的 A0 引脚连接到 Arduino 的 A0 引脚。

步骤 6:将激光模块放置在面包板上,使激光面对 LDR 模块的光敏电阻。负极端子从面包板的 GND 电源接地。激光模块的信号引脚连接到面包板上的 5V 电源。

步骤7:将Bolt WiFi模块的D0引脚连接到Arduino的D2引脚。这将用于通知系统用户是否已启用或禁用系统。

步骤8:Bolt WiFi模块的Tx引脚连接Arduino的D0引脚,Bolt WiFi模块的Rx引脚连接Arduino的D1引脚。

步骤 9:GPS 模块上的 Vcc 和 GND 连接连接到 Bolt WiFi 模块上的 3.3V 和 GND 引脚。GPS 模块的 Tx 引脚连接到 Arduino 的 D7 引脚,GPS 模块的 Rx 引脚连接到 Arduino 的 D8 引脚。

步骤 10:分别使用 mini USB 和 Type B USB 线将 Bolt WiFi 模块和 Arduino UNO 连接到电源。

整个电路如下图:

软件编程
电报频道创建:

我们需要先在 Telegram 上创建一个频道。Telegram 上的频道类似于 Whatsapp 中的组。我们将在此频道上收到来自系统的所有通知。
在您的手机上,打开 Telegram 应用程序。单击应用程序屏幕右下角的铅笔形图标。出现新消息屏幕。在此屏幕上,单击“新频道”。
在“新频道”屏幕上,输入频道名称。还有一个选项可以上传图像作为频道的图标。输入有关频道服务目的的适当描述。然后,单击屏幕右上角的“对勾”标记。
出现“频道设置”屏幕。在此屏幕上,将频道设置为“公共频道”。键入充当频道公共链接的永久链接。机器人的链接名称中不应有任何空格。单击此屏幕右上角的“对勾”标记。
出现“添加订阅者”屏幕。不要添加任何订阅者。只需单击此屏幕右下角的箭头图标即可。
通道现已创建。
电报机器人创建:

在 Telegram 应用程序的主屏幕上,单击屏幕右上角的搜索图标。
搜索“BotFather”并等待搜索结果出现。从搜索结果列表中,单击旁边带有蓝色勾号的 BotFather。
BotFather 聊天屏幕现在出现。BotFather 就像可以用来创建新机器人的主人。机器人将帮助向我们在上一个区块中创建的频道发送通知。在此 BotFather 屏幕上,键入“/start”并单击“发送”。
这将显示可用于控制 BotFather 的命令列表。接下来,输入“/newbot”并点击发送。
BotFather 要求提供一个机器人名称,该名称将用于指代我们正在创建的新机器人。为机器人输入一个合适的名称,然后单击发送。
BotFather 要求提供机器人的用户名。用户名的末尾必须包含“bot”一词。输入您喜欢的用户名,然后单击发送。
如果用户名被其他人使用,则此聊天屏幕上将显示相同的内容。这要求用户选择其他用户名,然后单击发送按钮。
成功创建机器人后,BotFather 将显示一条消息,说明新机器人已成功创建。此消息还将提供机器人的链接和机器人的 HTTP API 令牌,这些令牌必须保存以备后用。
在创建机器人时,必须将此机器人作为管理员添加到您的频道。这是按如下方式完成的:

在 Telegram 应用程序的主屏幕上,单击刚刚创建的频道的名称。这将打开频道的聊天屏幕。
在此屏幕上,单击屏幕顶部的频道名称。这显示了有关频道的几种信息。从“成员”选项卡中,单击“订阅者”。
在“订阅者”屏幕上,可以看到用户的姓名。除此之外,还有一个“添加订阅者”按钮。点击它。
在“添加订阅者”屏幕中,搜索刚刚创建的机器人的用户名。从搜索结果中单击相应的一项。会弹出一条消息,提示只能以管理员身份添加机器人。在此消息上,单击“MAKE ADMIN”。
从下一个屏幕是“管理员权限”屏幕,如果尚未选中“发布消息”选项,请选中它,然后单击屏幕右上角的“勾号”图标。因此,该机器人已成功添加为您的频道的管理员。
编程 Bolt 模块的 Cloud 端
要让机器人向通道发送通知,您需要通过程序向机器人发出 HTTP 请求。该程序需要存在于 Bolt 模块的云端。这是在 Oracle VM Virtual Box 上使用 Ubuntu Server 完成的。

第 1 步:在 Virtual Box 上启动 Ubuntu 服务器。为新项目创建一个目录。目录创建如下——

sudo mkdir test

第 2 步:使用 cd 命令切换到新创建的目录-

cd test

第 3 步:创建一个配置文件,该文件将包含与 Bolt 模块和 Telegram bot 通信所需的所有数据。这是使用以下命令在 python 文件中完成的 -

nano carconf.py

'.py' 类似于 python 文件。'nano' 命令打开一个文件编辑器。在这个文件中,输入以下几行——

bolt_api_key=”xxxxxxxxxx” //Enter your API key for Bolt module heredevice_id=”BOLTXXXXXXX” //The unique ID for your Bolt moduletelegram_chat_id=”@XXXX” //Channel permanent link for your channeltelegram_bot_id=”botXXXXXXXXXXXX” //Bot HTTP API token for accessing the bot via HTTP requestsmapurl=”http://maps.google.com/maps?q=” //Part of the google maps link to be sent as notification on the Telegram Channel

按“Ctrl+X”,然后按“Y”和“Enter”保存文件。

该文件如下所示:

第 4 步:现在必须创建云的主要代码。这部分代码将扫描通过串行端口(RX、TX)从 Arduino 发送到 Bolt 模块的任何字符串。如果它接收到任何字符串,它会通过一组验证检查来传递该字符串。通过验证检查后,该字符串将被视为某个位置的纬度或经度。纬度和经度以 1 秒的间隔从 Arduino 发送到 Bolt 模块。因此,以奇数间隔接收的每个字符串都是纬度,以偶数间隔接收的每个字符串都是经度。收到纬度和经度值后,程序会向您的电报机器人发送 HTTP 请求,其中包含适当的消息和谷歌地图链接,以使用接收到的纬度和经度值对跟踪车辆。

nano gps.py

代码编辑器打开后,输入以下内容 -

第 5 步:按“Ctrl+X”,然后按“Y”和“Enter”,保存文件。

至此,Bolt模块的云端编程成功。

为手机编写 Bolt Device 页面的用户界面
下一步是对防盗系统的用户端进行编程。防盗系统的用户端看起来是这样的——

屏幕显示两个按钮,“启用”和“禁用”。这些按钮用于根据用户的选择分别启用或禁用防盗系统。

第 1 步:为了创建这样的页面,请使用以下链接转到 Bolt Cloud 页面并使用您的凭据登录-

https://cloud.boltiot.com/

第 2 步:出现 Bolt 'Devices' 的云页面。此页面显示 Bolt 模块的 ID 及其可用性。单击此屏幕左侧菜单中的“产品”。

第 3 步:出现产品页面。在此页面上,单击“添加产品”,然后单击“创建新产品”。将出现“构建产品”页面。这看起来像这样 -

第 4 步:在此页面上,为产品起一个合适的名称,选择“输出设备”作为其类型,并将数据收集方式设置为“GPIO”。或者,也可以上传设备的图片。最后,单击“完成”。

该系统的产品页面看起来像这样-

第 5 步:从左侧的产品列表中选择新创建的产品,点击页面右上角的配置图标。该图标看起来像下图中标记为红色的那个-

这将打开此产品的“产品:设置”页面,如下所示。

第 6 步:在此页面上,从水平顶部菜单中选择“硬件”,并在 Bolt 模块的硬件布局中标记“0”旁边的单选按钮。在此页面的右侧,将“0 Digital”引脚命名为“启用”。然后按“Ctrl+S”或单击此页面右上角的“保存”图标以保存详细信息。

第 7 步:接下来,从顶部的水平菜单中选择“代码”。这将打开此产品的编码页面。输入文件名并选择 Javascript 或“.js”作为扩展名。在编码窗口中输入以下代码-

该页面将如下所示 -

最后,单击此页面右上角的“保存”图标和“关闭”图标以关闭设置页面。

第 8 步:在“产品”页面上,从左侧的产品列表中选择新创建的产品,然后从该页面的右上角单击“将设备链接到此产品”图标,看起来像下图中红色标记的图标-

这将出现一个页面,用于选择要链接产品的设备。该页面将显示您的螺栓设备的名称。

第 9 步:单击 Bolt 设备的名称,最后单击“完成”。

至此,手机产品页面创建成功。要从手机查看页面,请从手机打开 Bolt 应用程序,单击您的 Bolt 设备的名称,将出现包含“启用”和“禁用”按钮的页面。

对 Arduino 进行编程
剩下的下一个也是最后一个任务是对 Arduino 进行编程。按照“硬件设置”部分所述进行必要的电路连接。打开 Arduino IDE 并在代码编辑器中键入以下代码-

使用了两个头文件,即“BoltDeviceCredentials.h”和“BoltIoT-Arduino-Helper.h”。

'BoltDeviceCredentials.h' 已编辑为包含必要 Bolt 设备的设备 ID 和 API 密钥。该库已重命名为“BoltDevCredentials.h”。

编辑了“BoltIoT-Arduino-Helper.h”库,将 SoftwareSerial 库的所有实例更改为 NeoSWSerial。SoftwareSerial 与主代码中的 NeoSWSerial 库发生冲突。因此,SoftwareSerial 的实例必须替换为 NeoSWSerial。然后将头文件重命名为“BoltIoT-Renew-Helper.h”。

除了这两个库之外,还使用了“NMEAGPS.h”库、“string.h”库和“NeoSWSerial.h”库。

工作与示范
可以看到硬件设置有一个 LED。此 LED 是状态 LED,用于描述系统是启用还是禁用。可以使用手机上的 Bolt 应用程序页面启用或禁用该系统。激光模块和 LDR 模块的放置方式使它们彼此面对。在现实生活中,LDR模块安装在车门内,激光模块安装在车体内,两个模块相对。

很容易看出,当车门打开时,LDR 模块随车门移动。激光模块连续发射一束激光,落在 LDR 模块上。

当系统处于禁用状态时,通过打开门来移动 LDR 模块不会产生任何影响。一旦通过按下 Bolt 移动页面上的“启用”按钮启用系统,状态 LED 会发光,表明系统处于启用状态。在这种状态下,如果有人试图通过打开车门闯入汽车,LDR 模块会随着车门移动。这会导致落在 LDR 模块上的光量下降。此操作会触发蜂鸣器作为警报,可以提醒附近的人汽车被盗。与此同时,与硬件相连的 GPS 模块每 10 秒向 Bolt 模块发送汽车位置坐标。Bolt 模块依次调用 API 向车主的 Telegram 帐户发送 Telegram 警报。电报消息指出汽车被盗,并包含一个谷歌地图链接,用于跟踪汽车和消息。因此,每 10 秒,就可以跟踪汽车的实时位置。电报信息看起来像这样——

通过按 Bolt 移动页面上的“禁用”按钮,可以再次禁用整个系统。

结论

传统的汽车警报系统通过振动检测来提醒附近的人。这些系统往往会产生误报。而且,一旦汽车被盗,就没有办法追踪它。这个“基于Bolt物联网平台的汽车防盗系统”为我们解决了这个问题。一旦有人企图盗窃汽车,该系统就会向路人发出警报。这也消除了误报的问题。此外,一旦汽车被盗,有一种方法可以知道其位置,以便可以轻松找回车辆。这可能是解决拥有车辆但没有车库的人的担忧的潜在好方法。因此,他们可以在晚上安全地睡觉,而不必担心车辆的安全。

本方案所用到的一些代码

如果您对此项目有任何想法、意见或问题,请在下方留言。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论