亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

MotionSense

组件和用品

Arduino Mega
× 1
乐鑫 ESP8266 ESP-01
× 1
HC-SR501 PIR 传感器
× 1
1000uF 电容
× 1
电阻和跳线
× 1

必要的工具和机器

线切割机

应用和在线服务

Pushbullet

关于这个项目

动感

简介

在本教程中,我将讨论如何创建一个系统来通知任何未经授权的活动或入侵。我使用 Arduino 和 PIR 进行活动检测,使用 ESP8266 进行 WiFi 连接。我的 Xperia Z1 用于接收通知。我使用 populer 通知应用 Pushbullet 获取通知,使用 Pushbullet API 从 Arduino 发送通知。


必备知识

  • 了解 Arduino 和基本硬件 [访问:www.arduino.cc]
  • 关于 AT 命令的想法 [阅读:http://www.codeproject.com/Articles/85636/Introduction-to-AT-commands-and-its-uses]
  • PIR,它是如何工作的 [关于:https://en.wikipedia.org/wiki/Passive_infrared_sensor]


使用了'东西'

Arduino Mega 2560

ESP8266 串行 WiFi ESP-01 变体

HC-SR501 PIR 传感器

1000 µF 电容,不同的电阻 [ WiFi电源电容,稳压电阻 ]

单线0.5mm线材[ 连接器引线 ]

母-母跳线[ 连接器 ]

Xperia Z1 [对于 Pushbullet 应用程序,任何智能手机都可以]

我的笔记本电脑 [在arduino中编码]

Arduino IDE [v1.6.4]


做什么

环境设置: 如果您没有安装 arduino,请从 arduino 网站安装。

隐藏复制代码

设置 PIR : 

我假设您需要以最小的警报周期获得最大的灵敏度以获得更好的检测率。因此,像这样设置 PIR 传感器电位器:

现在打开 PIR 传感器的白色球体,您将看到引脚说明:GND |出 | VCC

将母跳线与GND VCC 和OUT 连接。

现在将跳线针的另一端(连接到 PIR)连接到 Arduino :

PIR GND -> Arduino GND

PIR VCC -> Arduino 5V

PIR OUT -> 数字引脚 2 [您可以根据自己的选择选择pin,也可以在arduino代码中更改]

要测试您的 PIR,您可以在 Arduino Playground 中使用此 代码

所以你的 PIR 传感器就绪 上班

隐藏复制代码

使 Arduino 能够通过 WiFi 连接到互联网: 

我在我的项目中使用了 ESP8266(变体 ESP-01)串行 WiFi 模块,这非常便宜。除了 ESP-01 之外,还有其他变体可用。也有不同的固件可用。我使用了默认的 AT 固件。检查这两个图像以供连接参考

没有使用跳线将 ESP8266 与 Arduino 连接:

ESP8266 地 -> Arduino 地

ESP8266 UXTX(传输引脚)-> Arduino RX2 (arduino mega接收器引脚,即代码中的Serial2)

ESP8266 CH_PD(使高电平)-> Arduino 5V (加一个稳压器0f 3.3因为ESP 8266可以承受3.3v。我用了一个电阻,因为我没有稳压器。但稳压器是首选)

不连接RST、GPIO2和GPIO0

ESP8266 URXD(接收器引脚)-> Arduino TX2 (arduino 接收器引脚,即代码中的 Serial2)

ESP8266 VCC -> Arduino 3.3v

ESP8266 在数据传输时有电源问题。它从 arduino 获取电源,如果 Arduino 通过 PC USB 供电,则 arduino 可能会重新启动。即使通过电源插头使用 5v 电源也可能不够。因此,始终建议为 ESP8266 使用外部电源。然而,在我的实验中,我为此使用了一种快速且廉价的解决方案。我用了一个1000μF的电解电容给ESP8266供电。

更长的引脚 -> ESP8266 VCC 连接到 3.3v

较短的引脚 -> ESP8266 GND 连接到 arduino GND

所以你的 ESP8266 WiFi 模块就绪 上班

隐藏复制代码

Pushbullet 通知程序: 

Pushbullet 让您通过推送通知无缝地通知您的不同设备。我们将使用它的 API 来推送 PIR 传感器的通知。阅读有关 Pushbullet 的更多信息

让我们开始吧。

转到 PushBullet

注册自己,下载 Chrome 应用和智能手机应用。

登录Pushbullet 在您的设备中。

现在看看它是如何使用 PC 中安装的应用或 Chrome 扩展程序向您的设备发送一些推送消息的。

转到API 部分

注意:这里所有的 API 链接和 URL 都是为 https 连接提供的,Arduino 不能使用 https,因为它的处理能力不强。因此,我们将使用 pushbullet 文档中未提及的那些 API 的 HTTP 版本,但我从 github 获得了此参考 .

在用于推送的 pushbullet 文档中,他们提到了 HTTPS 的 URL,因此我们将使用该 github 项目中提供的 HTTP URL 和端口。我们还将添加 /pushbullet 之前和他们提到的 REST 路径。

示例:

根据 pushbullet doc 将通知推送到所有设备 , REST 路径为: /v2/pushes

但我们将使用:/pushbullet/v2/pushes

基本网址:173.17.168.19

端口:8181

现在检查不同的 API 并阅读描述以了解它们。您可以稍后在本教程的增强版中使用它们。

您需要您的身份验证密钥才能从 arduino 推送。所以转到您的帐户

寻找访问令牌 , 将其复制并保存到您的 PC 上的安全位置。

所以Pushbullet 现在准备好 发送和接收推送通知。


是时候编写代码了

打开这个 GitHub 项目

转到实验文件夹。在那里您会找到 MotionSense.ino ,您的代码会将通知推送到您的智能设备。

将此代码复制到 arduino IDE 并连接您的 arduino(已设置 WiFi 和 PIR 传感器)。

现在更改这些参数:

隐藏复制代码

#define SSID "YOURSSID" /* 将 YOURSSID 替换为您的 WiFi 接入点名称 */#define PASS "YOURPASSWORD" /* 将您的密码替换为您的 WiFi 接入点密码 */

您可能想将 PIR OUT 引脚更改为所需的引脚

隐藏复制代码

#define PIRPIN 2 /* 更改为您想要的 arduino 数字引脚 */#define AUTH_TOKEN "YOUR_TOKEN_FROM_YOUR_ACCOUNT";/* 将 YOUR_TOKEN_FROM_YOUR_ACCOUNT 替换为您的访问令牌*/

还可以使用上面代码段中提到的访问令牌。

现在编译运行。

传感器校准、WiFi 模块初始化以及连接到您的接入点都需要时间。

您可以在串行监视器中看到这些内容。

一切都完成后,它会开始循环主循环,你会看到

“一切正常 | 没有入侵”

连续在您的串行监视器中。

每当您走到 PIR 传感器前时,它都会检测到移动并向您的设备推送通知。


简要了解代码

#defines 是您需要相应更改的预定义参数集

在设置中,您可以看到初始化 arduino Serial()。 Serial2 用于 WiFi 串口访问。

理解函数 :

隐藏复制代码

sensor_calibration(); /* 它校准传感器以获得正确的输出。我们需要在此之前关闭 PIRPIN */

隐藏复制代码

check_WiFi_radio(); /* 检查 WiFi 模块是否正常 */

隐藏复制代码

reset_wifi(); /* 重置 WiFi 模块以清除任何问题 */

隐藏复制代码

set_wifi_mode(); /* 将 WiFi 模块设置为连接到接入点的客户端 */

设置WiFi模式后需要重置WiFi才能设置

隐藏复制代码

check_wifi_stat(); /* 检查你的 WiFi 模块是否连接到 AP */

隐藏复制代码

connect_ssid(); /* 如果未连接,则使用您的连接参数连接 */

至此,您的 WiFi 模块已初始化并连接,现在您需要检查 PIR 读数是否感应到运动。它将在主循环下。

隐藏复制代码

pirRead();/* 读取 PIR 值,0 或 1。如果为 1,则 Motion Sensed,如果为 0,则什么都没有 */

如果检测到某些东西,那么首先您需要连接到 Pushbullet 服务器

隐藏复制代码

server_connect(); /* 连接到服务器 */

现在推送通知

隐藏复制代码

post(); /* 向所有设备推送通知 */

断开连接

隐藏复制代码

server_disconnect(); /* 关闭服务器连接 */

并循环

代码

MotionSense 代码
代码解释请阅读仓库自述 https://github.com/anupam19/ESP8266-experiments

示意图


制造工艺

  1. 井字游戏名片
  2. 多温度传感器
  3. 862D+的DIY烙铁控制
  4. 3D 打印机消防安全
  5. 带有 Arduino、Yaler 和 IFTTT 的物联网仪表
  6. Arduino 排斥电磁悬浮
  7. 遥控夹爪机器人
  8. Arduino Powered Weather Balloon Datalogger
  9. ArduFarmBot - 第 2 部分:远程站和物联网实施
  10. 单 LED 矩阵 Arduino 翻转时钟
  11. 微控制器实验室
  12. CoroFence - 热探测器🖖