999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于無線技術的便攜式浮球給排水控制系統

2022-10-17 09:03:14楊光范志華蘇成貴鐘文才許光明李愛琴
農業與技術 2022年19期
關鍵詞:程序

楊光 范志華 蘇成貴 鐘文才 許光明 李愛琴

(吉林省農業機械研究院,吉林 長春 130022)

引言

目前市面上有已經有一些相關產品,但是采用的控制方式有以下弊端:有線信號傳輸,不方便連接和安裝;固定的液位傳感器由于裸露的部件容易被水中雜物纏繞包裹,影響液面位置的判定,導致誤判。項目組為了解決此問題,設計了一套無線便攜式浮漂排水控制器,該裝置具有以下優勢:采用無線模式進行信號傳輸,便于安裝,只需要放入水中即可,不需要連線;傳感器選用重力球機械感應原理,不受水質限制,經久耐用;可以替代人工監控儲水液面,在水位較低時停止排水,水位升高到一定程度時啟動排水,無需人員現場監控,通過設置可實現供水排水功能轉換。本項目利用NRF24L01模塊來實現各個部件的無線通訊,其工作頻段在2.4~2.5GHZ,該頻段是世界通用ISM頻段(不受管制的頻段),通信距離可達300m。

1 系統設計及工作原理

1.1 系統設計思路

本方案是一套無線控制的浮球控制裝置系統,能夠代替人工對監控水面進行監管控制,按照人工設定功能及時進行相應,實現水泵及時排水給水功能[1],見圖1。

圖1 整體示意圖

1.1.1 排水工作狀態解析

浮球在漂浮時能夠在液面上保持豎立狀態,該狀態可以指導并控制排水泵開展排水工作。排空水池后,浮球在池底時保持橫臥狀態,并控制排水泵停機。

1.1.2 供水工作狀態解析

排空水池后,浮球在池底時保持橫臥狀態,并控制注水泵加水。水池加滿后,通過水位感應器控制注水泵停機。

1.1.3 無線裝置

本項目設計4種無線裝置:主機、供水泵及排水泵控制裝置、浮球液位控制器。主機控制器功能:供排水選擇、與其他3個裝置進行通訊、采集滿水信號。供水控制裝置功能:該裝置可以接收無線信號自帶小型可控制繼電器,可以輸出控制220V信號,以此來控制下一級的啟動水泵的繼電器,所以可以串聯接入原有的供水泵控制系統,對供水泵進行控制。排水控制裝置可以串聯接入排水泵原有的控制系統。浮球控制裝置功能:定時向主機控制器傳輸液位是否下降至底部信息,見圖2。

圖2 浮球裝置微動開關

1.2 單片機與NRF24L01實現一對多的工作原理

本項目制作的共4個裝置,均采用單片機加NRF24L01模塊組合,采用嵌入式編程設計,見圖3。

圖3 無線模塊與單片機連接

本項目的工作原理是通過測量水池液位的滿和空2個狀態及主機設置的排水還是供水目的來實現供水和排水。本項目所研究系統共有4個部件組成,分別是主機控制器、排水泵控制器、供水泵控制器、浮球傳感器。主機的功能是接收水池邊的滿水信號和浮球的空水信號,再按照排水供水功能選項指揮排水裝置控制排水泵,或指揮供水裝置控制供水泵。供(排)水控制器的功能是接收主機的指令并通過供(排)水空開箱控制供(排)水泵工作。浮球傳感器的功能是測量到水池液面已經近似空水位狀態時發送空水位信號給主機控制器。

主機和3個從機對以上4個條件全部設置一致,如果是主機先發送數據,理論上3個從機都會收到數據,所以這樣做是不行的。1個無線節點對多個無線節點的通訊可以通過修改以下內容實現:頻道、地址、頻道和地址。如,從機1的頻道是10,從機2的頻道是30,從機3的頻道是50,從機4的頻道是70(頻道的值可以是0~125,共126個頻道)[2];頻道接近的話,有可能出問題,如,從機1的頻道是20,如果設置從機2的頻道是21的話,主機給從機1發送數據時,從機2也有可能收到數據。所以要向上面一樣,頻道距離拉開一些。從機的頻道定義好了,主機要和從機1通信,自身就把頻道改為從機1一樣的頻道10,就可以發送數據,此時,從機2~4由于頻道不同,是收不到數據的。同樣,主機要和從機2通信,就把自己的頻道改為和從機2一樣的頻道30,然后就可以發送數據。

以下程序是通過按鍵0和2來對從機1地址進行修改的程序:

if(KEY==0)//按下KEY1

{

NRF_CE=0;//拉低CE引腳

W_Reg(WRITE_REG+RF_CH,10);//修改為從機1的頻道

NRF_CE=1;//拉高CE引腳

TxPacket(rece_buf);//發送數據

}

else if(KEY2==0)//按下KEY2

{

NRF_CE=0;//拉低CE引腳

W_Reg(WRITE_REG+RF_CH,30);//修改為從機2的頻道

NRF_CE=1;//拉高CE引腳

TxPacket(rece_buf);//發送數據

}

1.3 單片機與NRF24L01的接口設置

本項目用單片機的P1.1~P1.7連接NFR24L01模塊。

圖4 單片機與NRF24L01的接口設置

2 系統軟件設計

本系統共涉及4個模塊的程序設計,主機的功能相當于指揮官,浮球是觀察兵,排水和供水裝置相當于陸戰隊員。所以要對4個模塊進行分別的程序編寫。下面以主機編寫為例進行介紹,其他程序編寫與之類似。

2.1 主機程序編寫流程

NRF24L01模塊與單片機可以有效連接,但是NRF24L01的內部寄存器比較多,設置起來比較復雜[3],具體設置程序可以按說明書的要求編寫。本項目采用C語言,通過uVision來實現。作為主機程序順序圖的編寫可見圖5。

2.2 NRF24L01的讀寫模式

NRF24L01有接收、發送、待機模式II、待機模式I、掉電模式,其工作模式由CE和寄存器內部PWR_UP位狀態、PRIM_RX位狀態共同控制,由CE引腳電平來控制[4]。

NRF24L01有寄存器25個,這些寄存器起到了狀態指示、地址寬度、讀寫配置、使能允許、射頻設置等。可以通過對寄存器的設置來實現相應的功能。配置寄存器讀寫程序一般都是按照時序圖完成,在這里不做贅述。

2.3 nRF24L01通訊功能自測

本項目中需要對單片機與nRF24L01的通訊進行測試,以便設備調試和維護,設置自測按鍵,在主程序中增加按鍵掃描程序,當掃描到自測開關被按下后,單片機向nRF24L01某個寄存器寫入一個數據,再把數據讀取出來比對,如果數據一致則證明通訊沒有問題,可以點亮通訊正常指示燈,如果數據不一致或沒有返回數據,則點亮通訊失敗指示燈。

自測程序:

void nrf_zc(void)

{

SPI_R_W_Reg(WRITE_REG | CONFIG,0x50);

if(SPI_Read(CONFIG)==0x50)

{

int i;

for(i= 0;i<3;i++)

{

LED4=0;

delay_ms(300);

LED4=1;

delay_ms(300);

}

}

else if (0x50 !=SPI_Read(CONFIG))

{

int i;

for(i=0;i<4;i++)

{

LED5=0;

delay_ms(300);

LED5=1;

delay_ms(300);

}

}

}

以上自測程序是單片機向寄存器CONFIG中寫入0x50數據,然后再讀取CONFIG中的數據并與0x50進行比較,如果相等則LED4燈閃爍3次,如果不相等,則LED5燈閃爍4次。

2.4 軟件程序調試技巧

在NRF24L01點對點或點對多的無線通訊中,有些程序需要反復調試,調試過程如果遇到沒有正常反應的情況下是比較麻煩的,所以本項目購置了USB加NRF24L01模塊來作為中轉實現程序的調試,可以將接收信號傳入電腦,通過串口助手對數據進行顯示和分析。這樣比較直觀地看到接收的數據。一旦調試成功后再與另外的無線節點進行通訊,成功率就很高。

3 硬件設計

NRF24L01的功能解讀,該芯片的主要特點:2.4G全球開放工業、科學、醫療3個領域的頻段(ISM),免許可證使用;最高工作速率2Mbps,最低工作速率250Kbps;125個可選的頻道,滿足多點通信和調頻通信的需要,值得注意的是這是理論值,實際工作中應該保持頻道的間隔不要太近,以免造成信號干擾;內置CRC檢錯功能。NRF24L01采用SPI通訊協議,這個協議中在通訊命令發出后有接收反饋功能,如果接收不到反饋信號,則證明數據或命令沒有發送成功,所以通訊質量比較高;低工作電壓(1.9~3.6V)。如圖6所示。

圖6 NRF24L01 電路板

各管腳定義:1.GND;2.VCC;3.CE;4.CSN;5.SCK;6.MOSI;7.MISO;8.IRQ。具體說明:1.GND地線。本實驗功能簡介:在2塊51開發板上下載NRF24L01的主從程序后,在主機中進行排水和供水的選擇,實現系統排水或供水的功能。模塊接口與開發板對應的管腳原理圖,如圖7。

圖7 NRF24L01無線模塊和開發板的連接圖

本系統共有4張圖,其中供水泵無線控制器的電路原理圖如圖8。用單片機的P1.2~P1.7通過接口J44連接NRF24L01的MISO、IRQ、MOSI、CS、SCK、CE。P2.0作為電機驅動的輸出信號端口。用P0.0~0.3作為工作狀態指示燈的輸出控制端。其他3個板子的連接方式與之類似。

4 關鍵技術及實現

4.1 通訊地址的選擇

NRF24L01模塊具有一對多通訊功能,地址需要分配。4個節點都可以是接收模式,也可以是發送模式,彼此之間隨時可以通訊,為了彼此通訊順暢,多數時間都是接收模式,誰想發言誰變成發送模式,發完后馬上變身接收模式,這樣可以保證信號不打架,當然同時出現2個以上節點同時變身發射模式的概率非常低。只要節點X發送地址和節點XX的接收地址一樣,節點XX就會收到發送來的數據,接收數據完成后節點XX的IRQ就會有中斷產生。當RX_DR或TX_DS或MAX_RT為1時,nRF的硬件引腳IRQ自動產生中斷。該引腳復位需要通過CONFIG來進行設置。圖9是本項目中4個節點的收發模式的地址表。

圖8 控制排水泵電路圖

圖9 該系統4個節點地址分配圖

4.2 程序編寫的順序

在對NRF24L01了解以后,首先編寫底層程序:底層程序是NRF24L01依據SPI開展工作的基本程序,其是依據工作時效完成并建立的,包括對字節、數據的讀和寫程序。NRF24L01采用SPI通信協議采用主從方式工作,全雙工,同步(需要時鐘線)通信總線,SCK信號線只由主設備控制,且數據為一位一位的進行傳送SPI的數據輸入和數據輸出線獨立。MOSI的意思就是說如果此芯片作為主機時,該引腳(MOSI引腳)就是輸出,如果此芯片作為從機時,該引腳(MOSI)引腳就是輸入。MISO與其道理類似。由于SPI采用2個移位寄存器來實現數據的交換,所以在8個時鐘過后,主機的數據會發送到從機中,同時,從機的數據也會發送到主機中。底層驅動時序:數據為先發高位,再發低位,在時鐘SCK的上升沿,數據發送出去。通信前需要先發送命令位,即S7~S0為status寄存器位,D7~D0為數據位。

NRF24L01的SPI同步讀寫時序程序:

uchar SPI_RW(uchar reg)//在發送一字節的同時,還會收到一字節的數據

{

uchar bit_ctr;

for(bit_ctr=0;bit_ctr<8;bit_ctr++)

{

MOSI=(reg & 0x80);

reg=(reg<<1);

SCK=1; //拉高SCK時鐘線

reg |=MISO;//獲取從機發給主機的一位數據,將其放到主機寄存器的最低位

SCK=0;//拉低SCK時鐘線

}

return(reg); //返回從機發給主機的數據

驅動層程序:驅動程序是依據底層程序編寫的對NRF24L01各種寄存器的配置與設置程序,包括了對所有寄存器的初始配置。

應用層程序:為保證項目功能實現而編寫的程序,包括水泵的啟停關系程序,鍵盤的掃描程序,主機對傳感器信號的采集程序等。下面是一段供排水命令程序:

voidSupply(void) //發送是否供水命令

{

Change_TX_RF_1(60);//調整頻段為供水頻段60,與供水泵通訊

if(KEY4==1) //空水標志指示空水,說明沒水了。需要注水,啟動注水泵

{

TX_BUF[0]=1; //數據1送到緩存,1代表應該注水,啟動注水泵

TX_Mode(TX_BUF); //把nRF24L01設置為發送模式并發送數據

Check_ACK(0); //等待發送完畢,清除TX FIFO

Supply_blink(5); //閃爍供水泵通訊燈。快閃爍5次

}

if(KEY3==1) //滿水標志指示水滿了,需要停止注水,停止注水泵

{

TX_BUF[0]=0;//數據0送到緩存,0代表不應該注水,停止注水泵

TX_Mode(TX_BUF);

Check_ACK(0);

Supply_blink(5); //閃爍供水泵通訊燈。快閃爍5次

}

Change_TX_RF_1(40); //重新調回頻段為主機頻段40

RX_Mode(); //轉化為接收模式

delay_ms(250);

finish_blink(3); //閃爍發送完成燈。慢閃爍3次

}

void Drainage(void) //發送是否排水命令

{

Change_TX_RF_1(50); //調整頻段為排水頻段50,與排水泵通訊

if(KEY3==0) //滿水標志指示水滿了,需要啟動排水,啟動排水泵

{

TX_BUF[0]=1; //數據1送到緩存,1代表應該排水,啟動排水泵

TX_Mode(TX_BUF);

Check_ACK(0);

Drainage_blink(5); //閃爍排水泵通訊燈。快閃爍5次

}

if(KEY4==0) //空水標志指示空水,KEY4等于1,說明水空。不需要排水,停止排水泵

{

TX_BUF[0]=0; //數據0送到緩存,0代表不應該排水,停止排水水泵

TX_Mode(TX_BUF);

Check_ACK(0);

Drainage_blink(5); //閃爍排水泵通訊燈。快閃爍5次

}

Change_TX_RF_1(40); //重新調回頻段為主機頻段40

RX_Mode(); //轉化為接收模式

delay_ms(250);

finish_blink(3); //閃爍發送完成燈。慢閃爍3次

}

5 結語

無線浮球控制器是一個小型產品的變革式發展,由于對無線控制技術的引用,會提高浮球液位控制器的應用范圍,增加其適應性。該系統應用場景多,攜帶方便,安裝快捷,傳輸信號質量可靠,設定好初始狀態后無人值守,省時省力。同時對無線技術的應用可以推廣到其他自動測控領域。

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 欧美三级视频网站| 亚洲国产综合精品中文第一| 精品伊人久久大香线蕉网站| 人与鲁专区| 国产成人亚洲欧美激情| 精品人妻系列无码专区久久| 国产成人喷潮在线观看| a国产精品| 在线国产毛片手机小视频| 国产成人免费| 激情国产精品一区| 国产91高清视频| 国内精品视频在线| 亚洲无码A视频在线| 亚洲精品无码久久久久苍井空| 国产精品成人不卡在线观看 | 精品国产www| 思思99热精品在线| 黄色免费在线网址| 日本精品中文字幕在线不卡| 亚洲欧洲免费视频| 欧美在线一二区| 久久久91人妻无码精品蜜桃HD| 中文字幕1区2区| 午夜欧美理论2019理论| 91外围女在线观看| 999国产精品永久免费视频精品久久| 中文字幕日韩久久综合影院| 国产小视频免费| 国产高清在线丝袜精品一区| 巨熟乳波霸若妻中文观看免费| 98精品全国免费观看视频| 国产男人的天堂| 日韩欧美网址| 亚洲—日韩aV在线| 在线国产你懂的| 国产午夜看片| 四虎影视无码永久免费观看| 日本欧美一二三区色视频| 亚洲黄色片免费看| 在线国产资源| 国产精品分类视频分类一区| 国产91在线|中文| 99视频在线免费看| 亚洲欧美日韩成人高清在线一区| 日本午夜在线视频| 国产自无码视频在线观看| 国产精品第| 99国产精品国产高清一区二区| 国产三级成人| 日韩国产欧美精品在线| 色哟哟国产成人精品| 国产噜噜噜视频在线观看| 99性视频| 一本久道久久综合多人| 91小视频在线播放| 在线五月婷婷| 青青草原偷拍视频| 亚洲天堂自拍| 中国国产A一级毛片| 欧美综合成人| 久久综合丝袜长腿丝袜| 试看120秒男女啪啪免费| a级免费视频| 2020国产免费久久精品99| 日本高清在线看免费观看| 午夜少妇精品视频小电影| 免费黄色国产视频| 日本一区二区三区精品视频| 1级黄色毛片| 日本五区在线不卡精品| 亚洲精品国偷自产在线91正片| 国产成人精品无码一区二 | 国产精鲁鲁网在线视频| 亚洲最猛黑人xxxx黑人猛交| 亚洲无卡视频| 亚洲精品无码在线播放网站| 中文字幕 日韩 欧美| 欧美亚洲欧美| 欧美日韩一区二区三区在线视频| 久久99精品久久久久久不卡| 中文字幕精品一区二区三区视频|