0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32项目分享:智慧农业(机智云)系统

机智云 2024-07-27 08:10 次阅读

目录

一、前言

二、项目简介

1、功能详解

2、主要器件

三、原理图设计

四、PCB硬件设计

1、PCB图

2、PCB板打样焊接图

五、程序设计

六、实验效果

七、资料内容

项目分享

一、前言

项目成品图片:

b013de92-4bac-11ef-817b-92fbcf53809c.jpg

项目简介

1.功能详解

STM32基于机智云智能温室大棚系统。功能如下:

1、温湿度采集:使用DHT11温湿度传感器采集环境温湿度土2、壤湿度采集:通过土壤湿度模块采集土壤湿度

3、光照强度采集:通过光敏电阻采集环境光照强度

4、二氧化碳浓度采集:通过CO2气敏传感器检测二氧化碳浓度

5、土壤温度采集:通过DS18B20传感器采集土壤温度

6、风扇控制:可自动模式下根据环境温度触发或手动模式下APP开闭

7、水泵控制:可自动模式下根据土壤湿度触发或手动模式下APP开闭

8、LED照明灯控制:可自动模式下根据环境光强触发或手动模式下按键开闭

9、通风口:通过步进电机模拟通风口

10、OLED显示:将检测到的环境数据显示在oled屏幕上。

11、蜂鸣器报警:危险情况下本地蜂鸣器触发报警

12、APP功能:使用机智云APP,包括功能有控制并显示风扇、水泵、通风口和补光灯状态,选择工作模式为手动或自动模式,显示当前环境温湿度、土壤温湿度以及光照强度和二氧化碳浓度信息

主要器件

■ STM32F103C8T6最小系统板

■ DHT11温湿度传感器

■ OLED显示屏(4针I2C协议)

■ WiFi模块(esp8266-01s)

■ 土壤湿度传感器

■ 二氧化碳传感器

■ DS18B20温度传感器

■ 28BYJ51步进电机

■ 5V风扇模块

■ 5V水泵模块

■ 蜂鸣器

LED

原理图设计

b0351eea-4bac-11ef-817b-92fbcf53809c.png

PCB硬件设计

1、PCB图

b05e07ec-4bac-11ef-817b-92fbcf53809c.jpg

2、PCB板打样焊接图

b07f00dc-4bac-11ef-817b-92fbcf53809c.jpg程序设计

int main(void){ ADCX_Init(); Timer2_Init(9,14398); Uart2_Init(9600); Uart1_Init(115200); Uart3_Init(); IWDG_Init(); //初始化看门狗 LDR_Init(); YL69_Init(); OLED_Init(); DHT11_Init(); LED_Init(); Buzzer_Init(); Relay_Init(); MOTOR_Init(); Key_Init(); Sensorthreshold.CO2Value = FLASH_R(FLASH_START_ADDR); //从指定页的地址读FLASH Sensorthreshold.luxValue = FLASH_R(FLASH_START_ADDR+2); //从指定页的地址读FLASH Sensorthreshold.tempValue = FLASH_R(FLASH_START_ADDR+4); //从指定页的地址读FLASH Sensorthreshold.humiValue = FLASH_R(FLASH_START_ADDR+6); //从指定页的地址读FLASH Sensorthreshold.soilTempValue = FLASH_R(FLASH_START_ADDR+8); //从指定页的地址读FLASH Sensorthreshold.soilHumiValue = FLASH_R(FLASH_START_ADDR+10); //从指定页的地址读FLASH GENERAL_TIM_Init(); userInit(); //完成机智云初始赋值 gizwitsInit(); //开辟一个环形缓冲区 while (1) { IWDG_ReloadCounter(); //重新加载计数值 喂狗 SensorScan(); //获取传感器数据 switch (menu) { case display_page1: SensorDataDisplay1(); //显示传感器1数据 OLED_Menu1(); //显示主页面1固定信息 if (KeyNum == KEY_2) //是否按下按键2 { KeyNum = 0; OLED_Clear(); //清屏 menu = display_page2; //menu = 主页面2 } MotorOperation(); break; case display_page2: SensorDataDisplay2(); //显示传感器2数据 OLED_Menu2(); //显示主页面2固定信息 if (KeyNum == KEY_2) //是否按下按键2 { KeyNum = 0; OLED_Clear(); //清屏 menu = display_page1; //menu = 主页面1 } MotorOperation(); break; case settingsPage: //从主页面跳转至设置页面时进行一次清屏 if (OLED_Clear_Flag) { OLED_Clear_Flag = 0; //清除清屏标志位 OLED_Clear(); //清屏 } ThresholdModification(SetSelection()); //调节传感器阈值 OLED_Option(SetSelection()); //获取按键次数,从而判断“>”显示位置 //按键次数小于等于4时,显示设置页面1 if (SetSelection() <= 4) { settingsThresholdDisplay1(); //显示传感器阈值1数据 OLED_settingsPage1(); //显示阈值设置界面1固定信息 } else //否则显示设置页面2 { settingsThresholdDisplay2(); //显示传感器阈值2数据 OLED_settingsPage2(); //显示阈值设置界面2固定信息 } if (KeyNum == KEY_2) //判断用户是否按下退出按键 { KeyNum = 0; OLED_Clear(); //清屏 menu = display_page1; //回到主页面1 //存储修改的传感器阈值至flash内 FLASH_W(FLASH_START_ADDR, Sensorthreshold.CO2Value, Sensorthreshold.luxValue, Sensorthreshold.tempValue, Sensorthreshold.humiValue, Sensorthreshold.soilTempValue, Sensorthreshold.soilHumiValue); } break; default: break; } userHandle(); //更新机智云数据点变量存储的值 gizwitsHandle((dataPoint_t *)¤tDataPoint); //数据上传至机智云 }}

实验效果

b013de92-4bac-11ef-817b-92fbcf53809c.jpg

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

    关注

    2264

    文章

    10852

    浏览量

    354100
  • 智慧农业
    +关注

    关注

    4

    文章

    772

    浏览量

    19783
  • 机智云
    +关注

    关注

    2

    文章

    572

    浏览量

    26353
收藏 人收藏

    评论

    相关推荐

    诚接stm32项目

    诚接stm32项目价格私聊
    发表于 05-17 10:20

    机智2016~2017优秀项目盘点

    】之无线工业粉尘监测仪【Gokit 3】之仓鼠管家和OpenHamtaro开源项目【Gokit】之智慧宿舍【Gokit 3】之智能婴儿摇篮【GoKit+STM32】之智能家居控制套件
    发表于 09-22 13:03

    机智上创建项目和数据集

    一、基于STM32+ESP8266+机智的物联网demo1、在机智上创建项目和数据集2、WI
    发表于 08-03 07:45

    stm32项目搭建基础

    初学者吧stm32项目搭建基础好吧进入主题,我们现在要搭建一个stm32项目我还是把问题写在最开始把1. 注册keil你的keil需要注册当你编写了几行类似于helloworld的小
    发表于 08-23 08:47

    如何在IAR for ARM中创建STM32项目

    如何在IAR for ARM中创建STM32项目
    发表于 11-30 07:16

    机智AIoT开发平台在智慧渔业工业化养殖系统中的应用

    摘要: 传统养殖系统对水质的监测效果较差,导致渔业养殖效果不佳,因此本文设计基于机智AIoT开发平台的智慧渔业工业化养殖系统。硬件设计了主
    发表于 12-23 20:29

    STM32项目开发中超级实用技巧分享

    STM32项目开发中超级实用技巧一. 利用软启动打补丁二. 优化等级尽量选择不优化三. 合理利用开关总中断所有的热爱都要不遗余力,真正喜欢它便给它更高的优先级,和更多的时间吧!关于STM32其它
    发表于 01-21 06:22

    CubeMX如何创建stm32项目

    CubeMX如何创建stm32项目
    发表于 02-14 06:24

    基于HAL库的STM32项目问题描述

    问题描述最近在做的一个基于HAL库的STM32项目需要从多个SPI总线设备读取数据并通过DMA从串口发送,程序如下:(RxData为从SPI总线读取到的数据)sprintf(tempt, "
    发表于 02-28 11:25

    【IoT毕业设计】机智IoT+智慧生态水质pH值监测系统

    联网技术的应用,机智开发者研究设计一款智慧生态水质pH值监测系统模型。该模型综合利用传感检测技术、网络通讯技术等,包含了水质pH值采集、手机端远程控制、水质非常态报警及自动调节等功能
    发表于 05-24 19:34

    开发者案例:基于机智物联网、RT-Thread智慧农业​设计

    的过程中,如果能出现投资金额少,容易安装,方便管理的智慧农业设备,将大大提高智慧农业的发展和推广,这也是我想开发智慧
    发表于 06-17 16:41

    STM32项目设计:基于STM32F4的mp3、wav音乐播放器 (UCOSIII操作系统、GUI控件)

    STM32项目设计:基于STM32F4的mp3、wav音乐播放器 (UCOSIII操作系统、GUI控件)
    发表于 11-15 15:21 49次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>设计:基于<b class='flag-5'>STM32</b>F4的mp3、wav音乐播放器 (UCOSIII操作<b class='flag-5'>系统</b>、GUI控件)

    STM32项目分享:智能家居(机智系统

    STM32项目分享:智能家居(机智系统
    的头像 发表于 07-28 08:10 1182次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>分享:智能家居(<b class='flag-5'>机智</b><b class='flag-5'>云</b>)<b class='flag-5'>系统</b>

    STM32项目分享:智能大棚/智慧农业系统

    01—项目简介1.功能详解基于STM32智慧农业系统。功能如下:温湿度采集:使用DHT11温湿度传感器采集环境温湿度土壤湿度采集:
    的头像 发表于 08-30 12:15 611次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>分享:智能大棚/<b class='flag-5'>智慧</b><b class='flag-5'>农业</b><b class='flag-5'>系统</b>

    STM32项目实战:基于STM32F4的智能灯光控制系统(LVGL),附项目教程/源码

    《智能灯光控制系统_STM32F4》项目完整文档、项目源码,私信小雯老师免费领取。STM32项目
    的头像 发表于 10-17 16:16 461次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>实战:基于<b class='flag-5'>STM32</b>F4的智能灯光控制<b class='flag-5'>系统</b>(LVGL),附<b class='flag-5'>项目</b>教程/源码