在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何實現植物生長可視化

454398 ? 來源:wv ? 2019-09-05 11:28 ? 次閱讀

第1步:簡介

什么是APEX?

APEX是一款智能(更不用說可愛)工廠監控設備。只需將其插入任何工廠即可顯示工廠的“幸福”級別!如果您有一種忘記給它們澆水的壞習慣,這是一個很好的提醒。

它是如何運作的?

魔術。開玩笑! APEX使用連接到濕度傳感器Arduino,將其插入植物的土壤中。該傳感器將讀取土壤的水分含量,然后Arduino計算要顯示的面部。

但為什么?

為什么不呢?

第2步:收集零件和工具

讓我們進入吧!對于這個Instructable,您將需要相當多的零件和工具。幸運的是,它們都列在下面:

根據微控制器競賽的精神,這個項目完全由在亞馬遜上購買的部件制成! (未贊助)

零件清單:

Arduino Uno

8x8 LED顯示屏

電容式觸摸傳感器

濕度傳感器

9V電池連接器

9V電池

工具列表:

22 Gauge Wire

電工膠帶

剝線鉗

焊接熨斗

拆焊泵

收集完所有必要的設備后,是時候設置了Arduino軟件!

第3步:安裝Arduino IDE

為了使這個項目起作用,我們需要能夠對Arduino進行編程。這需要將Arduino集成開發環境(IDE)下載并安裝到您的計算機上。這是一個相當簡單的解釋,但我將引導您完成整個過程:

1。訪問Arduino網站

2。導航到下載頁面(軟件》下載)

第3。單擊操作系統的下載鏈接

側注意:該程序適用于Windows,Mac和Linux

的 4。在Windows上安裝

雙擊下載的文件進行運行

點擊“同意“同意許可

按照提示的其余部分

現在應該安裝該程序!

(如果迷路,請務必查看截圖)

5。在Mac上安裝

單擊下載的文件

選擇“打開”

程序將自動安裝并運行!

(如果您感到困惑,請務必查看截圖)

6。就是這樣!

你已經完成了!您現在已將Arduino IDE下載到您的系統中!

第4步:代碼

此步驟完全是關于代碼。這是一個相當短的程序,所以我將與你一起討論并解釋它是如何工作的。首先,簡要概述,然后是深入解釋,最后是如何將其推送到Arduino!

簡要概述

對于那些你對代碼的詳細解釋不感興趣,我提供TL; DR段!這是基本的解釋。 Arduino每隔幾秒就從濕度傳感器中獲取值。然后,此信息用于計算和顯示某個面部!最后還有一些代碼,讓電容式觸摸按鈕打開和關閉顯示屏。非常簡單吧?

The Nitty Gritty

這部分教程適合那些對整個程序如何工作非常感興趣的人,一行一行。我將提供上面的截圖,以幫助您理解我正在談論的內容,并在此說明中包含一些代碼行。

此程序分為五個部分:

包括庫和創建變量

設置功能

面部表情的功能

在矩陣函數上寫Arduino

循環函數

包括庫和創建變量:

此代碼的第一部分是關于我們將使用的變量和庫。

#include “LedControlMS.h”

#define TouchSensor 7

LedControl lc=LedControl(12,11,10,1);

int sensorPin = A5;

int sensorValue = 0;

bool started = false;

bool on = true;

boolean pressed = LOW;

第一行包含一個名為LedControlMS的庫。該庫需要能夠向LED顯示器發送值。下一行是一個define語句,用于將觸摸傳感器的引腳設置為7.之后,我們還有三個變量,用于定義LED顯示屏的引腳,濕度傳感器及其值。最后三行是所有布爾值,用于調節觸摸按鈕和顯示屏的狀態。在此之后,我們有字節值:

byte smile[4]={B00000100,B00110010,B01100100,B01100000};

byte surprise[4]={B00001110,B00001010,B01101110,B10010000};

byte meh[4]={B00000100,B00100100,B00100100,B00100000};

byte sad[4]={B00000010,B01100100,B00110010,B00110000};

byte dead[6]={B00001010,B00100100,B00101010,B00100000,B01100000,B01101010};

byte error[8]={B00111100,B01000010,B10100001,B10010001,B10001001,B10000101,B01000010,B00111100};

//Evil Faces

byte esmile[4]={B00000010,B00101010,B01000100,B01000000};

byte elaugh[4]={B00000010,B00101010,B01100100,B01100000};

byte eplain[4]={B00000010,B00101010,B00100100,B00100000};

byte eyell[4]={B00000001,B01101001,B01100010,B01100000};

byte etalk[4]={B00000001,B00101001,B01100010,B01100000};

這些值代表APEX的所有面。每個字節是一個數組,其中包含多個位,用于指示給定行中每個像素的狀態。 “1”和“0”分別表示開/關。

設置功能:

轉到下一部分,我們有設置功能。

void setup() {

//MS Serial Output

Serial.begin(9600);

pinMode(TouchSensor, INPUT);

//LED Matrix Setup

lc.shutdown(0,false);

lc.setIntensity(0,4);

lc.clearDisplay(0);

}

這個名字很好地解釋了它。這是我們“設置”我們的觸摸傳感器和顯示器的地方。前兩行開始我們的串行輸出(用于調試)。第三行將觸摸傳感器引腳設置為輸入,最后四行啟動顯示。

面部表情的功能:

這可能是最長的部分,但它都非常簡單和重復。

void broken() {

lc.setRow(0,0,error[0]);

lc.setRow(0,1,error[1]);

lc.setRow(0,2,error[2]);

lc.setRow(0,3,error[3]);

lc.setRow(0,4,error[4]);

lc.setRow(0,5,error[5]);

lc.setRow(0,6,error[6]);

lc.setRow(0,7,error[7]);

}

void happy() {

lc.setRow(0,0,smile[0]);

lc.setRow(0,1,smile[1]);

lc.setRow(0,2,smile[2]);

lc.setRow(0,3,smile[3]);

lc.setRow(0,4,smile[3]);

lc.setRow(0,5,smile[2]);

lc.setRow(0,6,smile[1]);

lc.setRow(0,7,smile[0]);

}

void plain() {

lc.setRow(0,0,meh[0]);

lc.setRow(0,1,meh[1]);

lc.setRow(0,2,meh[2]);

lc.setRow(0,3,meh[3]);

lc.setRow(0,4,meh[3]);

lc.setRow(0,5,meh[2]);

lc.setRow(0,6,meh[1]);

lc.setRow(0,7,meh[0]);

}

void surprised(){

lc.setRow(0,0,surprise[0]);

lc.setRow(0,1,surprise[1]);

lc.setRow(0,2,surprise[2]);

lc.setRow(0,3,surprise[3]);

lc.setRow(0,4,surprise[3]);

lc.setRow(0,5,surprise[2]);

lc.setRow(0,6,surprise[1]);

lc.setRow(0,7,surprise[0]);

}

void dying() {

lc.setRow(0,0,dead[0]);

lc.setRow(0,1,dead[1]);

lc.setRow(0,2,dead[2]);

lc.setRow(0,3,dead[3]);

lc.setRow(0,4,dead[4]);

lc.setRow(0,5,dead[5]);

lc.setRow(0,6,dead[1]);

lc.setRow(0,7,dead[0]);

}

void crying() {

lc.setRow(0,0,sad[0]);

lc.setRow(0,1,sad[1]);

lc.setRow(0,2,sad[2]);

lc.setRow(0,3,sad[3]);

lc.setRow(0,4,sad[3]);

lc.setRow(0,5,sad[2]);

lc.setRow(0,6,sad[1]);

lc.setRow(0,7,sad[0]);

}

void evilsmile() {

lc.setRow(0,0,esmile[0]);

lc.setRow(0,1,esmile[1]);

lc.setRow(0,2,esmile[2]);

lc.setRow(0,3,esmile[3]);

lc.setRow(0,4,esmile[3]);

lc.setRow(0,5,esmile[2]);

lc.setRow(0,6,esmile[1]);

lc.setRow(0,7,esmile[0]);

}

void evillaugh() {

lc.setRow(0,0,elaugh[0]);

lc.setRow(0,1,elaugh[1]);

lc.setRow(0,2,elaugh[2]);

lc.setRow(0,3,elaugh[3]);

lc.setRow(0,4,elaugh[3]);

lc.setRow(0,5,elaugh[2]);

lc.setRow(0,6,elaugh[1]);

lc.setRow(0,7,elaugh[0]);

}

void evilplain() {

lc.setRow(0,0,eplain[0]);

lc.setRow(0,1,eplain[1]);

lc.setRow(0,2,eplain[2]);

lc.setRow(0,3,eplain[3]);

lc.setRow(0,4,eplain[3]);

lc.setRow(0,5,eplain[2]);

lc.setRow(0,6,eplain[1]);

lc.setRow(0,7,eplain[0]);

}

void evilyell() {

lc.setRow(0,0,eyell[0]);

lc.setRow(0,1,eyell[1]);

lc.setRow(0,2,eyell[2]);

lc.setRow(0,3,eyell[3]);

lc.setRow(0,4,eyell[3]);

lc.setRow(0,5,eyell[2]);

lc.setRow(0,6,eyell[1]);

lc.setRow(0,7,eyell[0]);

}

void eviltalk() {

lc.setRow(0,0,etalk[0]);

lc.setRow(0,1,etalk[1]);

lc.setRow(0,2,etalk[2]);

lc.setRow(0,3,etalk[3]);

lc.setRow(0,4,etalk[3]);

lc.setRow(0,5,etalk[2]);

lc.setRow(0,6,etalk[1]);

lc.setRow(0,7,etalk[0]);

}

這些函數用于使用第一部分中的字節值定義每個面部表情。每行定義 x 位置和字節值,然后將值應用于該列。某些函數需要更多行,因為有更多行用于顯示該面的值。每個面都是對稱的,這就是我們重復這些線條的原因。

WriteArduinoOnMatrix功能:

第四部分用于計算和寫入LED顯示屏上的正確面。它由一系列if語句組成,用于檢查水值,然后通過調用上一節中的不同函數來設置顯示。

void writeArduinoOnMatrix() {

if(sensorValue 》 0 && sensorValue 《= 30) {

broken();

} else if(sensorValue 》 30 && sensorValue 《= 100){

dying();

} else if (sensorValue 》 100 && sensorValue 《= 200) {

crying();

} else if (sensorValue 》 200 && sensorValue 《= 400) {

plain();

} else if (sensorValue 》 400 && sensorValue 《= 650) {

happy();

} else if (sensorValue 》 650 && sensorValue 《= 800) {

surprised();

} else {

broken();

}

}

您可能會注意到,為了防止傳感器超出工作范圍,我們添加了“破損”面。這可以防止發生一些奇怪的空錯誤,并讓我們更好地直觀地了解代碼中發生的事情。

循環函數:

最后但并非最不重要的是循環函數。這段代碼正是它的名字所說的,它循環!雖然這個函數有很多行,但它實際上相當簡單。代碼首先讀取按鈕狀態并查看顯示是否為“On”。如果它發現這是真的,它將調用 WriteArduinoOnMatrix 函數,然后在APEX上繪制一個面。由于此函數循環,它將根據需要隨時更新顯示。此延遲由 delaytime 變量決定。

void loop() {

if (started == true){

delaytime = 3000;

}

//Read Button

pressed = digitalRead(TouchSensor);

if (pressed) {

if (on == true) {

lc.clearDisplay(0);

on = false;

delay(delaytime);

} else {

on = true;

delay(delaytime);

}

}

sensorValue = analogRead(sensorPin);

delay(delaytime);

if (on == true) {

//Draw Faces

writeArduinoOnMatrix();

}

started = true;

}

這就是代碼的全部內容。希望現在你能更好地理解它是如何工作的,并且可以利用這些知識開始為你的項目定制它!

將代碼推送到Arduino

現在我們已經涵蓋了所有代碼,是時候把它推到Arduino了!幸運的是,IDE使這非常簡單。您只需使用USB線將Arduino插入計算機,然后只需單擊IDE左上角的右箭頭即可。讓代碼推送,如果你做得對,你應該在程序底部看到成功消息!

步驟5:電路圖

與代碼類似,電路圖并不太復雜。它只包含三個傳感器和Arduino,所以我會告訴你每個傳感器的引腳,如果你需要任何其他幫助,請參考上圖。

LED顯示屏:

VCC - 》 5V

GRD - 》 GRD

DIN - 》 Pin 12

CS - 》引腳10

CLK - 》引腳11

濕度傳感器:

正面 - 》 5V

負面 - 》 GRD

信號 - 》 A5

電容觸摸傳感器:

VCC - 》 5V

GRD - 》 GRD

SIG - 》 7

不太難,對吧?如果你對這個引腳有任何問題,請務必參考下面的視頻,我將指導你如何連線。

第6步:全部放在一起

這是很難解釋文本如何適合所有,所以我肯定建議查看這部分的視頻。我實際上并沒有準確地解釋我是如何把我放在一起的,這太難了。但為了模糊地解釋事情,我在電線連接上焊接并將它們包裹在電路板背面。然后我放置傳感器并使用電工膠帶將它們固定在一起。最后,我用9V電池對它進行了測試,然后一旦我知道它有效,就將電池放在背面并將其粘貼在上面。就像我之前說過的那樣,檢查這個步驟的視頻,它有一個很好的小焊接部分,它可以幫助你正確地包裹電線。如果迷路,請隨意暫停或以半速播放。

恭喜! 如果一切順利,您現在應該擁有一個功能齊全的APEX單元!

測試您的設備,找到澆灌的植物并插上它!您應該發現它既快樂又感到驚訝,這意味著它應該正常工作!完成項目的好工作!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2554

    文章

    51580

    瀏覽量

    757772
  • Arduino
    +關注

    關注

    188

    文章

    6478

    瀏覽量

    188290
收藏 人收藏

    評論

    相關推薦

    VirtualLab Fusion應用:光波導k域布局可視化(“神奇的圓環”)

    特定光波導布局的光導和耦合條件。 概念 方向轉換器計算器 可以通過“開始”>“計算器”找到方向轉換器計算器,這有助于演示指定角度的不同方式。 k域可視化 k域可視化:平面波的傳播
    發表于 02-21 08:53

    七款經久不衰的數據可視化工具!

    數據量的激增,單純通過數字和文本來分析數據已不再高效。數據可視化則提供了一種直觀、互動性強的方式,幫助人們通過視覺元素,如柱狀圖、折線圖、餅圖、熱力圖等圖表形式,理解復雜的數據關系。 二、數據可視化
    發表于 01-19 15:24

    光學系統的3D可視化

    **摘要 ** 為了從根本上了解光學系統的特性,對其組件進行可視化并顯示光的傳播情況大有幫助。為此,VirtualLab Fusion 提供了顯示光學系統三維可視化的工具。這些工具還可用于檢查元件
    發表于 01-06 08:53

    什么是大屏數據可視化?特點有哪些?

    大屏數據可視化是指通過大屏幕展示大量數據和信息,以直觀、可視化的方式幫助用戶理解和分析數據。這種展示方式通常用于展示復雜的數據集、實時監控系統、企業管理儀表盤等。以下是關于 大屏數據可視化 的詳細
    的頭像 發表于 12-16 16:59 ?327次閱讀

    智慧能源可視化監管平臺——助力可視化能源數據管理

    博達可視化大屏設計平臺在智慧能源領域的價值體現在實時監控、數據可視化、決策支持和效率提升等方面。借助該平臺,企業可以輕松搭建智慧能源類可視化大屏,更加精確和高效地管理生產和生活,實現
    的頭像 發表于 11-29 10:00 ?502次閱讀
    智慧能源<b class='flag-5'>可視化</b>監管平臺——助力<b class='flag-5'>可視化</b>能源數據管理

    智慧樓宇可視化的優點

    智慧樓宇可視化是指通過數據可視化技術來展示和分析樓宇的各種數據,為樓宇管理者和用戶提供直觀、清晰的信息展示和決策支持。以下是智慧樓宇可視化的優點,詳細介紹其在樓宇管理和運營中的重要作用: 1.實時
    的頭像 發表于 11-19 14:25 ?261次閱讀

    大屏數據可視化 開源

    可以使信息一目了然,還能幫助用戶深入分析數據,發現潛在的規律和洞察。以下是古河云科技實現大屏數據可視化的關鍵步驟。 1.確定需求和目標 確定大屏數據可視化的具體需求和目標,包括展示內容、受眾群體、交互方式等。 2.數據收集
    的頭像 發表于 06-27 16:06 ?503次閱讀
    大屏數據<b class='flag-5'>可視化</b> 開源

    如何實現園區大屏可視化

    孿生可視化 構建平臺利用Web三維可視化技術對現實場景進行仿真,實現園區級業務場景 的可視化呈現,助力企業快速完成項目的實施。實現園區場景立
    的頭像 發表于 06-19 15:39 ?530次閱讀
    如何<b class='flag-5'>實現</b>園區大屏<b class='flag-5'>可視化</b>?

    態勢數據可視化技術有哪些

    智慧華盛恒輝態勢數據可視化技術是一種將數據以圖形、圖像、動畫等視覺形式展現出來的技術,特別是在處理和分析態勢數據時,該技術能夠將復雜的數據轉化為直觀、易于理解的視覺表現。以下是態勢數據可視化技術
    的頭像 發表于 06-11 15:47 ?442次閱讀

    智慧大屏是如何實現數據可視化的?

    智慧大屏,作為數據可視化的重要載體,已在城市管理、交通監控、商業運營等領域廣泛應用。本文旨在闡述智慧大屏實現數據可視化的關鍵技術和方法,包括數據源管理、數據處理、視覺編碼、用戶界面與交互設計等。
    的頭像 發表于 06-04 15:02 ?720次閱讀
    智慧大屏是如何<b class='flag-5'>實現</b>數據<b class='flag-5'>可視化</b>的?

    大屏數據可視化的作用和意義

    大屏數據可視化是指利用大屏幕設備展示數據信息,通過圖表、圖像、動畫等視覺手段將數據呈現出來,以便用戶能夠直觀、清晰地理解數據背后的含義和關聯。在信息化時代,數據已經成為企業決策和運營的重要依托,而
    的頭像 發表于 06-03 17:56 ?821次閱讀

    智慧城市-可視化,進一步提高信息建設水平

    智能城市可視化是指整合各種城市信息資源,以地圖、虛擬現實等形式展示各種城市數據,更直觀地了解和管理城市的運行和發展。智能城市可視化主要通過地理信息系統(GIS)、實現大數據、虛擬現實等技術,呈現城市
    的頭像 發表于 05-22 16:49 ?522次閱讀

    FUXA基于Web的過程可視化軟件案例

    FUXA——基于Web的過程可視化軟件
    發表于 04-24 18:32 ?4次下載

    態勢數據可視化技術有哪些

    確,計算方法不實用,可視化效果不直觀等技術問題,設計并實現了基于地理信息系統,網絡拓撲圖,攻擊路徑等的安全態勢可視化分析系統方法, 通過可視化技術將安全態勢數據以多視圖,多角度,多層次
    的頭像 發表于 04-22 15:17 ?489次閱讀

    物聯網可視化監控大屏如何實現?有什么功能?

    在物聯網飛速發展的時代,可視化監控大屏成為了眾多企業和機構實現智能管理和監控的重要工具。它將各種各樣設備的運行狀態和數據以圖形、圖表、動畫等形式展示在大屏或其他移動設備上,使得用戶能夠直觀地了解
    的頭像 發表于 04-11 09:25 ?1035次閱讀
    主站蜘蛛池模板: 日日草夜夜草 | 在线观看精品国产福利片100 | 在线精品国产成人综合第一页 | 天天色天天操天天射 | 天天插天天搞 | 欧美性猛交xxxx黑人猛交 | 99国产国人青青视频在线观看 | 久久aa毛片免费播放嗯啊 | 一区二区三区www | 综合网激情五月 | 亚洲一区二区三区免费在线观看 | 国产精品护士 | 免费在线成人网 | 欧美一区二区三区不卡免费观看 | 天堂网资源 | 高清不卡日本v在线二区 | 亚洲色图在线观看视频 | 天天干天天色综合 | 欧美在线一区二区三区 | 五月天婷婷色图 | 国产在线理论片免费播放 | 992tv国产精品福利在线 | 亚洲高清一区二区三区四区 | 国产乱子伦| 四虎在线观看免费永久 | 午夜精品福利在线观看 | 国产精品久久久久久久久免费hd | 欧美福利片在线观看 | 国产视频日本 | 日本天天色| 欧美天天在线 | 精品乱人伦一区二区三区 | 拍拍拍拍拍拍拍无挡大全免费 | 国模于子涵啪啪大胆 | 毛片免费网 | 一级毛片无毒不卡直接观看 | 婷婷激情丁香 | 奇米777狠狠 | 精品99久久 | 2021精品国产综合久久 | 免费 的黄色 |