基于物联网的自动车辆事故和鲁莽驾驶警报系统
扫描二维码
随时随地手机看文章
一个使用NodeMCU的明确和全面的车辆事故和鲁莽驾驶识别和警报系统。与互联网上的其他项目不同,它有一个功能齐全的独立电路。它结合了Invensense的MPU6050, Ublox Neo-6M GPS模块和NodeMCU的功能,达到了很好的效果。MPU6050是加速度计和陀螺仪的结合,两个模块在数据传输上互相帮助,克服了各自的缺点。加速度计记录跨3个轴的加速度,而陀螺仪记录跨轴的转速。GPS模块以NMEA格式对数据进行编码,可用于确定事故发生的确切位置。除此之外,邮件还通过嵌入google链接的API调用发送到注册邮件id。一项名为IFTTT的服务将不同的服务连接起来,帮助我们发送邮件。电子邮件传递信息,并将事故的位置发送给用户。如果您想实时跟踪车辆的位置,还可以查看基于物联网的车辆跟踪项目。
所需的材料
•NodeMCU
•MPU6050
•Ublox-Neo 6M GPS模块
•16*2液晶显示
•面包板
•跳线
MPU6050
MPU-6050设备同时使用加速度计和陀螺仪值跨3轴使用它的数字运动处理器电路。它具有寄存器,可以配置±250,±500,±1000和±2000°/秒(dps)的陀螺仪刻度,并且还提供了±2g,±4g,±8g和±16g的加速度计刻度。选择组件的范围选择它的精度。它还包括一个内置的温度传感器。
当检测到传感器位置的变化时,传感器内部的机械系统产生电压,随后连接到16位ADC并传输到FIFO缓冲区。数据是缓冲器通过I2C通信协议传送给单片机的。
Neo 6M GPS模块
NEO-6M模块的封装尺寸为16 x 12.2 x 2.4 mm。它有6个Ublox定位引擎,提供无与伦比的性能。它是一款性能良好的GPS接收机,结构紧凑,功耗低,内存选项可靠。考虑到它的结构和电力需求,它是电池供电的移动设备的理想选择。首次定位的时间不到1秒,这使得它几乎可以立即找到卫星。输出是NMEA标准的格式,可以解码以找到位置的坐标和时间。
•电源:2.8V ~ 5V
•接口:RS232 TTL
•内置EEPROM和外部天线
•默认波特率为9600bps
NodeMCU
NodeMCU被配置为在Arduino IDE上作为开源固件平台工作。也有开源的原型板设计可用。固件使用Lua编写脚本。它既可以作为独立的微控制器,也可以作为物联网生态系统中的节点。这里使用的模块是一个基于ESP-12的NodeMCU模块。
电子邮件警报和IFTTT
IFTTT是一个免费的基于web的服务,允许用户用简单的条件语句创建小程序。它通常允许用户使用if语句创建applet(如果发生这种情况,则执行操作)。该事件通常由API调用触发。API调用包含API密钥、主机名、端口、事件名称和要传递的值。对于这个项目,用户需要创建一个applet,该applet可以向车辆的所有者发送带有其GPS位置的邮件。我们以前在树莓派以及许多其他家庭自动化和物联网监控项目中使用过IFTTT。
要创建applet,请遵循以下步骤:
步骤1:通过启动webhook创建applet。
转到右上角的文档,复制顶部的密钥。
步骤2:通过点击“+”图标并选择webhooks创建一个applet,然后选择“receive a web request”并给出事件名称。
然后点击“+”符号并选择邮件,点击接收webmail。
步骤3:要在URL中包含谷歌map链接,请转到这里附带的链接,并复制下面附图中突出显示的链接。
然后将链接粘贴到消息正文中,并将两个浮点数替换为‘ value1 ’和‘ value2 ’。然后创建applet。
电路图及连接
车辆事故监测系统的完整电路图如下:
按照上面的电路连接每个模块。
MPU6050和NodeMCU:主控板与MPU6050通过I2C通信。D1和D2引脚分别与SCL和SDA多路复用。MPU6050使用3.3V和来自NodeMCU的接地引脚供电。
Neo-6M GPS模块和NodeMCU: GPS模块采用异步串行通信。NodeMCU的Tx连接到模块的Rx引脚,Rx引脚连接到模块的Tx引脚。GPS模块使用3.3V和NodeMCU的接地引脚供电。
16x2 LCD连接:Vdd和Vss连接到5V DC适配器。Vo从电位器(10Kohm)输出(中心引脚)连接。锅的另外两个端子分别接5V和接地。其余引脚的连接方法如下表所示。在连接到阳极之前,连接一个220欧姆的电阻来限制电流消耗。
液晶针
物联网车辆事故监测-代码解释
注意:在将代码转储到nodeMCU之前,断开SCL、SDA、TX和RX引脚。
由于I2C使用恒定的从属地址,因此需要使用特定地址对从属地址进行寻址。串行时钟(SCL)和串行数据引脚也连接到NodeMCU的D1和D2引脚,应该明确提到。将变量AccelScaleFactor的值设置为16384,以便将值缩放为+-2g加速度。这些值经过校准以达到三个轴上的零值。
得到的值除以比例因子得到+-1以内的值。三个轴的前一个值和当前值的差值在变量dx, dy和dz中得到。当这些值超过阈值时,将调用location和mail函数。
一旦该值在初始规定的时间内超过阈值,设备就会使用SSID和密码连接到可用的WiFi网络。
GPS模块通过包含TinyGPS++库进行接口。函数GPS .location.lat()和GPS .location.lng()包含在库中,并被调用以获取浮点数形式的GPS坐标值。
要使用IFTTT发送电子邮件,在开始时定义主机、事件名称和API密钥等参数。
板通过HTTP连接到主机,然后生成API调用的URL,包含API调用的类型、事件名称、API密钥和要发送的坐标等参数。
车辆意外警报系统的运作
当有一个低干扰(正常驾驶条件),有一个指示在液晶显示“正常驾驶”,也值跨越三个阶段。
低值显示意味着最佳的驾驶条件和驾驶员是安全的。当人工模拟干扰持续15-20秒时,会有一个显示显示“高干扰”和发送邮件的指示。
本文编译自iotdesignpro