|
在本文中,我们将使用工业激光检测设备的颜色亮度和接近度。
所需的组件 ● ESP32模块 ● TMG39931模块 ● Arduino IDE
TMG39931 I2C模块在各种应用中发挥着重要作用,特别是在检测颜色亮度方面。借助node-red服务,我们将能够使用ESP32连续测试传感器数据。
在本篇文章中,我们将TMG39931与ESP32模块连接,该模块可以使用Wireless Mesh网络或Azure、Thingspeak等各种云平台将传感器数据发送到您的应用软件。
TMG39931
ESP32
I2C代码 初始化Wire.h文件,在Arduino IDE中作为I2C库使用: 初始化传感器模块的I2C寄存器,指定使用2线协议。 开始I2C传输,根据串行通信的要求初始化波特率。 - Wire.begin(21,22);
- Serial.begin(115200);
- setup_wifi(); //We will be using simple Wifi.h library
复制代码请求9字节数据,我们希望通过I2C连接从传感器读取数据,以读取颜色亮度和接近系数。 - if(Wire.available() == 9)
- {
- data[0] = Wire.read();
- data[1] = Wire.read();
- data[2] = Wire.read();
- data[3] = Wire.read();
- data[4] = Wire.read();
- data[5] = Wire.read();
- data[6] = Wire.read();
- data[7] = Wire.read();
- data[8] = Wire.read();
- }
复制代码如果字节可用,那么使用下面提到的公式将有助于转换数据字节并显示所需的值 - // Convert the data
- float cData = data[1] * 256.0 + data[0];
- float red = data[3] * 256.0 + data[2];
- float green = data[5] * 256.0 + data[4];
- float blue = data[7] * 256.0 + data[6];
复制代码根据数据表中给出的灵敏度和分辨率设置的要求操纵波长参数。 使用Serial.print,您将能够在串行监视器屏幕中读取传感器数据。 - // Output data to serial monitor
- Serial.print("Green Color Luminance : ");
- Serial.println(green);
- Serial.print("Red Color Luminance : ");
- Serial.println(red) ;
- Serial.print("Blue Color Luminance : ");
- Serial.println(blue) ;
- Serial.print("InfraRed Luminance : ");
- Serial.println(cData) ;
- Serial.print("Proximity of the device : ");
- Serial.println(c);
- delay(500);
复制代码以上代码可以从Github进行下载。
关于TMG39931 I2C模块 紧凑的超薄模块可用于同时检测各种应用。工厂校准的传感器由紫外和红外阻挡滤光片组成,具有环境光抑制功能。该传感器还可以用于IR光束硬件支持系统。使用此传感器时,我们能够通过此传感器了解其应用程序,即IR、Proximity、Gesture Color Luminance检测,使用可通过I2C传输轻松访问的不同数据集。
TMG39931传感器应用 通过相机使用各种颜色检测应用程序。但是对于我们不能使用相机的高精度和准确检测,我们可以通过使该传感器与工业机制一起工作以在不同的应用中工作来找出实际的色谱。
们使用传感器和一台工业染色机创建了应用程序,这种染色机的接口可以通过连接到机器的激光检测特定的光强度来操作机械执行器。在工作和理解此应用程序的同时,如果在检测中存在任何问题,则将使用前面在Axial Monitoring Blogtut中提到的node-red中的电子邮件节点将警报发送到电子邮件ID。
|