0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于花卉澆水指示器的實(shí)現(xiàn)過(guò)程

芯片開(kāi)放社區(qū) ? 來(lái)源:芯片開(kāi)放社區(qū) ? 作者:芯片開(kāi)放社區(qū) ? 2022-12-12 13:47 ? 次閱讀

開(kāi)發(fā)者 張同學(xué) 通過(guò)外接濕度傳感器,利用RVB2601處理濕度傳感器送來(lái)的信號(hào),用RVB2601點(diǎn)亮不同顏色的LED燈及OLED顯示不同數(shù)量的橫線表示花卉土壤的干濕度,完成了創(chuàng)意應(yīng)用開(kāi)發(fā)——花卉澆水指示器。

關(guān)花卉澆水指示器的實(shí)現(xiàn)過(guò)程,請(qǐng)見(jiàn)本文詳細(xì)介紹。

01項(xiàng)目背景

花兒人見(jiàn)人愛(ài),很多人都喜歡養(yǎng)殖花卉,剛買來(lái)的花兒艷麗多姿,沒(méi)過(guò)幾天,花兒就蔫了。其中澆水是否恰當(dāng),是主要問(wèn)題。

花卉是否缺水?花卉是否應(yīng)該澆水了?花卉的澆水問(wèn)題,對(duì)很多人來(lái)說(shuō)是個(gè)難題。

02作品簡(jiǎn)介

2.1設(shè)置濕度傳感器

當(dāng)花卉土壤過(guò)于干燥時(shí),RVB2601的紅色LED點(diǎn)亮,同時(shí)OLED僅顯示幾根橫線,提醒花卉需要澆水,參見(jiàn)下圖1。

4ff96526-79db-11ed-8abf-dac502259ad0.png

實(shí)測(cè)圖1-紅色燈亮

2.2此傳感器與RVB2601相連

當(dāng)花卉土壤干濕度恰當(dāng)時(shí),RVB2601的綠色LED點(diǎn)亮,同時(shí)OLED顯示恰當(dāng)數(shù)量的橫線,表示花卉不需澆水或通風(fēng)散濕,參見(jiàn)下圖2。

503ecc6a-79db-11ed-8abf-dac502259ad0.png

實(shí)測(cè)圖2-綠色燈亮

2.3RVB2601處理濕度傳感器送來(lái)的信號(hào)

當(dāng)花卉土壤過(guò)于潮濕時(shí),RVB2601的藍(lán)色LED點(diǎn)亮,同時(shí)OLED顯示幾乎滿屏的橫線,提醒花卉需要通風(fēng)散濕,參見(jiàn)下圖3。

50c27f38-79db-11ed-8abf-dac502259ad0.png

實(shí)測(cè)圖3-藍(lán)色燈亮

4.4 用RVB2601點(diǎn)亮不同顏色的LED燈及OLED顯示不同數(shù)量的橫線表示花卉土壤的干濕度。

03系統(tǒng)框圖

用“平頭哥RISC-V RVB2601開(kāi)發(fā)板”檢測(cè)土壤濕度的辦法:

  • 開(kāi)發(fā)板讀取土壤濕度傳感器的模擬信號(hào),經(jīng)開(kāi)發(fā)板ADC轉(zhuǎn)換后變成數(shù)字信號(hào),然后驅(qū)動(dòng)開(kāi)發(fā)板的LED及OLED;

  • 經(jīng)篩選,選取下款濕度傳感器,參見(jiàn)圖4:

512b7ede-79db-11ed-8abf-dac502259ad0.jpg

圖4濕度傳感器外形圖

濕度傳感器模塊為雙輸出模式:數(shù)字量輸出及模擬量輸出,比較器采用LM393芯片,工作穩(wěn)定,信號(hào)干凈。設(shè)有固定螺栓孔,方便安裝。

電路圖參見(jiàn)圖5:

51500df8-79db-11ed-8abf-dac502259ad0.jpg

圖5電路圖

04各部分功能說(shuō)明和解析

4.1 土壤濕度傳感器

參見(jiàn)圖6:

51776970-79db-11ed-8abf-dac502259ad0.png

圖6土壤濕度傳感器

4.2 土壤濕度信號(hào)放大處理模塊

參見(jiàn)圖7:

519dc3e0-79db-11ed-8abf-dac502259ad0.png

圖7土壤濕度信號(hào)放大處理模塊

4.3濕度處理、顯示模塊

即RVB2601,參見(jiàn)圖8:

51c2e13e-79db-11ed-8abf-dac502259ad0.png

圖8RVB2601

05作品源碼和案例中處理的傳感器數(shù)據(jù)

5.1作品源碼

#define _DEFAULT_SOURCE /* needed for usleep() */
#include 
#include 
#include 
#include 
#include 
#include "aos/cli.h"

#include "app_config.h"
#include "app_init.h"
#include "csi_config.h"
#include "hw_config.h"
#include "csi_config.h"

#include "lvgl.h"
#include "lv_label.h"
#include "oled.h"

#include "board_config.h"
#include "drv/gpio_pin.h"
#include 
#include 


#include 
#include 


#define TAG "APP"


/**************************oled*****************************/
extern void oled_draw_point(uint8_t r, uint8_t c, uint8_t t);
extern void Fill_RAM(unsigned char Data); 
extern void oled_reflesh();
/**************************************************************/



/*******************************led****************************/
csi_gpio_pin_t MY_PIN_LED_RED;
csi_gpio_pin_t MY_PIN_LED_GREEN;
csi_gpio_pin_t MY_PIN_LED_BLUE; 
/*************************************************************/

#define ADC_CHECK_RETURN(ret)
do 
 { 
 if (ret != CSI_OK) 
 return -1; 
 } 
while(0); 
 

static csi_adc_t adc;

int main(void)
{
 char j,k;
 int ret;
 uint32_t data;
 
 int x0,x1,y0,y1;
 //uint8_t p1[128][64];
  /********************************light led*****************************/
 board_yoc_init();
 LOGD(TAG, "board_yoc_init() completed!
");
 aos_msleep(1000); //by me
 oled_init();
 
 //PA4 - BLUE PA7-REDPA25 GREEN
 csi_pin_set_mux(PA4, PIN_FUNC_GPIO);
 csi_pin_set_mux(PA7, PIN_FUNC_GPIO);
 csi_pin_set_mux(PA25, PIN_FUNC_GPIO);
 
 csi_gpio_pin_init(&MY_PIN_LED_BLUE, PA4);
 csi_gpio_pin_init(&MY_PIN_LED_RED, PA7);
 csi_gpio_pin_init(&MY_PIN_LED_GREEN, PA25);
 
 csi_gpio_pin_dir(&MY_PIN_LED_GREEN, GPIO_DIRECTION_OUTPUT);
 csi_gpio_pin_dir(&MY_PIN_LED_RED, GPIO_DIRECTION_OUTPUT);
 csi_gpio_pin_dir(&MY_PIN_LED_BLUE, GPIO_DIRECTION_OUTPUT);
 
 csi_gpio_pin_write(&MY_PIN_LED_BLUE, GPIO_PIN_HIGH);
 csi_gpio_pin_write(&MY_PIN_LED_RED, GPIO_PIN_HIGH);
 csi_gpio_pin_write(&MY_PIN_LED_GREEN, GPIO_PIN_HIGH);
/***************************************************************************/
 
 /***********************************ADC******************************/
 csi_pin_set_mux(EXAMPLE_ADC_CHANNEL0_PIN, EXAMPLE_ADC_CHANNEL0_PIN_FUNC);
 //editfind in filesfind in files 搜索“EXAMPLE_ADC_CHANNEL0_PIN”可得:
//g:C-SkyCDKCSKYPACKch2601_evbv7.4.3includeoard_config.h有此字段:
 //#define EXAMPLE_ADC_CHANNEL0_PIN  EXAMPLE_ADC_CH0,再搜索:
 //EXAMPLE_ADC_CH0,可得:#define EXAMPLE_ADC_CH0 PA3、P18
 //可見(jiàn),本程序的ADC輸入引腳是:PA3
 //PA3:J1:9-10腳,參見(jiàn):
 //RVB2601開(kāi)發(fā)板用戶手冊(cè):37067137319852441601615475227781dm4cDSePeY-音頻DAC、音頻ADC.pdf P8/19
 
 ret = csi_adc_init(&adc, 0);
 ADC_CHECK_RETURN(ret);
  csi_adc_continue_mode(&adc, true);
 ADC_CHECK_RETURN(ret);
 //開(kāi)啟/關(guān)閉ADC連續(xù)采樣模式,false->禁止
 //參見(jiàn):ADC · GitBook.pdf
 
 ret = csi_adc_freq_div(&adc, 128);
 if(ret == 0){
 return -1;
 }
 
 /* Configure sampling time */
 ret = csi_adc_sampling_time(&adc, 2);
 ADC_CHECK_RETURN(ret);

 /* Enable channel */
 ret = csi_adc_channel_enable(&adc, 0, true);
 ADC_CHECK_RETURN(ret);

 /* Trigger new conversion */
 ret = csi_adc_start(&adc);
 ADC_CHECK_RETURN(ret);
 
// LOGD(TAG, "%s ,ADC INITED!
", aos_get_app_version());

 while(1) 
 {
  /* Read result */
 data = csi_adc_read(&adc);
 printf("get adc result: %d
", data);//在串口調(diào)試助手中顯示
  printf("the voltage is: %d mV
", data*3300/4096);
 aos_msleep(500);
 /***********************************************************end of ADC************************/
 
 
 /*************************************OLED***********************/
  x0=50;
  x1=80;
  y0=63;
 y1=(4096-data)/3.3/20; 
  for(j=y0;j>y0-y1;j--)
 {
  Fill_RAM(0x00);
  for(k=x0;k2800)
  {
 csi_gpio_pin_write(&MY_PIN_LED_RED, GPIO_PIN_LOW);
 //aos_msleep(2000);
 //acsi_gpio_pin_write(&MY_PIN_LED_RED, GPIO_PIN_HIGH);
  }
  
  if(data<800)
????????? ??? {
????????? ???? csi_gpio_pin_write(&MY_PIN_LED_BLUE, GPIO_PIN_LOW);
????????? ???? //aos_msleep(2000);
???? ???????? //csi_gpio_pin_write(&MY_PIN_LED_BLUE, GPIO_PIN_HIGH);????  
????????? ??? }
????????? ????? ? ?
???????if((data>=800)&&(data<=2800))
????????? ?? {
?????????????? ?csi_gpio_pin_write(&MY_PIN_LED_GREEN, GPIO_PIN_LOW);  
????????? ???? //aos_msleep(2000);
????????? ????//csi_gpio_pin_write(&MY_PIN_LED_GREEN, GPIO_PIN_HIGH);?? 
???? ???? ??? }
????????? /********************************END OF LED***************************/???? 
????????? 
????????? aos_msleep(5000);
????????? Fill_RAM(0x00);
????????? oled_reflesh();
????? }
???? 
???? csi_adc_uninit(&adc);
???? printf("csi_adc_uninited.
");
???? return 0;
}

5.2傳感器數(shù)據(jù)

實(shí)測(cè)的傳感器數(shù)據(jù)如下:

(1)土壤極端干燥時(shí)的電壓值:2.99V

根據(jù)多次試驗(yàn),當(dāng)電壓值為:2 .26V時(shí),土壤就比較干燥,此時(shí)的Data:2.26*4096/3300=2805。

(2)土壤濕度最適當(dāng)時(shí)的電壓值:1.50V

根據(jù)多次試驗(yàn),當(dāng)電壓值為:0.65-2 .26V時(shí),土壤濕度比較適當(dāng),此時(shí)的Data:0.65*4096/3300到2805即:807~2805。

(3)土壤極端過(guò)濕時(shí)的電壓值:0.56V

根據(jù)多次試驗(yàn),當(dāng)電壓值為:0.65V時(shí),土壤就過(guò)濕,此時(shí)的Data:0.65*4096/3300=807

06視頻演示

https://pan.baidu.com/s/14e7PXorkclUSF74BCm4Bzw

提取碼:jkdf

07項(xiàng)目總結(jié)

花卉的澆水問(wèn)題,對(duì)很多人來(lái)說(shuō)是個(gè)難題。此款“花卉澆水指示器”將澆水問(wèn)題,轉(zhuǎn)化為土壤的干濕度問(wèn)題,用傳感器檢測(cè)的數(shù)值,直觀地指示花兒是否需要澆水,不需依仗經(jīng)驗(yàn),主觀判斷,值得推廣。


審核編輯 :李倩


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

    關(guān)注

    119

    文章

    6273

    瀏覽量

    227304
  • 指示器
    +關(guān)注

    關(guān)注

    0

    文章

    255

    瀏覽量

    38703

原文標(biāo)題:應(yīng)用速遞 | 智能澆花神器 養(yǎng)花種菜好幫手

文章出處:【微信號(hào):芯片開(kāi)放社區(qū),微信公眾號(hào):芯片開(kāi)放社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    超級(jí)電容在故障指示器中的作用有哪些?

    超級(jí)電容在故障指示器中的作用有哪些?安裝在輸配電線路、電力電纜及開(kāi)關(guān)柜進(jìn)出線上的故障指示器在電流流通的線路中起著非常重要的作用,一旦線路發(fā)生故障,巡線人員可以利用指示燈的報(bào)警顯示快速的確定故障出現(xiàn)
    的頭像 發(fā)表于 05-16 08:41 ?121次閱讀
    超級(jí)電容在故障<b class='flag-5'>指示器</b>中的作用有哪些?

    LORA數(shù)采網(wǎng)關(guān)在花卉大棚小氣候監(jiān)測(cè)的功能應(yīng)用

    LORA數(shù)采網(wǎng)關(guān)在花卉大棚小氣候監(jiān)測(cè)中具有重要的功能應(yīng)用,以下是其具體介紹: 數(shù)據(jù)采集與傳輸 環(huán)境參數(shù)采集:LORA數(shù)采網(wǎng)關(guān)可以連接多種傳感,如溫濕度傳感、光照傳感、二氧化碳傳感
    的頭像 發(fā)表于 03-18 13:48 ?274次閱讀

    一搖、二遙型配網(wǎng)自動(dòng)化終端原理和功能介紹

    一搖二遙型配網(wǎng)自動(dòng)化終端是配套電纜型故障指示器使用的。通信終端能夠與指示器通過(guò)光纖通信,接收指示器傳輸?shù)倪b信(故障信息)、遙測(cè)(負(fù)荷電流)信息進(jìn)行分析、編譯;可以實(shí)時(shí)監(jiān)測(cè)24路開(kāi)關(guān)節(jié)點(diǎn)狀態(tài),并生成相應(yīng)的遙信變位信息及SOE信息;
    的頭像 發(fā)表于 02-11 15:51 ?494次閱讀
    一搖、二遙型配網(wǎng)自動(dòng)化終端原理和功能介紹

    淺談架空暫態(tài)特征型遠(yuǎn)傳故障指示器

    ,無(wú)法將故障信息實(shí)時(shí)上傳至遠(yuǎn)程監(jiān)控中心,給故障排查和修復(fù)帶來(lái)了不便。為了解決這個(gè)問(wèn)題,鼎信智慧科技推出了架空暫態(tài)特征型遠(yuǎn)傳故障指示器,該指示器集線路負(fù)荷監(jiān)測(cè)、短路故障及接地故障指示功能于一體,能夠
    的頭像 發(fā)表于 12-04 16:35 ?550次閱讀

    花卉智能灌溉控制系統(tǒng)功能應(yīng)用

    。 一、工作原理 花卉智能灌溉控制系統(tǒng),基于物聯(lián)網(wǎng)、傳感技術(shù)、云計(jì)算及大數(shù)據(jù)分析等技術(shù)構(gòu)建而成。通過(guò)部署于花卉種植區(qū)域的各類傳感,實(shí)時(shí)監(jiān)測(cè)土壤濕度、溫度、光照強(qiáng)度等關(guān)鍵環(huán)境參數(shù)。數(shù)
    的頭像 發(fā)表于 11-19 17:04 ?650次閱讀

    線路故障指示器為什么變成紅色

    線路故障指示器變成紅色,通常是因?yàn)闄z測(cè)到了線路中的特定電氣量變化,這些變化與線路故障緊密相關(guān)。具體來(lái)說(shuō),以下是一些導(dǎo)致線路故障指示器變紅的主要原因: 1. 短路或接地故障 短路故障 :當(dāng)線路中發(fā)
    的頭像 發(fā)表于 09-24 11:04 ?1009次閱讀

    線路故障指示器如何復(fù)位

    線路故障指示器是一種用于監(jiān)測(cè)電力線路故障的設(shè)備,它可以幫助電力維護(hù)人員快速定位故障點(diǎn),從而提高故障處理的效率。復(fù)位線路故障指示器是故障處理過(guò)程中的一個(gè)重要步驟,確保設(shè)備能夠恢復(fù)正常工作狀態(tài)。以下
    的頭像 發(fā)表于 09-24 11:01 ?876次閱讀

    線路故障指示器工作原理是什么

    線路故障指示器是一種用于檢測(cè)和定位電力系統(tǒng)中故障的設(shè)備,它能夠幫助電力維護(hù)人員快速準(zhǔn)確地找到故障點(diǎn),從而提高電力系統(tǒng)的可靠性和安全性。 線路故障指示器的工作原理概述 1. 基本概念 線路故障指示器
    的頭像 發(fā)表于 09-24 10:54 ?3101次閱讀

    線路故障指示器怎么判斷故障點(diǎn)

    線路故障指示器在判斷故障點(diǎn)時(shí),主要通過(guò)檢測(cè)線路中的電氣量變化來(lái)實(shí)現(xiàn)。以下是一些具體的判斷方法和步驟: 一、工作原理 線路故障指示器一般具備電流采集、電場(chǎng)測(cè)量和無(wú)線通信功能。當(dāng)線路出現(xiàn)短路或接地故障
    的頭像 發(fā)表于 09-24 10:52 ?1959次閱讀

    求助,While循環(huán)和事件結(jié)構(gòu)問(wèn)題,內(nèi)有程序文件

    *附件:測(cè)試.zip大家好,我設(shè)計(jì)了一個(gè)可以實(shí)現(xiàn)控制While循環(huán)的程序,如圖 當(dāng)開(kāi)關(guān)打開(kāi)時(shí)While循環(huán)啟動(dòng),Add按鈕按一下指示器就加1,當(dāng)開(kāi)關(guān)關(guān)閉時(shí)While循環(huán)停止,Add按鈕無(wú)效。 有個(gè)
    發(fā)表于 09-20 15:45

    在現(xiàn)代系統(tǒng)設(shè)計(jì)中啟用LED和LCD指示器應(yīng)用簡(jiǎn)介

    電子發(fā)燒友網(wǎng)站提供《在現(xiàn)代系統(tǒng)設(shè)計(jì)中啟用LED和LCD指示器應(yīng)用簡(jiǎn)介.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 09:22 ?0次下載
    在現(xiàn)代系統(tǒng)設(shè)計(jì)中啟用LED和LCD<b class='flag-5'>指示器</b>應(yīng)用簡(jiǎn)介

    使用電源正常狀態(tài)指示器實(shí)現(xiàn)輸出放電功能

    電子發(fā)燒友網(wǎng)站提供《使用電源正常狀態(tài)指示器實(shí)現(xiàn)輸出放電功能.pdf》資料免費(fèi)下載
    發(fā)表于 08-29 09:45 ?0次下載
    使用電源正常狀態(tài)<b class='flag-5'>指示器</b><b class='flag-5'>實(shí)現(xiàn)</b>輸出放電功能

    L60系列0.230英寸(5.9毫米)防水面板安裝指示器

    電子發(fā)燒友網(wǎng)站提供《L60系列0.230英寸(5.9毫米)防水面板安裝指示器.pdf》資料免費(fèi)下載
    發(fā)表于 07-24 12:26 ?0次下載

    利用Arduino的數(shù)字水位指示器電路設(shè)計(jì)

    隨著科技的不斷發(fā)展,數(shù)字化技術(shù)在各個(gè)領(lǐng)域的應(yīng)用越來(lái)越廣泛。在液位監(jiān)測(cè)領(lǐng)域,數(shù)字水位指示器作為一種先進(jìn)的監(jiān)測(cè)設(shè)備,因其高精度、高可靠性和智能化等特點(diǎn),受到了廣泛的關(guān)注和應(yīng)用。
    的頭像 發(fā)表于 06-22 17:48 ?1477次閱讀
    利用Arduino的數(shù)字水位<b class='flag-5'>指示器</b>電路設(shè)計(jì)

    VL53L8CX TOF開(kāi)發(fā)(4)----運(yùn)動(dòng)指示器

    VL53L8CX傳感內(nèi)置了一個(gè)固件功能,可以檢測(cè)場(chǎng)景中的運(yùn)動(dòng)。這個(gè)運(yùn)動(dòng)指示器是基于連續(xù)幀之間來(lái)計(jì)算的。使用插件vl53l8cx_plugin_motion_indicator可以使用這個(gè)選項(xiàng)
    的頭像 發(fā)表于 06-19 10:43 ?1849次閱讀
    VL53L8CX TOF開(kāi)發(fā)(4)----運(yùn)動(dòng)<b class='flag-5'>指示器</b>

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品