×

采用AdaCore的农作物监测系统

消耗积分:0 | 格式:zip | 大小:1.83 MB | 2022-10-21

杜云

分享资料个

描述

全球最令人担忧的问题之一是全球变暖已经和将要产生的影响,因此气候变化对不同经济部门的影响,特别是在发展中国家,这些部门的人口更易受到影响,抵御能力更差。几十年前开始进行的科学观察表明,地球正在全球变暖,此外还发现洪水、干旱、热浪等极端事件的频率有所增加。

问题:

在哥伦比亚和世界上,必须让农民成为他们所做的事情的专家。就像他们有好时光一样,他们也有不好的时光。据我国农业和农村发展部称,由于极端天气事件的发生,特别是在厄尔尼诺和拉尼娜现象阶段,这已受到严重影响。通过气候变率与气候变化有关的气候异常在区域层面产生了很大比例的社会经济影响,其中农业依赖于降雨状况和温度行为,这会导致耕地发生洪水和滑坡、病虫害扩散和疾病蔓延,作物营养周期、害虫周期变化、生产季节性增加、作物产量和产量损失。

poYBAGNQkjqAKjjAAABmcqLbeco239.png
可怕的图表,以及为什么一切都会发生。它显示了温室气体排放量的增加。在过去的 30 年里,它们的增长速度翻了一番。
 

解决方案:

为了达成解决方案,有必要问自己:我们是否有任何方法可以整合科学和技术来增加智能农业的发展,从而以相同的研究方式和与人工智能力量解读农业气候变量防灾?

我的解决方案将使用由 Ada 语言编码的 Arduino 应用程序和传感器,专门用于监测、处理和分析影响作物发育的农业气候变量。

通过这种方式,在我们的项目中,我们可以对许多作物进行地理参考并通知收到的警报,与利益相关者共享作物可追溯性报告,支持农业研究并将其转化为农业生产者的知识来源。

通过我们的解决方案,我们可以表征影响作物生长的农业气候变量,并且我们可以在日期确定作物的小批量。

上述所有工作都归功于一个分段的农业气候站网络,该网络监测温度、湿度、太阳辐射、紫外线等行为。

我们开始做吧!第一阶段:

最初在我们的第一个原型中,我们将设计和构建一个带有 Arduino UNO 板的小型系统,我们将连接三个基本传感器:温度和湿度、水位和气位。

硬件:

  • 我们连接格罗夫盾牌。
  • 现在将水位传感器连接到 Grove 引脚 A0 上的屏蔽层。
  • 现在将空气质量传感器连接到 Grove 引脚 I2C 上的屏蔽层。
  • 我们将温度和湿度传感器连接在引脚 A1 上。
  • 最后,我们将 Arduino UNO 板连接到计算机。
 
 
 
pYYBAGNQkj2AVI_mAAO9bloqFoU775.jpg
 
1 / 4
 

软件:AdaCore 社区

从艾达开始:

对于这个项目,我们必须安装 AdaCore 社区程序,我们将使用它来编译我们的农业系统。为此,我们执行以下步骤:

  • 转至 AdaCore 官方网站并搜索下载或直接单击此处
  • 选择与您的计算机兼容的链接。
  • 启动安装程序并继续按照程序的安装步骤进行操作。

编码项目:

procedure Fistprototype_I2C is
   use type Interfaces.Unsigned_8;

   TMP102_Address : constant := 16#90#;
   Data : Uno_I2C.I2C.Byte_Array (1..2) := (0, 0);
   Cmd : Uno_I2C.I2C.Byte_Array (1..1) := (1 => 16#00#);
   Status : Uno_I2C.I2C.Error_Status;
   Temp_Value : Integer;
begin
   AVR.UART.Init (103);
   loop
      Data := (0, 0);
      Uno_I2C.Write (Address => TMP102_Address, Bytes => Cmd, Status => Status);
      Uno_I2C.Read (Address => TMP102_Address, Bytes => Data);
      Temp_Value := Integer (Data (1)) * 256;
      Temp_Value := Temp_Value + Integer (Data (2));
      Temp_Value := Temp_Value / 256; -- Basically we ignore the second byte

      AVR.UART.Put ("T:");

      if Temp_Value > 0 then
         Data (1) := Interfaces.Unsigned_8 (Temp_Value);
      else
         AVR.UART.Put ("-");
         Data (1) := Interfaces.Unsigned_8 (-Temp_Value);
      end if;
      AVR.UART.Put (Data (1), Base => 10);
      AVR.UART.Put (" C");
      AVR.UART.CRLF;
      delay 2.0;
   end loop;
end Test_I2C;

结论:

我很高兴学习这种新的编程语言,它的界面太专业了。

应该注意的是,我们的项目处于初始阶段,因为我是在大学空闲时间开发的。

在接下来的几天里,我将上传第一个原型的第二阶段的更新,我将尝试集成物联网系统以可视化来自云端的变量,并与专家和科学家分享。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !