0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于花卉浇水指示器的实现过程

芯片开放社区 来源:芯片开放社区 作者:芯片开放社区 2022-12-12 13:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

开发者 张同学 通过外接湿度传感器,利用RVB2601处理湿度传感器送来的信号,用RVB2601点亮不同颜色的LED灯及OLED显示不同数量的横线表示花卉土壤的干湿度,完成了创意应用开发——花卉浇水指示器。

花卉浇水指示器的实现过程,请见本文详细介绍。

01项目背景

花儿人见人爱,很多人都喜欢养殖花卉,刚买来的花儿艳丽多姿,没过几天,花儿就蔫了。其中浇水是否恰当,是主要问题。

花卉是否缺水?花卉是否应该浇水了?花卉的浇水问题,对很多人来说是个难题。

02作品简介

2.1设置湿度传感器

当花卉土壤过于干燥时,RVB2601的红色LED点亮,同时OLED仅显示几根横线,提醒花卉需要浇水,参见下图1。

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

实测图1-红色灯亮

2.2此传感器与RVB2601相连

当花卉土壤干湿度恰当时,RVB2601的绿色LED点亮,同时OLED显示恰当数量的横线,表示花卉不需浇水或通风散湿,参见下图2。

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

实测图2-绿色灯亮

2.3RVB2601处理湿度传感器送来的信号

当花卉土壤过于潮湿时,RVB2601的蓝色LED点亮,同时OLED显示几乎满屏的横线,提醒花卉需要通风散湿,参见下图3。

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

实测图3-蓝色灯亮

4.4 用RVB2601点亮不同颜色的LED灯及OLED显示不同数量的横线表示花卉土壤的干湿度。

03系统框图

用“平头哥RISC-V RVB2601开发板”检测土壤湿度的办法:

  • 开发板读取土壤湿度传感器的模拟信号,经开发板ADC转换后变成数字信号,然后驱动开发板的LED及OLED;

  • 经筛选,选取下款湿度传感器,参见图4:

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

图4湿度传感器外形图

湿度传感器模块为双输出模式:数字量输出及模拟量输出,比较器采用LM393芯片,工作稳定,信号干净。设有固定螺栓孔,方便安装。

电路图参见图5:

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

图5电路图

04各部分功能说明和解析

4.1 土壤湿度传感器

参见图6:

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

图6土壤湿度传感器

4.2 土壤湿度信号放大处理模块

参见图7:

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

图7土壤湿度信号放大处理模块

4.3湿度处理、显示模块

即RVB2601,参见图8:

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

图8RVB2601

05作品源码和案例中处理的传感器数据

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
 //可见,本程序的ADC输入引脚是:PA3
 //PA3:J1:9-10脚,参见:
 //RVB2601开发板用户手册: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);
 //开启/关闭ADC连续采样模式,false->禁止
 //参见: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);//在串口调试助手中显示
  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传感器数据

实测的传感器数据如下:

(1)土壤极端干燥时的电压值:2.99V

根据多次试验,当电压值为:2 .26V时,土壤就比较干燥,此时的Data:2.26*4096/3300=2805。

(2)土壤湿度最适当时的电压值:1.50V

根据多次试验,当电压值为:0.65-2 .26V时,土壤湿度比较适当,此时的Data:0.65*4096/3300到2805即:807~2805。

(3)土壤极端过湿时的电压值:0.56V

根据多次试验,当电压值为:0.65V时,土壤就过湿,此时的Data:0.65*4096/3300=807

06视频演示

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

提取码:jkdf

07项目总结

花卉的浇水问题,对很多人来说是个难题。此款“花卉浇水指示器”将浇水问题,转化为土壤的干湿度问题,用传感器检测的数值,直观地指示花儿是否需要浇水,不需依仗经验,主观判断,值得推广。


审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OLED
    +关注

    关注

    121

    文章

    6332

    浏览量

    232539
  • 指示器
    +关注

    关注

    0

    文章

    256

    浏览量

    39167

原文标题:应用速递 | 智能浇花神器 养花种菜好帮手

文章出处:【微信号:芯片开放社区,微信公众号:芯片开放社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    光纤收发6个指示灯含义

    在工业通信、安防监控、企业组网等场景中, 光纤收发 作为光电转换的关键设备,广泛应用于千兆/百兆以太网的远距离传输。然而,当网络出现中断或不稳定时,很多用户面对设备上闪烁的指示灯却一头雾水。其实
    的头像 发表于 12-05 09:44 144次阅读
    光纤收发<b class='flag-5'>器</b>6个<b class='flag-5'>指示</b>灯含义

    采用汇编指示符来使用自定义指令

    具体实现 1、采用.word .half .dword等汇编指示符直接插入自定义指令,这种方法需要自己指定寄存。其中.word为插入一个字的数据即32位,.half为插入半字即16位
    发表于 10-28 06:02

    ‌基于ST EVLIOL4LSV1 IO-Link执行的工业物联网技术解析

    STMicroelectronics EVLIOL4LSV1 IO-Link执行设计用于工厂自动化和系统报警指示器应用中使用的传统塔式灯:它是一套完整的解决方案,可用作工业化的参考设计。通过IO-Link,EVLIOL4LSV1成为智能塔式灯的执行
    的头像 发表于 10-17 15:25 286次阅读
    ‌基于ST EVLIOL4LSV1 IO-Link执行<b class='flag-5'>器</b>的工业物联网技术解析

    TPS563212同步降压转换技术解析与应用指南

    的电源正常状态指示器或外部软启动。通过正确配置使能引脚、电源正常状态指示器或外部软启动可以实现电源时序控制。4.2V至18V的宽输入电压范围支持12V和15V等各种常见的输入电压轨。其输出电压为0.6V至7V,支持高达3A的持续
    的头像 发表于 09-26 10:22 387次阅读
    TPS563212同步降压转换<b class='flag-5'>器</b>技术解析与应用指南

    TPS563211同步降压转换技术解析与应用指南

    导通模式)工作模式。此外,还可通过MODE引脚配置可选的电源良好指示器或外部软启动。TPS563211可通过正确配置使能、电源良好指示器或外部软启动来实现电源排序。4.2V至18V宽输入电压范围支持各种公共输入轨,例如12V和1
    的头像 发表于 09-26 09:47 353次阅读
    TPS563211同步降压转换<b class='flag-5'>器</b>技术解析与应用指南

    TPS562212同步降压转换技术解析与应用指南

    软启动。通过正确配置使能引脚、电源正常状态指示器或外部软启动可以实现电源时序控制。4.2V至18V的宽输入电压范围支持12V和15V等各种常见的输入电压轨。其输出电压为0.6V至7V,支持高达2A的持续输出电流。
    的头像 发表于 09-26 09:37 346次阅读
    TPS562212同步降压转换<b class='flag-5'>器</b>技术解析与应用指南

    德州仪器UCC256404技术方案 使用数字控制在次级侧实现LLC电流模式控制

    欢迎来到 德州仪器的 电源设计小贴士 Power Tips 系列文章   本期,我们将介绍 LLC 电流模式控制 的详细知识   电流模式控制 LLC 注意事项 如图 1 所示, 指示器 - 指示器
    的头像 发表于 08-14 10:50 3724次阅读
    德州仪器UCC256404技术方案  使用数字控制<b class='flag-5'>器</b>在次级侧<b class='flag-5'>实现</b>LLC电流模式控制

    TPS563211 4.2V 至 18V、3A、同步降压转换,精度为 1%,PG/SS 和 PFM/强制 PWM数据手册

    TPS563211 是一款经济高效且高度灵活的同步降压转换,可提供可选的 Eco 模式作或 FCCM(强制连续导通模式)作。可选的 Power-Good 指示器或外部软启动也可以通过 MODE
    的头像 发表于 06-09 17:30 635次阅读
    TPS563211 4.2V 至 18V、3A、同步降压转换<b class='flag-5'>器</b>,精度为 1%,PG/SS 和 PFM/强制 PWM数据手册

    TPS562211 4.2V 至 18V、2A、同步降压转换,精度为 1%,PG/SS 和 PFM/强制 PWM数据手册

    TPS562211 是一款经济高效且高度灵活的同步降压转换,可提供可选的 Eco 模式作或 FCCM(强制连续导通模式)作。可选的 Power-Good 指示器或外部软启动也可以通过 MODE
    的头像 发表于 06-09 17:03 572次阅读
    TPS562211 4.2V 至 18V、2A、同步降压转换<b class='flag-5'>器</b>,精度为 1%,PG/SS 和 PFM/强制 PWM数据手册

    TPS563212 具有节能模式和可选 FCCM 的 4.2V 至 18V、3A、1.2MHz 同步降压转换数据手册

    TPS563212 是一款经济高效且高度灵活的同步降压转换,可提供可选的 Eco 模式作或 FCCM(强制连续导通模式)作。可选的电源正常指示器或外部软启动也可以通过 MODE 引脚进行配置。通过
    的头像 发表于 06-09 15:28 585次阅读
    TPS563212 具有节能模式和可选 FCCM 的 4.2V 至 18V、3A、1.2MHz 同步降压转换<b class='flag-5'>器</b>数据手册

    TPS562212 具有节能模式和可选 FCCM 的 4.2V 至 18V、2A、1.2MHz 同步降压转换数据手册

    TPS562212 是一款经济高效且高度灵活的同步降压转换,可提供可选的 Eco 模式作或 FCCM(强制连续导通模式)作。可选的电源正常指示器或外部软启动也可以通过 MODE 引脚进行配置。通过
    的头像 发表于 06-09 14:38 565次阅读
    TPS562212 具有节能模式和可选 FCCM 的 4.2V 至 18V、2A、1.2MHz 同步降压转换<b class='flag-5'>器</b>数据手册

    Profinet转Ethernet IP主站网关:点燃氢醌生产线的智慧之光!

    案例分享:转角指示器和Profinet转EthernetIP网关的应用 在现代工业自动化中,设备和系统之间的高效通信至关重要。最近,我们在某大型化工企业的生产线上实施了一个项目,旨在通过先进的设备
    的头像 发表于 05-19 14:10 351次阅读
    Profinet转Ethernet IP主站网关:点燃氢醌生产线的智慧之光!

    超级电容在故障指示器中的作用有哪些?

    超级电容在故障指示器中的作用有哪些?安装在输配电线路、电力电缆及开关柜进出线上的故障指示器在电流流通的线路中起着非常重要的作用,一旦线路发生故障,巡线人员可以利用指示灯的报警显示快速的确定故障出现
    的头像 发表于 05-16 08:41 465次阅读
    超级电容在故障<b class='flag-5'>指示器</b>中的作用有哪些?

    LORA数采网关在花卉大棚小气候监测的功能应用

    LORA数采网关在花卉大棚小气候监测中具有重要的功能应用,以下是其具体介绍: 数据采集与传输 环境参数采集:LORA数采网关可以连接多种传感,如温湿度传感、光照传感、二氧化碳传感
    的头像 发表于 03-18 13:48 702次阅读

    一摇、二遥型配网自动化终端原理和功能介绍

    一摇二遥型配网自动化终端是配套电缆型故障指示器使用的。通信终端能够与指示器通过光纤通信,接收指示器传输的遥信(故障信息)、遥测(负荷电流)信息进行分析、编译;可以实时监测24路开关节点状态,并生成相应的遥信变位信息及SOE信息;
    的头像 发表于 02-11 15:51 1103次阅读
    一摇、二遥型配网自动化终端原理和功能介绍