项目名称:
智能井盖偏移警示灯
Intelligent well cover deviation warning light
申报单位(或个人):
太原理工大学-周文
综合介绍或申报理由:
为了在洪水暴雨井盖被冲走之后以及井盖缺失的雾霾天、下雨天或夜晚,能见度低的情况达到提醒行人的目的,我们组制作了下水道井盖偏移警示灯,以此来减少行人不小心跌落入井道而带来的伤害。
主要技术参数:
使MPU6050开始工作
为了使MPU6050开始工作,需要向MPU6050的0x6B寄存器写入0数据(1 Wire.beginTransmission(0x6B);//MPU6050对应的I2C slave设备地址是0x6B
2 Wire.write(0x6B);//写入下一步要写的寄存器地址0x6B
3 Wire.write(0);//向0x6b寄存器写入0,使MPU6050开始工作
4 Wire.endTransmission(true);
读取数据
一共需要读取7个寄存器的数据,每个寄存器均为16位的,所以一共是14个字节。
7个寄存器分别保存的是x、y、z方向的加速度,温度,x、y、z方向的角速度。
7个寄存器地址分别是0x3b、ox3d、0x3f、0x41、0x43、0x45和0x47(按照字节编址,每个寄存器两个字节,7个寄存器位于连续存储空间)。
1 int x,y,z = 0;//用来保存加速度数据
2 int t = 0;//用来保存温度数据
3 int a,b,c = 0;//用来保存角速度数据
4 Wire.beginTransmission(0x6B);
5 Wire.write(0x3B);//写入要读取的寄存器的起始地址0x3B
6 Wire.requestFrom(0x68, 14, true);//以该地址为起始地址,依次读取14个字节的数据到缓冲区
7 Wire.endTransmission(true);
#include#include#includevoid setup() {
// put your setup code here, to run once:
MPU6050 accelgyro;
const int MPU6050_addr=0x68;
Wire.begin();//默认作为master设备打开
pinMode(A4,INPUT);
Serial.begin(9600);//串口通讯的波特率设置为9600
Wire.beginTransmission(0x68);//MPU6050对应的I2C slave设备地址是0x68
Wire.write(0x6B);//写入下一步要写的寄存器地址0x6b
Wire.write(0);//向0x6b寄存器写入0,使MPU6050开始工作
Wire.endTransmission(true);
int16_t AccX,AccY,AccZ,Temp,GyroX,GyroY,GyroZ;
}
void loop() {
int AccX、AccY、AccZ = 0;//用来保存加速度数据
int Temp= 0;//用来保存温度数据
int GyroX、GyroY、GyroZ= 0;//用来保存角速度数据
Wire.beginTransmission(0x68);
Wire.write(0x3B);//写入要读取的寄存器的起始地址0x3B
Wire.endTransmission(false);
Wire.requestFrom(0x68, 14, true);//以该地址为起始地址,依次读取14个字节的数据到缓冲区
AccX= Wire.read() << 8 | Wire.read();//每次从缓冲区读取一个字节,先读高字节,再读低字节,高字节左移八位,低位补0,再与低字节作或运算,即可得到一个寄存器(长度为2个字节)的完整数据
AccY=Wire.read()<<8|Wire.read(); AccZ=Wire.read()<<8|Wire.read(); Temp=Wire.read()<<8|Wire.read(); GyroX=Wire.read()<<8|Wire.read(); GyroY=Wire.read()<<8|Wire.read(); GyroZ=Wire.read()<<8|Wire.read(); Serial.print("AccX = "); Serial.print(AccX); Serial.print(" || AccY = "); Serial.print(AccY); Serial.print(" || AccZ = "); Serial.print(AccZ); Serial.print(" || Temp = "); Serial.print(Temp/340.00+36.53); Serial.print(" || GyroX = "); Serial.print(GyroX); Serial.print(" || GyroY = "); Serial.print(GyroY); Serial.print(" || GyroZ = "); Serial.println(GyroZ);
accelgyro.getMotion6(&AccX, &AccY, &AccZ, &GyroX, &GyroY, &GyroZ);
程序显示:
#includeVoid setup()
{pinMode(13,OUTPUT);}
if(abs(AccX)>=6000)
{digitalWrite(13,high);}
else{ digitalWrite(13,LOW);}
产品实现的原理:
有井盖时,陀螺仪传感器的AccX值较低 ,经测试大概为-4000左右
当井盖被拿起时,陀螺仪传感器的AccX的值变为-7000左右
此时,只需要给LED灯一个指示
当AccX的绝对值大于6000时,LED灯发光

技术及工艺创新要点:
不需要额外设置提示装置和栅栏等设备,只需要井盖发生偏移就会有自动发光的LED灯弹起,使用简单方便,有效的保障了行人的安全。
使用了NB-IoT节点和ZigBee节点,其中NB-IoT属于LPWAN技术,LPWAN技术有覆盖广、连接多、速率低、成本低、功耗少等特点。NB-IoT有个明显的优势是数据采集后可直接上传到云端,不需要通过网关,简化了现场部署。
申报单位(或个人)介绍:
太原理工大学
机械与运载工程学院机电系1907班
相关产品图片:


凡本网注明“来源:阿拉丁照明网”的所有作品,版权均属于阿拉丁照明网,转载请注明。
凡注明为其它来源的信息,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点及对其真实性负责。