『免费开源』基于单片机的自动浇花系统DIY总结

news2024/11/23 8:14:50

功能梳理

  • PCB线路板采用核心板+底板实现

核心板:排针引脚间距为2.54mm,2排,双排间距为2.54mm的倍数(方便与面包板联用),未使用引脚全部引出,核心板上的主芯片为STM32F103RET6。

目的:

  • 方便与面包板配合使用;

  • 核心板上预留两个2.54mm间距,4脚座和5脚座,部分传感器模块只需要这两个底座既可以实现模块功能。

  • 核心板上的主芯片相对较贵,做成核心板之后,可以重复利用,方便大家一起跟着做,以后我们只需要修改底板的设计即可。(本月的核心板没有变化,还是使用上个月的核心板

上图中各个模块简要说明:

  • 标号1为最小核心板,上面包括一个Micro USB接口的Debug串口(串口1)、RTC实时时钟电路;

  • 标号2为ESP8266 WiFi模块,用于实现与阿里云物联网平台连接,实现水泵的远程控制功能;

  • 标号3为RGB 全彩LED;

  • 标号4为LCD12864;

  • 标号5为土壤湿度传感器;

  • 标号6为使用光耦+三极管的方式实现继电器控制电路,用于控制水泵的开关;

  • 标号7为底板上的3个按键,从左到右,按键功能分别为:模式选择、关水泵(下限-)及开水泵(上限+);

  • 标号8为供电接口;

  • 标号9为蜂鸣器。

后台回复关键词“每月一练”可以获得PCB工程文件,将下图框选的文件发给线路板加工厂家,可以直接打样。两个板子在某立创十元钱就可以搞定。(202006每月一练活动中的核心板如果你已经打样了,那么本次的核心板就不用打样了,两个是一样的。

参考阅读:
STM32单片机最小系统详解

  • 蜂鸣器

系统状态提示音,比如,土壤干燥的时候,可以每隔5秒滴答响一声。

蜂鸣器的使用,参考阅读:
蜂鸣器演奏音乐“你笑起来真好看”

  • LED指示灯

土壤干燥程度指示;比如可以绿色代表正常,红色代表缺水状态;本设计选用了RGB 全彩LED。

RGB全彩LED的驱动使用PWM的方式进行驱动的,参考阅读:
利用PWM原理,实现呼吸灯功能
STM32驱动RGB全彩LED

  • 继电器模块

控制水泵开关

继电器的使用方法,参考阅读:
继电器(Relay)

  • 土壤湿度传感器

通过AD转换模块,获得到土壤湿度传感器模块的AD值,此值间接等价于土壤的相对湿度。也可以通过STM32的GPIO读取土壤湿度传感器DO的返回值,通过模块上的电位器,可以调整模块的阈值,进而调整模块的灵敏度。

本次活动选用AD值的方式进行判断是否应该启动水泵。

土壤湿度传感器模块的使用方法,参考阅读:
土壤湿度传感器,出远门再也不怕花没人浇水了

  • LCD显示模块

显示当前测量土壤湿度值和土壤湿度的上限和下限阈值。

为了与六月份的设计选用的0.96寸OLED屏有所不同,我们这次选用LCD12864液晶屏。

其实本设计理论上可以不需要液晶屏,增加液晶屏的意义不大,只要有云智能APP即可,而且把设计弄复杂了,我们此处增加液晶屏主要为了学习而添加。

LCD12864屏的使用方法,参考阅读:
STM32串行通信模式驱动LCD12864,结合手册从原理让你理解显示过程

  • 按键模块

手动控制水泵的开启和关闭。

可以设置土壤湿度的上下限,自动模式下低于下限启动水泵浇水,高于上限停止浇水。

按键翻页查看历史温度值,共计可以存24组(理论上24小时每小时一组,但是为了方便演示,默认1分钟存一组)底板上有一个24C02模块的原理图,用于存储历史数据,此部分内容8月份介绍。

  • WiFi模块

在手机APP上可以远程控制水泵的开启和关闭;APP上还可以查看当前土壤湿度。

ESP8266 WiFi模块的使用及连接阿里云物联网平台,参考阅读:
mini D1 WiFi模块Arduino开发简介
七步快速开启产品智能化
ESP8266连接阿里云物联网平台(Arduino方式)
Windows下AliOS Things环境搭建及ESP8266 固件下载
快速接入阿里云物联网平台技术方案分享

  • 串口通信

STM32的串口1作为Debug串口;串口5与ESP8266进行数据通信。

STM32串口通信的使用方法,参考阅读:
STM32F103 串口的使用方法

物联网模块ESP8266返回的数据格式为JSON字符串,对此字符串进行解析,参考阅读:
Keil环境下STM32工程加入cJSON
用cJSON解析心知天气返回的数据包

  • 实时时钟模块

用于记录整秒时间的计时,当土壤处于缺水状态时,每隔五秒滴答一次;使用STM32单片机自带的RTC功能即可。

STM32自带RTC功能的使用方法,参考阅读:
STM32 RTC及定时闹钟功能实现

  • 温度传感器DS18B20

设置上下限,超过蜂鸣器报警,提示防寒或降温;温度模块底板上有预留设计,各位可以自由发挥。

STM32驱动DS18B20温度传感器,参考阅读:
DS18B20温度传感器时序图解析(STM32)

成果展示

,时长03:20

最终实现的功能包括:

  • LCD12864液晶屏上显示土壤湿度的AD值、上下限值、水泵状态、当前运行模式,并将AD值上传至阿里云物联网平台上;

  • 手动和自动两种模式,利用云智能APP可以实现定时功能;

  • 手动模式通过底板上的按键1进行手动开启,湿度达到湿度设定值上限时自动停止;按键2可以手动提前关闭;按键状态与阿里云物联网平台上的状态实时同步;

  • 自动模式时,当土壤湿度低于设定值下限时,自动开启水泵,当湿度达到上限时,停止水泵;自动模式下,按键1和按键2可以手动调整上下限值。

  • 定时模式时,当网络时间达到设定时间时,云智能APP会自动下发开启水泵浇水指令;

  • 当土壤湿度低于设定值下限时,RGB LED呈红色;当土壤湿度介于上下限之间时,LED呈黄色;当土壤湿度高于设定值上限时,LED呈绿色;

  • 任何时候都可以用过手机上的“云智能”APP随时开启或关闭水泵;

  • 当土壤湿度过低时,每隔5秒,蜂鸣器滴答响一声,用于提示主人应该浇水了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/663788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ProtoBuf 第一章、初识

一、初识 ProtoBuf 1.1序列化的概念 序列化和反序列化 序列化:把对象转换为字节序列的过程 称为对象的序列化。反序列化:把字节序列恢复为对象的过程 称为对象的反序列化。 什么情况下需要序列化 存储数据:当你想把的内存中的对象状态保存…

Opencv-C++笔记 (12) : opencv-仿射变化

文章目录 一、概述二、GetRotationMatrix2D三、warpAffine() 一、概述 介绍完图像的缩放和翻转后,接下来将要介绍图像的旋转,但是在OpenCV 4中并没有专门用于图像旋转的函数,而是通过图像的仿射变换实现图像的旋转。实现图像的旋转首先需要确…

MT6704 应用

MT6704 是用于反激式变换器的高性能 40V 同步整流器。它兼容各种反激转换器类型。支持 DCM、CCM 和准谐振模式。MT6704 集 成 了 一 个 40V 功 率MOSFET&#xff0c;MT6704可以取代肖特基二极管&#xff0c;提高效率。V SW <V TH-ON 时&#xff0c;内部 MOSFET 导通。 V SW …

【JavaEE】网络层和数据链路层重点协议:IP和以太网

目录 1、IP协议 1.1、IP协议报头 1.2、解决IPv4地址不够用的问题 2、IP地址管理 2.1、IP地址的组成 2.1.1、子网掩码 2.1.2、IP地址的分类 3、路由选择 4、数据链路层协议&#xff1a;以太网协议 1、IP协议 IP协议属于TCP/IP模型的网络层&#xff0c;在网络层协议存在…

volatile,wait和notify,懒汉模式和饿汉模式,阻塞式队列,定时器

目录 可见性 volatile volatile保证内存可见性 volatile不保证原子性 synchronized也可以保证内存可见性 wait和notify wait () notify() notifyAll() wait和sleep对比 顺序执行ABC三个线程 单例模式 饿汉模式 懒汉模式 懒汉模式和饿汉模式在多线程环境下调用getInstance,是否…

将条码图片批量嵌入到Excel单元格中

项目源码&#xff08;如果有帮助希望可以点一个star&#xff09; 业务场景&#xff1a; 需要将条码图片存到excel之中方便归档。 效果展示&#xff1a; 直接运行org.example.Main.main()就会将file目录中的图片插入到excel中&#xff0c;并且在项目根目录会生成一个.xlsx文件…

CTFshow-pwn入门-前置基础pwn20-pwn22

pwn20-pwn22是关于.got节跟.got.plt节的。这3道题的问题描述全是一样的&#xff0c;全都是问.got跟.got.plt是否可写以及他们的地址是什么&#xff0c;然后根据这些信息来拼成flag。那么关于.got和.got.plt的内容非常复杂&#xff0c;这里呢我也不解释了&#xff0c;推荐一个牛…

【kubernetes】负载均衡器安装部署-Haproxy与keepalived

前言:二进制部署kubernetes集群在企业应用中扮演着非常重要的角色。无论是集群升级,还是证书设置有效期都非常方便,也是从事云原生相关工作从入门到精通不得不迈过的坎。通过本系列文章,你将从虚拟机准备开始,到使用二进制方式从零到一搭建起安全稳定的高可用kubernetes集…

不要再用 count(*) 查询记录数了

来源 | 苏三说技术 &#xff08;ID&#xff1a;susanSayJava&#xff09; 已获得原公众号的授权转载 前言 最近我在公司优化过几个慢查询接口的性能&#xff0c;总结了一些心得体会拿出来跟大家一起分享一下&#xff0c;希望对你会有所帮助。 我们使用的数据库是Mysql8&…

【6.19】用户自己写String类会发生什么(双亲委派机制)

用户自己写一个String类会发生什么&#xff1f; 了解“类加载器” Java是运行在Java的虚拟机&#xff08;JVM&#xff09;中的。我们在IDE里编写的Java源代码先编译成.class的字节码文件&#xff0c;再由ClassLoader将class文件加载到JVM中执行。 JVM中有三层ClassLoader&am…

apple pc install windows 10

苹果笔记本安装window10&#xff0c;做个U盘启动&#xff0c;开机狂摁option&#xff0c;选择U盘&#xff0c;当然你最好去windows官方下个镜像&#xff0c;避免我前面出现提出镜像不行。另外苹果后来机器好像不能安windows了。呼呼…

GPT-3解数学题准确率升至92.5%!无需微调即可打造理科语言模型

原文&#xff1a;百度安全验证 【新智元导读】ChatGPT的文科脑有救了&#xff01; 大型语言模型最为人诟病的缺点&#xff0c;除了一本正经地胡言乱语以外&#xff0c;估计就是「不会算数」了。 比如一个需要多步推理的复杂数学问题&#xff0c;语言模型通常都无法给出正确答…

很有必要更新:LightningChart.NET 10.5.1 Crack

LightningChart.NET v10.5.1版本--这个版本比SciChart 更好&#xff0c;更快&#xff0c;更强 为所有3D、Polar和Smith系列添加DataCursor功能。 2023年6月19日-10:53新版 特点 为所有3D、Polar和Smith系列启用了DataCursor功能。DataCursor允许用户浏览一个系列&#xff0…

【一起啃书】《机器学习》第十章 降维与度量学习

文章目录 第十章 降维与度量学习10.1 k k k近邻学习10.2 低维嵌入10.3 主成分分析10.3.1 定义与步骤10.3.2 最近重构性与最大可分性 10.4 核化线性降维10.5 流形学习10.6 度量学习 第十章 降维与度量学习 10.1 k k k近邻学习 k k k近邻学习是一种常用的监督学习方法&#xf…

数字图像处理实验报告(二)

报告目录 实验四、图像复原 实验五、图像压缩及编码 实验四、图像复原 一、实验目的 了解图像复原的意义和手段&#xff1b;熟悉图像退化成因及处理方法&#xff1b;通过实验了解不同图像退化模型的特点&#xff1b;通过本实验掌握利用MATLAB建立图像退化模型并进行复原的方…

linux CentOS7 keepalived+LVS(DR)搭建部署

目录 一、服务器准备 二、操作步骤 1.部署web服务器 2.部署LVS主备调度器 测试 部署NFS共享服务器 一、服务器准备 .准备6台虚拟机&#xff0c;2台做LVS主备调度器&#xff0c;2台做web服务器&#xff0c;1台做存储&#xff0c;1台客户机验证 1.LVS主调度器 &#xff08…

20个你应该掌握的强大而有用的正则表达式

关注“大前端私房菜”微信公众号&#xff0c;回复暗号【面试宝典】即可免费领取107页前端面试题。 正则表达式是一种很强大的字符串模式匹配工具。掌握常见的正则表达式可以大大提高我们在字符串操作和文本处理上的效率。 1.货币格式化 我经常需要在工作中使用到格式化的货币&…

哈希及其哈希思想的应用

1. unordered 系列关联式容器 在 C98 中&#xff0c; STL 提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到 $log_2 N$ &#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的节点非常多时&#xff0c;查询效率也不理想。最好 的查询…

Ubuntu20.04,samba服务器搭建。

0.前言 推荐个电视剧吧&#xff0c;百看不厌&#xff0c;《雍正王朝》。 这篇博客没什么技术含量&#xff0c;纯粹的表现一下我的勤劳。 1.Ubuntu 安装 终端输入 $ sudo apt install samba samba-common 配置需要共享的目录 # 新建目录&#xff08;自定义&#xff09;&am…