STM32单片机远程控制大棚种植系统

news2024/11/17 23:49:15

想要更多项目私wo!!!

一、电路设计

​​​​​系统示意图

硬件系统 

系统由五个单片机系统组成的,其中51系列的单片机四个,STM32F407单片机一个,各个子系统之间通过NRF24L01无线模块进行通信。

系统硬件组成框图​​​​

 主控制板主要由STM32F407探索板、无线通信模块以及USB转串口模块组成。主控制板负责对两个大棚传递上来的信息进行处理,打包之后发送给上位机,同时还负责将上位机下达的指令传递给两个大棚。 

主控制板硬件组成框图

 大棚控制板主要由STC12C5A60S2单片机、12864LCD显示、光耦隔离、继电器、无线通信模块组成。大棚控制板负责控制大棚内部装置以及转发大棚采集板采集上来的数据,一旦收到主控制板发送的信号,大棚控制板将对相应的装置进行控制。 

大棚控制板硬件组成框图

大棚采集板主要由STC12C4052AD单片机、光照强度传感器、土壤湿度传感器、空气温湿度、无线通信模块以及供电电池组成。大棚采集板负责采集大棚内部的各项数据,之后发送给大棚控制板。 

大棚采集板硬件组成框图

 

 软件系统

上位机软件使用微软公司的Visual Basic语言编写。上位机界面通过USB转串口模块与主控制板进行通信,以获取两个大棚内部的环境数据和对大棚内部设施进行控制,同时上位机软件还可以将环境数据保存到数据库中,以便日后的查询。

上位机软件界面

 二、运行结果

 三、部分代码

#include "main.h"

u8 flag,j,ii,tf,temp;
u8 TxBuf[13]={0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa};
u8 RxBuf0[13]; 
u8 RxBuf1[13]={50,50,50,50,50,50,50,50,50,50,50,50,50};
u8 RxBuf[26]; 
u8 RX0_flag=0,RX1_flag=0;


int main(void)
{
	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	//中断向量配置
	LED_Init();			//初始化LED		
	COM3Init(9600);		//串口3初始
	MY_SPI_Init();
	if(NRF24L01_Check())
	{
		GPIO_SetBits(GPIOD, GPIO_Pin_14);
	}
	else
	{
		GPIO_SetBits(GPIOD, GPIO_Pin_13);	
	}	
	NRF24L01_Init();
	NRF24L01_TxPacket(TxBuf);
	NRF24L01_Write_Reg(WRITE_REG_NRF+STATUS,0XFF);
	
	tf=0;
	
	while(1)
	{
		if(flag)				//如果PC给它发了指令,则往下发送
		{
			USART_Cmd(USART3, DISABLE);	//关串口
			NRF24L01_Write_Reg(WRITE_REG_NRF+CONFIG, 0x0e);//配置为发送
			for(ii=0;ii<7;ii++)
			{
				temp=(j&0x80);
				j=(j<<1);
				if(temp)TxBuf[ii]=0xf0;
				else TxBuf[ii]=0x0f;					
			}
			NRF24L01_TX_Mode(TxBuf[5]);
			NRF24L01_TxPacket(TxBuf);
			NRF24L01_Write_Reg(WRITE_REG_NRF+STATUS,0XFF);
			delay_ms(10);
			NRF24L01_Init();//当发送完毕后,重新把通道0配置为1号大棚,通道1为2号大棚
			flag=0;
			USART_Cmd(USART3, ENABLE); 
		}
		
		NRF24L01_Write_Reg(WRITE_REG_NRF+CONFIG, 0x0f);
		tf=NRF24L01_switch();				//判断通道
		switch (tf)
		{
			case 0: NRF24L01_RxPacket(RxBuf0);	//0通道为一号大棚
					RX0_flag=1; 
					break;
				
			case 1: NRF24L01_RxPacket(RxBuf1);	//1通道为二号大棚
					RX1_flag=1;
					break;						 	
		}
		if(RX0_flag|RX1_flag)
		{
			for(ii=0;ii<13;ii++)RxBuf[ii]=RxBuf0[ii];
			for(ii=13;ii<26;ii++)RxBuf[ii]=RxBuf1[ii-13];
			for(ii=0;ii<26;ii++)
			{
				USART_SendData(USART3,RxBuf[ii]);
				while(!USART_GetFlagStatus(USART3,USART_FLAG_TC));
				USART_ClearFlag(USART3,USART_FLAG_TC);
			}
			RX0_flag=0;
			RX1_flag=0;		
		}
// 		GPIO_SetBits(GPIOD, GPIO_Pin_15);
// 		delay_ms(300);
// 		GPIO_ResetBits(GPIOD, GPIO_Pin_15);
// 		delay_ms(300);
	}		
    		
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/22455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【VuePress2.0】快速开始(不用)

文章目录VuePress2.x1.1 安装安装VuePress2.x&#xff08;手动安装&#xff09;1.2 VuePress2.x 基本操作VuePress2.x主题2.1 安装VuePress2.x主题&#xff08;yarn&#xff09;2.2 报错解决&#xff08;没效果&#xff0c;不用看&#xff09;2.3 VuePress2.x主题 基本操作VueP…

Java基础深化和提高-------IO流

目录 IO流技术介绍 什么是IO 什么是数据源 流的概念 第一个简单的IO流程序 IO流的经典写法 IO流新语法经典写法 Java中流的概念细分 按流的方向分类&#xff1a; 按处理的数据单元分类&#xff1a; 按处理对象不同分类&#xff1a; Java中IO流类的体系 Java中IO的四大抽象…

CleanMyMac X真正好用的Mac电脑系统优化软件应用工具

最用户友好的Mac问题修复程序。删除系统垃圾、不需要的应用程序和恶意软件&#xff0c;并调整您的Mac以获得最高速度。对于速度较慢的计算机&#xff0c;CleanMyMac就能立即使用。 CleanMyMac2023之所以能够获得众多Mac的老用户们的喜爱&#xff0c;是因为其有着非常强大功能提…

数据可视化之大数据平台可视化

一 前言 在简化数据量和降低大数据应用的复杂性中&#xff0c;大数据分析发挥着关键的作用。可视化是其中一个重要的途径&#xff0c;它能够帮助大数据获得完整的数据视图并挖掘数据的价值。大数据分析和可视化应该无缝连接&#xff0c;这样才能在大数据应用中发挥最大的功效。…

nodejs+mysql航空飞机票销售酒店预订系统vue

(1)对机票预订管理系统进行需求分析、确定所需要的模块&#xff1b;建立数据字典、数据流等&#xff1b;书写可行性分析和需求分析说明书。 (2)对机票预订管理系统进行概要设计&#xff1a;建立软件体系结构&#xff0c;画出用例图、E-R图等&#xff1b;书写数据要求说明书和各…

【雷达通信】阵列信号处理(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

聊聊Go里面的闭包

以前写 Java 的时候&#xff0c;听到前端同学谈论闭包&#xff0c;觉得甚是新奇&#xff0c;后面自己写了一小段时间 JS&#xff0c;虽只学到皮毛&#xff0c;也大概了解到闭包的概念&#xff0c;现在工作常用语言是 Go&#xff0c;很多优雅的代码中总是有闭包的身影&#xff0…

嵌入式图形开发框架Qt——让牙科手术开始迈入机器人时代

Neocis软件工程总监,Jim Tieman&#xff1a; “我们Neocis是一家致力于提高科医生能力和促进病人护理的牙科机器人公司。之前我们有一个Microsoft Foundations Class (MFC)的应用程序&#xff0c;由于现在团队擅长MFC开发的技术员并不多&#xff0c;维护起来也很费劲。之前这个…

AST 初探深浅,代码还能这样玩?

AST 听起来好像是个很新的东西&#xff0c;那么具体有什么用&#xff0c;好不好用就在这篇文章中找到答案吧~ 我们简单将这个词拆分抽象、语法、树&#xff0c;如果我们能够顺利将这个词拆分&#xff0c;那么我们也就掌握了其核心所在 抽象&#xff1a;抽象的反义词是具象&…

微信小程序|使用小程序制作一个2048小游戏

文章目录一、文章前言二、创建小程序三、功能开发一、文章前言 此文主要通过小程序实现2048游戏&#xff0c;游戏操作简单&#xff0c;容易上手。 规则&#xff1a;正常打开游戏的界面&#xff0c;会只有两个2&#xff0c;每次移动后都会出现一个2&#xff0c;数字大了之后会出…

RabbitMQ初步到精通-第八章-Java-AMQP-Client源码分析

目录 第八章-Java-AMQP-Client源码分析 1、背景 1.1 客户端介绍 1.2 看源码好处 1.3 如何看源码 2、生产者 3、消费者监听 4、创建连接 5、消费者消费 6. 总结&#xff1a; 第八章-Java-AMQP-Client源码分析 1、背景 1.1 客户端介绍 通过前面几章的学习&#xff0c;大家对…

工作以来一直在CRUD,Spring源码该怎么阅读?这份价值百万的源码解析让你如有神助!

初学SpringBoot框架时&#xff0c;第一次启动服务&#xff0c;直呼什么鬼&#xff1f;只需要简单的几步配置&#xff0c;几个核心的注解&#xff0c;就可以快速实现工程的搭建和运行&#xff1b; 虽然从Spring框架迁移到SpringBoot框架&#xff0c;在初期会有很多的不适应&…

谈谈对跨域(跨源)的一些理解

一、相关概念 1、什么是跨域&#xff1f; 跨域又称为跨源&#xff0c;是指在违反了浏览器的同源政策&#xff0c;也就是协议、域名和端口号三者不完全一致的情况下产生的。只要客户端与浏览器的三者有一项不同&#xff0c;就属于不同源&#xff0c;就会产生跨域。 很多初级开…

G 蛋白偶联受体与小分子化合物的相互作用

化学遗传学 (Chemogenetics) 是指一种蛋白被改造与先前未被识别的小分子化合物相互作用的过程。多种蛋白的改造已被报道&#xff0c;包括激酶、非激酶的酶类、G 蛋白偶联受体 (GPCRs) 和配体门控离子通道。化学遗传学技术 DREADDs (Designer receptors exclusively activated b…

MapReduce分区、排序、Combiner

Shuffle MapReduce的Map阶段与Reduce阶段之间有一个Shuffle的过程&#xff0c;包括分区、排序等内容。数据从Map阶段出来后&#xff0c;会进入一个环形缓冲区&#xff08;默认100M&#xff09;&#xff0c;环形缓冲区中会同时记录数据和索引&#xff0c;当使用了80%的时候&…

PostgreSQL主从数据库数据同步

运行环境 操作系统&#xff1a;Debian 11.5 数 据 库&#xff1a;PostgreSQL 14.6 主数据库&#xff1a;192.168.8.68 从数据库&#xff1a;192.168.8.69 使用apt-get安装postgresql&#xff0c;安装方法可以参考 https://blog.csdn.net/itbs/article/details/127909359?…

智能家居环境小护士(原理图、pcb、源码、设计报告)

目录 ARM-STM32校园创新大赛 1 题 目&#xff1a; 智能家居环境小护士 1 摘要 1 引言 2 系统方案 3 整套系统的工作原理是&#xff1a;单片机是整套系统的控制核心&#xff0c;温湿度传感器负责测试环境中的温湿度&#xff1b;烟雾传感器负责检测空气中的有毒气体&#xff0c;…

数据同步工具DataX介绍和原理

目录1. DataX介绍2. 框架设计3. 架构1. DataX介绍 DataX是一个各种数据源之间的离线数据同步工具 DataX的设计理念是一种星型数据链路。DataX作为中间传输载体负责连接各种数据源&#xff0c;通过reader从一个数据源读取数据&#xff0c;再通过writer将数据写入另一个数据源。…

Hadoop运行模式

hgfhfg Hadoop运行模式包括&#xff1a;本地模式、伪分布式模式以及完全分布式模式。 Hadoop官方网站&#xff1a;Apache Hadoop 一、本地运行模式 官方Grep案例 1. 创建在hadoop-2.7.2文件下面创建一个input文件夹 mkdir input 2. 将Hadoop的xml配置文件复制到input cp et…

FTP替代产品方案的优异性体现在哪些方面?

多年来&#xff0c;FTP一直是最常见的交换文件的方式&#xff0c;FTP-FTPS-SFTP似乎是FTP的不断迭代更新&#xff0c;但是究竟是技术更新导致FTP过时&#xff1f;还是它真的已经满足不了企业的需求了&#xff1f; 之前&#xff0c;大家选择FTP往往是因为它简单易得的特性&…