RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

智慧灌溉平臺

嵌入式技術(shù) ? 來源:嵌入式技術(shù) ? 作者:嵌入式技術(shù) ? 2023-11-09 16:55 ? 次閱讀

1.知識百科

智慧灌溉是運用物聯(lián)網(wǎng)、云計算、大數(shù)據(jù)等新一代信息技術(shù),結(jié)合農(nóng)業(yè)生產(chǎn)的實際需求,通過傳感器采集土壤溫濕度、光照強度等信息,利用無線傳感網(wǎng)絡(luò)傳輸?shù)街醒?a href="http://m.hljzzgx.com/v/tag/8966/" target="_blank">控制系統(tǒng)進(jìn)行智能控制。智慧灌溉系統(tǒng)由傳感器(水位傳感器)、無線通信模塊(GPRS/CDMA/WLAN/藍(lán)牙)和計算機組成;在農(nóng)業(yè)生產(chǎn)中,通過自動感知環(huán)境信息(溫度、濕度),實時監(jiān)控作物生長狀況并做出判斷和決策。

2.開發(fā)環(huán)境

??本次智慧灌溉平臺包含有硬件和軟件兩部分。其中硬件部分有 基于STM32的主控制器,USB接口水泵、稻田模型、水位監(jiān)測傳感器,硬件配置如下所所示:

主控制器

wKgaomVMnMKAJkoZACIAsYmLBfY842.png

稻田模型
??稻田模型中添加了水位監(jiān)測傳感器設(shè)備。

wKgaomVMnPiAR213ACHrbAGwvdk486.png

水泵

wKgZomVMnQ6AQD8pACSkrCLmGwc107.png

應(yīng)用APP

wKgZomVMnTeAUbTzAAwhP9_jAAI419.png

3.硬件設(shè)計

wKgZomVMnVOAJ3wuAAhyL0CIcSU840.png

4.軟件設(shè)計

??本次硬件主控MCU選擇的是ST公司的基于Cortex-M3架構(gòu)的STM32F103C8T6,供電部分是12V轉(zhuǎn)5V,采用MP2359實現(xiàn),5V轉(zhuǎn)3.3V則采用AMS1117-3.3實現(xiàn)。軟件設(shè)計通過HAL庫+KEIL軟件。

主控MCU: STM32F103C8T6
通信設(shè)備: ESP8266WIFI
傳感器設(shè)備: 水位檢測傳感器
水泵: USB接口3W水泵
其他: RGB工作狀態(tài)指示、串口調(diào)試接口、ST_Link下載

4.1 ESP8266WIFI驅(qū)動

??ESP8266系列無線模塊是一個經(jīng)濟(jì)高效的WIFI SOC模塊,支持標(biāo)準(zhǔn)IEEE802.11b/g/n協(xié)議,內(nèi)置完整的TCP/IP協(xié)議棧。 用戶可以使用此系列模塊向現(xiàn)有設(shè)備添加網(wǎng)絡(luò)功能,也可以構(gòu)建獨立的網(wǎng)絡(luò)控制器。

支持STA、AP、STA+AP動作模式;

體積非常小的802.11b/g/n WiFi SOC模塊

內(nèi)置10bit高精度ADC采用低功率32位CPU,兼作應(yīng)用程序處理器

支持USART、GPIO、IIC、PWM、ADC、SPI等接口時鐘頻率最大為160MHz

支持smart config、AirKiss一鍵網(wǎng)絡(luò)支持多個休眠模式,深休眠電流低到20uA

嵌入式LWIP協(xié)議棧

支持SDK二次開發(fā)

通用AT指令可以快速使用支持串行本地升級和遠(yuǎn)程固件升級( FOTA )

本次采用通用AT指令開發(fā),串口通信,波特率為115200,配置模式為AP+TCP服務(wù)器。

/*****************ESP8266初始化*****************
**形參:u8 *wifi_name      -- 熱點名稱
**			u8 *wifi_password  -- 密碼
**			u16 port           -- 端口號
**
**返回:0--成功,其他值 -- 失敗
const char *AP_TCPSERVER[]=
{
	"ATrn",//測試指令
	"ATE0rn",//關(guān)閉回顯
	"AT+CWMODE=2rn",//--設(shè)置為AP(熱點)模式
	"AT+RSTrn",//模塊重啟
	"ATE0rn",//關(guān)閉回顯
	"AT+CWSAP="EPS8266_123","01234567",1,4rn", //--設(shè)置wifi信息
	"AT+CIPMUX=1rn",//設(shè)置多連接
	"AT+CIPSERVER=1,10rn", //--設(shè)置TCP服務(wù)器模式,端口號(0~65535)
	"AT+CIFSRrn"http://查詢IP地址
};
************************************************/
u8 Esp8266_AP_TcpServer_Init(u8 *wifi_name,u8 *wifi_password,u16 port)
{
	char buff[100];
	char *p=NULL;
	u8 i=0;
	printf("1.發(fā)送測試指令rn");
	if(Esp8266_SendCmdCheckStat("ATrn","OKrn"))return 1;
	printf("2.關(guān)回顯rn");
	if(Esp8266_SendCmdCheckStat("ATE0rn","OKrn"))return 2;
	printf("3.設(shè)置模式rn");
	if(Esp8266_SendCmdCheckStat("AT+CWMODE=2rn","OKrn"))return 3;	
	printf("4.模塊復(fù)位rn");
	if(Esp8266_SendCmdCheckStat("AT+RSTrn","OKrn"))return 4;	
	Delay_Ms(1000);
	Delay_Ms(1000);
	printf("5.關(guān)回顯rn");
	if(Esp8266_SendCmdCheckStat("ATE0rn","OKrn"))return 5;	
	//字符串拼接
	snprintf(buff,sizeof(buff),"AT+CWSAP="%s","%s",1,4rn",wifi_name,wifi_password);
	printf("buff:%s",buff);
	printf("6.設(shè)置熱點信息rn");
	if(Esp8266_SendCmdCheckStat(buff,"OKrn"))return 6;	
	printf("7.設(shè)置多連接rn");
	if(Esp8266_SendCmdCheckStat("AT+CIPMUX=1rn","OKrn"))return 7;	
	printf("8.設(shè)置端口號rn");
	snprintf(buff,sizeof(buff),"AT+CIPSERVER=1,%drn",port);
	if(Esp8266_SendCmdCheckStat(buff,"OKrn"))return 8;	
	printf("9.查詢IP地址rn");
	if(Esp8266_SendCmdCheckStat("AT+CIFSRrn","OKrn"))return 9;
	/*****提取IP地址信息*/
	/*usart3:+CIFSR:APIP,"192.168.4.1"
		+CIFSR:APMAC,"86:f3:eb:a6:be:f9"
		OK
	*/
	p=strstr((char *)usart3_rx_buff,"APIP");
	if(p!=NULL)
	{
		p+=6;
		while((*p!='"') && (*p!=''))
		{
			buff[i]=*p;
			p++;
			i++;
		}
	}
	buff[i]='';
	printf("buff:%srn",buff);
	strcpy((char *)esp8266_info.esp8266_ip,buff);//IP地址
	strcpy((char *)esp8266_info.esp8266_name,(char *)wifi_name);//wifi名稱
	strcpy((char *)esp8266_info.esp8266_key,(char *)wifi_password);//wifi密碼
	esp8266_info.esp8266_prot=port;
	return 0;
}

4.2 水位監(jiān)測傳感器

wKgaomVMneOAEuowAB0ompS-R1s774.png

??本模塊工作電壓為5V,采用ADC方式采集液位值,原理為印刷電路板侵入水中,阻值會改變,通過測量阻值的變化來測量水位。

wKgaomVMngCAC2dQAAWx26ktn30824.pngwKgaomVMngyAKWg6AASaUpXXD9I674.png

獲取水位值示例

u16 Get_Regular_Channelx(u16 ch)
{
	ADC_ChannelConfTypeDef sConfig = {0};
	sConfig.Channel=ch;//通道號

	sConfig.SamplingTime=ADC_SAMPLETIME_239CYCLES_5;//采樣周期
	if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)//ADC通道初始化
   {
     Error_Handler();
   }	
	HAL_ADC_Start(&hadc1);//開啟ADC
	HAL_ADC_PollForConversion(&hadc1,20);//等待規(guī)則通道轉(zhuǎn)換完成
	return HAL_ADC_GetValue(&hadc1);
}
//采集AD值,多次測量求平均值
int Get_WeatherVal()
{
	u16 buffer[10];
	u32 count=0;
	int i=0,j=0;
	u16 temp;
	for(i=0;ibuffer[j+1])
			{
					temp=buffer[j];
					buffer[j]=buffer[j+1];
					buffer[j+1]=temp;
			}
		}
	}
	for(j=2;j

4.3 水泵驅(qū)動

??本次水泵選擇的是3W USB接口抽水電機,通過繼電器控制水泵啟動和關(guān)閉,配合上位機軟件和水位傳感器實時監(jiān)測水位值實現(xiàn)電機自動啟動和停止工作。低電平啟動水泵工作,高電平停止水泵工作。

#define moto_ctl_start() HAL_GPIO_WritePin(moto_clt_GPIO_Port,moto_clt_Pin,GPIO_PIN_RESET)
#define moto_ctl_stop()  HAL_GPIO_WritePin(moto_clt_GPIO_Port,moto_clt_Pin,GPIO_PIN_SET)

4.4 核心控制功能

設(shè)備上電初始化WIFI,等待app連接。水位傳感器實時檢測當(dāng)前水位狀態(tài),通過APP啟動水泵抽水,當(dāng)前水位值超過設(shè)定是閾值,則水泵自動停止工作。
板載RGB狀態(tài)指示燈。硬件電源檢測正常位紅色,WIFI工作工作則紅燈閃爍,APP連接成功則白燈閃爍,電機工作則綠燈閃爍。通過RGB燈光狀態(tài)即可得知當(dāng)前設(shè)備工作狀態(tài)。

  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		if(usart1_flag)
		{
			usart1_rx_buff[usart1_cnt]='';
			printf("rx1=%s,%drn",usart1_rx_buff,usart1_cnt);
			usart1_cnt=0;
			usart1_flag=0;
		}
		if(usart3_flag)
		{
			usart3_rx_buff[usart3_cnt]='';
			printf("rx3=%s,%drn",usart3_rx_buff,usart3_cnt);
			if(strstr((char *)usart3_rx_buff,"0,CONNECT"))
			{
				wifi_stat=1;//連接成功
				time=0;
				stat=0;
				RGB_Ctl(0,0,0);
				snprintf(buff,sizeof(buff),"#%d,%d,%d",0,0,threshold_val%101);
				Esp8266_SendData(0,(u8*)buff);//發(fā)松數(shù)據(jù)到客戶端
			}
			else if(strstr((char *)usart3_rx_buff,"0,CLOSED"))
			{
				wifi_stat=0;//斷開連接
				time=0;
				stat=0;
				RGB_Ctl(0,0,0);
				moto_ctl_stop();
			}
			else if(strstr((char *)usart3_rx_buff,"motor:1"))
			{
				wifi_stat=2;//啟動工作
				time=0;
				stat=0;
				RGB_Ctl(0,0,0);
				moto_ctl_start();
				motor_stat=1;
			}
			else if(strstr((char *)usart3_rx_buff,"motor:0"))
			{
				wifi_stat=1;//停止工作
				time=0;
				stat=0;
				RGB_Ctl(0,0,0);
				moto_ctl_stop();
				motor_stat=0;
			}
			else if(strstr((char *)usart3_rx_buff,"max:"))//水位閾值
			{
				//+IPD,0,6:max:97,17
				p=strstr((char *)usart3_rx_buff,"max:");
				p+=strlen("max:");
				threshold_val=atoi(p);
				//printf("threshold_val=%drn",threshold_val);
			}
			usart3_cnt=0;
			usart3_flag=0;
		}
		time++;
		time2++;
		time3++;
		Delay_Ms(1);
		if(wifi_stat==0 && time>=500)//應(yīng)用app未連接(紅燈閃爍)
		{
			time=0;
			stat=!stat;
			if(stat)
				RGB_Ctl(200,0,0);
			else
				RGB_Ctl(0,0,0);
		}
		if(wifi_stat==1 && time>=500)//應(yīng)用app連接成功(白燈閃爍)
		{
			time=0;
			stat=!stat;
			if(stat)
				RGB_Ctl(255,253,85);
			else
				RGB_Ctl(0,0,0);
		}
		else if(wifi_stat==2 && time>=500)//電機工作(綠燈閃爍)
		{
			time=0;
			stat=!stat;
			if(stat)
				RGB_Ctl(0,255,0);
			else
				RGB_Ctl(0,0,0);
		}
		if(time3>=100)
		{
			time3=0;
			data=Get_WeatherVal();
			temp=data/3900.00*100;
			//printf("data=%.2f.%drn",temp,data);
			if((temp)>=threshold_val)//當(dāng)前水位值超過設(shè)定閾值,則停止電機工作
			{
				if(motor_stat==1)
				{
					time=0;
					stat=0;
					RGB_Ctl(0,0,0);
					moto_ctl_stop();
					motor_stat=0;//關(guān)閉電機
					wifi_stat=1;
					snprintf(buff,sizeof(buff),"#%d,%d,%d",motor_stat,threshold_val,threshold_val);
					Esp8266_SendData(0,(u8*)buff);//發(fā)松數(shù)據(jù)到客戶端
					time2=0;
				}
			}
		}
		if(time2>=1000 && motor_stat==1 && wifi_stat>=1)//1s上報一次當(dāng)前水位狀態(tài),且需要再電機工作時進(jìn)行上報
		{
			time2=0;
			snprintf(buff,sizeof(buff),"#%d,%d,%d",motor_stat,((int)temp)%101,threshold_val%101);
			//printf("buff=%srn",buff);
			Esp8266_SendData(0,(u8*)buff);//發(fā)松數(shù)據(jù)到客戶端
		}
  }
  /* USER CODE END 3 */
}

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2550

    文章

    51035

    瀏覽量

    753049
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16332

    瀏覽量

    177798
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2909

    文章

    44557

    瀏覽量

    372745
收藏 人收藏

    評論

    相關(guān)推薦

    LoRa技術(shù)農(nóng)田自動無線智能灌溉系統(tǒng)

    智慧農(nóng)業(yè)中,無線灌溉的實現(xiàn), LoRa技術(shù)功不可沒。LoRa技術(shù)簡單而言就是一種具有高性能、遠(yuǎn)距離、低功耗且支持大規(guī)模組網(wǎng)、測距和定位的無線傳輸技術(shù)。遠(yuǎn)程節(jié)點是環(huán)境多數(shù)據(jù)采集節(jié)點,采集數(shù)據(jù)有溫濕度
    發(fā)表于 09-25 17:10

    智能農(nóng)業(yè)之智能灌溉

    功能與RS 和GPS 技術(shù)結(jié)合的灌區(qū)動態(tài)管理信息采集分析技術(shù)、作物需水信息采集與精量控制灌溉技術(shù)、專家系統(tǒng)技術(shù)等構(gòu)建高效、低能耗、低投入、多功能的農(nóng)業(yè)節(jié)水灌溉平臺??稍跍厥?、庭院花園綠地、高速公路中央
    發(fā)表于 08-05 12:45

    基于機井灌溉控制器的農(nóng)田灌溉系統(tǒng)

    結(jié)構(gòu)  農(nóng)田機井智能灌溉控制系統(tǒng)支持設(shè)立村、縣(區(qū))、市等多級管理平臺的管理模式,各級管理平臺的基本功能如下:  1、村級管理平臺  管理人員通過手機既可實現(xiàn)用戶開卡、充值、查詢、銷卡
    發(fā)表于 12-16 14:07

    光學(xué)紅外雨量IFR202型傳感器常見用在智慧灌溉,在汽車上安裝怎么使用?

    紅外雨量傳感器是通過紅外掃描原理非接觸式檢測降雨量的傳感器,廣泛應(yīng)用于智慧灌溉,自動門窗,地質(zhì)災(zāi)害等行業(yè)。最近看到有不少公司安裝在新能源汽車上,這樣怎么用呢?
    發(fā)表于 05-17 10:10

    什么是智慧農(nóng)業(yè)灌溉系統(tǒng),它的組成都有哪些

    智慧農(nóng)業(yè)灌溉系統(tǒng)是托普物聯(lián)網(wǎng)為了保證農(nóng)業(yè)作物需水量的前提下,實現(xiàn)節(jié)約用水而提出的一整套解決方案。簡單來說,智慧農(nóng)業(yè)灌溉系統(tǒng)就是農(nóng)業(yè)灌溉不需要
    的頭像 發(fā)表于 10-15 11:25 ?9740次閱讀

    智慧農(nóng)業(yè)灌溉控制系統(tǒng)

    應(yīng)用在花卉灌溉、綠化工程等場景下,實現(xiàn)了手機一鍵遠(yuǎn)程控制灌溉智慧農(nóng)業(yè)灌溉控制系統(tǒng),由管理云平臺軟件,配合智能閥門、土壤類傳感器等設(shè)備,自
    的頭像 發(fā)表于 11-09 16:08 ?2206次閱讀

    智慧園林灌溉系統(tǒng)

    ,不斷得到應(yīng)用,智慧園林灌溉控制系統(tǒng)在這種背景下應(yīng)運而生。 方案解析: 智慧園林灌溉控制系統(tǒng),借助土壤墑情監(jiān)測設(shè)備,24小時在線監(jiān)測園林的土壤詳情,通過云
    的頭像 發(fā)表于 11-17 16:04 ?1408次閱讀

    智慧園林灌溉系統(tǒng)方案

    現(xiàn)代化的城市是不能少了綠化的,灌溉作為綠化的日常維護(hù),需要得到重視。為了高效率地進(jìn)行園林綠化灌溉作業(yè),出現(xiàn)了基于物聯(lián)網(wǎng)的智慧園林灌溉解決方案,改變傳統(tǒng)
    的頭像 發(fā)表于 12-13 15:59 ?1076次閱讀

    智慧無線灌溉在園林中的應(yīng)用

    的要素進(jìn)行詳細(xì)分析和判斷,以確定該區(qū)域是否需要進(jìn)行灌溉智慧無線灌溉系統(tǒng) 智慧無線灌溉系統(tǒng)是由各類LORA采集器、LORA無線
    的頭像 發(fā)表于 06-20 16:58 ?516次閱讀
    <b class='flag-5'>智慧</b>無線<b class='flag-5'>灌溉</b>在園林中的應(yīng)用

    智慧農(nóng)業(yè)系統(tǒng)應(yīng)用灌溉作業(yè)

    、計算機、傳感、無線通信等技術(shù),由智慧農(nóng)業(yè)云平臺、智能控制柜/智能網(wǎng)關(guān)、閥門控制器、傳感器等設(shè)備組成。自動監(jiān)測土壤水分情況,無線傳輸,根據(jù)灌溉需求信息,自動執(zhí)行灌溉操作,實現(xiàn)智能化監(jiān)測
    的頭像 發(fā)表于 07-06 16:57 ?567次閱讀

    紅外雨量計在智慧灌溉中的應(yīng)用

    紅外雨量計在智慧灌溉中的應(yīng)用 紅外雨量計是一種測量降雨量的儀器,通過紅外線傳感器來檢測雨滴的數(shù)量和大小,進(jìn)而計算出降雨量。在智慧灌溉中,紅外雨量計可以用來實時監(jiān)測降雨情況,根據(jù)降雨量的
    的頭像 發(fā)表于 07-07 10:56 ?405次閱讀
    紅外雨量計在<b class='flag-5'>智慧</b><b class='flag-5'>灌溉</b>中的應(yīng)用

    智慧灌溉解決方案(基于物聯(lián)網(wǎng)的智能灌溉系統(tǒng))

    ? 詳情:智慧水務(wù)數(shù)字孿生安全監(jiān)測解決方案提供商-星創(chuàng)? 隨著農(nóng)業(yè)IOT的快速發(fā)展,智慧灌溉正成為提高農(nóng)業(yè)水資源利用效率,實現(xiàn)精準(zhǔn)灌溉的重要技術(shù)手段。完整的
    的頭像 發(fā)表于 01-09 17:15 ?1566次閱讀
    <b class='flag-5'>智慧</b><b class='flag-5'>灌溉</b>解決方案(基于物聯(lián)網(wǎng)的智能<b class='flag-5'>灌溉</b>系統(tǒng))

    智慧灌溉系統(tǒng)的組成與功能

    隨著科學(xué)技術(shù)與節(jié)水意識的不斷發(fā)展與進(jìn)步,智慧灌溉正逐漸改變傳統(tǒng)的農(nóng)業(yè)灌溉方式,成為現(xiàn)代農(nóng)業(yè)的重要組成部分。智慧灌溉系統(tǒng)主要涵蓋了一系列先進(jìn)的
    的頭像 發(fā)表于 04-17 17:25 ?1444次閱讀
    <b class='flag-5'>智慧</b><b class='flag-5'>灌溉</b>系統(tǒng)的組成與功能

    智慧灌溉物聯(lián)網(wǎng)系統(tǒng)

    系統(tǒng)的要求也越來越高。 通過運用大數(shù)據(jù)、人工智能、物聯(lián)網(wǎng)等信息技術(shù),打造集信息高效感知-智能決策-精準(zhǔn)控制于一體的智慧灌溉系統(tǒng),可實現(xiàn)更精準(zhǔn)的灌溉管理,極大提高水肥資源利用效率,支撐高標(biāo)準(zhǔn)農(nóng)田建設(shè)和農(nóng)業(yè)可持續(xù)發(fā)展。
    的頭像 發(fā)表于 05-17 13:23 ?539次閱讀
    <b class='flag-5'>智慧</b><b class='flag-5'>灌溉</b>物聯(lián)網(wǎng)系統(tǒng)

    智慧灌溉解決方案 灌區(qū)信息化建設(shè) 智慧農(nóng)田引水灌溉

    項目背景該項目區(qū)降雨量年際變化大,且灌溉設(shè)施多為渠道等;其灌溉效率低下,年久失修,灌溉蓄水得不到保障;解決灌溉用水困境,成為了制約當(dāng)?shù)匕l(fā)展的頭等問題。農(nóng)田
    的頭像 發(fā)表于 07-12 14:14 ?936次閱讀
    <b class='flag-5'>智慧</b><b class='flag-5'>灌溉</b>解決方案 灌區(qū)信息化建設(shè) <b class='flag-5'>智慧</b>農(nóng)田引水<b class='flag-5'>灌溉</b>
    RM新时代网站-首页