基于物联网的色彩分选机,使用ESP8266和ThingSpeak
扫描二维码
随时随地手机看文章
在生产环境中,产品分类可能是一个非常困难的过程。持续的人工分拣会产生问题,并且需要大量的时间和人力。所以在本教程中,我们将使用NodeMCU-ESP8266, TCS3200颜色传感器和两个伺服电机构建一个基于物联网的颜色分选机,正如标题所说,它将根据颜色对事物进行分类。TCS3200颜色传感器负责感知物体的颜色,并使用两个伺服电机将它们放入各自的预定义颜色盒中。由于它是物联网的,每种颜色的产品数量将显示在Thingspeak控制面板上。
出于演示目的,我们将使用硬纸板构建一个简单的颜色分类设置。盒子和设置都将在固定位置,伺服电机将用于移动分选机,将球放入相应的颜色盒子中。我们将使用ThingSpeak和ESP8266来做到这一点。我们以前使用过TCS3200颜色传感器和NodeMCU来构建一个基于物联网的货币计数器,如果你感兴趣的话,你可以检查一下。
TCS3200颜色传感器
TCS3200是一种颜色传感器,可以根据波长检测各种颜色。它使用TAOS TCS3200 RGB传感器芯片来检测颜色频率。这个传感器还包含四个白光led,可以照亮它前面的物体。TCS3200芯片有一个8 × 8的光电二极管阵列(总共64个光电二极管)。在这64个光电二极管中,16个光电二极管上有红色滤光片,16个光电二极管上有绿色滤光片,16个光电二极管上有蓝色滤光片,其余16个光电二极管上没有滤光片。
在该模块中,16个相同颜色的光电二极管并联连接。控制引脚S2和S3用于选择光电二极管阵列。例如,我们可以通过将S2和S3设置为低逻辑电平来读取红色光电二极管。完整的表格如下:
其余两个控制引脚即S0和S1用于缩放输出频率。输出频率可以缩放到三个不同的预设值2%,20%或100%。设置输出频率的引脚逻辑如下表所示:
TCS3200 RGB颜色传感器规格:
在继续之前,让我们先介绍一下这个模块的规范。该模块的工作电压为3V至5V,这意味着它可以直接与任何微控制器接口,这就是为什么它是我们的NodeMCU的完美选择,它使用3.3V逻辑电平。除了电源和地,它还有一个使能引脚E0,通过将其拉低或拉高,我们可以禁用或启用芯片。OUT引脚用于提供输出频率,S0和S1选择线选择输出频率缩放。S2和S3选择线选择光电二极管类型。在测量颜色波长后,它将结果输出为频率,因此我们可以直接测量频率并确定颜色,从而减少了ADC的干预。最后,该传感器可以在1cm的距离内精确测量被测物体。如果您想了解有关其规范的更多信息,可以查看TCS3200模块的数据表
剪色机所需材料
•NodeMCU ESP8266 (1)
•TCS3200颜色传感器(1)
•伺服电机(2)
•跳线
•纸板
•USB电源线
我们的颜色分选机电路图
基于物联网的颜色分选机的电路图非常简单,不需要复杂的连接。电路图如下:
颜色传感器供电3.3V,伺服电机供电5V。两个电机的PWM引脚分别连接到NodeMCU的D2和D3引脚上。颜色传感器的连接方式如下表所示:
设置ThingSpeak来监控分色机的进度
ThingSpeak是一个开源的物联网分析平台服务,允许您聚合、可视化和分析云中的实时数据。它可以用来控制设备,可以存储传感器数据,可以用来创建实时数据的即时可视化,并使用Twitter和ThingHTTP等网络服务发送警报。以前我们用thingsspeak构建了许多项目,比如:
太阳能Wi-Fi气象站
基于物联网的GPS跟踪器
基于物联网的车辆跟踪器
所以,如果你感兴趣的话,一定要看看这些。现在让我们通过配置将数据发送到ThingSpeak。
第一步:注册
要向Thingspeak发送数据,需要一个Thingspeak帐户。要做到这一点,请浏览Thingspeak网站。
点击右上角的“注册”选项,填写所需的详细信息。
之后,验证E-mail id并单击continue。
步骤2:创建可视化数据的渠道
现在,当您登录到您的帐户时,通过单击“新频道”按钮创建一个新频道。
点击“新通道”后,输入您想要上传的数据的名称和描述。
输入字段1、字段2、字段3和字段4中的数据名称。如果您希望使用多于两个的字段,那么您可以选中field选项旁边的框,并输入通道的名称和描述。
之后,单击“Save Channel”按钮完成通道创建过程。
Thingspeak通常以图形格式显示数据,但它也提供了使用不同小部件可视化数据的选项。要添加小部件,请单击“add Widgets”选项并选择要使用的小部件。在这个项目中,我使用的是“数字显示”小部件。
步骤3:API密钥
为了将数据发送到ThingSpeak,我们需要一个唯一的API密钥,我们将在稍后的代码中使用它将数据发送到ThingSpeak网站。
点击“API密钥”选项,获取唯一的API密钥,用于上传传感器数据。现在复制“Write API Key”。
用于控制颜色分选机的Arduino代码
基于物联网的颜色分选机的完整代码在文档的末尾给出。在这里,我们一步一步地解释完整的代码。
我们将使用Arduino IDE的ThingSpeak,所以像往常一样,第一步将包括所有必需的库。h库可以从给出的链接下载。颜色传感器可以在没有库的情况下工作,因为我们可以直接从传感器引脚读取颜色频率来决定颜色。
之后,在接下来的几行中,我们定义了ThingSpeak API密钥、通道号、Wi-Fi名称和密码,这些都是我们之前在创建ThingSpeak帐户时保存的。
然后定义伺服变量。这里我们使用两个伺服电机。第一个伺服电机用于将色球从初始位置移动到颜色传感器。第二个伺服电机用于将色球放入色桶中。
之后,定义颜色传感器引脚。
在setup()函数中,我们以9600波特初始化Serial。然后将颜色传感器引脚定义为输出引脚以读取频率值,还定义了顶部和底部伺服电机的引脚。
在loop()函数中,我们测量红色、绿色和蓝色的输入频率,并比较这些频率读数来检测颜色。控制引脚S2和S3用于读取颜色频率。例如,读取红色频率时,将两个引脚设置为低逻辑电平;读取蓝色时,将S3引脚设置为HIGH, S2引脚设置为low;读取绿色时,将S2引脚设置为HIGH, S3引脚设置为low。
在获得红色、绿色和蓝色的频率值之后,比较这些值来检测颜色。在检测到颜色后,首先,以特定的角度移动落点伺服器,使彩球掉落到相应的盒子中,然后移动拾取伺服器以传递球。每种颜色的频率值随距离而变化,可以相应地定制。识别颜色后,将检测到的颜色球的数量发送给ThingSpeak。
测试颜色分选机
一旦代码和硬件准备好了,就可以进行颜色分类设置,并安装伺服电机和颜色传感器,如下图所示:
现在将代码上传到NodeMCU-ESP8266板,您的机器准备卖空不同颜色的球。每种颜色的产品数量将显示在Thingspeak上,如下图所示:
本文编译自iotdesignpro