基于 ESP32 芯片的智慧农业监控系统的设计与实现

发表时间:2021/4/16   来源:《教育学文摘》2021年第36卷2期   作者:张在职,杨超,程张凯,夏学敏,尚传福
[导读] 智慧农业是农业生产的高级阶段,是集新兴的互联网、移动互联网、云计算和物联网技术为一体
        张在职,杨超,程张凯,夏学敏,尚传福
        山东工业职业学院
        一、项目介绍
        智慧农业是农业生产的高级阶段,是集新兴的互联网、移动互联网、云计算和物联网技术为一体,依托部署在农业生产现场的各种传感节点(环境温湿度、土壤水分、二氧化碳、图像等)和无线通信网络实现农业生产环境的智能感知、智能预警、智能决策、智能分析、专家在线指导,为农业生产提供精准化种植、可视化管理、智能化决策。
        该项目有如下特点:
        创新性:采用多种传感器有机结合,运用单片机开发,传感器开发,硬件通讯系统,网络通讯系统,边缘加速,云平台,大数据,物联网等多种现代化技术融合,构建智慧农业监控系统。
        实用性:低成本,低门槛,清晰展示实时监控信息,为农户提供了最简洁、最高效的实时监控系统,农田的实时监控有助于农户合理安排种植与保护,可适应众多环境,设备整体功耗较低并采用安全电压。
        科学性: ESP32模组作为主控,可分别提供WiFi和蓝牙通讯方式,传感器通过IIC、SPI、1-Wire协议与主控相连传输数据,保证高效准确,通过MQTT协议将采集的数据以短报文形式发送到云端,用户可远程查看监控信息以及远程控制。
        
        项目结构图


        二、主控模块介绍
        项目使用ESP32作为核心芯片,ESP32是Espressif乐鑫信息科技推出的一块WiFi芯片。拥有40nm工艺、双核32位MCU、2.4GHz双模Wi-Fi和蓝牙芯片、主频高达230MHz,计算能力可达600DMIPS。
        ESP32 系列模组具备卓越的性能和丰富的外设,集 Wi-Fi、传统蓝牙、低功耗蓝牙为一体,提供高度集成的解决方案,广泛适用于各类物联网应用。
        ESP32专为移动设备、可穿戴电子产品和物联网 (IoT) 应用而设计。作为业内领先的低功耗芯片,ESP32具有精细的时钟门控、省电模式和动态电压调整等特性。低占空比可以极 大降低ESP32芯片的能耗。射频功率放大器的输出功率也可调节,以实现通信距离、数据率和功耗之间的最佳平衡。
        三、传感器介绍
        1、大气压力检测
        大气压力检测选用了博世BME280传感器,这是一款具有温度、大气压力和湿度的环境传感器。该传感器非常适合各种天气、环境传感,甚至可以在IIC和SPI中使用!
        该精密传感器是用于湿度测量的最佳低成本传感解决方案,精度为±3%精度,绝对精度为±1 hPa的大气压力和精度为±1.0°C的温度。由于压力会随高度变化,因此压力测量值非常好,因此也可以将其用作高度计,精度为±1米。
        2、温湿度检测
        温湿度检测使用AM2302湿敏电容数字温湿度传感器,该传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有较高的可靠性与卓越的长期稳定性。因此该产品具有品质卓越、响应快、抗干扰能力强、性价比高等优点。
        3、UV紫外线检测
        UV紫外线传感器专为需要高可靠性和精确性测量紫外线指数(UVI)的场合所设计;适合测量太阳光紫外线强度总量;对照世界卫生组织紫外线指数分级标准检测UV波长:200-370nm;响应极快、全互换性;
        4、光强检测
        光强检测使用MAX44009环境光传感器,该传感器提供I2C数字输出,可理想用于智能手机、笔记本电脑、工业传感器等便携产品。器件工作电流小于1μA,是业内功耗最低的环境光传感器,具有22位超宽动态范围(0.045lux至188,000lux)。
5、时钟模块
        时钟模块使用DS3231。DS3231是低成本、高精度I2C实时时钟(RTC),具有集成的温补晶振(TCXO)和晶体。该器件包含电池输入端,断开主电源时仍可保持的计时。集成晶振提高了器件的长期度,并减少了生产线的元件数量。DS3231提供商用级和工业级温度范围,采用16引脚300mil的SO封装。RTC保存秒、分、时、星期、日期、月和年信息。少于31天的月份,将自动调整月末的日期,包括闰年的修正。
        6、土壤湿度检测
        土壤湿度模块是一个简易的水分传感器可用于检测土壤的水分,表面镀镍而不易生锈,延长使用寿命,感应面积宽提高导电性能。模块双输出模式,数字量输出简单,模拟量输出更精确。灵敏度可调(图中蓝色电位器调节阀值)。比较器采用LM393芯片,工作稳定,信号干净。设有固定螺栓孔,方便安装。
        四、数据传输
        数据传输使用MQTT协议。MQTT协议是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信、物联网(IoT)等。其在通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
        五、云平台
        云平台使用腾讯云。腾讯云物联网通信(Internet of Things Hub, IoT Hub)旨在提供一个安全、稳定、高效的连接平台,帮助开发者低成本、快速地实现“设备-设备”、“设备-用户应用”、“设备-云服务”之间可靠、高并发的数据通信。不仅可以实现设备之间的互动、设备的数据上报和配置下发,还可以基于规则引擎和腾讯云产品打通,方便快捷地实现海量设备数据的存储、计算以及智能分析。
五、部分功能代码
//获取光照指数
void luxtest()
{uint32_t interval = 1000;
 if (millis() - lastDisplay >= interval)
  {lastDisplay += interval;
    lux = myLux.getLux();
    int err = myLux.getError();
    if (err != 0)
    {Serial.print("Error:\t");
      Serial.println(err);}
    else
    {Serial.print("lux:\t");
      Serial.println(lux); } }}
//获取温湿度指数并判断
int shidu()
{ int thum;
  thum = analogRead(32);
  othum = map(thum, 0, 4095, 0, 1023);
  Serial.println(othum);
  if (othum > 0 && othum <= 300)
  {Serial.println("dry");}
  else if (othum > 300 && othum < 700)
  {Serial.println("wet");}
  else
  {Serial.println("in water");}
  return othum;}
 //获取dht22温湿度
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  //获取光照强度
  lux = myLux.getLux();
  //获取bme280的气压值
  float hpa = bme.readPressure() / 100.0F;
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: