首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >基于ESP8266的物联网养花系统

基于ESP8266的物联网养花系统

作者头像
逍遥子大表哥
发布于 2023-06-10 07:35:59
发布于 2023-06-10 07:35:59
69400
代码可运行
举报
文章被收录于专栏:kali blogkali blog
运行总次数:0
代码可运行

为了丰富我们的养老生活。本文我们来介绍利用Esp8266来做一个智能养花系统。

实现功能

  • 通过手机端查看当前的温度 湿度 以及土壤湿度
  • 当土壤湿度低于50%时,自动启动继电器,利用水泵浇水。湿度超过50%断开继电器。 所需设备
  • esp8266
  • 继电器
  • DHT11
  • 土壤湿度传感器 线路连接

设备

VCC (+)

GND(-)

信号线

继电器

3V

GND

D4

DHT11

3V

GND

D2

土壤传感器

3V

GND

D0

代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#define BLINKER_WIFI          
#define BLINKER_MIOT_SENSOR   //引入小爱同学
 #define soilPin A0    //土壤传感器脚针 DO
#define CS  2          //定义继电器脚针为D4
#include <Blinker.h>    
#include <DHT.h>         //DHT11传感器的头文件
 
#define DHTPIN 4      //定义DHT11模块连接管脚io4(D2脚)
#define DHTTYPE DHT11   // 使用DHT11温度湿度模块,当然也可以换其他DHT

//存储土壤的值
int soilValue;
//定义土壤湿度
int soilMoisture;

char auth[] = "1c2ce3eef946"; //点灯app的密钥key
char ssid[] = "PDCN";   //所需连接的WiFi名
char pswd[] = "1234567890";   //WiFi的密码

BlinkerNumber HUMI("humi");    //定义湿度数据键名
BlinkerNumber TEMP("temp");    //定义温度数据键名
BlinkerNumber TEMP2("temp2");    //定义土壤湿度数据键名

DHT dht(DHTPIN, DHTTYPE);    //定义dht
 
float humi_read = 0, temp_read = 0;  //初始化读取的数据
//仪表盘组件 
void heartbeat()
{
    HUMI.print(humi_read);        //给blinkerapp回传湿度数据
    TEMP.print(temp_read);        //给blinkerapp回传温度数据
    TEMP2.print(soilMoisture); 
    if(soilMoisture <=50)   //土壤湿度低于50
    {
      
        digitalWrite(CS, !digitalRead(CS)); //运行继电器
      
      }
    else 
    {
       digitalWrite(CS, HIGH);

    }

}
//实时曲线图组件
void dataStorage()
{
    Blinker.dataStorage("temp", temp_read);
    Blinker.dataStorage("humi", humi_read);
    Blinker.dataStorage("humi2", soilMoisture);
}
//数据返回至小爱同学
void miotQuery(int32_t queryCode)      
{
    BLINKER_LOG("MIOT Query codes: ", queryCode);

            int humi_read_int=humi_read;     //将float转成int类型,整数
            BlinkerMIOT.humi(humi_read_int);     //小爱接收湿度
            BlinkerMIOT.temp(temp_read);      //小爱接收温度
            
            BlinkerMIOT.print(); 
}


void setup()
{
    //初始化串口Serial,开启调试输出   
    Serial.begin(9600);//波特率
    BLINKER_DEBUG.stream(Serial);
    BLINKER_DEBUG.debugAll();
 
    Blinker.begin(auth, ssid, pswd);//WIFI初始化设置   
    Blinker.attachHeartbeat(heartbeat);//注册仪表盘
    dht.begin();
    BlinkerMIOT.attachQuery(miotQuery);//注册小爱
    Blinker.attachDataStorage(dataStorage);//注册实时曲线
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, 1);
    pinMode(CS, OUTPUT);// 初始化继电器脚针
    digitalWrite(CS, HIGH); //初始化继电器脚针
   
   
}
 
void loop()
{
    Blinker.run();//负责处理blinker收到的数据,每次运行都会将设备收到的数据进行一次解析。(这个很重要)
 
    float h = dht.readHumidity();//读取DHT11采集的湿度数据
    float t = dht.readTemperature();//读取DHT11采集的温度数据
 
    if (isnan(h) || isnan(t))//判断温湿度值是否为空
    {
        BLINKER_LOG("读取传感器数据失败");
    }
    else
    {
        BLINKER_LOG("Humidity: ", h, " %");//打印输出调试信息
        BLINKER_LOG("Temperature: ", t, " *C");
        humi_read = h;
        temp_read = t;
    }
 soilValue = analogRead(soilPin); //获取土壤的值0-1024
 soilMoisture = map(soilValue,0,1023,100,0);//将0-1024转为100%-0 空气中土壤湿度为1024
 
    Blinker.delay(200);
    //延时函数, 在延时过程中仍保持设备间连接及数据接收处理
}

效果

当湿度低于50%时,继电器自动工作。

当土壤湿度高于50%时,继电器停止工作

当然上面的代码,仅仅是完成了相应的功能。可能存在一定的不足之处。可根据你的实际情况自行修改。

版权属于:逍遥子大表哥

本文链接:https://cloud.tencent.com/developer/article/2295610

按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Esp8266+DHT11+Binker 实现室内温湿度监测
这里的云存储数据只支持联网设备,如果将温湿度计断电断网,数据是不会存储的,会在曲线图中骤然下降的趋势,重新连接后会骤然上升。这里的云存储的功能并不是很强大,如果修改代码重新上传程序的话之前云存储的数据会被清空。 2.具体函数 (1)云存储数据函数:
逍遥子大表哥
2023/05/31
1.6K1
Esp8266+DHT11+Binker 实现室内温湿度监测
ESP8266 鼓捣记 - 从零制作一个温湿度计
经过上一篇文章 《ESP8266 鼓捣记 - 入门(环境搭建) 》搭建好环境后,肯定不会满足于 Hello World ,想快速做一个实际有用的东西出来,我认为温湿度计就非常合适,简单易做,需要的材料也不多。
晓晨
2020/11/24
1.3K0
ESP8266 鼓捣记 - 从零制作一个温湿度计
ESP8266 nodemcu + DHT11 制作简易温湿度检测器
https://downloads.arduino.cc/arduino-ide/nightly/arduino-ide_nightly-20221114_Windows_64bit.zip
用户9131103
2023/07/17
9551
ESP8266 nodemcu + DHT11 制作简易温湿度检测器
OLED+MQTT 实现土壤 温湿度 线上线下展示
借助HA,实现随时随地的观看当前温度,湿度,以及土壤湿度。并借助OLED屏幕,实时显示,方便在现场检测数据。
逍遥子大表哥
2025/07/28
960
OLED+MQTT 实现土壤 温湿度 线上线下展示
Esp8266入门即巅峰
线路一: 掉发型 需要自己写相关传感器的代码,解决各种依赖库。需要购买公网服务器,解决内网穿透等问题。耗时耗力,工作效率差。 线路二:有手型 即有手即可,我们可以借助blinker等平台连接我们的设备。官方提供的代码库比较丰富,开发者也比较多。无需购买公网服务器,并且和国内各个手机平台的语音助手对接比较方便。如小爱同学、天猫精灵等。
逍遥子大表哥
2023/05/01
9670
Esp8266入门即巅峰
基于MQTT协议的物联网小基站
注意,本示例中,因没有添加土壤传感器,在代码中进行了注释。需要开启,去掉注释就行了。
逍遥子大表哥
2025/07/28
1240
基于MQTT协议的物联网小基站
一文玩转MQTT (ESP8266+DHT11+MQTT+MYSQL方案)
MQTT(消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。
逍遥子大表哥
2023/06/10
2.6K1
一文玩转MQTT (ESP8266+DHT11+MQTT+MYSQL方案)
基于STM32的蔬菜大棚温湿度智能控制系统设计
随着人们对健康和可持续生活方式的关注不断增加,蔬菜大棚成为了现代农业中的重要组成部分。蔬菜大棚提供了一个受控的环境,使得农民能够在任何季节种植蔬菜,并根据需要进行调节。为了实现最佳的蔬菜生长和产量,对温度和湿度等环境条件的精确控制至关重要。
DS小龙哥
2023/09/27
2.1K0
基于STM32的蔬菜大棚温湿度智能控制系统设计
esp8266+DHT11温湿传感器 制作web室内温度计
DHT11是通过测量两个电极之间的电阻来检测水蒸汽的。湿度检测部件表面有电极的保湿基板。 当水蒸气被基板吸收时,离子被基板释放,这个过程将会增加电极之间的导电性。 两个电极之间的电阻变化与相对湿度成比例。 较高的相对湿度会降低电极之间的电阻,而较低的相对湿度会增加电极之间的电阻。
剧终
2020/08/27
8K0
esp8266+DHT11温湿传感器 制作web室内温度计
嵌入式开发在教育行业的应用
随着物联网(IoT)和人工智能(AI)的快速发展,嵌入式系统在各个行业中得到了广泛应用,教育行业也不例外。嵌入式系统可以帮助实现智能教室、个性化学习设备、虚拟实验室和教育机器人等多种创新应用,从而改善教学质量、增强互动性,并为学生提供更个性化的学习体验。本文将通过详细的代码案例分析,展示嵌入式系统在教育行业中的具体应用,特别是智能教室监控系统的开发过程。
知孤云出岫
2024/08/11
2160
嵌入式开发在教育行业的应用
将DHT11数据接入小爱
即,数据格式需为#25#56这样的,而目前我们是json数据格式{"humi":53,"temp":21} 因此,我们需要对数据格式进行转换。
逍遥子大表哥
2025/07/28
740
将DHT11数据接入小爱
ESP8266读DHT11温湿度,开发微信小程序实时显示
原理简述:利用发布订阅模式。第一步,先读取DHT11温湿度数值,第二步,新建主题,然后esp8266往这个主题发送消息,第三步。小程序通过http API接口获取数据。小程序控制原理:esp8266订阅了一个主题,小程序往这个主题发消息,esp8266就可以收到消息,就可以执行相关控制指令了(开/关函数)
巴法
2020/07/16
2.9K0
[esp32]esp8266连接小爱同学控制继电器
前言 接 https://www.heanny.cn/post-520.html 步骤 配置arduino # 该内容来自https://bbs.bemfa.com/29 1、安装ArduinoIDE,官网下载:https://www.arduino.cc/en/Main/Software ,下载windows安装版,常规安装即可。 2、下载安装esp32 安装包 巴法下载:https://file.bemfa.com/bemfa_com/esp/esp32V2_0_3.zip 。 百度网盘:https:/
一朵灼灼华
2022/08/05
1.8K0
esp8266+oled+DHT 11温湿度显示
设备清单 NodeMCU(esp8266)开发板一块 oled屏4pin i2c引脚一块 DHT11温湿度传感器一个 杜邦线 esp8266连接oled 3.3V --- VCC G (GND) --
剧终
2020/08/27
5K0
esp8266+oled+DHT 11温湿度显示
二十五块DIY 带屏幕可远程的温湿度传感器
小米的温湿度传感器坏了,不带屏幕。就一个硬币大小,还得配合小米网关使用。。买不起我就自己做一个。。 打开神奇的拼多多,买一个神器开发板可以连接wifi的Nodemcu,再加一块2寸屏幕,二十块包邮。。 再来一个DH11 温湿度传感器五块包邮。。
KurtNiu
2020/09/15
1.1K0
二十五块DIY 带屏幕可远程的温湿度传感器
Esp8266 DHC11 OLED制作室内温度计
连线示意图 显示器连接 VCC----3V3(+) GND----GND(-) SCL----D1 SOA----D2 传感器示意图 VCC----3V3(+) GND----GND(-) OUT----D5
逍遥子大表哥
2021/12/17
8430
Esp8266 DHC11 OLED制作室内温度计
基于ESP8266 NodeMCU + DHT22 记录室内温湿度
用ESP8266 NodeMCU 和 DHT22模块做了个室内温湿度监控的小系统,DHT22每秒把获取的温湿度发送给开发板,开发板通过HTTP协议把温湿度数据发送到部署在云服务器上的数据管理服务(自己撘的SpringBoot项目和数据库),然后就可以通过h5页面观察室内温湿度的变化。
DannyHoo
2022/05/09
1.3K0
基于ESP8266 NodeMCU + DHT22 记录室内温湿度
Esp8266控制WiFi电机驱动板
将esp8266与点击驱动板进行连接。效果如下 注意:电机电源输出范围 4.5~36v
逍遥子大表哥
2025/07/28
1070
Esp8266控制WiFi电机驱动板
当小爱同学遇到Blinker与WiFiduino能碰出怎样的火花?
2020年 注定是一个不平凡的年 新年伊始 疫情肆虐! 武汉告急! 华中告急! 全国告急! 为了躲避疫情 我们不约而同的无聊起来 但无论怎样 学习不能耽搁 想当年 牛顿就因为躲避疫情 发现了万有引力 发明了微积分 2020年 我小瓦也要干一番大事业! 这不 想起了那块吃灰的WiFiduino 1
聪明的瓦肯人
2020/02/20
2.3K0
当小爱同学遇到Blinker与WiFiduino能碰出怎样的火花?
(开源)微信小程序+mqtt+esp8266,温湿度实时显示
esp8266 通过mqtt发布消息,微信小程序通过mqtt 订阅消息,小程序订阅后,就可以实时收到esp8266 传输来的消息。
巴法
2021/03/28
7.7K0
相关推荐
Esp8266+DHT11+Binker 实现室内温湿度监测
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验