基于BH1750的光照度检测)
- 格式:doc
- 大小:124.50 KB
- 文档页数:25
第十一届全国大学生“恩智浦”杯智能汽车竞赛创意组项目技术报告项目名称:水质环境监测移动子母水陆智能车系统项目成员:季小力、陈纪旭、汪誉、黄祥辉、姚文凯指导老师:富雅琼、陈锡爱学校名称:中国计量大学队伍名称:计量仰仪队2016年8月15日关于技术报告和研究论文使用授权说明参赛队员签名:季小力陈纪旭汪誉黄祥辉姚文凯带队教师签名:富雅琼陈锡爱日期:2016年8月18日目录第一章研制背景及作品意义 (4)1.1 研制背景 (4)1.2 作品研制意义 (5)第二章作品介绍 (7)2.1 系统整体设计 (7)2.2 水样水质分析车的设计与实现 (8)2.2.1 B车水质水样分析车的结构 (8)2.2.2 B车水质水样分析车的功能 (10)2.3 自主水路两用取样车的设计与实现 (11)2.3.1 A车自主水路两用取样车的结构 (11)2.3.2 A车自主水路两用取样车的功能 (12)2.4 作品实现过程 (13)2.5 作品研究内容 (13)第三章作品基础技术 (14)3.1 K60核心微控制器 (14)3.2 传感器技术 (14)3.2.1溶解氧测试仪 (14)3.2.2 PH值检测传感器 (15)3.3 通信技术 (16)3.4 移动客户端APP技术 (16)3.5 云网络平台技术 (17)3.6 信息处理技术 (18)第四章水环境在线监控平台设计 (18)4.1 系统登录注册界面 (18)4.2 系统密码找回界面 (19)4.3 系统主界面 (20)4.4 系统监控界面 (20)4.5 系统实时数据查询界面 (21)4.6 系统历史数据查询界面 (21)4.7 系统地理位置显示界面 (22)4.8 操作管理界面 (22)第五章水环境在线监控移动客户端APP设计 (24)5.1 移动客户端APP登录界面 (24)5.2 移动客户端APP主界面 (25)5.3 移动客户端历史数据查询界面 (25)第六章研究成果及其影响 (26)6.1 研究成果简介 (26)6.2 研究成果总结 (27)6.3 研究成果的社会效益 (28)附录:参考文献 (29)第一章研制背景及作品意义1.1 研制背景物联网是新一代信息技术的重要组成部分。
基于BH1750光照强度数据采集系统的设计刘博【摘要】光照度传感器是一种常用的检测装置,在多个行业中都有一定的应用.BH1750是一种用于两线式串行总线接口的数字型光强度传感器集成电路,利用这种集成电路制成的传感器可以采集光线强度数据,还可以探测较大范围的光强度变化.据此设计了一个基于BH1750光照强度数据采集系统,该系统可以对室内外的光照强度进行实时转换和上传,可应用于智能家居环境检测、智能农业大棚种植、智能电子电器中等.【期刊名称】《河南科技》【年(卷),期】2016(000)013【总页数】2页(P27-28)【关键词】BH1750;光照强度;采集【作者】刘博【作者单位】河南牧业经济学院信息与电子工程学院,河南郑州450044【正文语种】中文【中图分类】TP212.6随着科技的进步和现代生活的快速发展,在工农业生产、环保和气象等多个行业部门及人们的日常生活中,光照强度是一个重要的环境参数,经常需要对环境光照度进行检测及控制。
本文就是基于一种常用的传感器BH1750设计了一个光照强度数据采集系统,介绍了该系统的工作原理,然后从硬件和软件两方面对系统进行了设计,结果表明该系统可以对室内外的光照强度的数据进行实时转换和上传。
通过BH1750实现光照强度数据读取,并通过串口上传到电脑上显示。
BH1750是一种用于两线式串行总线接口(IIC)的数字型光强度传感器集成电路,这种集成电路可以检测光线强度,内置了16位模数转换器,将其转化为数字信号[1]。
这是一种简易传感器,通过计算电压来获得有效的数据。
这款环境光传感器能够直接通过光度计来测量。
利用其高分辨率可以探测较大范围的光强度变化。
光照强度是指光照的强弱,以单位面积上所接受可见光的能量来量度。
简称照度,单位勒克斯(Lux或Lx)。
被光均匀照射的物体,在单位面积(1m2)上所得的光通量是1流明时,其照度是1Lx。
流明是光通量的单位。
发光强度为1烛光的点光源,在单位立体角(1球面度)内发出的光通量为“1流明”。
bh1750课程设计一、课程目标知识目标:1. 学生能够理解BH1750传感器的基本工作原理,掌握光强度与数字输出之间的关系。
2. 学生能够描述BH1750传感器的应用场景,并列举其在日常生活中的具体实例。
3. 学生了解传感器在物联网技术中的重要性,并掌握 BH1750 与微控制器的通信方法。
技能目标:1. 学生能够正确连接BH1750传感器与微控制器,编写程序读取光强数据,完成基本的数据处理和分析。
2. 学生通过动手实践,掌握传感器调试技巧,培养解决实际问题的能力。
3. 学生能够运用所学的知识,设计简单的光强监测系统,实现环境光照的智能控制。
情感态度价值观目标:1. 学生在课程学习过程中,培养对电子技术及物联网的浓厚兴趣,激发创新意识和探索精神。
2. 学生通过小组合作完成任务,增强团队协作意识,学会尊重他人意见,培养沟通与交流能力。
3. 学生在学习过程中,关注传感器技术在节能减排、环境保护等方面的应用,树立环保意识和社会责任感。
本课程针对高年级学生,结合电子技术与物联网知识,注重实践性与实用性。
在教学过程中,关注学生的个体差异,引导他们通过自主探究、合作交流的方式,实现课程目标,为培养具备创新精神和实践能力的高素质人才奠定基础。
二、教学内容本章节教学内容围绕BH1750传感器的工作原理、应用实践和物联网技术展开。
具体包括以下几部分:1. BH1750传感器基础知识:介绍传感器的基本概念、工作原理、特点及分类,重点讲解BH1750传感器在光强检测方面的优势。
2. 硬件连接与编程基础:讲解BH1750传感器与微控制器(如Arduino、STM32等)的硬件连接方法,以及基本的编程知识,使学生能够编写程序读取传感器数据。
3. 数据读取与处理:介绍BH1750传感器数据读取方法,以及如何在程序中进行数据解析、处理和显示。
4. 实际应用案例:分析BH1750传感器在智能照明、环境监测等领域的应用实例,让学生了解传感器技术的实际应用。
Arduino+0.96OLED+GY30(BH1750)光照强度采集光照传感器光控灯实验Arduino+0.96OLED+GY30光照传感器Module UNO⼀、电路连接VCC <-----> 5VGND <-----> GNDSCL <-----> A5SDA <-----> A4ADD <-----> NCOLED接线⽅式:VCC<————>3.3VGND<————>GNDSCL<————>SCLSDA<————>SDALED1<————>10LED2<————>11⼆、实验材料Uno R3开发板GY-30光照传感器⾯包板及配套连接线2个LED灯1个0.96OLED三、功能1、OLED实时显⽰光照强度2、当光照强度⼤于600LX时关灯3、当光照强度⼤于200⼩于600时打开冷光灯,并随着光强度变化⽽变化,强度越⼤灯光越暗(PWM调节),同时OLED显⽰开关状态;4、当光照强度⼩于200时打开暧光灯关闭冷光,并随着光强度变化⽽变化,强度越⼤灯光越暗(PWM调节),同时OLED显⽰开关状态;5、使⽤u8glib库操作OLED屏6、串⼝实时发送相应标志数据,可通过ESP8266发送到APP端显⽰参数特点:⽆需⼈为⼲预的⾃动控制设备。
⽰例程序/*Measurement of illuminance using the BH1750FVI sensor moduleConnection:Module UNOVCC <-----> 5VGND <-----> GNDSCL <-----> A5SDA <-----> A4ADD <-----> NCOLED接线⽅式:VCC<————>3.3VGND<————>GNDSCL<————>SCLSDA<————>SDALED1<————>10LED2<————>11LingShun LAB*/#include "U8glib.h"#include <Wire.h>// OLED库#define ADDRESS_BH1750FVI 0x23 //ADDR="L" for this module#define ONE_TIME_H_RESOLUTION_MODE 0x20//One Time H-Resolution Mode://Resolution = 1 lux//Measurement time (max.) = 180ms//Power down after each measurementconst unsigned char pinMotorCW = 10; // 接控制电机顺时针转的 H 桥引脚const unsigned char pinMotorCCW = 11; // 接控制电机逆时针转的 H 桥引脚byte highByte = 0;byte lowByte = 0;unsigned int sensorOut = 0;unsigned int illuminance = 0;unsigned int Warm_Empty = 0; //暧光变量unsigned int Cold_Empty = 0;//冷光int ledValue = 0; //保存LED灯占空⽐const uint8_t bitmap_g [] U8G_PROGMEM ={0x01,0x00,0x21,0x08,0x11,0x08,0x09,0x10,0x09,0x20,0x01,0x00,0xFF,0xFE,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x08,0x42,0x08,0x42,0x10,0x42,0x20,0x3E,0xC0,0x00//"光",0 };const uint8_t bitmap_q [] U8G_PROGMEM ={0x00,0x00,0xF9,0xFC,0x09,0x04,0x09,0x04,0x09,0xFC,0x78,0x20,0x40,0x20,0x43,0xFE,0x42,0x22,0x7A,0x22,0x0B,0xFE,0x08,0x20,0x08,0x24,0x08,0x22,0x57,0xFE,0x20,0x02//"强",1 };const uint8_t bitmap_d [] U8G_PROGMEM ={0x01,0x00,0x00,0x80,0x3F,0xFE,0x22,0x20,0x22,0x20,0x3F,0xFC,0x22,0x20,0x22,0x20,0x23,0xE0,0x20,0x00,0x2F,0xF0,0x24,0x10,0x42,0x20,0x41,0xC0,0x86,0x30,0x38,0x0E//"度",2 };const uint8_t bitmap_x [] U8G_PROGMEM ={0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,0x04,0x40,0x44,0x44,0x24,0x44,0x14,0x48,0x14,0x50,0x04,0x40,0xFF,0xFE,0x00,0x00//"显",3 };const uint8_t bitmap_s [] U8G_PROGMEM ={0x00,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,0x11,0x10,0x11,0x08,0x21,0x04,0x41,0x02,0x81,0x02,0x05,0x00,0x02,0x00//"⽰",4 };void draw(void) {u8g.setColorIndex(1);u8g.drawBitmapP ( 25 , 0 , 2 , 16 , bitmap_g);u8g.drawBitmapP ( 42 , 0 , 2 , 16 , bitmap_q );u8g.drawBitmapP ( 59 , 0 , 2 , 16 , bitmap_d );u8g.drawBitmapP ( 76 , 0 , 2 , 16 , bitmap_x );u8g.drawBitmapP ( 93 , 0 , 2 , 16 , bitmap_s );u8g.setFont(u8g_font_8x13); //使⽤8x13⼤⼩的字符u8g.setPrintPos(0, 30);u8g.print("Beam :");u8g.setPrintPos(55, 30);u8g.print(illuminance);u8g.setPrintPos(90, 30);u8g.print("LX");//LED的状态u8g.setPrintPos(0, 45);u8g.print("Cold :");u8g.setPrintPos(55, 45);u8g.print(Warm_Empty);u8g.setPrintPos(80, 45);u8g.print("OFF/ON");u8g.setPrintPos(0, 60);u8g.print("Warm :");u8g.setPrintPos(55, 60);u8g.print(Cold_Empty);u8g.setPrintPos(80, 60);u8g.print("OFF/ON");}void setup() {Serial.begin(9600);Wire.begin();pinMode(pinMotorCW,OUTPUT);//冷灯pinMode(pinMotorCCW,OUTPUT);//暧灯digitalWrite(pinMotorCCW,LOW);}void loop() {Wire.beginTransmission(ADDRESS_BH1750FVI); //"notify" the matching deviceWire.write(ONE_TIME_H_RESOLUTION_MODE); //set operation modeWire.endTransmission();delay(180);Wire.requestFrom(ADDRESS_BH1750FVI, 2); //ask Arduino to read back 2 bytes from the sensor highByte = Wire.read(); // get the high bytelowByte = Wire.read(); // get the low bytesensorOut = (highByte<<8)|lowByte;illuminance = sensorOut/1.2;Serial.println("a," + String(illuminance));delay(300);//Serial.print(illuminance);//Serial.println(" lux");if(illuminance <= 600){if(illuminance >= 200){unsigned char i;i = map(illuminance, 200, 600, 200, 0); //将200到600之间的数据映射成200到0之间的数据motorCW(i);Warm_Empty=LOW;Cold_Empty=HIGH;}else{unsigned char i;i = map(illuminance, 0, 200, 200, 100); //将400到800之间的数据映射成200到100之间的数据motorCCW(i);Warm_Empty=HIGH;Cold_Empty=LOW;}}else{motorStop();Warm_Empty =LOW;Cold_Empty =LOW;}Serial.println("b," + String(Warm_Empty));Serial.println("c," + String(Cold_Empty));u8g.firstPage();do {draw();} while( u8g.nextPage() );delay(200);}// 关闭冷灯和暧灯void motorStop(){digitalWrite(pinMotorCW, LOW);digitalWrite(pinMotorCCW, LOW);}// 冷灯以参数设定的 pwm 值光强度void motorCW(unsigned char pwm){analogWrite(pinMotorCW, pwm);digitalWrite(pinMotorCCW, LOW);}// 暧灯以参数设定的 pwm 值光强度void motorCCW(unsigned char pwm){digitalWrite(pinMotorCW, LOW);}。
一、实验目的本次实验旨在设计并实现一个创新型的电路系统,该系统结合了现代电子技术、传感器技术以及微控制器技术,实现对特定环境的智能监测与控制。
通过实验,我们希望达到以下目标:1. 理解并掌握现代电子技术、传感器技术以及微控制器技术的应用。
2. 设计并搭建一个能够实时监测环境参数(如温度、湿度、光照强度等)的电路系统。
3. 实现对监测数据的实时处理与显示。
4. 开发一个基于微控制器的智能控制策略,实现对环境的自动调节。
二、实验原理本实验采用以下技术原理:1. 传感器技术:通过温度传感器、湿度传感器、光照强度传感器等,实时采集环境参数。
2. 微控制器技术:使用微控制器(如Arduino)作为核心处理单元,对传感器采集的数据进行处理,并根据预设的控制策略进行环境调节。
3. 显示技术:通过LCD显示屏实时显示环境参数和系统状态。
4. 控制技术:利用继电器、电机等执行机构,实现对环境设备的自动控制。
三、实验设备1. 微控制器(Arduino Uno)2. 温度传感器(DS18B20)3. 湿度传感器(DHT11)4. 光照强度传感器(BH1750)5. LCD显示屏(16x2)6. 继电器模块7. 电机驱动模块8. 电源模块9. 连接线、电阻、电容等四、实验步骤1. 电路搭建:- 按照电路图连接温度传感器、湿度传感器、光照强度传感器、LCD显示屏、继电器模块、电机驱动模块等。
- 使用微控制器作为核心控制单元,通过编程实现对各个模块的控制。
2. 编程:- 编写程序实现以下功能:- 读取传感器数据,并进行实时显示。
- 根据预设的控制策略,对环境进行自动调节。
- 实现系统自检、故障报警等功能。
3. 测试与调试:- 对电路系统进行测试,确保各个模块正常工作。
- 调整程序参数,优化控制策略,使系统达到最佳性能。
五、实验结果与分析1. 环境监测:- 温度传感器实时监测室内温度,并通过LCD显示屏显示。
- 湿度传感器实时监测室内湿度,并通过LCD显示屏显示。