0 引言
随着科学技术的不断发展,人们的生产对周围环境的要求也越来越高,比如农作物大棚、工厂以及一些大型机械设备,都需要实时掌握工作条件的温度、光照等。传统的人工测量方法浪费人力物力,效率低,安全性差。随着单片微型机技术的发展,人们已越来越多地采用单片机对一些工业控制系统参数进行检测和控制。与此同时,PC机具有强大的监控和管理功能,而单片机则具有简洁、灵活、快速的控制特点。通过PC机的RS 232串行接口与外部设备进行通信,是现在测控中常用的一种通信解决方案,所以PC机与单片机之间的通信具有非常重要的现实意义。
1 系统硬件总体设计
系统总体设计是基于上位机利用串口通信与单片机环境监控系统设计,由上位机、通信接口和下位机三部分组成。微控制器采用STC89 C52;光传感器采用TSL2561;温度传感器采用DALLAS公司生产的DS18B20。单片机将传感器采集到的数据通过串口通信方式传输给PC机,PC机将获得的数据实时显示在监控画面中,同时实时显示温度曲线和光照曲线。系统总体结构如图1所示。
1.1 控制模块功能
主控板采用一片STC89C52作为控制器。STC89C52是一个高性能CMOS 8位单片机,片内含8 KB可反复擦写的FLASH ROM和256 B的RAM。
STC89C52性能优越且成本低,非常适合应用于本系统。核心控制模块STC89C52的主要功能是负责将传感器所采集的数据进行处理,通过RS 232串口通信接口传输到上位机,同时,将数据实时显示到LCM12864液晶屏上。当自动判断所采集到的数据高于设定数值时,立即启动相关的蜂鸣器,完成报警功能。
1.2 串口通信模块
该模块采用RS 232,它是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准,采用异步传输方式,其特点是使用简单,价格低廉。它将单片机采集到的数据传送到上位机中,实现远程监控。[page]
1.3 光采集模块
TSL2561是TAOS公司推出的一种高速、低功耗、宽量程、可编程、灵活配置的光强度数字转换芯片,它是光一数字转换器,单片机通过I2C总线从TSL2561内部获得CH0和CH1通道的数值,通过软件计算,将所采集到的数字信号转换为lux的光学单位,最后将光强转换成数字信号输出。光强算法如下:
1.4 温度采集模块
DS18B20是数字温度传感器,它提供9位二进制温度读数,其为单线结构,信息经由单线接口送入DS18B20或输出DS18B20。在该设计中,可以自行设置高温警报数值上限,当温度高于设定值时,则启动蜂鸣器,提示采取相应的措施。
1.5 显示模块
该显示模块采用LCM12864液晶显示,其模块内置字库,链接方便,显示质量高,且成本低。它主要显示系统光强信息和温度信息的采集,以及定时器计数值,以便系统的整体调试和现场观看。
1.6 串口软件模块
在VC 6.0下,采用其自带的MSComm控件,可以实现单片机与PC机的串口通信,利用RS 232实现数据的接收。在此,选择com1口,波特率为9 600 b/s,以二进制方式检取数据,主要代码如下:
1.7 数据存储模块
在完成数据接收之后,就要将数据存储到Access数据库中,数据库中的变量与接收的数据完全对应。在Access 2000中创建数据库bia o.Mdb,添加对ODBC数据库的支持,在项目stdafx.h文件中添#include
,完成ODBC类的加入。采用ODBC访问Access 2000数据库,存储速度快,内存消耗少,操作简单。
1.8 上位机数据读取和曲线显示模块
通过软件VC 6.0编程,将采集到的数据在PC机上进行曲线显示。本模块采用VC 6.0自带的teechart8控件编写,此控件具有很好的绘制实时曲线功能,操作简单。上位机检测界面如图2所示。
[page]
2 系统软件设计
该设计中单片机部分采用模块化设计,通过Keil公司开发的μVision 4编译器用C语言编写,主要包括光强采集、温度采集、液晶显示,以及串口发送模块程序。上位机部分在VC 6.0环境下,通过VC++语言进行编写,其中包括串口通信、数据库保存和曲线绘制模块。上、下位机主程序流程图如图3、图4所示。
3 结语
本文基于STC89C52,在VC 6.0的环境下提供了一种农业大棚光照与温度检测系统。其光传感器TSL2561和温度传感器DS18B20均是高精度测量传感器,是一个具有高精度、远程监控的检测系统。上位机界面为友好的动态曲线观测,可供用户方便地查看和记录数据。同时,本设计的下位机还可以实现多点测控,具有很强的扩展能力,性价比高,实用性强。
关键字:STC89C52 DS18B20 TSL2561
引用地址:
农业大棚智能检测环境系统
推荐阅读最新更新时间:2024-03-16 13:11
新手必看(STC89C52)单片机寻迹避障蓝牙四轮小车的简单实现
一、关于材料的选择 1.L289驱动电机x2 2.1.5V电池(可以买充电电池,我用了几十个电池了!!!)我是用8节1.5v构成12v电池单独给4个电机供电,另外3节1.5v给单片机供电,4.5v与 5v差不多。 3.底板加4马达(电机)。 4.有条件可以用电钻(我是在各个店单独购买的,所以底板孔与器件孔不搭配,自己钻的) 5.若干杜邦线,公对公 母对母 公对母都买X3应该足够了,最短就好了不需要那么长,但是有钱可以买X1 6.淘宝上的板子STC89C52,有各种现成的接口,适合新手学习,学习过后可以自己焊板子。 7.4个红外避障模块,2个寻迹模块,一个蓝牙模块。 8.手机商城下个蓝牙串口来操作控制。 二
[单片机]
基于AT89S52单片机的太阳能环境参数测试仪设计
引 言 为了确保太阳能发电系统能够正常的工作,需要对太阳能发电系统的各项环境参数进行测量,从而有效地控制其运行。本文介绍了一种基于单片机的太阳能参数测试仪,提供了3种参数的测量功能和通信接口,以及2种供电方式,既可作为手持设备使用,又能安装在发电系统中,具有较高的实用价值。 1 硬件电路设计 1.1 总体结构 该测试仪以AT89S52单片机为核心,外接温湿度传感器SHTll、照度传感器TSL2561、四位共阴数码管、RS485总线通信接口以及显示切换按键。单片机上电工作后,对当前温度、湿度、光强度进行实时测量,通过按键切换将测得的3种参数通过LED数码管进行轮流显示;此外,还可以通过RS485总线
[单片机]
STC89C52驱动SH1106芯片点亮OLED问题点总结
主芯片:STC89C52 OLED驱动芯片:SH1106 OLED屏大小为1.3寸,像素点是128X64(8页X8),通信方式有IIC和SPI两种方式。 烧录软件:STC-ISP 文字图片取模软件:PCtoLCD2002 选择阳码:屏黑字白(使用这个) 选择阴码:屏白字黑 阳码亮点为0,阴码亮点为1,代码中0XFF为白,0x00为黑。 一个简单的延时毫秒代码: void delay_ms(unsigned int ms) { unsigned int a; while(ms) { a=100; while(a--); ms--; } retu
[单片机]
DS18B20工作原理及时序
DS18B20工作原理及时序 DS18B20原理与分析 DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS18
[单片机]
Atmega16单片机实验:DS18B20和ad采集显示程序
rem Main.bas file generated by New Project wizard rem rem Created: 周日 9月 16 2018 rem Processor: ATmega16 rem Compiler: BASCOM-AVR rem Write your code here $regfile = m16def.dat $crystal = 2000000 Config 1wire = Portb.0 '定义BS18B20接在PB0上 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Por
[单片机]
DS18B20测温显示程序
#include AT89X51.H #include intrins.h sbit TSOR=P2^0; #define Busy 0x80; #define uchar unsigned char #define uint unsigned int #define reset() {WDT=0x1e;WDT=0xe1;} sfr WDT=0xa6; bit ON_OFF; bit outflag; sbit en =P1^7; /*DTLED-6显示芯片使能端*/ sbit dout=P1^6; /*DTLED-6显示芯片数据读入端*/ sbit clk=P1^3; /*DTLED-6显示芯片/时钟芯片DS1302时
[单片机]
STC89C52单片机——串口发送程序1
/*----------------------------------------------- 名称:串口通信 编写:LZM 日期:2015.05 修改:无 内容:连接好串口波特率设置为9600,无奇偶校验 晶振11.0592MHz 接上串口,可以接收到自己发送的字符 ------------------------------------------------*/ #include reg52.h //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 /*****************************************************
[单片机]
基于温度传感器的室内智能温度控制系统设计
温度在工农业生产中起着举足轻重的作用,在冶金、医药、食品制造和化学制造业等行业尤其显得重要。在适当的温度下生产的产品质量、产量和合格率会大大的提高。
有些药品的生产和存储要在很低的温度下进行;石油分馏的过程中在不同的温度下才能分离出汽油、柴油、煤油、硫化物;食品的制造和存储也要在特定的温度下才能保证质量。
在农业大棚蔬菜和室内圈养牲畜对于环境温度的要求也很高,大棚蔬菜的温度基本上要保证在20~30℃。鸡舍的育雏期温度要控制在36℃左右。
随着社会生产力和科学技术的发展,工农业生产对于温度的要求会越来越高,这样就需要系统不但可以测出室内的实际温度,还可以通过上位机来进行实时的控制,调整环境的温度。
1 系统的整体想路
[嵌入式]