找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3336|回复: 1
打印 上一主题 下一主题
收起左侧

关于MSP430实现智能花盆实现技术

[复制链接]
跳转到指定楼层
楼主
ID:303528 发表于 2018-4-8 10:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

智能花盆设计和实现的概述

摘  要:如今白领一族为了缓解压力会在办公室,家庭中放置多肉盆栽,但是工作繁忙不能经常打理,盆栽会长势不良甚至枯萎死亡。为了避免盆栽的死亡,本文章提出一种智能多肉植物养护系统设计和实现,以MSP430单片机为核心,检测和植物生长的温湿度、光照和土壤湿度等环境参数。根据检测数据和预设值对比,判断缺少或者饱和来传递给430单片机以此控制自动实现浇水、补光和通风等功能。

关键词 : MSP430,单片机,植物养护,光感模块,DHT11

    现如今多肉植物以其多样的的颜色和小巧的外观,越来越受到消费者的欢迎。然而往往人们不能准确地根据土壤实际湿度来进行浇灌和补光。而且随着现代人生节奏加快,忙于工作应酬,打理盆栽的时间会相应的减少。很有可能造成植物长势不良,甚至死亡。

因此设计一种智能型的花盆,是十分必要的的。该花盆能够通过各类传感器对植物生长环境中的温度、湿度、土壤干湿度等参数进行检测。并将检测到的温度、湿度、干湿度等值在OLED上进行显示。实现在光照较弱的时候能自动开启补光灯,土壤含水量过低自动补水等功能。

系统结构

   该装置由花盆,水槽,补水模块,控制器,土壤湿度传感器和光照传感器等组成。基本框架图如1—1所示。

      

图1-1(系统框架)

     整个系统以MSP430单片机为核心,通过传感器将测量到的数据传送给MSP430。MSP430进行处理后分别将数据传送到OLED上进行显示,并通过与设定阈值比较并控制补光灯、水阀、蜂鸣器等工作,达到调节植物生长环境的目的。同时各个传感器正常工作,还会接检测到环境数据,又一次将接收到的电压值发送给MSP430作处理,通过比较设定的阈值来驱动或者关断被控器件。

硬件

放大芯片:

     由于传感器需要采集外间环境参数并以模拟电压值的形式将数据传送给单片机,这就用到了放大芯片LM358来放大采集到的电压值(LM358是双运算放大器。内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。

传感器:

    由于检测的对象不一样,所以需要用到不同类型的传感器模块,比如土壤干湿度传感器模块和DHT11温湿度传感器等。

    DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。DHT11的供电电压为 3-5.5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。(DHT11的典型运用电路 如图1-2)

            

图1-2(DHT11典型运用电路)

    本系统采用了一种模拟数字一体光敏传感器模块,属于电子测控与路迹识别领域。该模块包括电源转换电路、光敏传感器电路、比较电路和输入输出电路,可采用3.3V-5.0V电源供电,分别给光敏传感器电路、比较电路供电,光敏传感器电路的输出端连接双运算放大器的输入端,双运算放大器输出端与输出电路的输入端连接。输出数字信号或模拟信号,准确度高,反应速度快,功耗低,使用成本低。 光照传感器模块原理图。(光敏模块原理图 如下图1-3)

   

图1-3(光敏模块原理图)

电源:

    本系统需要工作于于稳定可靠的直流电源。考虑到运用于普通家庭,为了便于供电所以本系统采用USB或者手机充电器供电更为方便,且供电电压5V。采用上述方式供电的优点是共用性强,电源稳定。

单片机:

单片机采用了TI公司的MSP430F5529LaunchPad,MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。MSP430F5529LaunchPad基于闪存的产品系列,具有最低工作功耗,在 1.8V-3.6V 的工作电压范围内性能高达 25MIPS。包含一个用于优化功耗的创新电源管理模块。其功能齐全,引脚较多,具有在线调试功能。而且可以直接采用5V供电,能与电源良好匹配。

三.软件实现

   通过MSP430的ADC12寄存器采集外部数据(ADC性能指标:分辨率最小值1.2mV精确度高,量化误差±1/2LSB,转换精度高转换率大于200Ksps)。

   需要对系统用到的 GPIO 口的功能进行设置,P6.0-6.6设置为模拟 输入,用于采集湿度传感器,光敏传感器,空气温湿度传感器等的模拟电压值。

   对 ADC 模块进行初始化,其中包括ADC时钟使能,时钟分频因子设置,ADC 的工作时钟频率设置,并设置工作模式为序列通道多次转换工作模式等。

void main(void)

{

  WDTCTL = WDTPW+WDTHOLD;                   // 关闭看门狗

  P6SEL = 0x0F;                                  // 使能管脚

  ADC12CTL0 = ADC12ON+ADC12MSC+ADC12SHT0_2;

  ADC12CTL1 = ADC12SHP+ADC12CONSEQ_1;     

  ADC12MCTL0 = ADC12INCH_0;                    // 初始化

  ......           

  ADC12MCTL3 = ADC12INCH_3+ADC12EOS;      

  ADC12IE = 0x08;                               // 使能中断

  ADC12CTL0 |= ADC12ENC;                 

  ......

}

由于采用了OLED显示屏,需要对相应的管脚进行初始化和时钟设置。

    ......

   OLED_Init();                            //初始化OLD               

              OLED_Clear();  

    ......

    OLED SSD1306 SPI  时钟D0

    #define                            OLED_SSD1306_SCLK_PIN_NUM                            (BIT2)

    OLED SSD1306 SPI 数据D1

    #define                            OLED_SSD1306_SDIN_PIN_NUM                            (BIT3)

    OLED SSD1306 数据/命令DC

    #define                            OLED_SSD1306_DC_PIN_NUM                            (BIT5)

    OLED SSD1306 片选CS

    #define                            OLED_SSD1306_CE_PIN_NUM                            (BIT6)

    OLED SSD1306 复位/RES

    #define                            OLED_SSD1306_RST_PIN_NUM                            (BIT4)

......

在主程序中,液晶实时地显示 ADC 的转换数值,并将转 换值与用户设定值的进行对比,如果检测值小于用户设定的 湿度限值,430通过 P2.0启动水泵,对花盆中的植 物进行浇灌。当到达最大阈值则停止水泵。

    if(drought<100)

      {

                              P2OUT&=~BIT0;

                }

                              else

      {

                              P2OUT= BIT0;

  }

.......

    DHT11的驱动

DHT11的数据口用于与微处理器之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,操作流程如下: 一次完整的数据传输为40bit,高位先。   出数据格式:8bit湿度整数数据+8bit湿度小数数据

       +8bit温度整数数据+8bit温度小数数据

       +8bit校验

用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。

总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。

所以需要用到单片机输出时序来驱动DHT11模块,部分代码附下:

void RH(void)
{              
P2_0=0;                   //主机拉低18ms
Delay(180);
P2_0=1;
Delay_10us();

.......

P2_0=1;                  //主机设为输入 判断从机响应信号
if(!P2_0)                 //判断从机是否有低电平响应信号
U8FLAG=2;
while((!P2_0)&&U8FLAG++);

.......

COM();
U8RH_data_H_temp=U8comdata;
COM();

.......

str[0]=U8RH_data_H;
str[1]=U8RH_data_L;
str[2]=U8T_data_H;
str[3]=U8T_data_L;
str[4]=U8checkdata;
SendData(str) ;         //发送到串口

.......

四.总结

本文提出的多肉植物植物智能种植系统,通过单片机的监测和控制能够实时检测植物种植环境的温湿度、植物土壤湿度及光照条件,并根据环境变量来控制水泵、补光灯等终端设备,从而实现控制浇水和补光等功能。此系统可用于多肉养护,该系统运用了比较廉价的单片机和传感器模块,易于实现且低功耗,系统与用户通过OLED交互,易于用户了解盆栽生长环境,并对其加以适当干预。由于市面上还未有此功能的系统,因此具有一定的市场价值。


完整的Word格式文档51黑下载地址:

论文.docx (187.86 KB, 下载次数: 19)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:312293 发表于 2018-4-24 16:46 | 只看该作者
你好 ,请问有有没原理图
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表