#DAYU200体验官#农业喷灌的可视化控制

Posted 开源基础软件社区官方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#DAYU200体验官#农业喷灌的可视化控制相关的知识,希望对你有一定的参考价值。

背景

“民以食为天”,粮食安全关系一个国家和民族的基本生存,联合国发布《2022年全球粮食危机报告》称全球或面临严重的粮食短缺。粮食生产离不开浇水和施肥,要想获得高产稳产,必须采用更加科学高效的节水灌溉技术,实现水肥一体化作业和管理。喷灌是利用管道将有压水送到灌溉地段,并通过喷头分散成细小水滴,均匀地喷洒到田间,对作物进行灌溉。它作为一种先进的机械化、半机械化灌水方式,可以广泛应用于大田粮食生产。
喷灌的主要优点有:
⑴节水效果显著,水的利用率可达90%。喷灌与地面灌溉相比,1立方米水可以当2立方米水用。
⑵作物增产幅度大,一般可达20%—40%,因增加了15%—20%的播种面积;可改善了田间小气候和农业生态环境。
⑶大大减少了田间渠系建设及管理维护和平整土地等的工作量。
⑷减少了农民用于灌水的费用和用工量,减少生产投入,增加农民收入。
⑸有利于实现农业机械化、自动化,产业化、现代化。
⑹避免由于过量灌溉造成水资源浪费和土壤次生盐碱化。

概况

农业喷灌项目采用变频器驱动高效深井泵实现输水管道的恒压和变压控制,用Hi3861承担主控,采用DAYU200做上位机,完成系统的可视化控制。

开发环境

DevEco Studio for OpenHarmony3.0.0.900
OH系统版本:OpenHarmony 3.2.3.3
上位机开发语言: ETS
DevEco Device Tool V3.0 Release
开发板:DAYU200,BEAIPI-HM-Nano

主控-Hi3861

主控-Hi3861使用socket创建TCP服务端,接收来自上位机DAYU200的控制命令,同时回复状态数据到DAYU200。

static void TCPServerTask(void)

    //服务端地址信息
    struct sockaddr_in server_sock;
    //客户端地址信息
    struct sockaddr_in client_sock;
    int sin_size;
    struct sockaddr_in *cli_addr;
    //连接Wifi,
    WifiConnect("******", "********");
    //创建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_);
    //调用bind函数绑定socket和地址
    if (bind(sock_fd, (struct sockaddr *)&server_sock, sizeof(struct sockaddr)) == -1)
    
        perror("bind is error\\r\\n");
        exit(1);
    
    //调用listen函数监听(指定port监听)
    if (listen(sock_fd, TCP_BACKLOG) == -1)
    
        perror("listen is error\\r\\n");
        exit(1);
    
    printf("start accept\\n");
    //调用accept函数从队列中
    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));
        
        //处理目标
        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);
    

上位机-DAYU200

  1. DAYU200与主控Hi3861采用TCP通信,参考文档Socket连接
  2. 首页界面,点击“开始”按钮进控制页面

    3.可视化控制页面,点击“喷灌”和“停喷”可以开启和关闭喷灌系统。

    演示系统组成

    1.演示系统由水泵,三叉喷头,支架,管路,变频器,Hi3861开发板和DAYU200开发板共同组成。


    2.演示视频,视频中上位机是HDMI驱动的显示器和DAYU200开发板的触摸屏同时显示。(https://ost.51cto.com/show/14436)
    3.代码仓库

    展望

    88年前,毛泽东同志提出“水利是农业的命脉”;2022年2月22日,《中共中央国务院关于做好2022年全面推进乡村振兴重点工作的意见》发布,2022年将建设高标准农田1亿亩,累计建成高效节水灌溉面积4亿亩。统筹规划、同步实施高效节水灌溉与高标准农田建设。
    相信OpenHarmony及相关轻富设备会在乡村振兴的大趋势中发挥举足轻重的作用。

想了解更多关于开源的内容,请访问:

51CTO 开源基础软件社区

https://ost.51cto.com/#bkwz

以上是关于#DAYU200体验官#农业喷灌的可视化控制的主要内容,如果未能解决你的问题,请参考以下文章

#DAYU200体验官# OpenHarmony3.2的编译烧录

#DAYU200体验官# OpenHarmony标准系统运行docker软件

#DAYU200体验官# ArkUI eTS实践开发一个管家服务系统

#DAYU200体验官# 首页aito视频&Canvas绘制仪表盘(ets)

#DAYU200体验官#HelloKun开源鸿蒙车机系统OHCar

抢鲜体验 DAYU200更多样例来袭