農(nóng)業(yè)噴灌的可視化控制
??想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:??
背景
“民以食為天”,糧食安全關(guān)系一個(gè)國(guó)家和民族的基本生存,聯(lián)合國(guó)發(fā)布《2022年全球糧食危機(jī)報(bào)告》稱全球或面臨嚴(yán)重的糧食短缺。糧食生產(chǎn)離不開澆水和施肥,要想獲得高產(chǎn)穩(wěn)產(chǎn),必須采用更加科學(xué)高效的節(jié)水灌溉技術(shù),實(shí)現(xiàn)水肥一體化作業(yè)和管理。噴灌是利用管道將有壓水送到灌溉地段,并通過(guò)噴頭分散成細(xì)小水滴,均勻地噴灑到田間,對(duì)作物進(jìn)行灌溉。它作為一種先進(jìn)的機(jī)械化、半機(jī)械化灌水方式,可以廣泛應(yīng)用于大田糧食生產(chǎn)。
噴灌的主要優(yōu)點(diǎn)有:
⑴節(jié)水效果顯著,水的利用率可達(dá)90%。噴灌與地面灌溉相比,1立方米水可以當(dāng)2立方米水用。
⑵作物增產(chǎn)幅度大,一般可達(dá)20%—40%,因增加了15%—20%的播種面積;可改善了田間小氣候和農(nóng)業(yè)生態(tài)環(huán)境。
⑶大大減少了田間渠系建設(shè)及管理維護(hù)和平整土地等的工作量。
⑷減少了農(nóng)民用于灌水的費(fèi)用和用工量,減少生產(chǎn)投入,增加農(nóng)民收入。
⑸有利于實(shí)現(xiàn)農(nóng)業(yè)機(jī)械化、自動(dòng)化,產(chǎn)業(yè)化、現(xiàn)代化。
⑹避免由于過(guò)量灌溉造成水資源浪費(fèi)和土壤次生鹽堿化。
概況
農(nóng)業(yè)噴灌項(xiàng)目采用變頻器驅(qū)動(dòng)高效深井泵實(shí)現(xiàn)輸水管道的恒壓和變壓控制,用Hi3861承擔(dān)主控,采用DAYU200做上位機(jī),完成系統(tǒng)的可視化控制。
開發(fā)環(huán)境
- DevEco Studio for OpenHarmony3.0.0.900
- OH系統(tǒng)版本:OpenHarmony 3.2.3.3
- 上位機(jī)開發(fā)語(yǔ)言: ETS
- DevEco Device Tool V3.0 Release
- 開發(fā)板:DAYU200,BEAIPI-HM-Nano
主控-Hi3861
主控-Hi3861使用socket創(chuàng)建TCP服務(wù)端,接收來(lái)自上位機(jī)DAYU200的控制命令,同時(shí)回復(fù)狀態(tài)數(shù)據(jù)到DAYU200。
static void TCPServerTask(void)
{
//服務(wù)端地址信息
struct sockaddr_in server_sock;
//客戶端地址信息
struct sockaddr_in client_sock;
int sin_size;
struct sockaddr_in *cli_addr;
//連接Wifi,
WifiConnect("******", "********");
//創(chuàng)建socket
if ((sock_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("socket is error\r\n");
exit(1);
}
bzero(&server_sock, sizeof(server_sock));
server_sock.sin_family = AF_INET;
server_sock.sin_addr.s_addr = htonl(INADDR_ANY);
server_sock.sin_port = htons(_PROT_);
//調(diào)用bind函數(shù)綁定socket和地址
if (bind(sock_fd, (struct sockaddr *)&server_sock, sizeof(struct sockaddr)) == -1)
{
perror("bind is error\r\n");
exit(1);
}
//調(diào)用listen函數(shù)監(jiān)聽(指定port監(jiān)聽)
if (listen(sock_fd, TCP_BACKLOG) == -1)
{
perror("listen is error\r\n");
exit(1);
}
printf("start accept\n");
//調(diào)用accept函數(shù)從隊(duì)列中
while (1)
{
sin_size = sizeof(struct sockaddr_in);
if ((new_fd = accept(sock_fd, (struct sockaddr *)&client_sock, (socklen_t *)&sin_size)) == -1)
{
perror("accept");
continue;
}
cli_addr = malloc(sizeof(struct sockaddr));
printf("accept addr\r\n");
if (cli_addr != NULL)
{
memcpy(cli_addr, &client_sock, sizeof(struct sockaddr));
}
//處理目標(biāo)
ssize_t ret;
while (1)
{
if ((ret = recv(new_fd, recvbuf, sizeof(recvbuf), 0)) == -1)
{
printf("recv error \r\n");
}
if(NULL != strstr(recvbuf,"ON")) {
printf("START ON !\r\n");
IoTGpioSetOutputVal(8, 1);
IoTGpioSetOutputVal(14, 1);
}
if(NULL != strstr(recvbuf,"OFF")) {
printf("START OFF !\r\n");
IoTGpioSetOutputVal(8, 0);
IoTGpioSetOutputVal(14, 0);
}
if ((ret = send(new_fd, buf, strlen(buf) + 1, 0)) == -1)
{
perror("send : ");
}
sleep(1);
}
close(new_fd);
}
}
上位機(jī)-DAYU200
- DAYU200與主控Hi3861采用TCP通信,??參考文檔Socket連接??。
- 首頁(yè)界面,點(diǎn)擊“開始”按鈕進(jìn)控制頁(yè)面
3.可視化控制頁(yè)面,點(diǎn)擊“噴灌”和“停噴”可以開啟和關(guān)閉噴灌系統(tǒng)。
演示系統(tǒng)組成
1.演示系統(tǒng)由水泵,三叉噴頭,支架,管路,變頻器,Hi3861開發(fā)板和DAYU200開發(fā)板共同組成。
2.演示視頻,視頻中上位機(jī)是HDMI驅(qū)動(dòng)的顯示器和DAYU200開發(fā)板的觸摸屏同時(shí)顯示。(視頻在審核中)
展望
88年前,毛澤東同志提出“水利是農(nóng)業(yè)的命脈”;2022年2月22日,《中共中央國(guó)務(wù)院關(guān)于做好2022年全面推進(jìn)鄉(xiāng)村振興重點(diǎn)工作的意見》發(fā)布,2022年將建設(shè)高標(biāo)準(zhǔn)農(nóng)田1億畝,累計(jì)建成高效節(jié)水灌溉面積4億畝。統(tǒng)籌規(guī)劃、同步實(shí)施高效節(jié)水灌溉與高標(biāo)準(zhǔn)農(nóng)田建設(shè)。
相信OpenHarmony及相關(guān)輕富設(shè)備會(huì)在鄉(xiāng)村振興的大趨勢(shì)中發(fā)揮舉足輕重的作用。