GY-30光强传感器(是一款基于IIC通信的16bit的数字型传感器),这里我们介绍它在连接ESP8266,使用QT制作的上位机上的数据监测及显示。
GY30介绍
1.引脚
5根引脚,名称与功能如下;
vcc 为外接供电电源输入端
GND 地线
SCL I2C通信模式时钟信号
SDA I2C通信模式数据信号
ADDR I2C地址引脚
2.光强测量范围
测量范围是最大100000勒克斯
3.通讯方式(I2C)
采用I2C的接口方式 ,i2c通讯方式:SCL --> 时钟线、SDI --> 数据线
4.优点
光强数字转换器,16位分辩率(1~65535)
直接数字输出,省略复杂的计算,省略标定
不区分环境光源,接近于视觉灵敏度的分光特性
极高的可靠性
性价比极高
QT部分介绍
串口监视器
[超详细QT串口收发绘图软件实现]((https://blog.csdn.net/happyjoey217/article/details/115007711?spm=1001.2014.3001.5502))
首先我们要独立根据此步骤,实现自己的串口监视器制作。
**博主学习源代码:**链接:https://pan.baidu.com/s/1RQ1ghKAZeJ9iSWoF63rlHw?pwd=v7hc
提取码:v7hc
–来自百度网盘超级会员V2的分享
B站QSS教学视频精品
ESP8266与GY30接线
ESP没有硬件TWI(双线接口),但它是用软件实现的。这意味着你可以使用任意两个数字引脚。默认情况下,I²C库使用管脚4作为SDA,管脚5作为SCL。最大速度约为450kHz。
接线部分
| GY30 | ESP8266 |
|-VCC-|-3.3V-|
| GND | GND |
|SCL| D1 |
|-SDA-|-D2-|
这里我们用到的是ESP8266D1 MINI
使用Arduino 对程序进行烧录
#include <Wire.h>
#define ADDR 0b0100011 // 0x23
String str;
int i=1;
void setup() {
Serial.begin(9600); //设置波特率
while (!Serial) {;}
Wire.begin();
Wire.beginTransmission(ADDR);
Wire.write(0b00000001);
Wire.endTransmission();
}
void loop() {
int val = 0; //初始化光照值
Wire.beginTransmission(ADDR);
Wire.write(0b00000111);
Wire.endTransmission();
Wire.beginTransmission(ADDR);
Wire.write(0b00100000);
Wire.endTransmission();
delay(120);
/*计算光照*/
Wire.requestFrom(ADDR, 2); //每次2byte
for (val = 0; Wire.available() >= 1; ) {
char c = Wire.read();
val = (val << 8) + (c & 0xFF);
}
val = val / 1.2;
/*输出光照数值*/
str="sample: "+String(i)+" "+String(val);
//Serial.print("当前光照值: ");
Serial.println(str);
i++;
delay(100);
}