99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

3天內不再提示

如何實現(xiàn)植物生長可視化

454398 ? 來源:wv ? 2019-09-05 11:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第1步:簡介

什么是APEX?

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

它是如何運作的?

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

但為什么?

為什么不呢?

第2步:收集零件和工具

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

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

零件清單:

Arduino Uno

8x8 LED顯示屏

電容式觸摸傳感器

濕度傳感器

9V電池連接器

9V電池

工具列表:

22 Gauge Wire

電工膠帶

剝線鉗

焊接熨斗

拆焊泵

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

第3步:安裝Arduino IDE

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

1。訪問Arduino網(wǎng)站

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

第3。單擊操作系統(tǒng)的下載鏈接

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

的 4。在Windows上安裝

雙擊下載的文件進行運行

點擊“同意“同意許可

按照提示的其余部分

現(xiàn)在應該安裝該程序!

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

5。在Mac上安裝

單擊下載的文件

選擇“打開”

程序將自動安裝并運行!

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

6。就是這樣!

你已經(jīng)完成了!您現(xiàn)在已將Arduino IDE下載到您的系統(tǒng)中!

第4步:代碼

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

簡要概述

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

The Nitty Gritty

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

此程序分為五個部分:

包括庫和創(chuàng)建變量

設置功能

面部表情的功能

在矩陣函數(shù)上寫Arduino

循環(huán)函數(shù)

包括庫和創(chuàng)建變量:

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

#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顯示器發(fā)送值。下一行是一個define語句,用于將觸摸傳感器的引腳設置為7.之后,我們還有三個變量,用于定義LED顯示屏的引腳,濕度傳感器及其值。最后三行是所有布爾值,用于調節(jié)觸摸按鈕和顯示屏的狀態(tài)。在此之后,我們有字節(jié)值:

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的所有面。每個字節(jié)是一個數(shù)組,其中包含多個位,用于指示給定行中每個像素的狀態(tài)。 “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]);

}

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

WriteArduinoOnMatrix功能:

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

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();

}

}

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

循環(huán)函數(shù):

最后但并非最不重要的是循環(huán)函數(shù)。這段代碼正是它的名字所說的,它循環(huán)!雖然這個函數(shù)有很多行,但它實際上相當簡單。代碼首先讀取按鈕狀態(tài)并查看顯示是否為“On”。如果它發(fā)現(xiàn)這是真的,它將調用 WriteArduinoOnMatrix 函數(shù),然后在APEX上繪制一個面。由于此函數(shù)循環(huán),它將根據(jù)需要隨時更新顯示。此延遲由 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;

}

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

將代碼推送到Arduino

現(xiàn)在我們已經(jīng)涵蓋了所有代碼,是時候把它推到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電池對它進行了測試,然后一旦我知道它有效,就將電池放在背面并將其粘貼在上面。就像我之前說過的那樣,檢查這個步驟的視頻,它有一個很好的小焊接部分,它可以幫助你正確地包裹電線。如果迷路,請隨意暫停或以半速播放。

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

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

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

    關注

    2566

    文章

    53008

    瀏覽量

    767574
  • Arduino
    +關注

    關注

    190

    文章

    6498

    瀏覽量

    192207
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    LED植物生長燈的原理是什么

    LED植物生長燈基于植物光合作用對特定光譜的需求,通過人工光源精準調控光質、光強和光周期,優(yōu)化植物生長。其核心原理是利用LED芯片對光譜進行
    的頭像 發(fā)表于 06-30 17:23 ?257次閱讀
    LED<b class='flag-5'>植物</b><b class='flag-5'>生長</b>燈的原理是什么

    如何實現(xiàn)光伏數(shù)字孿生可視化?

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

    VirtualLab Fusion應用:3D系統(tǒng)可視化

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

    可視化組態(tài)物聯(lián)網(wǎng)平臺是什么

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

    VirtualLab Fusion中的可視化設置

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

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

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

    七款經(jīng)久不衰的數(shù)據(jù)可視化工具!

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

    光學系統(tǒng)的3D可視化

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

    什么是大屏數(shù)據(jù)可視化?特點有哪些?

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

    如何找到適合的大屏數(shù)據(jù)可視化系統(tǒng)

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

    智慧能源可視化監(jiān)管平臺——助力可視化能源數(shù)據(jù)管理

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

    智慧樓宇可視化的優(yōu)點

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

    工業(yè)數(shù)據(jù)可視化管理平臺是什么

    數(shù)據(jù)可視化管理平臺應運而生,它以其獨特的功能和優(yōu)勢,正在成為工業(yè)數(shù)字轉型的重要工具。 工業(yè)數(shù)據(jù)可視化管理平臺的定義 工業(yè)數(shù)據(jù)可視化管理平臺是一種集成了數(shù)據(jù)采集、處理、分析和展示功能的
    的頭像 發(fā)表于 08-28 14:21 ?640次閱讀

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

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