21物联网应用技术2班-陈林燕

目录

前言

需求概述

使用示例


前言

模拟温室大棚控制系统是一种实时监测和控制温室环境的系统。该系统可以自动读取当前温度,并模拟灯光、喷灌和通风功能等,以确保温室环境处于最佳状态。本文将介绍该系统的需求和C#代码实现。


需求概述

该系统需要采用串口和上位机进行数据通信,以获取当前温度。此外,还需要模拟LED灯光、喷灌和通风功能,以保持温室环境的最佳状态。具体要求如下:

1. 通过串口和上位机进行数据通信
        系统需要通过串口与上位机进行数据通信。上位机将向系统发送查询请求,系统将返回当前温度数据。
        2. 读取环境温度数据
        系统需要实时读取环境温度数据,以决定是否需要进行喷灌、通风或调整灯光。
        3. 使用LED灯模拟温室采光
        系统需要模拟LED灯光,以模拟温室采光。灯光的亮度应该可以根据环境温度进行调整。
        4. 使用两个风扇模拟喷灌、通风功能
        系统需要使用两个风扇来模拟喷灌和通风功能。当环境温度过高时,系统应该自动开启风扇进行通风。


使用示例

简单绘制一个界面。(此步骤略过)

实例化一个串口

  SerialPort serialPort1 = new SerialPort();

封装打开、关闭串口的方法

        private void UserOpenSerialPort(){//设置串口号serialPort1.PortName = cmb_SerialPortName.Text;//打开串口serialPort1.Open();//判断串口是否打开成功if (serialPort1.IsOpen == true){serial_open_state = true;//修改打开按钮显示文本btn_open.Text = "关闭串口";//输出提示信息//禁用控件cmb_SerialPortName.Enabled = false;comboBox2.Enabled = false;}else{//输入提示信息}}private void UserCloseSerialPort(){//关闭串口serialPort1.Close();//更新串口状态serial_open_state = false;//修改打开按钮显示文本btn_open.Text = "打开串口";//输出提示信息//使能控件cmb_SerialPortName.Enabled = true;comboBox2.Enabled = true;}

向串口传递数据(上位机需要发送的数据,需要根协议而定,博主只是提供参考方式)

  void SendDate(byte [] data){serialPort1.Write(data, 0, data.Length);}

串口回调事件

 private void SerialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e){//Console.WriteLine("串口接收事件");//获取接收缓冲区中的字节个数int n = serialPort1.BytesToRead;byte[] data = new byte[n];if(n > 0){serialPort1.Read(data, 0, n);UserRecSerialPortData(data);greenhouse.ReceivedRawData(data);}}

点击“打开串口”

 private void btn_open_Click(object sender, EventArgs e){if(serial_open_state ==true){UserCloseSerialPort(); }else{//打开串口//判断串口号是否为空if (cmb_SerialPortName.Text == "" || cmb_SerialPortName.Text == null){MessageBox.Show("串口号为空");return;}//设置串口号serialPort1.PortName = cmb_SerialPortName.Text;//设置波特率serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text );UserOpenSerialPort();}}

开启/关闭 通风

  private void button2_Click_1(object sender, EventArgs e){if (button2.Text == "开启通风"){greenhouse.SetFanSate(6000);button2.Text = "关闭通风";}else{greenhouse.SetFanSate(0);button2.Text = "开启通风";}}

开启/关闭 采光

        private void button3_Click_1(object sender, EventArgs e){if (button3 .Text == "开启灯光"){greenhouse.SetLedSate(6000);button3.Text = "关闭灯光";}else{greenhouse.SetLedSate(0);button3.Text = "开启灯光";}}

读取温度

   private void button4_Click(object sender, EventArgs e){int temp = greenhouse.ReadTemperature();label4.Text = temp.ToString() + "°C";if (button4.Text == "开启读取温度"){greenhouse.ReadTemperature();button4.Text = "关闭读取温度";}else{greenhouse.ReadTemperature();button4.Text = "开启读取温度";}}

C# 模拟温室大棚控制系统相关推荐

  1. 利用ESP8266与米思齐从零制作模拟温室大棚--介绍篇

    一.温室大棚总体框架 我将搭建一个模拟温室大棚的模型,以实现模拟自动化农业生产过程的功能. 其中搭载温湿度控制系统.水位检测及报警系统.OLED屏幕显示.水循环系统. 水循环系统是在农作物土壤下覆盖有 ...

  2. 蓝桥杯单片机第七届省赛-模拟风扇控制系统

    九层妖塔 起于垒土 ● 改编自国信长天蓝桥杯官方蓝皮书例程,按照自己的习惯进行了补充和修改 蓝桥杯单片机第七届省赛-模拟风扇控制系统 Notes1:按键按下后在某些情况下给一定的缓冲时间 Notes2 ...

  3. 基于自适应算法和增量式PID算法的模拟直升飞机控制系统

    基于自适应算法和增量式PID算法的模拟直升飞机控制系统 文章目录 基于自适应算法和增量式PID算法的模拟直升飞机控制系统 控制系统硬件 单片机系统 传感器系统介绍 直升机模拟系统介绍 系统模块介绍 A ...

  4. 基于单片机的模拟风扇控制系统

    1.试题 (1)功能简述 "模拟风扇控制系统"能够模拟电风扇工作,通过按键控制风扇的转动速度和定时时间,数码管实时显示风扇的工作模式,动态倒计时显示剩余的定时时间,系统主要由数码管 ...

  5. 51单片机课设——模拟电梯控制系统

    基于51单片机的模拟电梯控制系统 利用51单片机模拟5层电梯控制系统,还原真实生活场景.当某层被按下呼梯按键(电梯厢外)时,电梯将运行到该楼层,同时步进电机模拟电梯运转,液晶显示屏实时显示楼层数及电梯 ...

  6. 基于MSP430G2553的模拟风扇控制系统

    基于MSP430G2553的模拟风扇控制系统 本次设计是通过CCS和AD15设计的一个模拟风扇控制系统,该系统主要包括独立键盘电路模块.直流稳压电路模块.程序下载电路模块.数码管显示模块.三极管LED ...

  7. 温室大棚控制系统智能轻松种菜

    在乡村振兴的这一大背景之下,用科技创新助力智慧农业的发展,让农业生产的方式向智能化.自动化方向前进.智慧农业其实就是农业中的智慧经济,指充分利用农业物联网等现代信息技术成果,实现农业生产的智能管理. ...

  8. 【智慧农业】温室大棚控制系统如何解决管理粗放问题

    大棚的出现让我们冬天吃到了绿叶菜,实现温室小环境下打破季节的限制.实现大棚种植,对保温性等工作有严格要求,因此也需要面对许多制约因素. 首先是肥料用量的问题.大量化肥的使用,导致土壤地质改变,产生了积 ...

  9. 温室大棚控制系统C语言代码,{新}温室大棚控制系统设计.doc

    摘 要 本课题运用STC89C52单片机.DS-18B20 数字温度传感器M4QA045电动机.ULN-2003A集成芯片.湿敏电阻,以及四位八段数码管等元器件,设计了温湿度报警电路.M4QA045电 ...

最新文章

  1. 2018年自主车企销量目标完成情况 这几家企业估计要凉
  2. java ubuntu 14.04,Ubuntu 14.04安装java的方法
  3. linux stat函数讲解
  4. Quartz框架多个trigger任务执行出现漏执行的问题分析--转
  5. (17)Zynq FPGA 全局定时器介绍
  6. 百度2017春招笔试
  7. asp毕业设计——基于asp+access的公司门户网站设计与实现(毕业论文+程序源码)——公司门户网站
  8. 利用vue.js实现一个砍价小程序
  9. python音标1003python音标_词汇小助手V1.2——可以显示英语单词的国际音标
  10. 微信Android客户端后台保活经验分享
  11. 备份自查-微博错误代码
  12. 5万款Lr顶级调色预设合集,精心整理,分类清晰,摄影师调色师必备素材,够用一辈子
  13. linux网易云音乐安装失败需要×××依赖
  14. 掌门少儿打造高质课程,助力少年儿童全方位发展
  15. python实例:井字棋
  16. 跨境知道快讯:Anker出新招,一个月进账600万美金
  17. VOS客户端动态黑名单功能配置详解
  18. 倍福PLC控制器设置开机自启动
  19. 什么是姿态角(Euler角)pitch yaw roll
  20. 杰里AC695N开发详解汇总(持续更新中)

热门文章

  1. iphone11返回上一级手势怎么设置_iPhone11怎么返回上一级-使用教程
  2. HTML5+CSS3网页设计视频教程【零基础入门】
  3. 多态,继承,引用指针对象一顿扒.
  4. 多速柔性制造与多AGV运输集成低碳调度优化
  5. 远程桌面 快捷键大全
  6. 旧稿--前阿里CEO卫哲的万字长文--B2B春天来了
  7. 基于华为云的人脸识别实验
  8. 用python写atm自动取款_python实例_模拟ATM取款机+购物商城
  9. 第一个小游戏,被我卖了。。。
  10. 通过设置静态路由实现内外网正常使用