基于物聯(lián)網(wǎng)的色彩分選機(jī),使用ESP8266和ThingSpeak
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在生產(chǎn)環(huán)境中,產(chǎn)品分類可能是一個(gè)非常困難的過(guò)程。持續(xù)的人工分揀會(huì)產(chǎn)生問(wèn)題,并且需要大量的時(shí)間和人力。所以在本教程中,我們將使用NodeMCU-ESP8266, TCS3200顏色傳感器和兩個(gè)伺服電機(jī)構(gòu)建一個(gè)基于物聯(lián)網(wǎng)的顏色分選機(jī),正如標(biāo)題所說(shuō),它將根據(jù)顏色對(duì)事物進(jìn)行分類。TCS3200顏色傳感器負(fù)責(zé)感知物體的顏色,并使用兩個(gè)伺服電機(jī)將它們放入各自的預(yù)定義顏色盒中。由于它是物聯(lián)網(wǎng)的,每種顏色的產(chǎn)品數(shù)量將顯示在Thingspeak控制面板上。
出于演示目的,我們將使用硬紙板構(gòu)建一個(gè)簡(jiǎn)單的顏色分類設(shè)置。盒子和設(shè)置都將在固定位置,伺服電機(jī)將用于移動(dòng)分選機(jī),將球放入相應(yīng)的顏色盒子中。我們將使用ThingSpeak和ESP8266來(lái)做到這一點(diǎn)。我們以前使用過(guò)TCS3200顏色傳感器和NodeMCU來(lái)構(gòu)建一個(gè)基于物聯(lián)網(wǎng)的貨幣計(jì)數(shù)器,如果你感興趣的話,你可以檢查一下。
TCS3200顏色傳感器
TCS3200是一種顏色傳感器,可以根據(jù)波長(zhǎng)檢測(cè)各種顏色。它使用TAOS TCS3200 RGB傳感器芯片來(lái)檢測(cè)顏色頻率。這個(gè)傳感器還包含四個(gè)白光led,可以照亮它前面的物體。TCS3200芯片有一個(gè)8 × 8的光電二極管陣列(總共64個(gè)光電二極管)。在這64個(gè)光電二極管中,16個(gè)光電二極管上有紅色濾光片,16個(gè)光電二極管上有綠色濾光片,16個(gè)光電二極管上有藍(lán)色濾光片,其余16個(gè)光電二極管上沒有濾光片。
在該模塊中,16個(gè)相同顏色的光電二極管并聯(lián)連接??刂埔_S2和S3用于選擇光電二極管陣列。例如,我們可以通過(guò)將S2和S3設(shè)置為低邏輯電平來(lái)讀取紅色光電二極管。完整的表格如下:
其余兩個(gè)控制引腳即S0和S1用于縮放輸出頻率。輸出頻率可以縮放到三個(gè)不同的預(yù)設(shè)值2%,20%或100%。設(shè)置輸出頻率的引腳邏輯如下表所示:
TCS3200 RGB顏色傳感器規(guī)格:
在繼續(xù)之前,讓我們先介紹一下這個(gè)模塊的規(guī)范。該模塊的工作電壓為3V至5V,這意味著它可以直接與任何微控制器接口,這就是為什么它是我們的NodeMCU的完美選擇,它使用3.3V邏輯電平。除了電源和地,它還有一個(gè)使能引腳E0,通過(guò)將其拉低或拉高,我們可以禁用或啟用芯片。OUT引腳用于提供輸出頻率,S0和S1選擇線選擇輸出頻率縮放。S2和S3選擇線選擇光電二極管類型。在測(cè)量顏色波長(zhǎng)后,它將結(jié)果輸出為頻率,因此我們可以直接測(cè)量頻率并確定顏色,從而減少了ADC的干預(yù)。最后,該傳感器可以在1cm的距離內(nèi)精確測(cè)量被測(cè)物體。如果您想了解有關(guān)其規(guī)范的更多信息,可以查看TCS3200模塊的數(shù)據(jù)表
剪色機(jī)所需材料
?NodeMCU ESP8266 (1)
?TCS3200顏色傳感器(1)
?伺服電機(jī)(2)
?跳線
?紙板
?USB電源線
我們的顏色分選機(jī)電路圖
基于物聯(lián)網(wǎng)的顏色分選機(jī)的電路圖非常簡(jiǎn)單,不需要復(fù)雜的連接。電路圖如下:
顏色傳感器供電3.3V,伺服電機(jī)供電5V。兩個(gè)電機(jī)的PWM引腳分別連接到NodeMCU的D2和D3引腳上。顏色傳感器的連接方式如下表所示:
設(shè)置ThingSpeak來(lái)監(jiān)控分色機(jī)的進(jìn)度
ThingSpeak是一個(gè)開源的物聯(lián)網(wǎng)分析平臺(tái)服務(wù),允許您聚合、可視化和分析云中的實(shí)時(shí)數(shù)據(jù)。它可以用來(lái)控制設(shè)備,可以存儲(chǔ)傳感器數(shù)據(jù),可以用來(lái)創(chuàng)建實(shí)時(shí)數(shù)據(jù)的即時(shí)可視化,并使用Twitter和ThingHTTP等網(wǎng)絡(luò)服務(wù)發(fā)送警報(bào)。以前我們用thingsspeak構(gòu)建了許多項(xiàng)目,比如:
太陽(yáng)能Wi-Fi氣象站
基于物聯(lián)網(wǎng)的GPS跟蹤器
基于物聯(lián)網(wǎng)的車輛跟蹤器
所以,如果你感興趣的話,一定要看看這些?,F(xiàn)在讓我們通過(guò)配置將數(shù)據(jù)發(fā)送到ThingSpeak。
第一步:注冊(cè)
要向Thingspeak發(fā)送數(shù)據(jù),需要一個(gè)Thingspeak帳戶。要做到這一點(diǎn),請(qǐng)瀏覽Thingspeak網(wǎng)站。
點(diǎn)擊右上角的“注冊(cè)”選項(xiàng),填寫所需的詳細(xì)信息。
之后,驗(yàn)證E-mail id并單擊continue。
步驟2:創(chuàng)建可視化數(shù)據(jù)的渠道
現(xiàn)在,當(dāng)您登錄到您的帳戶時(shí),通過(guò)單擊“新頻道”按鈕創(chuàng)建一個(gè)新頻道。
點(diǎn)擊“新通道”后,輸入您想要上傳的數(shù)據(jù)的名稱和描述。
輸入字段1、字段2、字段3和字段4中的數(shù)據(jù)名稱。如果您希望使用多于兩個(gè)的字段,那么您可以選中field選項(xiàng)旁邊的框,并輸入通道的名稱和描述。
之后,單擊“Save Channel”按鈕完成通道創(chuàng)建過(guò)程。
Thingspeak通常以圖形格式顯示數(shù)據(jù),但它也提供了使用不同小部件可視化數(shù)據(jù)的選項(xiàng)。要添加小部件,請(qǐng)單擊“add Widgets”選項(xiàng)并選擇要使用的小部件。在這個(gè)項(xiàng)目中,我使用的是“數(shù)字顯示”小部件。
步驟3:API密鑰
為了將數(shù)據(jù)發(fā)送到ThingSpeak,我們需要一個(gè)唯一的API密鑰,我們將在稍后的代碼中使用它將數(shù)據(jù)發(fā)送到ThingSpeak網(wǎng)站。
點(diǎn)擊“API密鑰”選項(xiàng),獲取唯一的API密鑰,用于上傳傳感器數(shù)據(jù)?,F(xiàn)在復(fù)制“Write API Key”。
用于控制顏色分選機(jī)的Arduino代碼
基于物聯(lián)網(wǎng)的顏色分選機(jī)的完整代碼在文檔的末尾給出。在這里,我們一步一步地解釋完整的代碼。
我們將使用Arduino IDE的ThingSpeak,所以像往常一樣,第一步將包括所有必需的庫(kù)。h庫(kù)可以從給出的鏈接下載。顏色傳感器可以在沒有庫(kù)的情況下工作,因?yàn)槲覀兛梢灾苯訌膫鞲衅饕_讀取顏色頻率來(lái)決定顏色。
之后,在接下來(lái)的幾行中,我們定義了ThingSpeak API密鑰、通道號(hào)、Wi-Fi名稱和密碼,這些都是我們之前在創(chuàng)建ThingSpeak帳戶時(shí)保存的。
然后定義伺服變量。這里我們使用兩個(gè)伺服電機(jī)。第一個(gè)伺服電機(jī)用于將色球從初始位置移動(dòng)到顏色傳感器。第二個(gè)伺服電機(jī)用于將色球放入色桶中。
之后,定義顏色傳感器引腳。
在setup()函數(shù)中,我們以9600波特初始化Serial。然后將顏色傳感器引腳定義為輸出引腳以讀取頻率值,還定義了頂部和底部伺服電機(jī)的引腳。
在loop()函數(shù)中,我們測(cè)量紅色、綠色和藍(lán)色的輸入頻率,并比較這些頻率讀數(shù)來(lái)檢測(cè)顏色??刂埔_S2和S3用于讀取顏色頻率。例如,讀取紅色頻率時(shí),將兩個(gè)引腳設(shè)置為低邏輯電平;讀取藍(lán)色時(shí),將S3引腳設(shè)置為HIGH, S2引腳設(shè)置為low;讀取綠色時(shí),將S2引腳設(shè)置為HIGH, S3引腳設(shè)置為low。
在獲得紅色、綠色和藍(lán)色的頻率值之后,比較這些值來(lái)檢測(cè)顏色。在檢測(cè)到顏色后,首先,以特定的角度移動(dòng)落點(diǎn)伺服器,使彩球掉落到相應(yīng)的盒子中,然后移動(dòng)拾取伺服器以傳遞球。每種顏色的頻率值隨距離而變化,可以相應(yīng)地定制。識(shí)別顏色后,將檢測(cè)到的顏色球的數(shù)量發(fā)送給ThingSpeak。
測(cè)試顏色分選機(jī)
一旦代碼和硬件準(zhǔn)備好了,就可以進(jìn)行顏色分類設(shè)置,并安裝伺服電機(jī)和顏色傳感器,如下圖所示:
現(xiàn)在將代碼上傳到NodeMCU-ESP8266板,您的機(jī)器準(zhǔn)備賣空不同顏色的球。每種顏色的產(chǎn)品數(shù)量將顯示在Thingspeak上,如下圖所示:
本文編譯自iotdesignpro