×

基于Bolt物联网的的智能指示器设计方案

消耗积分:0 | 格式:zip | 大小:0.18 MB | 2023-07-07

李舒桀

分享资料个

当我们在商店购物时,我们会检查顾客数量较少的柜台。如果我们不用靠近柜台就知道每个柜台的状态,这样我们就可以不用去柜台就可以选择柜台,从而节省我们宝贵的时间。同样的事情也适用于入口处。

介绍:

本项目主要基于Bolt 物联网平台。您可以获得 Bolt Wi-Fi 模块和亚马逊云的终身访问权限。

该项目的主要功能是读取传感器值并打开/关闭 LED。如果 PIR 传感器值为“零”,则 Bolt Wi-Fi 模块将关闭 LED,直到传感器读数变为 1。如果传感器值为“ONE”,则它将打开蜂鸣器进行警报无缘无故站在PIR传感器前的顾客。然后它关闭蜂鸣器并以较低的强度打开 LED 以表明状态已更新并且 LED 以全强度发光。因此,根据 LED 指示,我们可以选择排队较少的柜台来为我们的杂货开具账单。如果我们在离计费柜台不同的距离放置更多的传感器,那么每个柜台的客户流量指示就会更准确。

次要功能是向客户发送电子邮件或在 Telegram 频道中发布有关其商店入口处客户流量的信息。基本上,这在任何节日销售时都会有所帮助。不在店内的顾客可通过店内电报频道查询排队人数情况。VIP 客户也可以通过电子邮件获得更新。因此,客户可以管理他们的时间来商店购物。

构建电路的步骤:

拿一个 LED 和 330 欧姆电阻。借助 Bolt IoT 套件中提供的试验板,如图所示进行连接。确保 LED 的长脚(正极端子)连接到电阻器,LED 的负脚保持在另一端接地。

pYYBAGOSw5KAbRT3AAGMfe5UFsA08.jpeg

指示客户流量的 LED

现在添加蜂鸣器以提醒无故阻挡 PIR 传感器的人。确保将蜂鸣器的短腿接地。

pYYBAGOSw5WAYJ8RAAGjSKWpiKU91.jpeg

蜂鸣器

接下来我们应该将 PIR 传感器添加到电路中,如下图所示。但对于 PIR 传感器,共有 3 个端子(Vcc、GND、输出),因此我们应该使用跳线。

poYBAGOSw5uAbgTWAACDPWOfTM8455.png

pYYBAGOSw5-AR4cGAAFJZmRr6ds57.jpeg

PIR 传感器连接

现在使用 Bolt Wi-Fi 模块并按照示意图使用跳线进行连接,如下所示。

pYYBAGOSw6OAFildAAHhkXqRguk90.jpeg

最终电路 - 硬件连接

软件应用简介:

1.Bolt IoT Bolt Cloud:在云端创建账户

第 1 步:创建 Bolt 云帐户

1.使用链接www.cloud.boltiot.com登录BOLT云

2.单击“注册”选项并填写所有凭据

3.点击“注册”

4.现在确认您的邮件并点击“开始”

第 2 步:将 Bolt Wi-Fi 模块连接到云端

1. 下载 Bolt IoT 应用程序并将其安装到您的手机中,该应用程序将在 Play 商店中可用。

2. 使用相同的 Bolt Cloud 凭据登录,并按照应用程序中给出的说明将您的模块链接到云。

您可以在https://trainings.boltiot.com中找到它

完成上述步骤后,您必须创建产品。

创建产品

单击侧栏中的产品图标以配置您的设备。

poYBAGOSw6aAAwkCAAEeaqBv2nQ974.jpg

单击添加产品,将产品名称命名为 Customer_Flow,同时选择“输入设备”和“GPIO”,然后单击“完成”。

pYYBAGOSw6uAHgddAAE8yD8eEr0572.png

现在如图所示进行硬件设置,不要忘记为 0 数字引脚指定变量名称为“pir”,如图所示。

poYBAGOSw7SAb9bLAAHPt0WoLM0279.jpg

现在单击代码并选择 js(java 脚本)。将名称命名为“customer_flow”并编写代码。

poYBAGOSw7eAepsNAAGde0T6mrY367.jpg

JavaScript 代码

代码:

 

 

setChartLibrary('google-chart');
setChartTitle('Customer flow');
setChartType('barGraph');
setAxisName('time_stamp','pir');
setAnimation(true);
setCrosshair(true);
plotChart('time_stamp','pir');

 

 

保存代码后,如下所示链接设备。只有当您的设备使用 Micro USB 数据线开机时,您才会收到在线指示。

还要确保蓝灯和绿灯都处于开启状态。

pYYBAGOSw7qAUNovAAFPPW3YAMY826.jpg

链接设备

现在通过单击“操作”按钮查看设备输出,输出图将如下所示。只有在那个特定时间有人站在 Pir 传感器前面时,输出值才会变高。

poYBAGOhKWKAKjCdAAFfWVVpl70651.png

输出

API 密钥:

在 API 部分启用 Bolt API,无需云的帮助,即可在 Ubuntu 中使用它来控制设备。

1.点击Bolt云中的API部分

2.启用API密钥

3.生成API密钥

2. Ubuntu 服务器:

使用给定的链接下载并安装VMWARE 工作站Ubuntu 服务器

https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0

http://releases.ubuntu.com/16.04/ubuntu-16.04.6-server-i386.iso

安装 UBUNTU 软件包:

 

 

sudo apt-get -y update
sudo apt install python3-pip
sudo pip3 install boltiot

 

 

3.电报API:

创建电报频道

转到 TELEGRAM 应用程序的主屏幕。

从左侧滑动以显示菜单。

点击“新频道”。

poYBAGOhKWWAJe4eAAA-MJQhkwo158.png

在下一个屏幕中,将频道设置为公共频道,并为频道和链接命名,如下所示。

pYYBAGOhKWmALmFxAAFPATyzKs0317.png

poYBAGOhKXGAHoxYAADLPB-_XvA603.png

现在使用搜索栏搜索 Bot Father 并通过键入“/start”创建新的 bot

pYYBAGOhKXSAA-cJAADo_9pWhRE323.png

这里将机器人命名为“NoWait alert Bot”,将机器人用户名命名为“lesswait alert_bot”

poYBAGOhKXiAaiiTAAD2fpUODJo513.png

记下机器人令牌,这是连接设备和应用程序最重要的令牌。

poYBAGOhKXqAJ65lAAEaBzK-gng639.png

机器人令牌

现在让机器人成为频道的管理员。为此,请单击如下所示的添加管理员。

poYBAGOhKYSACIRMAABQ2voAWns488.png

使用机器人名称搜索机器人并将其设置为管理员。确保授予管理员权限,如下所示。

pYYBAGOhKYeAPsoeAACFIYLPA0w100.png

如下图,Bot现在已经变成了Admin。

poYBAGOhKYqAIjjpAABew041s4c939.png

我们的机器人现在已经成为管理员

4. 创建 Mail-Gun 帐户:

使用此链接https://www.mailgun.com ,您可以按照说明创建 mailgun 帐户。

在 Ubuntu 中编写 PYTHON 代码:

登录到 ubuntu 并执行以下步骤。

在 python 库中创建一个新文件来保存我们的配置。

连接到 UBUNTU 操作系统并输入“ sudo mkdir waiting_line

输入“ cd waiting_line ”进入文件夹

在文件夹中创建一个 python 文件作为“ sudo nano waiting_line.py

添加以下代码:

1.您可以在Bolt物联网云平台中找到“API Key”和“Device Id”

2. 在 Telegram 中,您可以找到“聊天 ID”和“机器人 ID”。

3. Mailgun API 密钥、发件人电子邮件和沙盒 URL 可以在您的 Mailgun 帐户中找到。

pYYBAGOhKY2AWHrjAACsh6eGUkw324.png

在上面的代码中,“ get_sensor_value_from_pin() ”是声明从所选引脚返回传感器值的函数。

mybolt.digitalRead() ”行返回该引脚的值。

Bolt Cloud 从 pin 返回的响应需要转换为 JSON 以便于使用。

data= json.loads(response) ” 将来自云的响应转换为 JSON 对象

如果云返回1则请求成功

如果1中的任何其他内容表示请求失败。

现在向Telegram发送一个请求,向我们在使用该函数之前创建的频道发送一条消息,如下所示。

poYBAGOhKZSAO5fzAAC-CUH_33g177.png

pYYBAGOhKZyASo9zAACYtrDykLE582.png

如上所示,函数“ send_telegram_message() ”用于通过电报发送消息。给出了带有 bot id 的 Url。

这里我们需要向电报服务器发出 HTTP 请求。因此,我们使用 Url。此处使用“ POST 请求”,其中包含所有数据,如 Url 和请求中包含的数据。

这里请求的状态存储在“ ok ”字段中,为 True 或 False

这里count = 0用于对传感器读取的读数进行计数。

现在不会有错误,因为我们已经使用Try – Except 块检查了错误

获取传感器值并根据条件执行的代码

我们使用 While 循环无限次运行此代码。要在运行时停止执行,我们必须使用 CNTRL+C 按钮。

poYBAGOhKZ6ATCp9AABI2AFBCOE165.png

当我将PIR传感器连接到GPIO-0引脚时,我使用了mybolt.digitalRead('0') 。

上面代码中使用ifcondition是为了找出任何错误。

如果传感器值等于“ ZERO ”,则传感器前将没有人站立,这表明客流较少。

poYBAGOhKaCAVUTfAACdSduaCCk734.png

在上面的代码中,mod函数用于通过Email和Telegram依次发送当前流的状态。

如果mod >0条件用于当读取传感器值奇数次为 0 时向客户发送电子邮件。对于第一,第三,第五等等。

同样,如果它是偶数次,如第 2、4、6 等。将发送电报。

也适用于我之前讨论过的计费柜台等情况。客流量减少的指示通过关闭 LED 和蜂鸣器来显示。

如果传感器值等于' ONE ',那么就会有一些人在排队,这表明客流。

poYBAGOhKcOAUIyaAACxcsspPRM901.png

如果传感器值为1 ,则它会如上所述发送电子邮件和电报。

为指示已确认的客户流量,LED将开始以 100 强度发光。经过一段时间的睡眠后,它会充满强度地发光。

蜂鸣器的优点:这里的蜂鸣器用于无故提醒任何站在 pir 传感器前面的人。因此,他们可以移到一边,PIR 传感器的下一个读数将为“零”。通过哪些客户可以与 Emial 或 Telegram 联系。

项目应用:

1.在账单柜台

2. 每当有节日特卖时,在入口处:

3.也可用作智能呼叫铃系统。

项目示意图:

poYBAGOhKc6ADZ4IAAB38WdiXY0693.png

黑线 - 接地

红线 - 5V 电源

黄色——GPIO 0 引脚

紫色 – GPIO 1 针

棕色 – GPIO 2 针

结果展示:

如果计费柜台有更多的客户流量,您将通过发光的 LED 通知您,如下所示

pYYBAGOhKkiALlxcAA9i1FcPLvs708.jpg

LED指示

如果在节日销售期间入口门前有更多的客户流量,并且您通过电子邮件通知。

poYBAGOhKk2AUJ-bAABRfsk89sU964.png

高客户流量指示的电子邮件

如果在节日销售期间入口门前的客流量低,并且您通过电子邮件通知。

poYBAGOhKlGAGNQ7AABgoQfDeAo988.png

低客户流量指示的电子邮件

Telegram 频道帖子如下所示。

pYYBAGOhKmaATO1QAADlAi5LxRo127.png

电报帖子

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !