| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 从零开始的DIY智能家居 - 基于 ESP32 的土壤湿度传感器 -> 正文阅读 |
|
[嵌入式]从零开始的DIY智能家居 - 基于 ESP32 的土壤湿度传感器 |
前言自从上次做了那个 甲醛传感器 和 水浊度传感器 之后开始尝到智能家居的甜头了,这两东西有没有用我不知道,但是没事的时候掏出手机瞄两眼,看着就让人很安心( ̄︶ ̄)↗。 于是懒惰的我开始琢磨把给植物浇水这件事情找个法子偷一下懒,也给它智能化了。这样我就不用每天浇水,直接给水桶灌水就行。 因为土壤湿度传感器的使用方法和水浊度传感器差不多,我就用水浊度传感器的代码改了改,做了一个土壤湿度传感器。 硬件选择这次开发板还是和水浊度传感器一样,依然还是用着安信可的 ESP32S ,别问,问就是便宜 24元 传感器用的 DFrboot 的 土壤湿度传感器 35元 服务器用的翼辉的 Spirit 1 ,799元,这玩意就是一次性投入上次买了之后,后面所有的设备都可以用它,作为服务器。 传感器接线:使用 A0 控制(SVP/IO36),电源接3.3-5V都可以。 代码解析获取代码为了方便讲解逻辑,我会打乱代码的顺序可能还会进行裁剪,要是想直接拿代码跑的朋友可以直接去 灵感桌面的秘密宝库 获取代码,或者直接 clone:
要是连 git 是什么都不知道,可以参考简单无脑,上手即用 - 手把手教你使用 智能红外温度传感器代码以及依赖的 gitee 库!
libsddc:是我移植自官方的SDDC库和自己写的 SDK,也是放入 libraries 文件夹里就行。里面是 SDDC 协议的处理函数,我们不用管。 demo 文件夹里面就是我们各种传感器的 demo 代码了: 具体 arduino 使用教程可以看我之前的文章 arduino开发指导 和 手把手带你 arduino 开发:基于ESP32S 的第一个应用-红外测温枪(带引脚图) 设备控制命令:通过 Spirit 1 的应用程序或者嗅探器 向传感器设备发送的命令。
如果默认的数据上报周期不符合需要还可以通过 set 命令来调整主动上报的间隔:
设备和协议初始化流程:这部分基于官方 demo 写的不需要做什么修改,主要是设备初始化,管脚配置,和协议初始化部分。 传感器初始化部分,因为这个传感器输出只是普通的电压值,用一般的 IO 口即可读取,不需要初始化额外的串口或者 I2C,但是主动上报流程中需要加延时,为了不阻塞其他任务需要单独创建一个线程 。 设备和协议初始化部分,代码基本不需要改动,并且过长,这里就不放出来,有兴趣的朋友可以去 灵感桌面的秘密宝库 查看详细代码。
配置设备信息这部分代码可以配置 WiFi 名字和 WiFi 密码,要使用的引脚,并且配置设备在 Spirit 1 上显示的信息:
这里填写设备的信息,方便在 Spirit 1 上查看和寻找你需要的设备:
回调函数注册这是收到命令后回调函数注册的位置,在这里注册的函数才能被 SDK 正确的调用,执行正确的动作。 土壤湿度传感器输出 (get命令) 的土壤湿度是数字量,所以在 系统对象状态获取注册 中注册处理函数时,第二个参数需要设定为 DEV_NUM_TYPE,而 对应的处理函数是single_get_sensor。
输入(set 命令)的上报时间间隔也是数字量,所以在 数字量设备对象函数与处理方法注册 中注册 “periodic_time” 命令处理函数。
因为没有其他输入,所以 显示设备对象函数与处理方法注册 和 IO设备对象设置函数与处理方法注册 为空。
具体 SDK 的解析可以参考 同人逼死官方系列!基于sddc 协议的SDK框架 sddc_sdk_lib 解析 和 同人逼死官方系列!从 DDC 嗅探器到 sddc_sdk_lib 的数据解析 数据获取与发送流程这里是我们自己编写的处理流程 ,可以根据你的需求自己更改,收到 set 命令或者 get 命令后根据上文注册的函数,进入对应的处理函数。 设备会监视传感器输出,然后根据设置的上报间隔定时上报土壤湿度数据,还可以主动发送 get 命令主动查询传感器当前数据:
代码写完之后烧录进去就完事了,和之前完全一样,点一下保存,然后上传OK,具体可以看之前的文档,我就懒得再写一遍啦 (/ω\) 总结土壤湿度传感器完美完成,接下来就是智慧浇水设备了,我马上就能摆脱每天都要浇水的日子了! 本文仅个人学习使用,如有错误,欢迎指正, ( ? ˙?˙ )?谢谢老板! |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:00:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |