在线观看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單元!

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

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

    關注

    2564

    文章

    52722

    瀏覽量

    764702
  • Arduino
    +關注

    關注

    189

    文章

    6494

    瀏覽量

    190324
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何實現光伏數字孿生可視化

    光伏數字孿生可視化是通過數字手段構建光伏電站的虛擬鏡像,實現物理實體與數字模型的實時映射與交互,目的是促進光伏電站運維管理的智能、高效
    的頭像 發表于 05-29 15:27 ?167次閱讀
    如何<b class='flag-5'>實現</b>光伏數字孿生<b class='flag-5'>可視化</b>?

    VirtualLab Fusion應用:3D系統可視化

    描述和F-Theta透鏡的應用示例。 光學系統的3D-可視化 VirtualLab Fusion提供的工具可以實現光學系統的3D可視化,因此可以用于檢查元件的位置,以及快速了解系統內部的光傳播情況
    發表于 04-30 08:47

    可視化組態物聯網平臺是什么

    可視化組態物聯網平臺是物聯網技術與組態技術相結合的產物,是通過提供豐富的圖形組件和可視化元素,讓用戶能夠以直觀、便捷的方式對物聯網數據進行監控、分析和管理的平臺。以下是其具體介紹: 定義 組態
    的頭像 發表于 04-21 10:40 ?230次閱讀

    可視化數據大屏:連線構建視覺新秩序 #數據可視化 #可視化大屏

    可視化
    阿梨是蘋果
    發布于 :2025年03月18日 16:12:04

    VirtualLab Fusion中的可視化設置

    摘要 VirtualLab Fusion中的全局選項對話框可以輕松定制軟件的外觀和感覺。還可以保存和加載全局選項文件,以便可以輕松地將偏好設置從一個設備轉移到另一個設備。本文檔說明了與可視化和結果
    發表于 02-25 08:51

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

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

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

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

    光學系統的3D可視化

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

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

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

    如何找到適合的大屏數據可視化系統

    選擇合適的大屏數據可視化系統是企業或組織在數字轉型過程中至關重要的一步。一個優秀的大屏數據可視化系統能夠實時呈現關鍵業務數據,提升決策效率,同時提供直觀、易于理解的視覺呈現,助力企業洞察數據背后
    的頭像 發表于 12-13 15:47 ?435次閱讀

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

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

    智慧樓宇可視化的優點

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

    智慧地鐵站可視化建設的意義

    地鐵站 可視化建設的意義、關鍵技術和應用場景。 智慧地鐵站可視化的意義 智慧地鐵站可視化建設是指通過信息技術、物聯網技術和大數據分析等手段,實現地鐵站內設備、乘客流動、安全狀況等各類數
    的頭像 發表于 07-26 14:16 ?439次閱讀

    如何實現三維地圖可視化交互系統

    三維地圖可視化 交互系統是一種基于三維地圖技術的交互式應用程序,可以呈現地理信息和空間數據的立體展示,并提供用戶友好的交互功能。以下是古河云科技關于三維地圖可視化交互系統的主要特點和應用價值
    的頭像 發表于 07-19 18:20 ?2074次閱讀

    大屏數據可視化 開源

    可以使信息一目了然,還能幫助用戶深入分析數據,發現潛在的規律和洞察。以下是古河云科技實現大屏數據可視化的關鍵步驟。 1.確定需求和目標 確定大屏數據可視化的具體需求和目標,包括展示內容、受眾群體、交互方式等。 2.數據收集
    的頭像 發表于 06-27 16:06 ?690次閱讀
    大屏數據<b class='flag-5'>可視化</b> 開源
    主站蜘蛛池模板: 亚洲欧美天堂网 | 亚洲免费视频一区 | 日本不卡免费高清一级视频 | 国产精品午夜免费观看网站 | 国产尤物在线视频 | 伊人成年综合网 | 狠狠色狠色综合曰曰 | 视频在线观看免费网址 | 欧美色天使 | 国产精品一区在线播放 | 国产精品久久久香蕉 | 亚洲成a人片在线观看中 | 午夜啪啪片 | 高清视频 一区二区三区四区 | 操日韩美女 | 你懂得福利| 久久久久久人精品免费费看 | 亚洲天堂成人网 | 亚欧精品一区二区三区 | 国产精品久久久久影院色老大 | 好色999| h小视频在线观看网 | 成年看片免费高清观看 | 成年香蕉大黄美女美女 | 三级黄色在线 | 黄色小视频免费 | 天天操夜夜夜 | 国产伦精品一区二区三区免 | 色噜噜狠狠网站 | 免费福利影院 | 久久国产乱子伦精品免 | 激情综合站| 欧美性幼 | 夜夜夜夜曰天天天天拍国产 | 国产福利小视频在线观看 | 黄色国产在线观看 | 中文字幕欧美日韩 | 在线三级网| h视频欧美 | 国产精品理论 | 久色中文 |